NAME

Paws::IoT::CreateOTAUpdate - Arguments for method CreateOTAUpdate on Paws::IoT

DESCRIPTION

This class represents the parameters used for calling the method CreateOTAUpdate on the AWS IoT service. Use the attributes of this class as arguments to method CreateOTAUpdate.

You shouldn't make instances of this class. Each attribute should be used as a named argument in the call to CreateOTAUpdate.

SYNOPSIS

my $iot = Paws->service('IoT');
my $CreateOTAUpdateResponse = $iot->CreateOTAUpdate(
  Files => [
    {
      Attributes  => { 'MyAttributeKey' => 'MyValue', },    # OPTIONAL
      CodeSigning => {
        AwsSignerJobId    => 'MySigningJobId',              # OPTIONAL
        CustomCodeSigning => {
          CertificateChain => {
            CertificateName => 'MyCertificateName',    # OPTIONAL
            InlineDocument  => 'MyInlineDocument',     # OPTIONAL
          },    # OPTIONAL
          HashAlgorithm => 'MyHashAlgorithm',    # OPTIONAL
          Signature     => {
            InlineDocument => 'BlobSignature',    # OPTIONAL
          },    # OPTIONAL
          SignatureAlgorithm => 'MySignatureAlgorithm',    # OPTIONAL
        },    # OPTIONAL
        StartSigningJobParameter => {
          Destination => {
            S3Destination => {
              Bucket => 'MyS3Bucket',    # min: 1; OPTIONAL
              Prefix => 'MyPrefix',      # OPTIONAL
            },    # OPTIONAL
          },    # OPTIONAL
          SigningProfileName      => 'MySigningProfileName',    # OPTIONAL
          SigningProfileParameter => {
            CertificateArn          => 'MyCertificateArn',      # OPTIONAL
            CertificatePathOnDevice =>
              'MyCertificatePathOnDevice',                      # OPTIONAL
            Platform => 'MyPlatform',                           # OPTIONAL
          },    # OPTIONAL
        },    # OPTIONAL
      },    # OPTIONAL
      FileLocation => {
        S3Location => {
          Bucket  => 'MyS3Bucket',     # min: 1; OPTIONAL
          Key     => 'MyS3Key',        # min: 1; OPTIONAL
          Version => 'MyS3Version',    # OPTIONAL
        },    # OPTIONAL
        Stream => {
          FileId   => 1,               # max: 255; OPTIONAL
          StreamId => 'MyStreamId',    # min: 1, max: 128; OPTIONAL
        },    # OPTIONAL
      },    # OPTIONAL
      FileName    => 'MyFileName',                # OPTIONAL
      FileType    => 1,                           # max: 255; OPTIONAL
      FileVersion => 'MyOTAUpdateFileVersion',    # OPTIONAL
    },
    ...
  ],
  OtaUpdateId          => 'MyOTAUpdateId',
  RoleArn              => 'MyRoleArn',
  Targets              => [ 'MyTarget', ... ],
  AdditionalParameters => { 'MyAttributeKey' => 'MyValue', },    # OPTIONAL
  AwsJobAbortConfig    => {
    AbortCriteriaList => [
      {
        Action      => 'CANCEL',  # values: CANCEL
        FailureType => 'FAILED',  # values: FAILED, REJECTED, TIMED_OUT, ALL
        MinNumberOfExecutedThings => 1,    # min: 1
        ThresholdPercentage       => 1,    # max: 100

      },
      ...
    ],    # min: 1

  },    # OPTIONAL
  AwsJobExecutionsRolloutConfig => {
    ExponentialRate => {
      BaseRatePerMinute    => 1,    # min: 1, max: 1000
      IncrementFactor      => 1,
      RateIncreaseCriteria => {
        NumberOfNotifiedThings  => 1,    # min: 1; OPTIONAL
        NumberOfSucceededThings => 1,    # min: 1; OPTIONAL
      },

    },    # OPTIONAL
    MaximumPerMinute => 1,    # min: 1, max: 1000; OPTIONAL
  },    # OPTIONAL
  AwsJobPresignedUrlConfig => {
    ExpiresInSec => 1,    # OPTIONAL
  },    # OPTIONAL
  AwsJobTimeoutConfig => {
    InProgressTimeoutInMinutes => 1,    # OPTIONAL
  },    # OPTIONAL
  Description => 'MyOTAUpdateDescription',    # OPTIONAL
  Protocols   => [
    'MQTT', ...                               # values: MQTT, HTTP
  ],    # OPTIONAL
  Tags => [
    {
      Key   => 'MyTagKey',      # min: 1, max: 128
      Value => 'MyTagValue',    # min: 1, max: 256; OPTIONAL
    },
    ...
  ],    # OPTIONAL
  TargetSelection => 'CONTINUOUS',    # OPTIONAL
);

