Skip to content
v2.276.0

CfnOTAUpdateProps Struct Added in v2.276.0 ​

Properties for defining a CfnOTAUpdate.

Example ​

ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { aws_iot as iot } from 'aws-cdk-lib';
const cfnOTAUpdateProps: iot.CfnOTAUpdateProps = {
  files: [{
    attributes: {
      attributesKey: 'attributes',
    },
    codeSigning: {
      awsSignerJobId: 'awsSignerJobId',
      customCodeSigning: {
        certificateChain: {
          certificateName: 'certificateName',
          inlineDocument: 'inlineDocument',
        },
        hashAlgorithm: 'hashAlgorithm',
        signature: {
          inlineDocument: 'inlineDocument',
        },
        signatureAlgorithm: 'signatureAlgorithm',
      },
      startSigningJobParameter: {
        destination: {
          s3Destination: {
            bucket: 'bucket',
            prefix: 'prefix',
          },
        },
        signingProfileName: 'signingProfileName',
        signingProfileParameter: {
          certificateArn: 'certificateArn',
          certificatePathOnDevice: 'certificatePathOnDevice',
          platform: 'platform',
        },
      },
    },
    fileLocation: {
      s3Location: {
        bucket: 'bucket',
        key: 'key',
        version: 'version',
      },
      stream: {
        fileId: 123,
        streamId: 'streamId',
      },
    },
    fileName: 'fileName',
    fileType: 123,
    fileVersion: 'fileVersion',
  }],
  otaUpdateId: 'otaUpdateId',
  targets: ['targets'],

  // the properties below are optional
  additionalParameters: {
    additionalParametersKey: 'additionalParameters',
  },
  awsJobAbortConfig: {
    abortCriteriaList: [{
      action: 'action',
      failureType: 'failureType',
      minNumberOfExecutedThings: 123,
      thresholdPercentage: 123,
    }],
  },
  awsJobExecutionsRolloutConfig: {
    exponentialRate: {
      baseRatePerMinute: 123,
      incrementFactor: 123,
      rateIncreaseCriteria: {
        numberOfNotifiedThings: 123,
        numberOfSucceededThings: 123,
      },
    },
    maximumPerMinute: 123,
  },
  awsJobPresignedUrlConfig: {
    expiresInSec: 123,
  },
  awsJobTimeoutConfig: {
    inProgressTimeoutInMinutes: 123,
  },
  description: 'description',
  protocols: ['protocols'],
  roleArn: 'roleArn',
  tags: [{
    key: 'key',
    value: 'value',
  }],
  targetSelection: 'targetSelection',
};
python
from aws_cdk import CfnTag
# The code below shows an example of how to instantiate this type.
# The values are placeholders you should change.
from aws_cdk import aws_iot as iot

