package awsgreengrassv2 // Properties for defining a `CfnDeployment`. // // Example: // // 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" // // var rateIncreaseCriteria interface{} // // cfnDeploymentProps := &CfnDeploymentProps{ // TargetArn: jsii.String("targetArn"), // // // the properties below are optional // Components: map[string]interface{}{ // "componentsKey": &ComponentDeploymentSpecificationProperty{ // "componentVersion": jsii.String("componentVersion"), // "configurationUpdate": &ComponentConfigurationUpdateProperty{ // "merge": jsii.String("merge"), // "reset": []*string{ // jsii.String("reset"), // }, // }, // "runWith": &ComponentRunWithProperty{ // "posixUser": jsii.String("posixUser"), // "systemResourceLimits": &SystemResourceLimitsProperty{ // "cpus": jsii.Number(123), // "memory": jsii.Number(123), // }, // "windowsUser": jsii.String("windowsUser"), // }, // }, // }, // DeploymentName: jsii.String("deploymentName"), // DeploymentPolicies: &DeploymentPoliciesProperty{ // ComponentUpdatePolicy: &DeploymentComponentUpdatePolicyProperty{ // Action: jsii.String("action"), // TimeoutInSeconds: jsii.Number(123), // }, // ConfigurationValidationPolicy: &DeploymentConfigurationValidationPolicyProperty{ // TimeoutInSeconds: jsii.Number(123), // }, // FailureHandlingPolicy: jsii.String("failureHandlingPolicy"), // }, // IotJobConfiguration: &DeploymentIoTJobConfigurationProperty{ // AbortConfig: &IoTJobAbortConfigProperty{ // CriteriaList: []interface{}{ // &IoTJobAbortCriteriaProperty{ // Action: jsii.String("action"), // FailureType: jsii.String("failureType"), // MinNumberOfExecutedThings: jsii.Number(123), // ThresholdPercentage: jsii.Number(123), // }, // }, // }, // JobExecutionsRolloutConfig: &IoTJobExecutionsRolloutConfigProperty{ // ExponentialRate: &IoTJobExponentialRolloutRateProperty{ // BaseRatePerMinute: jsii.Number(123), // IncrementFactor: jsii.Number(123), // RateIncreaseCriteria: rateIncreaseCriteria, // }, // MaximumPerMinute: jsii.Number(123), // }, // TimeoutConfig: &IoTJobTimeoutConfigProperty{ // InProgressTimeoutInMinutes: jsii.Number(123), // }, // }, // ParentTargetArn: jsii.String("parentTargetArn"), // Tags: map[string]*string{ // "tagsKey": jsii.String("tags"), // }, // } // // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrassv2-deployment.html // type CfnDeploymentProps struct { // The ARN of the target AWS IoT thing or thing group. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrassv2-deployment.html#cfn-greengrassv2-deployment-targetarn // TargetArn *string `field:"required" json:"targetArn" yaml:"targetArn"` // The components to deploy. // // This is a dictionary, where each key is the name of a component, and each key's value is the version and configuration to deploy for that component. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrassv2-deployment.html#cfn-greengrassv2-deployment-components // Components interface{} `field:"optional" json:"components" yaml:"components"` // The name of the deployment. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrassv2-deployment.html#cfn-greengrassv2-deployment-deploymentname // DeploymentName *string `field:"optional" json:"deploymentName" yaml:"deploymentName"` // The deployment policies for the deployment. // // These policies define how the deployment updates components and handles failure. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrassv2-deployment.html#cfn-greengrassv2-deployment-deploymentpolicies // DeploymentPolicies interface{} `field:"optional" json:"deploymentPolicies" yaml:"deploymentPolicies"` // The job configuration for the deployment configuration. // // The job configuration specifies the rollout, timeout, and stop configurations for the deployment configuration. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrassv2-deployment.html#cfn-greengrassv2-deployment-iotjobconfiguration // IotJobConfiguration interface{} `field:"optional" json:"iotJobConfiguration" yaml:"iotJobConfiguration"` // The parent deployment's [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) for a subdeployment. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrassv2-deployment.html#cfn-greengrassv2-deployment-parenttargetarn // ParentTargetArn *string `field:"optional" json:"parentTargetArn" yaml:"parentTargetArn"` // Application-specific metadata to attach to the deployment. // // You can use tags in IAM policies to control access to AWS IoT Greengrass resources. You can also use tags to categorize your resources. For more information, see [Tag your AWS IoT Greengrass Version 2 resources](https://docs.aws.amazon.com/greengrass/v2/developerguide/tag-resources.html) in the *AWS IoT Greengrass V2 Developer Guide* . // // This `Json` property type is processed as a map of key-value pairs. It uses the following format, which is different from most `Tags` implementations in AWS CloudFormation templates. // // ```json // "Tags": { "KeyName0": "value", "KeyName1": "value", "KeyName2": "value" // } // ```. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrassv2-deployment.html#cfn-greengrassv2-deployment-tags // Tags *map[string]*string `field:"optional" json:"tags" yaml:"tags"` }