# Results:
my $AwsIotJobArn    = $CreateOTAUpdateResponse->AwsIotJobArn;
my $AwsIotJobId     = $CreateOTAUpdateResponse->AwsIotJobId;
my $OtaUpdateArn    = $CreateOTAUpdateResponse->OtaUpdateArn;
my $OtaUpdateId     = $CreateOTAUpdateResponse->OtaUpdateId;
my $OtaUpdateStatus = $CreateOTAUpdateResponse->OtaUpdateStatus;

# Returns a L<Paws::IoT::CreateOTAUpdateResponse> object.

Values for attributes that are native types (Int, String, Float, etc) can passed as-is (scalar values). Values for complex Types (objects) can be passed as a HashRef. The keys and values of the hashref will be used to instance the underlying object. For the AWS API documentation, see https://docs.aws.amazon.com/goto/WebAPI/iot/CreateOTAUpdate

ATTRIBUTES

AdditionalParameters => Paws::IoT::AdditionalParameterMap

A list of additional OTA update parameters which are name-value pairs.

AwsJobAbortConfig => Paws::IoT::AwsJobAbortConfig

The criteria that determine when and how a job abort takes place.

AwsJobExecutionsRolloutConfig => Paws::IoT::AwsJobExecutionsRolloutConfig

Configuration for the rollout of OTA updates.

AwsJobPresignedUrlConfig => Paws::IoT::AwsJobPresignedUrlConfig

Configuration information for pre-signed URLs.

AwsJobTimeoutConfig => Paws::IoT::AwsJobTimeoutConfig

Specifies the amount of time each device has to finish its execution of the job. A timer is started when the job execution status is set to IN_PROGRESS. If the job execution status is not set to another terminal state before the timer expires, it will be automatically set to TIMED_OUT.

Description => Str

The description of the OTA update.

REQUIRED Files => ArrayRef[Paws::IoT::OTAUpdateFile]

The files to be streamed by the OTA update.

REQUIRED OtaUpdateId => Str

The ID of the OTA update to be created.

Protocols => ArrayRef[Str|Undef]

The protocol used to transfer the OTA update image. Valid values are [HTTP], [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device can choose the protocol.

REQUIRED RoleArn => Str

The IAM role that grants AWS IoT access to the Amazon S3, AWS IoT jobs and AWS Code Signing resources to create an OTA update job.

Tags => ArrayRef[Paws::IoT::Tag]

Metadata which can be used to manage updates.

REQUIRED Targets => ArrayRef[Str|Undef]

The devices targeted to receive OTA updates.

TargetSelection => Str

Specifies whether the update will continue to run (CONTINUOUS), or will be complete after all the things specified as targets have completed the update (SNAPSHOT). If continuous, the update may also be run on a thing when a change is detected in a target. For example, an update will run on a thing when the thing is added to a target group, even after the update was completed by all things originally in the group. Valid values: CONTINUOUS | SNAPSHOT.

Valid values are: "CONTINUOUS", "SNAPSHOT"

SEE ALSO

This class forms part of Paws, documenting arguments for method CreateOTAUpdate in Paws::IoT

BUGS and CONTRIBUTIONS

The source code is located here: https://github.com/pplu/aws-sdk-perl

Please report bugs to: https://github.com/pplu/aws-sdk-perl/issues