cfn_ota_update_props = iot.CfnOTAUpdateProps(
    files=[iot.CfnOTAUpdate.OTAUpdateFileProperty(
        attributes={
            "attributes_key": "attributes"
        },
        code_signing=iot.CfnOTAUpdate.CodeSigningProperty(
            aws_signer_job_id="awsSignerJobId",
            custom_code_signing=iot.CfnOTAUpdate.CustomCodeSigningProperty(
                certificate_chain=iot.CfnOTAUpdate.CodeSigningCertificateChainProperty(
                    certificate_name="certificateName",
                    inline_document="inlineDocument"
                ),
                hash_algorithm="hashAlgorithm",
                signature=iot.CfnOTAUpdate.CodeSigningSignatureProperty(
                    inline_document="inlineDocument"
                ),
                signature_algorithm="signatureAlgorithm"
            ),
            start_signing_job_parameter=iot.CfnOTAUpdate.StartSigningJobParameterProperty(
                destination=iot.CfnOTAUpdate.DestinationProperty(
                    s3_destination=iot.CfnOTAUpdate.S3DestinationProperty(
                        bucket="bucket",
                        prefix="prefix"
                    )
                ),
                signing_profile_name="signingProfileName",
                signing_profile_parameter=iot.CfnOTAUpdate.SigningProfileParameterProperty(
                    certificate_arn="certificateArn",
                    certificate_path_on_device="certificatePathOnDevice",
                    platform="platform"
                )
            )
        ),
        file_location=iot.CfnOTAUpdate.FileLocationProperty(
            s3_location=iot.CfnOTAUpdate.S3LocationProperty(
                bucket="bucket",
                key="key",
                version="version"
            ),
            stream=iot.CfnOTAUpdate.StreamProperty(
                file_id=123,
                stream_id="streamId"
            )
        ),
        file_name="fileName",
        file_type=123,
        file_version="fileVersion"
    )],
    ota_update_id="otaUpdateId",
    targets=["targets"],

    # the properties below are optional
    additional_parameters={
        "additional_parameters_key": "additionalParameters"
    },
    aws_job_abort_config=iot.CfnOTAUpdate.AwsJobAbortConfigProperty(
        abort_criteria_list=[iot.CfnOTAUpdate.AwsJobAbortCriteriaProperty(
            action="action",
            failure_type="failureType",
            min_number_of_executed_things=123,
            threshold_percentage=123
        )]
    ),
    aws_job_executions_rollout_config=iot.CfnOTAUpdate.AwsJobExecutionsRolloutConfigProperty(
        exponential_rate=iot.CfnOTAUpdate.AwsJobExponentialRolloutRateProperty(
            base_rate_per_minute=123,
            increment_factor=123,
            rate_increase_criteria=iot.CfnOTAUpdate.AwsJobRateIncreaseCriteriaProperty(
                number_of_notified_things=123,
                number_of_succeeded_things=123
            )
        ),
        maximum_per_minute=123
    ),
    aws_job_presigned_url_config=iot.CfnOTAUpdate.AwsJobPresignedUrlConfigProperty(
        expires_in_sec=123
    ),
    aws_job_timeout_config=iot.CfnOTAUpdate.AwsJobTimeoutConfigProperty(
        in_progress_timeout_in_minutes=123
    ),
    description="description",
    protocols=["protocols"],
    role_arn="roleArn",
    tags=[CfnTag(
        key="key",
        value="value"
    )],
    target_selection="targetSelection"
)
java
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import software.amazon.awscdk.services.iot.*;

CfnOTAUpdateProps cfnOTAUpdateProps = CfnOTAUpdateProps.builder()
        .files(List.of(OTAUpdateFileProperty.builder()
                .attributes(Map.of(
                        "attributesKey", "attributes"))
                .codeSigning(CodeSigningProperty.builder()
                        .awsSignerJobId("awsSignerJobId")
                        .customCodeSigning(CustomCodeSigningProperty.builder()
                                .certificateChain(CodeSigningCertificateChainProperty.builder()
                                        .certificateName("certificateName")
                                        .inlineDocument("inlineDocument")
                                        .build())
                                .hashAlgorithm("hashAlgorithm")
                                .signature(CodeSigningSignatureProperty.builder()
                                        .inlineDocument("inlineDocument")
                                        .build())
                                .signatureAlgorithm("signatureAlgorithm")
                                .build())
                        .startSigningJobParameter(StartSigningJobParameterProperty.builder()
                                .destination(DestinationProperty.builder()
                                        .s3Destination(S3DestinationProperty.builder()
                                                .bucket("bucket")
                                                .prefix("prefix")
                                                .build())
                                        .build())
                                .signingProfileName("signingProfileName")
                                .signingProfileParameter(SigningProfileParameterProperty.builder()
                                        .certificateArn("certificateArn")
                                        .certificatePathOnDevice("certificatePathOnDevice")
                                        .platform("platform")
                                        .build())
                                .build())
                        .build())
                .fileLocation(FileLocationProperty.builder()
                        .s3Location(S3LocationProperty.builder()
                                .bucket("bucket")
                                .key("key")
                                .version("version")
                                .build())
                        .stream(StreamProperty.builder()
                                .fileId(123)
                                .streamId("streamId")
                                .build())
                        .build())
                .fileName("fileName")
                .fileType(123)
                .fileVersion("fileVersion")
                .build()))
        .otaUpdateId("otaUpdateId")
        .targets(List.of("targets"))

        // the properties below are optional
        .additionalParameters(Map.of(
                "additionalParametersKey", "additionalParameters"))
        .awsJobAbortConfig(AwsJobAbortConfigProperty.builder()
                .abortCriteriaList(List.of(AwsJobAbortCriteriaProperty.builder()
                        .action("action")
                        .failureType("failureType")
                        .minNumberOfExecutedThings(123)
                        .thresholdPercentage(123)
                        .build()))
                .build())
        .awsJobExecutionsRolloutConfig(AwsJobExecutionsRolloutConfigProperty.builder()
                .exponentialRate(AwsJobExponentialRolloutRateProperty.builder()
                        .baseRatePerMinute(123)
                        .incrementFactor(123)
                        .rateIncreaseCriteria(AwsJobRateIncreaseCriteriaProperty.builder()
                                .numberOfNotifiedThings(123)
                                .numberOfSucceededThings(123)
                                .build())
                        .build())
                .maximumPerMinute(123)
                .build())
        .awsJobPresignedUrlConfig(AwsJobPresignedUrlConfigProperty.builder()
                .expiresInSec(123)
                .build())
        .awsJobTimeoutConfig(AwsJobTimeoutConfigProperty.builder()
                .inProgressTimeoutInMinutes(123)
                .build())
        .description("description")
        .protocols(List.of("protocols"))
        .roleArn("roleArn")
        .tags(List.of(CfnTag.builder()
                .key("key")
                .value("value")
                .build()))
        .targetSelection("targetSelection")
        .build();
