The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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