csharp
// Install: dotnet add package Amazon.CDK.Lib
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
using Amazon.CDK.AWS.IoT;

var cfnOTAUpdateProps = new CfnOTAUpdateProps {
    Files = new [] { new OTAUpdateFileProperty {
        Attributes = new Dictionary<string, string> {
            { "attributesKey", "attributes" }
        },
        CodeSigning = new CodeSigningProperty {
            AwsSignerJobId = "awsSignerJobId",
            CustomCodeSigning = new CustomCodeSigningProperty {
                CertificateChain = new CodeSigningCertificateChainProperty {
                    CertificateName = "certificateName",
                    InlineDocument = "inlineDocument"
                },
                HashAlgorithm = "hashAlgorithm",
                Signature = new CodeSigningSignatureProperty {
                    InlineDocument = "inlineDocument"
                },
                SignatureAlgorithm = "signatureAlgorithm"
            },
            StartSigningJobParameter = new StartSigningJobParameterProperty {
                Destination = new DestinationProperty {
                    S3Destination = new S3DestinationProperty {
                        Bucket = "bucket",
                        Prefix = "prefix"
                    }
                },
                SigningProfileName = "signingProfileName",
                SigningProfileParameter = new SigningProfileParameterProperty {
                    CertificateArn = "certificateArn",
                    CertificatePathOnDevice = "certificatePathOnDevice",
                    Platform = "platform"
                }
            }
        },
        FileLocation = new FileLocationProperty {
            S3Location = new S3LocationProperty {
                Bucket = "bucket",
                Key = "key",
                Version = "version"
            },
            Stream = new StreamProperty {
                FileId = 123,
                StreamId = "streamId"
            }
        },
        FileName = "fileName",
        FileType = 123,
        FileVersion = "fileVersion"
    } },
    OtaUpdateId = "otaUpdateId",
    Targets = new [] { "targets" },

    // the properties below are optional
    AdditionalParameters = new Dictionary<string, string> {
        { "additionalParametersKey", "additionalParameters" }
    },
    AwsJobAbortConfig = new AwsJobAbortConfigProperty {
        AbortCriteriaList = new [] { new AwsJobAbortCriteriaProperty {
            Action = "action",
            FailureType = "failureType",
            MinNumberOfExecutedThings = 123,
            ThresholdPercentage = 123
        } }
    },
    AwsJobExecutionsRolloutConfig = new AwsJobExecutionsRolloutConfigProperty {
        ExponentialRate = new AwsJobExponentialRolloutRateProperty {
            BaseRatePerMinute = 123,
            IncrementFactor = 123,
            RateIncreaseCriteria = new AwsJobRateIncreaseCriteriaProperty {
                NumberOfNotifiedThings = 123,
                NumberOfSucceededThings = 123
            }
        },
        MaximumPerMinute = 123
    },
    AwsJobPresignedUrlConfig = new AwsJobPresignedUrlConfigProperty {
        ExpiresInSec = 123
    },
    AwsJobTimeoutConfig = new AwsJobTimeoutConfigProperty {
        InProgressTimeoutInMinutes = 123
    },
    Description = "description",
    Protocols = new [] { "protocols" },
    RoleArn = "roleArn",
    Tags = new [] { new CfnTag {
        Key = "key",
        Value = "value"
    } },
    TargetSelection = "targetSelection"
};
go
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnOTAUpdateProps := &CfnOTAUpdateProps{
	Files: []interface{}{
		&OTAUpdateFileProperty{
			Attributes: map[string]*string{
				"attributesKey": jsii.String("attributes"),
			},
			CodeSigning: &CodeSigningProperty{
				AwsSignerJobId: jsii.String("awsSignerJobId"),
				CustomCodeSigning: &CustomCodeSigningProperty{
					CertificateChain: &CodeSigningCertificateChainProperty{
						CertificateName: jsii.String("certificateName"),
						InlineDocument: jsii.String("inlineDocument"),
					},
					HashAlgorithm: jsii.String("hashAlgorithm"),
					Signature: &CodeSigningSignatureProperty{
						InlineDocument: jsii.String("inlineDocument"),
					},
					SignatureAlgorithm: jsii.String("signatureAlgorithm"),
				},
				StartSigningJobParameter: &StartSigningJobParameterProperty{
					Destination: &DestinationProperty{
						S3Destination: &S3DestinationProperty{
							Bucket: jsii.String("bucket"),
							Prefix: jsii.String("prefix"),
						},
					},
					SigningProfileName: jsii.String("signingProfileName"),
					SigningProfileParameter: &SigningProfileParameterProperty{
						CertificateArn: jsii.String("certificateArn"),
						CertificatePathOnDevice: jsii.String("certificatePathOnDevice"),
						Platform: jsii.String("platform"),
					},
				},
			},
			FileLocation: &FileLocationProperty{
				S3Location: &S3LocationProperty{
					Bucket: jsii.String("bucket"),
					Key: jsii.String("key"),
					Version: jsii.String("version"),
				},
				Stream: &StreamProperty{
					FileId: jsii.Number(123),
					StreamId: jsii.String("streamId"),
				},
			},
			FileName: jsii.String("fileName"),
			FileType: jsii.Number(123),
			FileVersion: jsii.String("fileVersion"),
		},
	},
	OtaUpdateId: jsii.String("otaUpdateId"),
	Targets: []*string{
		jsii.String("targets"),
	},

	// the properties below are optional
	AdditionalParameters: map[string]*string{
		"additionalParametersKey": jsii.String("additionalParameters"),
	},
	AwsJobAbortConfig: &AwsJobAbortConfigProperty{
		AbortCriteriaList: []interface{}{
			&AwsJobAbortCriteriaProperty{
				Action: jsii.String("action"),
				FailureType: jsii.String("failureType"),
				MinNumberOfExecutedThings: jsii.Number(123),
				ThresholdPercentage: jsii.Number(123),
			},
		},
	},
	AwsJobExecutionsRolloutConfig: &AwsJobExecutionsRolloutConfigProperty{
		ExponentialRate: &AwsJobExponentialRolloutRateProperty{
			BaseRatePerMinute: jsii.Number(123),
			IncrementFactor: jsii.Number(123),
			RateIncreaseCriteria: &AwsJobRateIncreaseCriteriaProperty{
				NumberOfNotifiedThings: jsii.Number(123),
				NumberOfSucceededThings: jsii.Number(123),
			},
		},
		MaximumPerMinute: jsii.Number(123),
	},
	AwsJobPresignedUrlConfig: &AwsJobPresignedUrlConfigProperty{
		ExpiresInSec: jsii.Number(123),
	},
	AwsJobTimeoutConfig: &AwsJobTimeoutConfigProperty{
		InProgressTimeoutInMinutes: jsii.Number(123),
	},
	Description: jsii.String("description"),
	Protocols: []*string{
		jsii.String("protocols"),
	},
	RoleArn: jsii.String("roleArn"),
	Tags: []CfnTag{
		&CfnTag{
			Key: jsii.String("key"),
			Value: jsii.String("value"),
		},
	},
	TargetSelection: jsii.String("targetSelection"),
}

Properties ​

additionalParametersoptionalIResolvable | { [key: string]: string }additional_parametersoptionaltyping.Union[IResolvable, typing.Mapping[str, str]]additionalParametersoptionalIResolvableAdditionalParametersoptionalIResolvableAdditionalParametersoptionalinterface{}#
A list of additional OTA update parameters, which are name-value pairs.
awsJobAbortConfigoptionalIResolvable | CfnOTAUpdate.AwsJobAbortConfigPropertyaws_job_abort_configoptionaltyping.Union[IResolvable, AwsJobAbortConfigProperty]awsJobAbortConfigoptionalIResolvableAwsJobAbortConfigoptionalIResolvableAwsJobAbortConfigoptionalinterface{}#
awsJobExecutionsRolloutConfigoptionalIResolvable | CfnOTAUpdate.AwsJobExecutionsRolloutConfigPropertyaws_job_executions_rollout_configoptionaltyping.Union[IResolvable, AwsJobExecutionsRolloutConfigProperty]awsJobExecutionsRolloutConfigoptionalIResolvableAwsJobExecutionsRolloutConfigoptionalIResolvableAwsJobExecutionsRolloutConfigoptionalinterface{}#
awsJobPresignedUrlConfigoptionalIResolvable | CfnOTAUpdate.AwsJobPresignedUrlConfigPropertyaws_job_presigned_url_configoptionaltyping.Union[IResolvable, AwsJobPresignedUrlConfigProperty]awsJobPresignedUrlConfigoptionalIResolvableAwsJobPresignedUrlConfigoptionalIResolvableAwsJobPresignedUrlConfigoptionalinterface{}#
awsJobTimeoutConfigoptionalIResolvable | CfnOTAUpdate.AwsJobTimeoutConfigPropertyaws_job_timeout_configoptionaltyping.Union[IResolvable, AwsJobTimeoutConfigProperty]awsJobTimeoutConfigoptionalIResolvableAwsJobTimeoutConfigoptionalIResolvableAwsJobTimeoutConfigoptionalinterface{}#
descriptionoptionalstringdescriptionoptionalstrdescriptionoptionalStringDescriptionoptionalstringDescriptionoptional*string#
The description of the OTA update.
filesIResolvable | IResolvable | CfnOTAUpdate.OTAUpdateFileProperty[]filestyping.Union[IResolvable, typing.List[typing.Union[IResolvable, OTAUpdateFileProperty]]]filesIResolvableFilesIResolvableFilesinterface{}required#
The files to be streamed by the OTA update.
otaUpdateIdstringota_update_idstrotaUpdateIdStringOtaUpdateIdstringOtaUpdateId*stringrequired#
The ID of the OTA update to be created.
protocolsoptionalstring[]protocolsoptionaltyping.List[str]protocolsoptionalList<String>Protocolsoptionalstring[]Protocolsoptional*[]*string#
The protocol used to transfer the OTA update image.
roleArnoptionalstringrole_arnoptionalstrroleArnoptionalStringRoleArnoptionalstringRoleArnoptional*string#
The IAM role that grants AWS IoT Core access to the Amazon S3, IoT jobs and AWS Code Signing resources to create an OTA update job.
tagsoptionalCfnTag[]tagsoptionaltyping.List[CfnTag]tagsoptionalList<CfnTag>TagsoptionalCfnTag[]Tagsoptional*[]CfnTag#
Metadata which can be used to manage updates.
targetsstring[]targetstyping.List[str]targetsList<String>Targetsstring[]Targets*[]*stringrequired#
The devices targeted to receive OTA updates.
targetSelectionoptionalstringtarget_selectionoptionalstrtargetSelectionoptionalStringTargetSelectionoptionalstringTargetSelectionoptional*string#
Specifies whether the update will continue to run (CONTINUOUS), or will be complete after all things specified as targets have completed the update (SNAPSHOT).