diff --git a/.docs.version b/.docs.version index b851e013fb..aaace4de5c 100644 --- a/.docs.version +++ b/.docs.version @@ -1 +1 @@ -d880f1f6156507307e273c0dbdae75b6f195c65b +efa4256bf46bc6a1b0c57be021eb7e36edda0164 diff --git a/aws-cloudformation-schema/aws-accessanalyzer-analyzer.json b/aws-cloudformation-schema/aws-accessanalyzer-analyzer.json index 8aba8d444b..8df578287f 100644 --- a/aws-cloudformation-schema/aws-accessanalyzer-analyzer.json +++ b/aws-cloudformation-schema/aws-accessanalyzer-analyzer.json @@ -75,12 +75,44 @@ }, "Value" : { "type" : "string", - "description" : "The value for the tag. You can specify a value that is 1 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", - "minLength" : 1, + "description" : "The value for the tag. You can specify a value that is 0 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. ", + "minLength" : 0, "maxLength" : 255 } }, - "required" : [ "Key", "Value" ], + "required" : [ "Key" ], + "additionalProperties" : false + }, + "Tags" : { + "type" : "array", + "insertionOrder" : false, + "uniqueItems" : true, + "description" : "An array of key-value pairs to apply to this resource.", + "items" : { + "$ref" : "#/definitions/Tag" + } + }, + "AnalysisRuleCriteria" : { + "description" : "The criteria for an analysis rule for an analyzer.", + "type" : "object", + "properties" : { + "AccountIds" : { + "description" : "A list of AWS account IDs to apply to the analysis rule criteria. The accounts cannot include the organization analyzer owner account. Account IDs can only be applied to the analysis rule criteria for organization-level analyzers.", + "type" : "array", + "insertionOrder" : false, + "items" : { + "type" : "string" + } + }, + "ResourceTags" : { + "description" : "An array of key-value pairs to match for your resources. You can use the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.\n\nFor the tag key, you can specify a value that is 1 to 128 characters in length and cannot be prefixed with aws:.\n\nFor the tag value, you can specify a value that is 0 to 256 characters in length. If the specified tag value is 0 characters, the rule is applied to all principals with the specified tag key.", + "type" : "array", + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/Tags" + } + } + }, "additionalProperties" : false }, "UnusedAccessConfiguration" : { @@ -88,10 +120,25 @@ "type" : "object", "properties" : { "UnusedAccessAge" : { - "description" : "The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 180 days.", + "description" : "The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 365 days.", "type" : "integer", "minimum" : 1, - "maximum" : 180 + "maximum" : 365 + }, + "AnalysisRule" : { + "description" : "Contains information about rules for the analyzer.", + "type" : "object", + "properties" : { + "Exclusions" : { + "description" : "A list of rules for the analyzer containing criteria to exclude from analysis. Entities that meet the rule criteria will not generate findings.", + "type" : "array", + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/AnalysisRuleCriteria" + } + } + }, + "additionalProperties" : false } }, "additionalProperties" : false @@ -146,7 +193,8 @@ }, "required" : [ "Type" ], "readOnlyProperties" : [ "/properties/Arn" ], - "createOnlyProperties" : [ "/properties/AnalyzerName", "/properties/Type", "/properties/AnalyzerConfiguration" ], + "createOnlyProperties" : [ "/properties/AnalyzerName", "/properties/Type" ], + "conditionalCreateOnlyProperties" : [ "/properties/AnalyzerConfiguration" ], "primaryIdentifier" : [ "/properties/Arn" ], "additionalProperties" : false, "handlers" : { @@ -157,7 +205,7 @@ "permissions" : [ "access-analyzer:ListAnalyzers", "access-analyzer:GetAnalyzer", "access-analyzer:ListArchiveRules" ] }, "update" : { - "permissions" : [ "access-analyzer:CreateArchiveRule", "access-analyzer:DeleteArchiveRule", "access-analyzer:ListAnalyzers", "access-analyzer:TagResource", "access-analyzer:UntagResource", "access-analyzer:UpdateArchiveRule" ] + "permissions" : [ "access-analyzer:CreateArchiveRule", "access-analyzer:DeleteArchiveRule", "access-analyzer:ListAnalyzers", "access-analyzer:TagResource", "access-analyzer:UntagResource", "access-analyzer:UpdateAnalyzer", "access-analyzer:UpdateArchiveRule" ] }, "delete" : { "permissions" : [ "access-analyzer:DeleteAnalyzer" ] @@ -172,6 +220,6 @@ "tagUpdatable" : true, "cloudFormationSystemTags" : true, "tagProperty" : "/properties/Tags", - "permissions" : [ "access-analyzer:UntagResource", "access-analyzer:TagResource" ] + "permissions" : [ "access-analyzer:UntagResource", "access-analyzer:TagResource", "access-analyzer:ListTagsForResource" ] } } \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-applicationautoscaling-scalingpolicy.json b/aws-cloudformation-schema/aws-applicationautoscaling-scalingpolicy.json index 3210d20c66..d123542583 100644 --- a/aws-cloudformation-schema/aws-applicationautoscaling-scalingpolicy.json +++ b/aws-cloudformation-schema/aws-applicationautoscaling-scalingpolicy.json @@ -17,10 +17,10 @@ "permissions" : [ "application-autoscaling:DescribeScalingPolicies" ] }, "create" : { - "permissions" : [ "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy" ] + "permissions" : [ "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "cloudwatch:GetMetricData" ] }, "update" : { - "permissions" : [ "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy" ] + "permissions" : [ "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "cloudwatch:GetMetricData" ] }, "list" : { "permissions" : [ "application-autoscaling:DescribeScalingPolicies" ], @@ -41,6 +41,33 @@ "writeOnlyProperties" : [ "/properties/TargetTrackingScalingPolicyConfiguration/PredefinedMetricSpecification/ResourceLabel", "/properties/ScalingTargetId" ], "additionalProperties" : false, "definitions" : { + "PredictiveScalingMetricDataQuery" : { + "description" : "", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "ReturnData" : { + "description" : "Indicates whether to return the timestamps and raw data values of this metric.", + "type" : "boolean" + }, + "Expression" : { + "description" : "The math expression to perform on the returned data, if this object is performing a math expression.", + "type" : "string" + }, + "Label" : { + "description" : "A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents.", + "type" : "string" + }, + "MetricStat" : { + "description" : "Information about the metric data to return.", + "$ref" : "#/definitions/PredictiveScalingMetricStat" + }, + "Id" : { + "description" : "A short name that identifies the object's results in the response.", + "type" : "string" + } + } + }, "TargetTrackingMetricStat" : { "description" : "This structure defines the CloudWatch metric to return, along with the statistic and unit.\n ``TargetTrackingMetricStat`` is a property of the [AWS::ApplicationAutoScaling::ScalingPolicy TargetTrackingMetricDataQuery](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingmetricdataquery.html) property type.\n For more information about the CloudWatch terminology below, see [Amazon CloudWatch concepts](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html) in the *Amazon CloudWatch User Guide*.", "additionalProperties" : false, @@ -60,6 +87,21 @@ } } }, + "PredictiveScalingMetricDimension" : { + "description" : "", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "Value" : { + "description" : "The value of the dimension.", + "type" : "string" + }, + "Name" : { + "description" : "The name of the dimension.", + "type" : "string" + } + } + }, "TargetTrackingMetricDimension" : { "description" : "``TargetTrackingMetricDimension`` specifies a name/value pair that is part of the identity of a CloudWatch metric for the ``Dimensions`` property of the [AWS::ApplicationAutoScaling::ScalingPolicy TargetTrackingMetric](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingmetric.html) property type. Duplicate dimensions are not allowed.", "additionalProperties" : false, @@ -75,6 +117,22 @@ } } }, + "PredictiveScalingCustomizedCapacityMetric" : { + "description" : "", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "MetricDataQueries" : { + "uniqueItems" : true, + "insertionOrder" : false, + "type" : "array", + "items" : { + "$ref" : "#/definitions/PredictiveScalingMetricDataQuery" + } + } + }, + "required" : [ "MetricDataQueries" ] + }, "TargetTrackingMetricDataQuery" : { "description" : "The metric data to return. Also defines whether this call is returning data for one metric only, or whether it is performing a math expression on the values of returned metric statistics to create a new time series. A time series is a series of data points, each of which is associated with a timestamp.\n You can call for a single metric or perform math expressions on multiple metrics. Any expressions used in a metric specification must eventually return a single time series.\n For more information and examples, see [Create a target tracking scaling policy for Application Auto Scaling using metric math](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking-metric-math.html) in the *Application Auto Scaling User Guide*.\n ``TargetTrackingMetricDataQuery`` is a property of the [AWS::ApplicationAutoScaling::ScalingPolicy CustomizedMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html) property type.", "additionalProperties" : false, @@ -102,6 +160,22 @@ } } }, + "PredictiveScalingCustomizedScalingMetric" : { + "description" : "", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "MetricDataQueries" : { + "uniqueItems" : true, + "insertionOrder" : false, + "type" : "array", + "items" : { + "$ref" : "#/definitions/PredictiveScalingMetricDataQuery" + } + } + }, + "required" : [ "MetricDataQueries" ] + }, "CustomizedMetricSpecification" : { "description" : "Contains customized metric specification information for a target tracking scaling policy for Application Auto Scaling. \n For information about the available metrics for a service, see [services that publish CloudWatch metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*.\n To create your customized metric specification:\n + Add values for each required parameter from CloudWatch. You can use an existing metric, or a new metric that you create. To use your own metric, you must first publish the metric to CloudWatch. For more information, see [Publish custom metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) in the *Amazon CloudWatch User Guide*.\n + Choose a metric that changes proportionally with capacity. The value of the metric should increase or decrease in inverse proportion to the number of capacity units. That is, the value of the metric should decrease when capacity increases, and increase when capacity decreases. \n \n For an example of how creating new metrics can be useful, see [Scaling based on Amazon SQS](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-using-sqs-queue.html) in the *Amazon EC2 Auto Scaling User Guide*. This topic mentions Auto Scaling groups, but the same scenario for Amazon SQS can apply to the target tracking scaling policies that you create for a Spot Fleet by using Application Auto Scaling.\n For more information about the CloudWatch terminology below, see [Amazon CloudWatch concepts](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html). \n ``CustomizedMetricSpecification`` is a property of the [AWS::ApplicationAutoScaling::ScalingPolicy TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html) property type.", "additionalProperties" : false, @@ -143,29 +217,19 @@ } } }, - "TargetTrackingMetric" : { - "description" : "Represents a specific metric for a target tracking scaling policy for Application Auto Scaling.\n Metric is a property of the [AWS::ApplicationAutoScaling::ScalingPolicy TargetTrackingMetricStat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingmetricstat.html) property type.", + "PredictiveScalingPredefinedLoadMetric" : { + "description" : "", "additionalProperties" : false, "type" : "object", "properties" : { - "MetricName" : { - "description" : "The name of the metric.", + "PredefinedMetricType" : { "type" : "string" }, - "Dimensions" : { - "uniqueItems" : false, - "description" : "The dimensions for the metric. For the list of available dimensions, see the AWS documentation available from the table in [services that publish CloudWatch metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*. \n Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy.", - "insertionOrder" : false, - "type" : "array", - "items" : { - "$ref" : "#/definitions/TargetTrackingMetricDimension" - } - }, - "Namespace" : { - "description" : "The namespace of the metric. For more information, see the table in [services that publish CloudWatch metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*.", + "ResourceLabel" : { "type" : "string" } - } + }, + "required" : [ "PredefinedMetricType" ] }, "TargetTrackingScalingPolicyConfiguration" : { "description" : "``TargetTrackingScalingPolicyConfiguration`` is a property of the [AWS::ApplicationAutoScaling::ScalingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html) resource that specifies a target tracking scaling policy configuration for Application Auto Scaling. Use a target tracking scaling policy to adjust the capacity of the specified scalable target in response to actual workloads, so that resource utilization remains at or near the target utilization value. \n For more information, see [Target tracking scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) in the *Application Auto Scaling User Guide*.", @@ -199,6 +263,20 @@ }, "required" : [ "TargetValue" ] }, + "PredictiveScalingPredefinedMetricPair" : { + "description" : "", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "PredefinedMetricType" : { + "type" : "string" + }, + "ResourceLabel" : { + "type" : "string" + } + }, + "required" : [ "PredefinedMetricType" ] + }, "StepAdjustment" : { "description" : "``StepAdjustment`` specifies a step adjustment for the ``StepAdjustments`` property of the [AWS::ApplicationAutoScaling::ScalingPolicy StepScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html) property type. \n For the following examples, suppose that you have an alarm with a breach threshold of 50: \n + To trigger a step adjustment when the metric is greater than or equal to 50 and less than 60, specify a lower bound of 0 and an upper bound of 10. \n + To trigger a step adjustment when the metric is greater than 40 and less than or equal to 50, specify a lower bound of -10 and an upper bound of 0. \n \n For more information, see [Step adjustments](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html#as-scaling-steps) in the *Application Auto Scaling User Guide*.\n You can find a sample template snippet in the [Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#aws-resource-applicationautoscaling-scalingpolicy--examples) section of the ``AWS::ApplicationAutoScaling::ScalingPolicy`` documentation.", "additionalProperties" : false, @@ -219,69 +297,223 @@ }, "required" : [ "ScalingAdjustment" ] }, - "StepScalingPolicyConfiguration" : { - "description" : "``StepScalingPolicyConfiguration`` is a property of the [AWS::ApplicationAutoScaling::ScalingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html) resource that specifies a step scaling policy configuration for Application Auto Scaling. \n For more information, see [Step scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) in the *Application Auto Scaling User Guide*.", + "PredefinedMetricSpecification" : { + "description" : "Contains predefined metric specification information for a target tracking scaling policy for Application Auto Scaling.\n ``PredefinedMetricSpecification`` is a property of the [AWS::ApplicationAutoScaling::ScalingPolicy TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html) property type.", "additionalProperties" : false, "type" : "object", "properties" : { - "MetricAggregationType" : { - "description" : "The aggregation type for the CloudWatch metrics. Valid values are ``Minimum``, ``Maximum``, and ``Average``. If the aggregation type is null, the value is treated as ``Average``.", + "PredefinedMetricType" : { + "description" : "The metric type. The ``ALBRequestCountPerTarget`` metric type applies only to Spot fleet requests and ECS services.", "type" : "string" }, - "Cooldown" : { - "description" : "The amount of time, in seconds, to wait for a previous scaling activity to take effect. If not specified, the default value is 300. For more information, see [Cooldown period](https://docs.aws.amazon.com/autoscaling/application/userguide/step-scaling-policy-overview.html#step-scaling-cooldown) in the *Application Auto Scaling User Guide*.", + "ResourceLabel" : { + "description" : "Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ``ALBRequestCountPerTarget`` and there is a target group attached to the Spot Fleet or ECS service.\n You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format of the resource label is:\n ``app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff``.\n Where:\n + app// is the final portion of the load balancer ARN\n + targetgroup// is the final portion of the target group ARN.\n \n To find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation.", + "type" : "string" + } + }, + "required" : [ "PredefinedMetricType" ] + }, + "MetricDimension" : { + "description" : "``MetricDimension`` specifies a name/value pair that is part of the identity of a CloudWatch metric for the ``Dimensions`` property of the [AWS::ApplicationAutoScaling::ScalingPolicy CustomizedMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html) property type. Duplicate dimensions are not allowed.", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "Value" : { + "description" : "The value of the dimension.", + "type" : "string" + }, + "Name" : { + "description" : "The name of the dimension.", + "type" : "string" + } + }, + "required" : [ "Value", "Name" ] + }, + "PredictiveScalingPolicyConfiguration" : { + "description" : "", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "MaxCapacityBreachBehavior" : { + "type" : "string" + }, + "MaxCapacityBuffer" : { "type" : "integer" }, - "StepAdjustments" : { + "Mode" : { + "type" : "string" + }, + "MetricSpecifications" : { "uniqueItems" : true, - "description" : "A set of adjustments that enable you to scale based on the size of the alarm breach.\n At least one step adjustment is required if you are adding a new step scaling policy configuration.", "insertionOrder" : false, "type" : "array", "items" : { - "$ref" : "#/definitions/StepAdjustment" + "$ref" : "#/definitions/PredictiveScalingMetricSpecification" } }, - "MinAdjustmentMagnitude" : { - "description" : "The minimum value to scale by when the adjustment type is ``PercentChangeInCapacity``. For example, suppose that you create a step scaling policy to scale out an Amazon ECS service by 25 percent and you specify a ``MinAdjustmentMagnitude`` of 2. If the service has 4 tasks and the scaling policy is performed, 25 percent of 4 is 1. However, because you specified a ``MinAdjustmentMagnitude`` of 2, Application Auto Scaling scales out the service by 2 tasks.", + "SchedulingBufferTime" : { "type" : "integer" - }, - "AdjustmentType" : { - "description" : "Specifies whether the ``ScalingAdjustment`` value in the ``StepAdjustment`` property is an absolute number or a percentage of the current capacity.", - "type" : "string" } - } + }, + "required" : [ "MetricSpecifications" ] }, - "PredefinedMetricSpecification" : { - "description" : "Contains predefined metric specification information for a target tracking scaling policy for Application Auto Scaling.\n ``PredefinedMetricSpecification`` is a property of the [AWS::ApplicationAutoScaling::ScalingPolicy TargetTrackingScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingscalingpolicyconfiguration.html) property type.", + "PredictiveScalingPredefinedScalingMetric" : { + "description" : "", "additionalProperties" : false, "type" : "object", "properties" : { "PredefinedMetricType" : { - "description" : "The metric type. The ``ALBRequestCountPerTarget`` metric type applies only to Spot fleet requests and ECS services.", "type" : "string" }, "ResourceLabel" : { - "description" : "Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ``ALBRequestCountPerTarget`` and there is a target group attached to the Spot Fleet or ECS service.\n You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format of the resource label is:\n ``app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff``.\n Where:\n + app// is the final portion of the load balancer ARN\n + targetgroup// is the final portion of the target group ARN.\n \n To find the ARN for an Application Load Balancer, use the [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operation. To find the ARN for the target group, use the [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) API operation.", "type" : "string" } }, "required" : [ "PredefinedMetricType" ] }, - "MetricDimension" : { - "description" : "``MetricDimension`` specifies a name/value pair that is part of the identity of a CloudWatch metric for the ``Dimensions`` property of the [AWS::ApplicationAutoScaling::ScalingPolicy CustomizedMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html) property type. Duplicate dimensions are not allowed.", + "PredictiveScalingMetricSpecification" : { + "description" : "", "additionalProperties" : false, "type" : "object", "properties" : { - "Value" : { - "description" : "The value of the dimension.", + "CustomizedLoadMetricSpecification" : { + "$ref" : "#/definitions/PredictiveScalingCustomizedLoadMetric" + }, + "PredefinedLoadMetricSpecification" : { + "$ref" : "#/definitions/PredictiveScalingPredefinedLoadMetric" + }, + "TargetValue" : { + "type" : "number" + }, + "PredefinedScalingMetricSpecification" : { + "$ref" : "#/definitions/PredictiveScalingPredefinedScalingMetric" + }, + "CustomizedCapacityMetricSpecification" : { + "$ref" : "#/definitions/PredictiveScalingCustomizedCapacityMetric" + }, + "CustomizedScalingMetricSpecification" : { + "$ref" : "#/definitions/PredictiveScalingCustomizedScalingMetric" + }, + "PredefinedMetricPairSpecification" : { + "$ref" : "#/definitions/PredictiveScalingPredefinedMetricPair" + } + }, + "required" : [ "TargetValue" ] + }, + "PredictiveScalingMetric" : { + "description" : "", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "MetricName" : { + "description" : "The name of the metric.", "type" : "string" }, - "Name" : { - "description" : "The name of the dimension.", + "Dimensions" : { + "uniqueItems" : false, + "description" : "The dimensions for the metric.", + "insertionOrder" : false, + "type" : "array", + "items" : { + "$ref" : "#/definitions/PredictiveScalingMetricDimension" + } + }, + "Namespace" : { + "description" : "The namespace of the metric.", "type" : "string" } + } + }, + "PredictiveScalingCustomizedLoadMetric" : { + "description" : "", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "MetricDataQueries" : { + "uniqueItems" : true, + "insertionOrder" : false, + "type" : "array", + "items" : { + "$ref" : "#/definitions/PredictiveScalingMetricDataQuery" + } + } }, - "required" : [ "Value", "Name" ] + "required" : [ "MetricDataQueries" ] + }, + "TargetTrackingMetric" : { + "description" : "Represents a specific metric for a target tracking scaling policy for Application Auto Scaling.\n Metric is a property of the [AWS::ApplicationAutoScaling::ScalingPolicy TargetTrackingMetricStat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-targettrackingmetricstat.html) property type.", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "MetricName" : { + "description" : "The name of the metric.", + "type" : "string" + }, + "Dimensions" : { + "uniqueItems" : false, + "description" : "The dimensions for the metric. For the list of available dimensions, see the AWS documentation available from the table in [services that publish CloudWatch metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*. \n Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy.", + "insertionOrder" : false, + "type" : "array", + "items" : { + "$ref" : "#/definitions/TargetTrackingMetricDimension" + } + }, + "Namespace" : { + "description" : "The namespace of the metric. For more information, see the table in [services that publish CloudWatch metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) in the *Amazon CloudWatch User Guide*.", + "type" : "string" + } + } + }, + "PredictiveScalingMetricStat" : { + "description" : "", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "Stat" : { + "description" : "The statistic to return. It can include any CloudWatch statistic or extended statistic.", + "type" : "string" + }, + "Metric" : { + "description" : "The CloudWatch metric to return, including the metric name, namespace, and dimensions. ", + "$ref" : "#/definitions/PredictiveScalingMetric" + }, + "Unit" : { + "description" : "The unit to use for the returned data points.", + "type" : "string" + } + } + }, + "StepScalingPolicyConfiguration" : { + "description" : "``StepScalingPolicyConfiguration`` is a property of the [AWS::ApplicationAutoScaling::ScalingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html) resource that specifies a step scaling policy configuration for Application Auto Scaling. \n For more information, see [Step scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) in the *Application Auto Scaling User Guide*.", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "MetricAggregationType" : { + "description" : "The aggregation type for the CloudWatch metrics. Valid values are ``Minimum``, ``Maximum``, and ``Average``. If the aggregation type is null, the value is treated as ``Average``.", + "type" : "string" + }, + "Cooldown" : { + "description" : "The amount of time, in seconds, to wait for a previous scaling activity to take effect. If not specified, the default value is 300. For more information, see [Cooldown period](https://docs.aws.amazon.com/autoscaling/application/userguide/step-scaling-policy-overview.html#step-scaling-cooldown) in the *Application Auto Scaling User Guide*.", + "type" : "integer" + }, + "StepAdjustments" : { + "uniqueItems" : true, + "description" : "A set of adjustments that enable you to scale based on the size of the alarm breach.\n At least one step adjustment is required if you are adding a new step scaling policy configuration.", + "insertionOrder" : false, + "type" : "array", + "items" : { + "$ref" : "#/definitions/StepAdjustment" + } + }, + "MinAdjustmentMagnitude" : { + "description" : "The minimum value to scale by when the adjustment type is ``PercentChangeInCapacity``. For example, suppose that you create a step scaling policy to scale out an Amazon ECS service by 25 percent and you specify a ``MinAdjustmentMagnitude`` of 2. If the service has 4 tasks and the scaling policy is performed, 25 percent of 4 is 1. However, because you specified a ``MinAdjustmentMagnitude`` of 2, Application Auto Scaling scales out the service by 2 tasks.", + "type" : "integer" + }, + "AdjustmentType" : { + "description" : "Specifies whether the ``ScalingAdjustment`` value in the ``StepAdjustment`` property is an absolute number or a percentage of the current capacity.", + "type" : "string" + } + } } }, "properties" : { @@ -320,6 +552,10 @@ "StepScalingPolicyConfiguration" : { "description" : "A step scaling policy.", "$ref" : "#/definitions/StepScalingPolicyConfiguration" + }, + "PredictiveScalingPolicyConfiguration" : { + "description" : "", + "$ref" : "#/definitions/PredictiveScalingPolicyConfiguration" } } } \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-applicationsignals-servicelevelobjective.json b/aws-cloudformation-schema/aws-applicationsignals-servicelevelobjective.json index c89aadab8f..5b5c79888c 100644 --- a/aws-cloudformation-schema/aws-applicationsignals-servicelevelobjective.json +++ b/aws-cloudformation-schema/aws-applicationsignals-servicelevelobjective.json @@ -47,6 +47,9 @@ }, "Tags" : { "$ref" : "#/definitions/Tags" + }, + "BurnRateConfigurations" : { + "$ref" : "#/definitions/BurnRateConfigurations" } }, "required" : [ "Name" ], @@ -386,6 +389,31 @@ } }, "required" : [ "Key", "Value" ] + }, + "BurnRateConfigurations" : { + "description" : "Each object in this array defines the length of the look-back window used to calculate one burn rate metric for this SLO. The burn rate measures how fast the service is consuming the error budget, relative to the attainment goal of the SLO.", + "type" : "array", + "uniqueItems" : true, + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/BurnRateConfiguration" + }, + "minItems" : 0, + "maxItems" : 10 + }, + "BurnRateConfiguration" : { + "type" : "object", + "description" : "This object defines the length of the look-back window used to calculate one burn rate metric for this SLO. The burn rate measures how fast the service is consuming the error budget, relative to the attainment goal of the SLO. A burn rate of exactly 1 indicates that the SLO goal will be met exactly.\nFor example, if you specify 60 as the number of minutes in the look-back window, the burn rate is calculated as the following:\nburn rate = error rate over the look-back window / (1 - attainment goal percentage)", + "additionalProperties" : false, + "properties" : { + "LookBackWindowMinutes" : { + "description" : "The number of minutes to use as the look-back window.", + "type" : "integer", + "minimum" : 1, + "maximum" : 10080 + } + }, + "required" : [ "LookBackWindowMinutes" ] } }, "handlers" : { diff --git a/aws-cloudformation-schema/aws-autoscaling-autoscalinggroup.json b/aws-cloudformation-schema/aws-autoscaling-autoscalinggroup.json index 13c8b65148..344635435f 100644 --- a/aws-cloudformation-schema/aws-autoscaling-autoscalinggroup.json +++ b/aws-cloudformation-schema/aws-autoscaling-autoscalinggroup.json @@ -36,9 +36,230 @@ "timeoutInMinutes" : 240 } }, - "writeOnlyProperties" : [ "/properties/InstanceId" ], + "writeOnlyProperties" : [ "/properties/SkipZonalShiftValidation", "/properties/InstanceId" ], "additionalProperties" : false, "definitions" : { + "AvailabilityZoneImpairmentPolicy" : { + "description" : "", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "ZonalShiftEnabled" : { + "type" : "boolean" + }, + "ImpairedZoneHealthCheckBehavior" : { + "type" : "string", + "enum" : [ "IgnoreUnhealthy", "ReplaceUnhealthy" ] + } + }, + "required" : [ "ImpairedZoneHealthCheckBehavior", "ZonalShiftEnabled" ] + }, + "LifecycleHookSpecification" : { + "description" : "``LifecycleHookSpecification`` specifies a lifecycle hook for the ``LifecycleHookSpecificationList`` property of the [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) resource. A lifecycle hook specifies actions to perform when Amazon EC2 Auto Scaling launches or terminates instances. \n For more information, see [Amazon EC2 Auto Scaling lifecycle hooks](https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html) in the *Amazon EC2 Auto Scaling User Guide*. You can find a sample template snippet in the [Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-lifecyclehook.html#aws-resource-as-lifecyclehook--examples) section of the ``AWS::AutoScaling::LifecycleHook`` resource.", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "LifecycleHookName" : { + "description" : "The name of the lifecycle hook.", + "type" : "string" + }, + "LifecycleTransition" : { + "description" : "The lifecycle transition. For Auto Scaling groups, there are two major lifecycle transitions.\n + To create a lifecycle hook for scale-out events, specify ``autoscaling:EC2_INSTANCE_LAUNCHING``.\n + To create a lifecycle hook for scale-in events, specify ``autoscaling:EC2_INSTANCE_TERMINATING``.", + "type" : "string" + }, + "HeartbeatTimeout" : { + "description" : "The maximum time, in seconds, that can elapse before the lifecycle hook times out. The range is from ``30`` to ``7200`` seconds. The default value is ``3600`` seconds (1 hour).", + "type" : "integer" + }, + "NotificationMetadata" : { + "description" : "Additional information that you want to include any time Amazon EC2 Auto Scaling sends a message to the notification target.", + "type" : "string" + }, + "DefaultResult" : { + "description" : "The action the Auto Scaling group takes when the lifecycle hook timeout elapses or if an unexpected failure occurs. The default value is ``ABANDON``.\n Valid values: ``CONTINUE`` | ``ABANDON``", + "type" : "string" + }, + "NotificationTargetARN" : { + "description" : "The Amazon Resource Name (ARN) of the notification target that Amazon EC2 Auto Scaling sends notifications to when an instance is in a wait state for the lifecycle hook. You can specify an Amazon SNS topic or an Amazon SQS queue.", + "type" : "string" + }, + "RoleARN" : { + "description" : "The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target. For information about creating this role, see [Prepare to add a lifecycle hook to your Auto Scaling group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/prepare-for-lifecycle-notifications.html) in the *Amazon EC2 Auto Scaling User Guide*.\n Valid only if the notification target is an Amazon SNS topic or an Amazon SQS queue.", + "type" : "string" + } + }, + "required" : [ "LifecycleHookName", "LifecycleTransition" ] + }, + "MemoryGiBPerVCpuRequest" : { + "description" : "``MemoryGiBPerVCpuRequest`` is a property of the ``InstanceRequirements`` property of the [AWS::AutoScaling::AutoScalingGroup LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplateoverrides.html) property type that describes the minimum and maximum amount of memory per vCPU for an instance type, in GiB.", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "Min" : { + "description" : "The memory minimum in GiB.", + "type" : "number" + }, + "Max" : { + "description" : "The memory maximum in GiB.", + "type" : "number" + } + } + }, + "TotalLocalStorageGBRequest" : { + "description" : "``TotalLocalStorageGBRequest`` is a property of the ``InstanceRequirements`` property of the [AWS::AutoScaling::AutoScalingGroup LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplateoverrides.html) property type that describes the minimum and maximum total local storage size for an instance type, in GB.", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "Min" : { + "description" : "The storage minimum in GB.", + "type" : "number" + }, + "Max" : { + "description" : "The storage maximum in GB.", + "type" : "number" + } + } + }, + "NetworkBandwidthGbpsRequest" : { + "description" : "``NetworkBandwidthGbpsRequest`` is a property of the ``InstanceRequirements`` property of the [AWS::AutoScaling::AutoScalingGroup LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplateoverrides.html) property type that describes the minimum and maximum network bandwidth for an instance type, in Gbps.\n Setting the minimum bandwidth does not guarantee that your instance will achieve the minimum bandwidth. Amazon EC2 will identify instance types that support the specified minimum bandwidth, but the actual bandwidth of your instance might go below the specified minimum at times. For more information, see [Available instance bandwidth](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html#available-instance-bandwidth) in the *Amazon EC2 User Guide for Linux Instances*.", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "Min" : { + "description" : "The minimum amount of network bandwidth, in gigabits per second (Gbps).", + "type" : "number" + }, + "Max" : { + "description" : "The maximum amount of network bandwidth, in gigabits per second (Gbps).", + "type" : "number" + } + } + }, + "BaselineEbsBandwidthMbpsRequest" : { + "description" : "``BaselineEbsBandwidthMbpsRequest`` is a property of the ``InstanceRequirements`` property of the [AWS::AutoScaling::AutoScalingGroup LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplateoverrides.html) property type that describes the minimum and maximum baseline bandwidth performance for an instance type, in Mbps.", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "Min" : { + "description" : "The minimum value in Mbps.", + "type" : "integer" + }, + "Max" : { + "description" : "The maximum value in Mbps.", + "type" : "integer" + } + } + }, + "NetworkInterfaceCountRequest" : { + "description" : "``NetworkInterfaceCountRequest`` is a property of the ``InstanceRequirements`` property of the [AWS::AutoScaling::AutoScalingGroup LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplateoverrides.html) property type that describes the minimum and maximum number of network interfaces for an instance type.", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "Min" : { + "description" : "The minimum number of network interfaces.", + "type" : "integer" + }, + "Max" : { + "description" : "The maximum number of network interfaces.", + "type" : "integer" + } + } + }, + "VCpuCountRequest" : { + "description" : "``VCpuCountRequest`` is a property of the ``InstanceRequirements`` property of the [AWS::AutoScaling::AutoScalingGroup LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplateoverrides.html) property type that describes the minimum and maximum number of vCPUs for an instance type.", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "Min" : { + "description" : "The minimum number of vCPUs.", + "type" : "integer" + }, + "Max" : { + "description" : "The maximum number of vCPUs.", + "type" : "integer" + } + } + }, + "PerformanceFactorReferenceRequest" : { + "description" : "", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "InstanceFamily" : { + "type" : "string" + } + } + }, + "LaunchTemplate" : { + "description" : "Use this structure to specify the launch templates and instance types (overrides) for a mixed instances policy.\n ``LaunchTemplate`` is a property of the [AWS::AutoScaling::AutoScalingGroup MixedInstancesPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-mixedinstancespolicy.html) property type.", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "LaunchTemplateSpecification" : { + "description" : "The launch template.", + "$ref" : "#/definitions/LaunchTemplateSpecification" + }, + "Overrides" : { + "uniqueItems" : false, + "description" : "Any properties that you specify override the same properties in the launch template.", + "insertionOrder" : true, + "type" : "array", + "items" : { + "$ref" : "#/definitions/LaunchTemplateOverrides" + } + } + }, + "required" : [ "LaunchTemplateSpecification" ] + }, + "LaunchTemplateOverrides" : { + "description" : "Use this structure to let Amazon EC2 Auto Scaling do the following when the Auto Scaling group has a mixed instances policy:\n + Override the instance type that is specified in the launch template.\n + Use multiple instance types.\n \n Specify the instance types that you want, or define your instance requirements instead and let Amazon EC2 Auto Scaling provision the available instance types that meet your requirements. This can provide Amazon EC2 Auto Scaling with a larger selection of instance types to choose from when fulfilling Spot and On-Demand capacities. You can view which instance types are matched before you apply the instance requirements to your Auto Scaling group.\n After you define your instance requirements, you don't have to keep updating these settings to get new EC2 instance types automatically. Amazon EC2 Auto Scaling uses the instance requirements of the Auto Scaling group to determine whether a new EC2 instance type can be used.\n ``LaunchTemplateOverrides`` is a property of the [AWS::AutoScaling::AutoScalingGroup LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplate.html) property type.", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "LaunchTemplateSpecification" : { + "description" : "Provides a launch template for the specified instance type or set of instance requirements. For example, some instance types might require a launch template with a different AMI. If not provided, Amazon EC2 Auto Scaling uses the launch template that's specified in the ``LaunchTemplate`` definition. For more information, see [Specifying a different launch template for an instance type](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups-launch-template-overrides.html) in the *Amazon EC2 Auto Scaling User Guide*. \n You can specify up to 20 launch templates per Auto Scaling group. The launch templates specified in the overrides and in the ``LaunchTemplate`` definition count towards this limit.", + "$ref" : "#/definitions/LaunchTemplateSpecification" + }, + "WeightedCapacity" : { + "description" : "If you provide a list of instance types to use, you can specify the number of capacity units provided by each instance type in terms of virtual CPUs, memory, storage, throughput, or other relative performance characteristic. When a Spot or On-Demand Instance is launched, the capacity units count toward the desired capacity. Amazon EC2 Auto Scaling launches instances until the desired capacity is totally fulfilled, even if this results in an overage. For example, if there are two units remaining to fulfill capacity, and Amazon EC2 Auto Scaling can only launch an instance with a ``WeightedCapacity`` of five units, the instance is launched, and the desired capacity is exceeded by three units. For more information, see [Configure instance weighting for Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups-instance-weighting.html) in the *Amazon EC2 Auto Scaling User Guide*. Value must be in the range of 1-999. \n If you specify a value for ``WeightedCapacity`` for one instance type, you must specify a value for ``WeightedCapacity`` for all of them.\n Every Auto Scaling group has three size parameters (``DesiredCapacity``, ``MaxSize``, and ``MinSize``). Usually, you set these sizes based on a specific number of instances. However, if you configure a mixed instances policy that defines weights for the instance types, you must specify these sizes with the same units that you use for weighting instances.", + "type" : "string" + }, + "InstanceRequirements" : { + "description" : "The instance requirements. Amazon EC2 Auto Scaling uses your specified requirements to identify instance types. Then, it uses your On-Demand and Spot allocation strategies to launch instances from these instance types.\n You can specify up to four separate sets of instance requirements per Auto Scaling group. This is useful for provisioning instances from different Amazon Machine Images (AMIs) in the same Auto Scaling group. To do this, create the AMIs and create a new launch template for each AMI. Then, create a compatible set of instance requirements for each launch template. \n If you specify ``InstanceRequirements``, you can't specify ``InstanceType``.", + "$ref" : "#/definitions/InstanceRequirements" + }, + "InstanceType" : { + "description" : "The instance type, such as ``m3.xlarge``. You must specify an instance type that is supported in your requested Region and Availability Zones. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide for Linux Instances*.\n You can specify up to 40 instance types per Auto Scaling group.", + "type" : "string" + } + } + }, + "CpuPerformanceFactorRequest" : { + "description" : "", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "References" : { + "$ref" : "#/definitions/PerformanceFactorReferenceSetRequest" + } + } + }, + "MixedInstancesPolicy" : { + "description" : "Use this structure to launch multiple instance types and On-Demand Instances and Spot Instances within a single Auto Scaling group.\n A mixed instances policy contains information that Amazon EC2 Auto Scaling can use to launch instances and help optimize your costs. For more information, see [Auto Scaling groups with multiple instance types and purchase options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups.html) in the *Amazon EC2 Auto Scaling User Guide*.\n You can create a mixed instances policy for new and existing Auto Scaling groups. You must use a launch template to configure the policy. You cannot use a launch configuration.\n There are key differences between Spot Instances and On-Demand Instances:\n + The price for Spot Instances varies based on demand\n + Amazon EC2 can terminate an individual Spot Instance as the availability of, or price for, Spot Instances changes\n \n When a Spot Instance is terminated, Amazon EC2 Auto Scaling group attempts to launch a replacement instance to maintain the desired capacity for the group. \n ``MixedInstancesPolicy`` is a property of the [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) resource.", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "InstancesDistribution" : { + "description" : "The instances distribution.", + "$ref" : "#/definitions/InstancesDistribution" + }, + "LaunchTemplate" : { + "description" : "One or more launch templates and the instance types (overrides) that are used to launch EC2 instances to fulfill On-Demand and Spot capacities.", + "$ref" : "#/definitions/LaunchTemplate" + } + }, + "required" : [ "LaunchTemplate" ] + }, "TagProperty" : { "description" : "A structure that specifies a tag for the ``Tags`` property of [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) resource.\n For more information, see [Tag Auto Scaling groups and instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html) in the *Amazon EC2 Auto Scaling User Guide*. You can find a sample template snippet in the [Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html#aws-resource-autoscaling-autoscalinggroup--examples) section of the ``AWS::AutoScaling::AutoScalingGroup`` resource.\n CloudFormation adds the following tags to all Auto Scaling groups and associated instances: \n + aws:cloudformation:stack-name\n + aws:cloudformation:stack-id\n + aws:cloudformation:logical-id", "additionalProperties" : false, @@ -125,57 +346,6 @@ } } }, - "LifecycleHookSpecification" : { - "description" : "``LifecycleHookSpecification`` specifies a lifecycle hook for the ``LifecycleHookSpecificationList`` property of the [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) resource. A lifecycle hook specifies actions to perform when Amazon EC2 Auto Scaling launches or terminates instances. \n For more information, see [Amazon EC2 Auto Scaling lifecycle hooks](https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html) in the *Amazon EC2 Auto Scaling User Guide*. You can find a sample template snippet in the [Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-as-lifecyclehook.html#aws-resource-as-lifecyclehook--examples) section of the ``AWS::AutoScaling::LifecycleHook`` resource.", - "additionalProperties" : false, - "type" : "object", - "properties" : { - "LifecycleHookName" : { - "description" : "The name of the lifecycle hook.", - "type" : "string" - }, - "LifecycleTransition" : { - "description" : "The lifecycle transition. For Auto Scaling groups, there are two major lifecycle transitions.\n + To create a lifecycle hook for scale-out events, specify ``autoscaling:EC2_INSTANCE_LAUNCHING``.\n + To create a lifecycle hook for scale-in events, specify ``autoscaling:EC2_INSTANCE_TERMINATING``.", - "type" : "string" - }, - "HeartbeatTimeout" : { - "description" : "The maximum time, in seconds, that can elapse before the lifecycle hook times out. The range is from ``30`` to ``7200`` seconds. The default value is ``3600`` seconds (1 hour).", - "type" : "integer" - }, - "NotificationMetadata" : { - "description" : "Additional information that you want to include any time Amazon EC2 Auto Scaling sends a message to the notification target.", - "type" : "string" - }, - "DefaultResult" : { - "description" : "The action the Auto Scaling group takes when the lifecycle hook timeout elapses or if an unexpected failure occurs. The default value is ``ABANDON``.\n Valid values: ``CONTINUE`` | ``ABANDON``", - "type" : "string" - }, - "NotificationTargetARN" : { - "description" : "The Amazon Resource Name (ARN) of the notification target that Amazon EC2 Auto Scaling sends notifications to when an instance is in a wait state for the lifecycle hook. You can specify an Amazon SNS topic or an Amazon SQS queue.", - "type" : "string" - }, - "RoleARN" : { - "description" : "The ARN of the IAM role that allows the Auto Scaling group to publish to the specified notification target. For information about creating this role, see [Prepare to add a lifecycle hook to your Auto Scaling group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/prepare-for-lifecycle-notifications.html) in the *Amazon EC2 Auto Scaling User Guide*.\n Valid only if the notification target is an Amazon SNS topic or an Amazon SQS queue.", - "type" : "string" - } - }, - "required" : [ "LifecycleHookName", "LifecycleTransition" ] - }, - "MemoryGiBPerVCpuRequest" : { - "description" : "``MemoryGiBPerVCpuRequest`` is a property of the ``InstanceRequirements`` property of the [AWS::AutoScaling::AutoScalingGroup LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplateoverrides.html) property type that describes the minimum and maximum amount of memory per vCPU for an instance type, in GiB.", - "additionalProperties" : false, - "type" : "object", - "properties" : { - "Min" : { - "description" : "The memory minimum in GiB.", - "type" : "number" - }, - "Max" : { - "description" : "The memory maximum in GiB.", - "type" : "number" - } - } - }, "AvailabilityZoneDistribution" : { "description" : "", "additionalProperties" : false, @@ -232,21 +402,6 @@ }, "required" : [ "Granularity" ] }, - "TotalLocalStorageGBRequest" : { - "description" : "``TotalLocalStorageGBRequest`` is a property of the ``InstanceRequirements`` property of the [AWS::AutoScaling::AutoScalingGroup LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplateoverrides.html) property type that describes the minimum and maximum total local storage size for an instance type, in GB.", - "additionalProperties" : false, - "type" : "object", - "properties" : { - "Min" : { - "description" : "The storage minimum in GB.", - "type" : "number" - }, - "Max" : { - "description" : "The storage maximum in GB.", - "type" : "number" - } - } - }, "MemoryMiBRequest" : { "description" : "``MemoryMiBRequest`` is a property of the ``InstanceRequirements`` property of the [AWS::AutoScaling::AutoScalingGroup LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplateoverrides.html) property type that describes the minimum and maximum instance memory size for an instance type, in MiB.", "additionalProperties" : false, @@ -281,108 +436,22 @@ "MinHealthyPercentage" : [ "MaxHealthyPercentage" ] } }, - "NetworkBandwidthGbpsRequest" : { - "description" : "``NetworkBandwidthGbpsRequest`` is a property of the ``InstanceRequirements`` property of the [AWS::AutoScaling::AutoScalingGroup LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplateoverrides.html) property type that describes the minimum and maximum network bandwidth for an instance type, in Gbps.\n Setting the minimum bandwidth does not guarantee that your instance will achieve the minimum bandwidth. Amazon EC2 will identify instance types that support the specified minimum bandwidth, but the actual bandwidth of your instance might go below the specified minimum at times. For more information, see [Available instance bandwidth](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html#available-instance-bandwidth) in the *Amazon EC2 User Guide for Linux Instances*.", - "additionalProperties" : false, - "type" : "object", - "properties" : { - "Min" : { - "description" : "The minimum amount of network bandwidth, in gigabits per second (Gbps).", - "type" : "number" - }, - "Max" : { - "description" : "The maximum amount of network bandwidth, in gigabits per second (Gbps).", - "type" : "number" - } - } - }, - "BaselineEbsBandwidthMbpsRequest" : { - "description" : "``BaselineEbsBandwidthMbpsRequest`` is a property of the ``InstanceRequirements`` property of the [AWS::AutoScaling::AutoScalingGroup LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplateoverrides.html) property type that describes the minimum and maximum baseline bandwidth performance for an instance type, in Mbps.", - "additionalProperties" : false, - "type" : "object", - "properties" : { - "Min" : { - "description" : "The minimum value in Mbps.", - "type" : "integer" - }, - "Max" : { - "description" : "The maximum value in Mbps.", - "type" : "integer" - } - } - }, - "NetworkInterfaceCountRequest" : { - "description" : "``NetworkInterfaceCountRequest`` is a property of the ``InstanceRequirements`` property of the [AWS::AutoScaling::AutoScalingGroup LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplateoverrides.html) property type that describes the minimum and maximum number of network interfaces for an instance type.", - "additionalProperties" : false, - "type" : "object", - "properties" : { - "Min" : { - "description" : "The minimum number of network interfaces.", - "type" : "integer" - }, - "Max" : { - "description" : "The maximum number of network interfaces.", - "type" : "integer" - } - } - }, - "VCpuCountRequest" : { - "description" : "``VCpuCountRequest`` is a property of the ``InstanceRequirements`` property of the [AWS::AutoScaling::AutoScalingGroup LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplateoverrides.html) property type that describes the minimum and maximum number of vCPUs for an instance type.", + "BaselinePerformanceFactorsRequest" : { + "description" : "", "additionalProperties" : false, "type" : "object", "properties" : { - "Min" : { - "description" : "The minimum number of vCPUs.", - "type" : "integer" - }, - "Max" : { - "description" : "The maximum number of vCPUs.", - "type" : "integer" + "Cpu" : { + "$ref" : "#/definitions/CpuPerformanceFactorRequest" } } }, - "LaunchTemplate" : { - "description" : "Use this structure to specify the launch templates and instance types (overrides) for a mixed instances policy.\n ``LaunchTemplate`` is a property of the [AWS::AutoScaling::AutoScalingGroup MixedInstancesPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-mixedinstancespolicy.html) property type.", - "additionalProperties" : false, - "type" : "object", - "properties" : { - "LaunchTemplateSpecification" : { - "description" : "The launch template.", - "$ref" : "#/definitions/LaunchTemplateSpecification" - }, - "Overrides" : { - "uniqueItems" : false, - "description" : "Any properties that you specify override the same properties in the launch template.", - "insertionOrder" : true, - "type" : "array", - "items" : { - "$ref" : "#/definitions/LaunchTemplateOverrides" - } - } - }, - "required" : [ "LaunchTemplateSpecification" ] - }, - "LaunchTemplateOverrides" : { - "description" : "Use this structure to let Amazon EC2 Auto Scaling do the following when the Auto Scaling group has a mixed instances policy:\n + Override the instance type that is specified in the launch template.\n + Use multiple instance types.\n \n Specify the instance types that you want, or define your instance requirements instead and let Amazon EC2 Auto Scaling provision the available instance types that meet your requirements. This can provide Amazon EC2 Auto Scaling with a larger selection of instance types to choose from when fulfilling Spot and On-Demand capacities. You can view which instance types are matched before you apply the instance requirements to your Auto Scaling group.\n After you define your instance requirements, you don't have to keep updating these settings to get new EC2 instance types automatically. Amazon EC2 Auto Scaling uses the instance requirements of the Auto Scaling group to determine whether a new EC2 instance type can be used.\n ``LaunchTemplateOverrides`` is a property of the [AWS::AutoScaling::AutoScalingGroup LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplate.html) property type.", - "additionalProperties" : false, - "type" : "object", - "properties" : { - "LaunchTemplateSpecification" : { - "description" : "Provides a launch template for the specified instance type or set of instance requirements. For example, some instance types might require a launch template with a different AMI. If not provided, Amazon EC2 Auto Scaling uses the launch template that's specified in the ``LaunchTemplate`` definition. For more information, see [Specifying a different launch template for an instance type](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups-launch-template-overrides.html) in the *Amazon EC2 Auto Scaling User Guide*. \n You can specify up to 20 launch templates per Auto Scaling group. The launch templates specified in the overrides and in the ``LaunchTemplate`` definition count towards this limit.", - "$ref" : "#/definitions/LaunchTemplateSpecification" - }, - "WeightedCapacity" : { - "description" : "If you provide a list of instance types to use, you can specify the number of capacity units provided by each instance type in terms of virtual CPUs, memory, storage, throughput, or other relative performance characteristic. When a Spot or On-Demand Instance is launched, the capacity units count toward the desired capacity. Amazon EC2 Auto Scaling launches instances until the desired capacity is totally fulfilled, even if this results in an overage. For example, if there are two units remaining to fulfill capacity, and Amazon EC2 Auto Scaling can only launch an instance with a ``WeightedCapacity`` of five units, the instance is launched, and the desired capacity is exceeded by three units. For more information, see [Configure instance weighting for Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups-instance-weighting.html) in the *Amazon EC2 Auto Scaling User Guide*. Value must be in the range of 1-999. \n If you specify a value for ``WeightedCapacity`` for one instance type, you must specify a value for ``WeightedCapacity`` for all of them.\n Every Auto Scaling group has three size parameters (``DesiredCapacity``, ``MaxSize``, and ``MinSize``). Usually, you set these sizes based on a specific number of instances. However, if you configure a mixed instances policy that defines weights for the instance types, you must specify these sizes with the same units that you use for weighting instances.", - "type" : "string" - }, - "InstanceRequirements" : { - "description" : "The instance requirements. Amazon EC2 Auto Scaling uses your specified requirements to identify instance types. Then, it uses your On-Demand and Spot allocation strategies to launch instances from these instance types.\n You can specify up to four separate sets of instance requirements per Auto Scaling group. This is useful for provisioning instances from different Amazon Machine Images (AMIs) in the same Auto Scaling group. To do this, create the AMIs and create a new launch template for each AMI. Then, create a compatible set of instance requirements for each launch template. \n If you specify ``InstanceRequirements``, you can't specify ``InstanceType``.", - "$ref" : "#/definitions/InstanceRequirements" - }, - "InstanceType" : { - "description" : "The instance type, such as ``m3.xlarge``. You must specify an instance type that is supported in your requested Region and Availability Zones. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide for Linux Instances*.\n You can specify up to 40 instance types per Auto Scaling group.", - "type" : "string" - } + "PerformanceFactorReferenceSetRequest" : { + "uniqueItems" : true, + "insertionOrder" : true, + "type" : "array", + "items" : { + "$ref" : "#/definitions/PerformanceFactorReferenceRequest" } }, "AcceleratorTotalMemoryMiBRequest" : { @@ -416,36 +485,11 @@ }, "required" : [ "Identifier", "Type" ] }, - "MixedInstancesPolicy" : { - "description" : "Use this structure to launch multiple instance types and On-Demand Instances and Spot Instances within a single Auto Scaling group.\n A mixed instances policy contains information that Amazon EC2 Auto Scaling can use to launch instances and help optimize your costs. For more information, see [Auto Scaling groups with multiple instance types and purchase options](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups.html) in the *Amazon EC2 Auto Scaling User Guide*.\n You can create a mixed instances policy for new and existing Auto Scaling groups. You must use a launch template to configure the policy. You cannot use a launch configuration.\n There are key differences between Spot Instances and On-Demand Instances:\n + The price for Spot Instances varies based on demand\n + Amazon EC2 can terminate an individual Spot Instance as the availability of, or price for, Spot Instances changes\n \n When a Spot Instance is terminated, Amazon EC2 Auto Scaling group attempts to launch a replacement instance to maintain the desired capacity for the group. \n ``MixedInstancesPolicy`` is a property of the [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) resource.", - "additionalProperties" : false, - "type" : "object", - "properties" : { - "InstancesDistribution" : { - "description" : "The instances distribution.", - "$ref" : "#/definitions/InstancesDistribution" - }, - "LaunchTemplate" : { - "description" : "One or more launch templates and the instance types (overrides) that are used to launch EC2 instances to fulfill On-Demand and Spot capacities.", - "$ref" : "#/definitions/LaunchTemplate" - } - }, - "required" : [ "LaunchTemplate" ] - }, "InstanceRequirements" : { "description" : "The attributes for the instance types for a mixed instances policy. Amazon EC2 Auto Scaling uses your specified requirements to identify instance types. Then, it uses your On-Demand and Spot allocation strategies to launch instances from these instance types.\n When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values.\n To limit the list of instance types from which Amazon EC2 Auto Scaling can identify matching instance types, you can use one of the following parameters, but not both in the same request:\n + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.\n + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.\n \n You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.\n For an example template, see [Configure Amazon EC2 Auto Scaling resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-ec2-auto-scaling.html).\n For more information, see [Creating an Auto Scaling group using attribute-based instance type selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html) in the *Amazon EC2 Auto Scaling User Guide*. For help determining which instance types match your attributes before you apply them to your Auto Scaling group, see [Preview instance types with specified attributes](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html#ec2fleet-get-instance-types-from-instance-requirements) in the *Amazon EC2 User Guide for Linux Instances*.\n ``InstanceRequirements`` is a property of the ``LaunchTemplateOverrides`` property of the [AWS::AutoScaling::AutoScalingGroup LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplate.html) property type.", "additionalProperties" : false, "type" : "object", "properties" : { - "LocalStorageTypes" : { - "uniqueItems" : true, - "description" : "Indicates the type of local storage that is required.\n + For instance types with hard disk drive (HDD) storage, specify ``hdd``.\n + For instance types with solid state drive (SSD) storage, specify ``ssd``.\n \n Default: Any local storage type", - "insertionOrder" : false, - "type" : "array", - "items" : { - "type" : "string" - } - }, "InstanceGenerations" : { "uniqueItems" : true, "description" : "Indicates whether current or previous generation instance types are included.\n + For current generation instance types, specify ``current``. The current generation includes EC2 instance types currently recommended for use. This typically includes the latest two to three generations in each instance family. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide for Linux Instances*.\n + For previous generation instance types, specify ``previous``.\n \n Default: Any current or previous generation", @@ -455,10 +499,6 @@ "type" : "string" } }, - "NetworkInterfaceCount" : { - "description" : "The minimum and maximum number of network interfaces for an instance type.\n Default: No minimum or maximum limits", - "$ref" : "#/definitions/NetworkInterfaceCountRequest" - }, "AcceleratorTypes" : { "uniqueItems" : true, "description" : "Lists the accelerator types that must be on an instance type.\n + For instance types with GPU accelerators, specify ``gpu``.\n + For instance types with FPGA accelerators, specify ``fpga``.\n + For instance types with inference accelerators, specify ``inference``.\n \n Default: Any accelerator type", @@ -481,28 +521,10 @@ "type" : "string" } }, - "ExcludedInstanceTypes" : { - "uniqueItems" : true, - "description" : "The instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (``*``), to exclude an instance family, type, size, or generation. The following are examples: ``m5.8xlarge``, ``c5*.*``, ``m5a.*``, ``r*``, ``*3*``. \n For example, if you specify ``c5*``, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify ``m5a.*``, Amazon EC2 Auto Scaling will exclude all the M5a instance types, but not the M5n instance types.\n If you specify ``ExcludedInstanceTypes``, you can't specify ``AllowedInstanceTypes``.\n Default: No excluded instance types", - "insertionOrder" : true, - "type" : "array", - "items" : { - "type" : "string" - } - }, "VCpuCount" : { "description" : "The minimum and maximum number of vCPUs for an instance type.", "$ref" : "#/definitions/VCpuCountRequest" }, - "AllowedInstanceTypes" : { - "uniqueItems" : true, - "description" : "The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes.\n You can use strings with one or more wild cards, represented by an asterisk (``*``), to allow an instance type, size, or generation. The following are examples: ``m5.8xlarge``, ``c5*.*``, ``m5a.*``, ``r*``, ``*3*``.\n For example, if you specify ``c5*``, Amazon EC2 Auto Scaling will allow the entire C5 instance family, which includes all C5a and C5n instance types. If you specify ``m5a.*``, Amazon EC2 Auto Scaling will allow all the M5a instance types, but not the M5n instance types.\n If you specify ``AllowedInstanceTypes``, you can't specify ``ExcludedInstanceTypes``.\n Default: All instance types", - "insertionOrder" : true, - "type" : "array", - "items" : { - "type" : "string" - } - }, "LocalStorage" : { "description" : "Indicates whether instance types with instance store volumes are included, excluded, or required. For more information, see [Amazon EC2 instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) in the *Amazon EC2 User Guide for Linux Instances*.\n Default: ``included``", "type" : "string" @@ -516,14 +538,6 @@ "type" : "string" } }, - "AcceleratorCount" : { - "description" : "The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) for an instance type.\n To exclude accelerator-enabled instance types, set ``Max`` to ``0``.\n Default: No minimum or maximum limits", - "$ref" : "#/definitions/AcceleratorCountRequest" - }, - "NetworkBandwidthGbps" : { - "description" : "The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps).\n Default: No minimum or maximum limits", - "$ref" : "#/definitions/NetworkBandwidthGbpsRequest" - }, "BareMetal" : { "description" : "Indicates whether bare metal instance types are included, excluded, or required.\n Default: ``excluded``", "type" : "string" @@ -536,6 +550,57 @@ "description" : "[Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from either the lowest priced current generation instance types or, failing that, the lowest priced previous generation instance types that match your attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage.\n If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per-vCPU or per-memory price instead of the per instance price. \n Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 Auto Scaling will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``.", "type" : "integer" }, + "OnDemandMaxPricePercentageOverLowestPrice" : { + "description" : "[Price protection] The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from either the lowest priced current generation instance types or, failing that, the lowest priced previous generation instance types that match your attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price exceeds your specified threshold. \n The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage.\n To turn off price protection, specify a high value, such as ``999999``. \n If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per instance price. \n Default: ``20``", + "type" : "integer" + }, + "MemoryMiB" : { + "description" : "The minimum and maximum instance memory size for an instance type, in MiB.", + "$ref" : "#/definitions/MemoryMiBRequest" + }, + "LocalStorageTypes" : { + "uniqueItems" : true, + "description" : "Indicates the type of local storage that is required.\n + For instance types with hard disk drive (HDD) storage, specify ``hdd``.\n + For instance types with solid state drive (SSD) storage, specify ``ssd``.\n \n Default: Any local storage type", + "insertionOrder" : false, + "type" : "array", + "items" : { + "type" : "string" + } + }, + "NetworkInterfaceCount" : { + "description" : "The minimum and maximum number of network interfaces for an instance type.\n Default: No minimum or maximum limits", + "$ref" : "#/definitions/NetworkInterfaceCountRequest" + }, + "ExcludedInstanceTypes" : { + "uniqueItems" : true, + "description" : "The instance types to exclude. You can use strings with one or more wild cards, represented by an asterisk (``*``), to exclude an instance family, type, size, or generation. The following are examples: ``m5.8xlarge``, ``c5*.*``, ``m5a.*``, ``r*``, ``*3*``. \n For example, if you specify ``c5*``, you are excluding the entire C5 instance family, which includes all C5a and C5n instance types. If you specify ``m5a.*``, Amazon EC2 Auto Scaling will exclude all the M5a instance types, but not the M5n instance types.\n If you specify ``ExcludedInstanceTypes``, you can't specify ``AllowedInstanceTypes``.\n Default: No excluded instance types", + "insertionOrder" : true, + "type" : "array", + "items" : { + "type" : "string" + } + }, + "AllowedInstanceTypes" : { + "uniqueItems" : true, + "description" : "The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes.\n You can use strings with one or more wild cards, represented by an asterisk (``*``), to allow an instance type, size, or generation. The following are examples: ``m5.8xlarge``, ``c5*.*``, ``m5a.*``, ``r*``, ``*3*``.\n For example, if you specify ``c5*``, Amazon EC2 Auto Scaling will allow the entire C5 instance family, which includes all C5a and C5n instance types. If you specify ``m5a.*``, Amazon EC2 Auto Scaling will allow all the M5a instance types, but not the M5n instance types.\n If you specify ``AllowedInstanceTypes``, you can't specify ``ExcludedInstanceTypes``.\n Default: All instance types", + "insertionOrder" : true, + "type" : "array", + "items" : { + "type" : "string" + } + }, + "AcceleratorCount" : { + "description" : "The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) for an instance type.\n To exclude accelerator-enabled instance types, set ``Max`` to ``0``.\n Default: No minimum or maximum limits", + "$ref" : "#/definitions/AcceleratorCountRequest" + }, + "NetworkBandwidthGbps" : { + "description" : "The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps).\n Default: No minimum or maximum limits", + "$ref" : "#/definitions/NetworkBandwidthGbpsRequest" + }, + "BaselinePerformanceFactors" : { + "description" : "", + "$ref" : "#/definitions/BaselinePerformanceFactorsRequest" + }, "BaselineEbsBandwidthMbps" : { "description" : "The minimum and maximum baseline bandwidth performance for an instance type, in Mbps. For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide for Linux Instances*.\n Default: No minimum or maximum limits", "$ref" : "#/definitions/BaselineEbsBandwidthMbpsRequest" @@ -557,18 +622,10 @@ "description" : "The minimum and maximum total memory size for the accelerators on an instance type, in MiB.\n Default: No minimum or maximum limits", "$ref" : "#/definitions/AcceleratorTotalMemoryMiBRequest" }, - "OnDemandMaxPricePercentageOverLowestPrice" : { - "description" : "[Price protection] The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from either the lowest priced current generation instance types or, failing that, the lowest priced previous generation instance types that match your attributes. When Amazon EC2 Auto Scaling selects instance types with your attributes, we will exclude instance types whose price exceeds your specified threshold. \n The parameter accepts an integer, which Amazon EC2 Auto Scaling interprets as a percentage.\n To turn off price protection, specify a high value, such as ``999999``. \n If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per instance price. \n Default: ``20``", - "type" : "integer" - }, "BurstablePerformance" : { "description" : "Indicates whether burstable performance instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide for Linux Instances*.\n Default: ``excluded``", "type" : "string" }, - "MemoryMiB" : { - "description" : "The minimum and maximum instance memory size for an instance type, in MiB.", - "$ref" : "#/definitions/MemoryMiBRequest" - }, "TotalLocalStorageGB" : { "description" : "The minimum and maximum total local storage size for an instance type, in GB.\n Default: No minimum or maximum limits", "$ref" : "#/definitions/TotalLocalStorageGBRequest" @@ -604,6 +661,10 @@ "description" : "The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other AWS service on your behalf. By default, Amazon EC2 Auto Scaling uses a service-linked role named ``AWSServiceRoleForAutoScaling``, which it creates if it does not exist. For more information, see [Service-linked roles](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html) in the *Amazon EC2 Auto Scaling User Guide*.", "type" : "string" }, + "AvailabilityZoneImpairmentPolicy" : { + "description" : "", + "$ref" : "#/definitions/AvailabilityZoneImpairmentPolicy" + }, "TargetGroupARNs" : { "uniqueItems" : false, "description" : "The Amazon Resource Names (ARN) of the Elastic Load Balancing target groups to associate with the Auto Scaling group. Instances are registered as targets with the target groups. The target groups receive incoming traffic and route requests to one or more registered targets. For more information, see [Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html) in the *Amazon EC2 Auto Scaling User Guide*.", @@ -639,6 +700,10 @@ "description" : "The amount of time, in seconds, until a new instance is considered to have finished initializing and resource consumption to become stable after it enters the ``InService`` state. \n During an instance refresh, Amazon EC2 Auto Scaling waits for the warm-up period after it replaces an instance before it moves on to replacing the next instance. Amazon EC2 Auto Scaling also waits for the warm-up period before aggregating the metrics for new instances with existing instances in the Amazon CloudWatch metrics that are used for scaling, resulting in more reliable usage data. For more information, see [Set the default instance warmup for an Auto Scaling group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-default-instance-warmup.html) in the *Amazon EC2 Auto Scaling User Guide*.\n To manage various warm-up settings at the group level, we recommend that you set the default instance warmup, *even if it is set to 0 seconds*. To remove a value that you previously set, include the property but specify ``-1`` for the value. However, we strongly recommend keeping the default instance warmup enabled by specifying a value of ``0`` or other nominal value.\n Default: None", "type" : "integer" }, + "SkipZonalShiftValidation" : { + "description" : "", + "type" : "boolean" + }, "NewInstancesProtectedFromScaleIn" : { "description" : "Indicates whether newly launched instances are protected from termination by Amazon EC2 Auto Scaling when scaling in. For more information about preventing instances from terminating on scale in, see [Use instance scale-in protection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-protection.html) in the *Amazon EC2 Auto Scaling User Guide*.", "type" : "boolean" diff --git a/aws-cloudformation-schema/aws-cloudformation-publictypeversion.json b/aws-cloudformation-schema/aws-cloudformation-publictypeversion.json index 9dbcbc6fae..24dce2c64d 100644 --- a/aws-cloudformation-schema/aws-cloudformation-publictypeversion.json +++ b/aws-cloudformation-schema/aws-cloudformation-publictypeversion.json @@ -21,7 +21,7 @@ }, "PublisherId" : { "description" : "The publisher id assigned by CloudFormation for publishing in this region.", - "pattern" : "[0-9a-zA-Z]{40}", + "pattern" : "[0-9a-zA-Z-]{40}", "type" : "string", "minLength" : 1, "maxLength" : 40 diff --git a/aws-cloudformation-schema/aws-cloudformation-publisher.json b/aws-cloudformation-schema/aws-cloudformation-publisher.json index 259e12c4d9..d71597f5c0 100644 --- a/aws-cloudformation-schema/aws-cloudformation-publisher.json +++ b/aws-cloudformation-schema/aws-cloudformation-publisher.json @@ -9,7 +9,7 @@ }, "PublisherId" : { "description" : "The publisher id assigned by CloudFormation for publishing in this region.", - "pattern" : "[0-9a-zA-Z]{40}", + "pattern" : "[0-9a-zA-Z-]{40}", "type" : "string", "minLength" : 1, "maxLength" : 40 @@ -39,7 +39,6 @@ "required" : [ "AcceptTermsAndConditions" ], "readOnlyProperties" : [ "/properties/PublisherId", "/properties/PublisherStatus", "/properties/PublisherProfile", "/properties/IdentityProvider" ], "createOnlyProperties" : [ "/properties/AcceptTermsAndConditions", "/properties/ConnectionArn" ], - "writeOnlyProperties" : [ "/properties/ConnectionArn" ], "primaryIdentifier" : [ "/properties/PublisherId" ], "handlers" : { "create" : { diff --git a/aws-cloudformation-schema/aws-cloudformation-typeactivation.json b/aws-cloudformation-schema/aws-cloudformation-typeactivation.json index 7f062a3649..caaa816051 100644 --- a/aws-cloudformation-schema/aws-cloudformation-typeactivation.json +++ b/aws-cloudformation-schema/aws-cloudformation-typeactivation.json @@ -35,7 +35,7 @@ }, "PublisherId" : { "description" : "The publisher id assigned by CloudFormation for publishing in this region.", - "pattern" : "[0-9a-zA-Z]{40}", + "pattern" : "[0-9a-zA-Z-]{40}", "type" : "string", "minLength" : 1, "maxLength" : 40 @@ -89,8 +89,7 @@ "required" : [ "PublicTypeArn" ] } ], "readOnlyProperties" : [ "/properties/Arn" ], - "createOnlyProperties" : [ "/properties/LoggingConfig" ], - "writeOnlyProperties" : [ "/properties/ExecutionRoleArn", "/properties/Type", "/properties/LoggingConfig", "/properties/VersionBump", "/properties/AutoUpdate", "/properties/MajorVersion" ], + "createOnlyProperties" : [ "/properties/ExecutionRoleArn", "/properties/LoggingConfig", "/properties/TypeNameAlias", "/properties/TypeName", "/properties/Type", "/properties/PublisherId", "/properties/PublicTypeArn" ], "primaryIdentifier" : [ "/properties/Arn" ], "handlers" : { "create" : { diff --git a/aws-cloudformation-schema/aws-cloudtrail-trail.json b/aws-cloudformation-schema/aws-cloudtrail-trail.json index bfc7e7437b..52f6d53577 100644 --- a/aws-cloudformation-schema/aws-cloudtrail-trail.json +++ b/aws-cloudformation-schema/aws-cloudtrail-trail.json @@ -1,22 +1,123 @@ { + "tagging" : { + "permissions" : [ "CloudTrail:AddTags", "CloudTrail:RemoveTags", "CloudTrail:ListTags" ], + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "tagProperty" : "/properties/Tags", + "cloudFormationSystemTags" : false + }, "typeName" : "AWS::CloudTrail::Trail", + "readOnlyProperties" : [ "/properties/Arn", "/properties/SnsTopicArn" ], "description" : "Creates a trail that specifies the settings for delivery of log data to an Amazon S3 bucket. A maximum of five trails can exist in a region, irrespective of the region in which they were created.", + "createOnlyProperties" : [ "/properties/TrailName" ], + "primaryIdentifier" : [ "/properties/TrailName" ], + "required" : [ "S3BucketName", "IsLogging" ], "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cloudtrail.git", + "propertyTransform" : { + "/properties/KMSKeyId" : "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KMSKeyId])" + }, + "handlers" : { + "read" : { + "permissions" : [ "CloudTrail:GetTrail", "CloudTrail:GetTrailStatus", "CloudTrail:ListTags", "CloudTrail:GetEventSelectors", "CloudTrail:GetInsightSelectors", "CloudTrail:DescribeTrails" ] + }, + "create" : { + "permissions" : [ "CloudTrail:CreateTrail", "CloudTrail:StartLogging", "CloudTrail:AddTags", "CloudTrail:PutEventSelectors", "CloudTrail:PutInsightSelectors", "iam:GetRole", "iam:PassRole", "iam:CreateServiceLinkedRole", "organizations:DescribeOrganization", "organizations:ListAWSServiceAccessForOrganization" ] + }, + "update" : { + "permissions" : [ "CloudTrail:UpdateTrail", "CloudTrail:StartLogging", "CloudTrail:StopLogging", "CloudTrail:AddTags", "CloudTrail:RemoveTags", "CloudTrail:PutEventSelectors", "CloudTrail:PutInsightSelectors", "iam:GetRole", "iam:PassRole", "iam:CreateServiceLinkedRole", "organizations:DescribeOrganization", "organizations:ListAWSServiceAccessForOrganization", "CloudTrail:GetTrail", "CloudTrail:DescribeTrails" ] + }, + "list" : { + "permissions" : [ "CloudTrail:ListTrails", "CloudTrail:GetTrail", "CloudTrail:GetTrailStatus", "CloudTrail:ListTags", "CloudTrail:GetEventSelectors", "CloudTrail:GetInsightSelectors", "CloudTrail:DescribeTrails" ] + }, + "delete" : { + "permissions" : [ "CloudTrail:DeleteTrail" ] + } + }, + "additionalProperties" : false, "definitions" : { + "AdvancedEventSelector" : { + "description" : "Advanced event selectors let you create fine-grained selectors for the following AWS CloudTrail event record fields. They help you control costs by logging only those events that are important to you.", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "FieldSelectors" : { + "minItems" : 1, + "uniqueItems" : true, + "description" : "Contains all selector statements in an advanced event selector.", + "insertionOrder" : false, + "type" : "array", + "items" : { + "$ref" : "#/definitions/AdvancedFieldSelector" + } + }, + "Name" : { + "minLength" : 1, + "description" : "An optional, descriptive name for an advanced event selector, such as \"Log data events for only two S3 buckets\".", + "type" : "string", + "maxLength" : 1000 + } + }, + "required" : [ "FieldSelectors" ] + }, + "InsightSelector" : { + "description" : "A string that contains insight types that are logged on a trail.", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "InsightType" : { + "description" : "The type of insight to log on a trail.", + "type" : "string" + } + } + }, + "EventSelector" : { + "description" : "The type of email sending events to publish to the event destination.", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "IncludeManagementEvents" : { + "description" : "Specify if you want your event selector to include management events for your trail.", + "type" : "boolean" + }, + "ReadWriteType" : { + "description" : "Specify if you want your trail to log read-only events, write-only events, or all. For example, the EC2 GetConsoleOutput is a read-only API operation and RunInstances is a write-only API operation.", + "type" : "string", + "enum" : [ "All", "ReadOnly", "WriteOnly" ] + }, + "ExcludeManagementEventSources" : { + "uniqueItems" : true, + "description" : "An optional list of service event sources from which you do not want management events to be logged on your trail. In this release, the list can be empty (disables the filter), or it can filter out AWS Key Management Service events by containing \"kms.amazonaws.com\". By default, ExcludeManagementEventSources is empty, and AWS KMS events are included in events that are logged to your trail.", + "insertionOrder" : false, + "type" : "array", + "items" : { + "type" : "string" + } + }, + "DataResources" : { + "uniqueItems" : true, + "insertionOrder" : false, + "type" : "array", + "items" : { + "$ref" : "#/definitions/DataResource" + } + } + } + }, "DataResource" : { "description" : "CloudTrail supports data event logging for Amazon S3 objects and AWS Lambda functions. You can specify up to 250 resources for an individual event selector, but the total number of data resources cannot exceed 250 across all event selectors in a trail. This limit does not apply if you configure resource logging for all data events.", - "type" : "object", "additionalProperties" : false, + "type" : "object", "properties" : { "Type" : { "description" : "The resource type in which you want to log data events. You can specify AWS::S3::Object or AWS::Lambda::Function resources.", "type" : "string" }, "Values" : { - "description" : "An array of Amazon Resource Name (ARN) strings or partial ARN strings for the specified objects.", - "type" : "array", "uniqueItems" : true, + "description" : "An array of Amazon Resource Name (ARN) strings or partial ARN strings for the specified objects.", "insertionOrder" : false, + "type" : "array", "items" : { "type" : "string" } @@ -24,238 +125,137 @@ }, "required" : [ "Type" ] }, + "Tag" : { + "description" : "An arbitrary set of tags (key-value pairs) for this trail.", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "Value" : { + "description" : "The value for the tag. You can specify a value that is 1 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "type" : "string" + }, + "Key" : { + "description" : "The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "type" : "string" + } + }, + "required" : [ "Value", "Key" ] + }, "AdvancedFieldSelector" : { "description" : "A single selector statement in an advanced event selector.", - "type" : "object", "additionalProperties" : false, + "type" : "object", "properties" : { "Field" : { + "minLength" : 1, + "pattern" : "([\\w|\\d|\\.|_]+)", "description" : "A field in an event record on which to filter events to be logged. Supported fields include readOnly, eventCategory, eventSource (for management events), eventName, resources.type, and resources.ARN.", "type" : "string", - "pattern" : "([\\w|\\d|\\.|_]+)", - "minLength" : 1, "maxLength" : 1000 }, "Equals" : { - "description" : "An operator that includes events that match the exact value of the event record field specified as the value of Field. This is the only valid operator that you can use with the readOnly, eventCategory, and resources.type fields.", - "type" : "array", - "uniqueItems" : true, - "insertionOrder" : false, "minItems" : 1, - "items" : { - "type" : "string", - "pattern" : "(.+)", - "minLength" : 1, - "maxLength" : 2048 - } - }, - "StartsWith" : { - "description" : "An operator that includes events that match the first few characters of the event record field specified as the value of Field.", - "type" : "array", "uniqueItems" : true, + "description" : "An operator that includes events that match the exact value of the event record field specified as the value of Field. This is the only valid operator that you can use with the readOnly, eventCategory, and resources.type fields.", "insertionOrder" : false, - "minItems" : 1, + "type" : "array", "items" : { - "type" : "string", - "pattern" : "(.+)", "minLength" : 1, + "pattern" : "(.+)", + "type" : "string", "maxLength" : 2048 } }, - "EndsWith" : { - "description" : "An operator that includes events that match the last few characters of the event record field specified as the value of Field.", - "type" : "array", + "NotStartsWith" : { + "minItems" : 1, "uniqueItems" : true, + "description" : "An operator that excludes events that match the first few characters of the event record field specified as the value of Field.", "insertionOrder" : false, - "minItems" : 1, + "type" : "array", "items" : { - "type" : "string", - "pattern" : "(.+)", "minLength" : 1, + "pattern" : "(.+)", + "type" : "string", "maxLength" : 2048 } }, - "NotEquals" : { - "description" : "An operator that excludes events that match the exact value of the event record field specified as the value of Field.", - "type" : "array", + "NotEndsWith" : { + "minItems" : 1, "uniqueItems" : true, + "description" : "An operator that excludes events that match the last few characters of the event record field specified as the value of Field.", "insertionOrder" : false, - "minItems" : 1, + "type" : "array", "items" : { - "type" : "string", - "pattern" : "(.+)", "minLength" : 1, + "pattern" : "(.+)", + "type" : "string", "maxLength" : 2048 } }, - "NotStartsWith" : { - "description" : "An operator that excludes events that match the first few characters of the event record field specified as the value of Field.", - "type" : "array", + "StartsWith" : { + "minItems" : 1, "uniqueItems" : true, + "description" : "An operator that includes events that match the first few characters of the event record field specified as the value of Field.", "insertionOrder" : false, - "minItems" : 1, + "type" : "array", "items" : { - "type" : "string", - "pattern" : "(.+)", "minLength" : 1, + "pattern" : "(.+)", + "type" : "string", "maxLength" : 2048 } }, - "NotEndsWith" : { - "description" : "An operator that excludes events that match the last few characters of the event record field specified as the value of Field.", - "type" : "array", + "EndsWith" : { + "minItems" : 1, "uniqueItems" : true, + "description" : "An operator that includes events that match the last few characters of the event record field specified as the value of Field.", "insertionOrder" : false, - "minItems" : 1, + "type" : "array", "items" : { - "type" : "string", - "pattern" : "(.+)", "minLength" : 1, + "pattern" : "(.+)", + "type" : "string", "maxLength" : 2048 } - } - }, - "required" : [ "Field" ] - }, - "AdvancedEventSelector" : { - "description" : "Advanced event selectors let you create fine-grained selectors for the following AWS CloudTrail event record fields. They help you control costs by logging only those events that are important to you.", - "type" : "object", - "additionalProperties" : false, - "properties" : { - "Name" : { - "description" : "An optional, descriptive name for an advanced event selector, such as \"Log data events for only two S3 buckets\".", - "type" : "string", - "minLength" : 1, - "maxLength" : 1000 }, - "FieldSelectors" : { - "description" : "Contains all selector statements in an advanced event selector.", - "type" : "array", - "uniqueItems" : true, - "insertionOrder" : false, + "NotEquals" : { "minItems" : 1, - "items" : { - "$ref" : "#/definitions/AdvancedFieldSelector" - } - } - }, - "required" : [ "FieldSelectors" ] - }, - "EventSelector" : { - "description" : "The type of email sending events to publish to the event destination.", - "type" : "object", - "additionalProperties" : false, - "properties" : { - "DataResources" : { - "type" : "array", "uniqueItems" : true, + "description" : "An operator that excludes events that match the exact value of the event record field specified as the value of Field.", "insertionOrder" : false, - "items" : { - "$ref" : "#/definitions/DataResource" - } - }, - "IncludeManagementEvents" : { - "description" : "Specify if you want your event selector to include management events for your trail.", - "type" : "boolean" - }, - "ReadWriteType" : { - "description" : "Specify if you want your trail to log read-only events, write-only events, or all. For example, the EC2 GetConsoleOutput is a read-only API operation and RunInstances is a write-only API operation.", - "type" : "string", - "enum" : [ "All", "ReadOnly", "WriteOnly" ] - }, - "ExcludeManagementEventSources" : { - "description" : "An optional list of service event sources from which you do not want management events to be logged on your trail. In this release, the list can be empty (disables the filter), or it can filter out AWS Key Management Service events by containing \"kms.amazonaws.com\". By default, ExcludeManagementEventSources is empty, and AWS KMS events are included in events that are logged to your trail.", "type" : "array", - "uniqueItems" : true, - "insertionOrder" : false, "items" : { - "type" : "string" + "minLength" : 1, + "pattern" : "(.+)", + "type" : "string", + "maxLength" : 2048 } } - } - }, - "Tag" : { - "description" : "An arbitrary set of tags (key-value pairs) for this trail.", - "type" : "object", - "additionalProperties" : false, - "properties" : { - "Key" : { - "description" : "The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "type" : "string" - }, - "Value" : { - "description" : "The value for the tag. You can specify a value that is 1 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "type" : "string" - } }, - "required" : [ "Value", "Key" ] - }, - "InsightSelector" : { - "description" : "A string that contains insight types that are logged on a trail.", - "type" : "object", - "additionalProperties" : false, - "properties" : { - "InsightType" : { - "description" : "The type of insight to log on a trail.", - "type" : "string" - } - } + "required" : [ "Field" ] } }, "properties" : { - "CloudWatchLogsLogGroupArn" : { - "description" : "Specifies a log group name using an Amazon Resource Name (ARN), a unique identifier that represents the log group to which CloudTrail logs will be delivered. Not required unless you specify CloudWatchLogsRoleArn.", - "type" : "string" - }, - "CloudWatchLogsRoleArn" : { - "description" : "Specifies the role for the CloudWatch Logs endpoint to assume to write to a user's log group.", - "type" : "string" - }, - "EnableLogFileValidation" : { - "description" : "Specifies whether log file validation is enabled. The default is false.", + "IncludeGlobalServiceEvents" : { + "description" : "Specifies whether the trail is publishing events from global services such as IAM to the log files.", "type" : "boolean" }, - "AdvancedEventSelectors" : { - "description" : "The advanced event selectors that were used to select events for the data store.", - "type" : "array", - "items" : { - "$ref" : "#/definitions/AdvancedEventSelector" - }, - "uniqueItems" : true, - "insertionOrder" : false - }, "EventSelectors" : { + "maxItems" : 5, + "uniqueItems" : true, "description" : "Use event selectors to further specify the management and data event settings for your trail. By default, trails created without specific event selectors will be configured to log all read and write management events, and no data events. When an event occurs in your account, CloudTrail evaluates the event selector for all trails. For each trail, if the event matches any event selector, the trail processes and logs the event. If the event doesn't match any event selector, the trail doesn't log the event. You can configure up to five event selectors for a trail.", + "insertionOrder" : false, "type" : "array", "items" : { "$ref" : "#/definitions/EventSelector" - }, - "maxItems" : 5, - "uniqueItems" : true, - "insertionOrder" : false - }, - "IncludeGlobalServiceEvents" : { - "description" : "Specifies whether the trail is publishing events from global services such as IAM to the log files.", - "type" : "boolean" - }, - "IsLogging" : { - "description" : "Whether the CloudTrail is currently logging AWS API calls.", - "type" : "boolean" - }, - "IsMultiRegionTrail" : { - "description" : "Specifies whether the trail applies only to the current region or to all regions. The default is false. If the trail exists only in the current region and this value is set to true, shadow trails (replications of the trail) will be created in the other regions. If the trail exists in all regions and this value is set to false, the trail will remain in the region where it was created, and its shadow trails in other regions will be deleted. As a best practice, consider using trails that log events in all regions.", - "type" : "boolean" - }, - "IsOrganizationTrail" : { - "description" : "Specifies whether the trail is created for all accounts in an organization in AWS Organizations, or only for the current AWS account. The default is false, and cannot be true unless the call is made on behalf of an AWS account that is the master account for an organization in AWS Organizations.", - "type" : "boolean" + } }, "KMSKeyId" : { "description" : "Specifies the KMS key ID to use to encrypt the logs delivered by CloudTrail. The value can be an alias name prefixed by 'alias/', a fully specified ARN to an alias, a fully specified ARN to a key, or a globally unique identifier.", "type" : "string" }, - "S3BucketName" : { - "description" : "Specifies the name of the Amazon S3 bucket designated for publishing log files. See Amazon S3 Bucket Naming Requirements.", + "CloudWatchLogsRoleArn" : { + "description" : "Specifies the role for the CloudWatch Logs endpoint to assume to write to a user's log group.", "type" : "string" }, "S3KeyPrefix" : { @@ -263,70 +263,72 @@ "type" : "string", "maxLength" : 200 }, - "SnsTopicName" : { - "description" : "Specifies the name of the Amazon SNS topic defined for notification of log file delivery. The maximum length is 256 characters.", - "type" : "string", - "maxLength" : 256 - }, - "Tags" : { - "type" : "array", - "uniqueItems" : false, + "AdvancedEventSelectors" : { + "uniqueItems" : true, + "description" : "The advanced event selectors that were used to select events for the data store.", "insertionOrder" : false, + "type" : "array", "items" : { - "$ref" : "#/definitions/Tag" + "$ref" : "#/definitions/AdvancedEventSelector" } }, "TrailName" : { - "type" : "string", - "pattern" : "(^[a-zA-Z0-9]$)|(^[a-zA-Z0-9]([a-zA-Z0-9\\._-])*[a-zA-Z0-9]$)", "minLength" : 3, + "pattern" : "(^[a-zA-Z0-9]$)|(^[a-zA-Z0-9]([a-zA-Z0-9\\._-])*[a-zA-Z0-9]$)", + "type" : "string", "maxLength" : 128 }, - "Arn" : { - "type" : "string" - }, - "SnsTopicArn" : { - "type" : "string" + "IsOrganizationTrail" : { + "description" : "Specifies whether the trail is created for all accounts in an organization in AWS Organizations, or only for the current AWS account. The default is false, and cannot be true unless the call is made on behalf of an AWS account that is the master account for an organization in AWS Organizations.", + "type" : "boolean" }, "InsightSelectors" : { + "uniqueItems" : true, "description" : "Lets you enable Insights event logging by specifying the Insights selectors that you want to enable on an existing trail.", + "insertionOrder" : false, "type" : "array", "items" : { "$ref" : "#/definitions/InsightSelector" - }, - "uniqueItems" : true, - "insertionOrder" : false - } - }, - "required" : [ "S3BucketName", "IsLogging" ], - "readOnlyProperties" : [ "/properties/Arn", "/properties/SnsTopicArn" ], - "createOnlyProperties" : [ "/properties/TrailName" ], - "primaryIdentifier" : [ "/properties/TrailName" ], - "propertyTransform" : { - "/properties/KMSKeyId" : "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KMSKeyId])" - }, - "handlers" : { - "create" : { - "permissions" : [ "CloudTrail:CreateTrail", "CloudTrail:StartLogging", "CloudTrail:AddTags", "CloudTrail:PutEventSelectors", "CloudTrail:PutInsightSelectors", "iam:GetRole", "iam:PassRole", "iam:CreateServiceLinkedRole", "organizations:DescribeOrganization", "organizations:ListAWSServiceAccessForOrganization" ] + } }, - "read" : { - "permissions" : [ "CloudTrail:GetTrail", "CloudTrail:GetTrailStatus", "CloudTrail:ListTags", "CloudTrail:GetEventSelectors", "CloudTrail:GetInsightSelectors", "CloudTrail:DescribeTrails" ] + "CloudWatchLogsLogGroupArn" : { + "description" : "Specifies a log group name using an Amazon Resource Name (ARN), a unique identifier that represents the log group to which CloudTrail logs will be delivered. Not required unless you specify CloudWatchLogsRoleArn.", + "type" : "string" }, - "update" : { - "permissions" : [ "CloudTrail:UpdateTrail", "CloudTrail:StartLogging", "CloudTrail:StopLogging", "CloudTrail:AddTags", "CloudTrail:RemoveTags", "CloudTrail:PutEventSelectors", "CloudTrail:PutInsightSelectors", "iam:GetRole", "iam:PassRole", "iam:CreateServiceLinkedRole", "organizations:DescribeOrganization", "organizations:ListAWSServiceAccessForOrganization", "CloudTrail:GetTrail", "CloudTrail:DescribeTrails" ] + "SnsTopicName" : { + "description" : "Specifies the name of the Amazon SNS topic defined for notification of log file delivery. The maximum length is 256 characters.", + "type" : "string", + "maxLength" : 256 }, - "delete" : { - "permissions" : [ "CloudTrail:DeleteTrail" ] + "IsMultiRegionTrail" : { + "description" : "Specifies whether the trail applies only to the current region or to all regions. The default is false. If the trail exists only in the current region and this value is set to true, shadow trails (replications of the trail) will be created in the other regions. If the trail exists in all regions and this value is set to false, the trail will remain in the region where it was created, and its shadow trails in other regions will be deleted. As a best practice, consider using trails that log events in all regions.", + "type" : "boolean" }, - "list" : { - "permissions" : [ "CloudTrail:ListTrails", "CloudTrail:GetTrail", "CloudTrail:GetTrailStatus", "CloudTrail:ListTags", "CloudTrail:GetEventSelectors", "CloudTrail:GetInsightSelectors", "CloudTrail:DescribeTrails" ] + "S3BucketName" : { + "description" : "Specifies the name of the Amazon S3 bucket designated for publishing log files. See Amazon S3 Bucket Naming Requirements.", + "type" : "string" + }, + "SnsTopicArn" : { + "type" : "string" + }, + "EnableLogFileValidation" : { + "description" : "Specifies whether log file validation is enabled. The default is false.", + "type" : "boolean" + }, + "Arn" : { + "type" : "string" + }, + "Tags" : { + "uniqueItems" : false, + "insertionOrder" : false, + "type" : "array", + "items" : { + "$ref" : "#/definitions/Tag" + } + }, + "IsLogging" : { + "description" : "Whether the CloudTrail is currently logging AWS API calls.", + "type" : "boolean" } - }, - "additionalProperties" : false, - "tagging" : { - "taggable" : true, - "tagOnCreate" : true, - "tagUpdatable" : true, - "cloudFormationSystemTags" : false } } \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-connectcampaignsv2-campaign.json b/aws-cloudformation-schema/aws-connectcampaignsv2-campaign.json new file mode 100644 index 0000000000..3d00deedb2 --- /dev/null +++ b/aws-cloudformation-schema/aws-connectcampaignsv2-campaign.json @@ -0,0 +1,643 @@ +{ + "typeName" : "AWS::ConnectCampaignsV2::Campaign", + "description" : "Definition of AWS::ConnectCampaignsV2::Campaign Resource Type", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect-campaigns", + "definitions" : { + "CampaignName" : { + "type" : "string", + "maxLength" : 127, + "minLength" : 1, + "description" : "Campaign name" + }, + "InstanceId" : { + "type" : "string", + "maxLength" : 256, + "minLength" : 0, + "description" : "Amazon Connect Instance Id", + "pattern" : "^[a-zA-Z0-9_\\-.]*$" + }, + "Capacity" : { + "type" : "number", + "maximum" : 1, + "minimum" : 0.01, + "description" : "Allocates outbound capacity for the specific channel of this campaign between multiple active campaigns" + }, + "QueueId" : { + "type" : "string", + "maxLength" : 500, + "description" : "The queue for the call" + }, + "ContactFlowId" : { + "type" : "string", + "maxLength" : 500, + "description" : "The identifier of the contact flow for the outbound call" + }, + "SourcePhoneNumber" : { + "type" : "string", + "maxLength" : 100, + "description" : "The phone number associated with the Amazon Connect instance, in E.164 format. If you do not specify a source phone number, you must specify a queue." + }, + "Arn" : { + "type" : "string", + "maxLength" : 500, + "minLength" : 20, + "description" : "Arn", + "pattern" : "^arn:.*$" + }, + "EmailAddress" : { + "type" : "string", + "maxLength" : 255, + "minLength" : 1, + "description" : "Email address used for Email messages", + "pattern" : "^[\\w-\\.\\+]+@([\\w-]+\\.)+[\\w-]{2,4}$" + }, + "SourceEmailAddressDisplayName" : { + "type" : "string", + "maxLength" : 127, + "minLength" : 1, + "description" : "The name of the source email address display name" + }, + "BandwidthAllocation" : { + "type" : "number", + "maximum" : 1, + "minimum" : 0, + "description" : "The bandwidth allocation of a queue resource." + }, + "TimeStamp" : { + "type" : "string", + "description" : "Timestamp with no UTC offset or timezone", + "maxLength" : 100 + }, + "TimeZone" : { + "type" : "string", + "description" : "Time Zone Id in the IANA format" + }, + "Iso8601Duration" : { + "type" : "string", + "description" : "Time duration in ISO 8601 format", + "maxLength" : 50, + "minLength" : 0, + "pattern" : "^[a-zA-Z0-9.]*$" + }, + "Iso8601Date" : { + "type" : "string", + "description" : "Date in ISO 8601 format, e.g. 2024-01-01", + "pattern" : "^\\d{4}-\\d{2}-\\d{2}$" + }, + "Iso8601Time" : { + "type" : "string", + "description" : "Time in ISO 8601 format, e.g. T23:11", + "pattern" : "^T\\d{2}:\\d{2}$" + }, + "DayOfWeek" : { + "type" : "string", + "description" : "Day of week", + "enum" : [ "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY" ] + }, + "PredictiveConfig" : { + "type" : "object", + "description" : "Predictive config", + "properties" : { + "BandwidthAllocation" : { + "$ref" : "#/definitions/BandwidthAllocation" + } + }, + "required" : [ "BandwidthAllocation" ], + "additionalProperties" : false + }, + "ProgressiveConfig" : { + "type" : "object", + "description" : "Progressive config", + "properties" : { + "BandwidthAllocation" : { + "$ref" : "#/definitions/BandwidthAllocation" + } + }, + "required" : [ "BandwidthAllocation" ], + "additionalProperties" : false + }, + "AgentlessConfig" : { + "type" : "object", + "description" : "Agentless config", + "required" : [ ], + "additionalProperties" : false + }, + "TelephonyOutboundMode" : { + "type" : "object", + "description" : "Telephony Outbound Mode", + "properties" : { + "ProgressiveConfig" : { + "$ref" : "#/definitions/ProgressiveConfig" + }, + "PredictiveConfig" : { + "$ref" : "#/definitions/PredictiveConfig" + }, + "AgentlessConfig" : { + "$ref" : "#/definitions/AgentlessConfig" + } + }, + "oneOf" : [ { + "required" : [ "ProgressiveConfig" ] + }, { + "required" : [ "PredictiveConfig" ] + }, { + "required" : [ "AgentlessConfig" ] + } ], + "additionalProperties" : false + }, + "AnswerMachineDetectionConfig" : { + "type" : "object", + "description" : "The configuration used for answering machine detection during outbound calls", + "properties" : { + "EnableAnswerMachineDetection" : { + "type" : "boolean", + "description" : "Flag to decided whether outbound calls should have answering machine detection enabled or not" + }, + "AwaitAnswerMachinePrompt" : { + "type" : "boolean", + "description" : "Enables detection of prompts (e.g., beep after after a voicemail greeting)" + } + }, + "required" : [ "EnableAnswerMachineDetection" ], + "additionalProperties" : false + }, + "TelephonyOutboundConfig" : { + "type" : "object", + "description" : "Default Telephone Outbound config", + "properties" : { + "ConnectContactFlowId" : { + "$ref" : "#/definitions/ContactFlowId" + }, + "ConnectSourcePhoneNumber" : { + "$ref" : "#/definitions/SourcePhoneNumber" + }, + "AnswerMachineDetectionConfig" : { + "$ref" : "#/definitions/AnswerMachineDetectionConfig" + } + }, + "required" : [ "ConnectContactFlowId" ], + "additionalProperties" : false + }, + "TelephonyChannelSubtypeConfig" : { + "type" : "object", + "description" : "Telephony Channel Subtype config", + "properties" : { + "Capacity" : { + "$ref" : "#/definitions/Capacity" + }, + "ConnectQueueId" : { + "$ref" : "#/definitions/QueueId" + }, + "OutboundMode" : { + "$ref" : "#/definitions/TelephonyOutboundMode" + }, + "DefaultOutboundConfig" : { + "$ref" : "#/definitions/TelephonyOutboundConfig" + } + }, + "required" : [ "OutboundMode", "DefaultOutboundConfig" ], + "additionalProperties" : false + }, + "SmsOutboundMode" : { + "type" : "object", + "description" : "SMS Outbound Mode", + "properties" : { + "AgentlessConfig" : { + "$ref" : "#/definitions/AgentlessConfig" + } + }, + "additionalProperties" : false + }, + "SmsOutboundConfig" : { + "type" : "object", + "description" : "Default SMS outbound config", + "properties" : { + "ConnectSourcePhoneNumberArn" : { + "$ref" : "#/definitions/Arn" + }, + "WisdomTemplateArn" : { + "$ref" : "#/definitions/Arn" + } + }, + "required" : [ "ConnectSourcePhoneNumberArn", "WisdomTemplateArn" ], + "additionalProperties" : false + }, + "SmsChannelSubtypeConfig" : { + "type" : "object", + "description" : "SMS Channel Subtype config", + "properties" : { + "Capacity" : { + "$ref" : "#/definitions/Capacity" + }, + "OutboundMode" : { + "$ref" : "#/definitions/SmsOutboundMode" + }, + "DefaultOutboundConfig" : { + "$ref" : "#/definitions/SmsOutboundConfig" + } + }, + "required" : [ "OutboundMode", "DefaultOutboundConfig" ], + "additionalProperties" : false + }, + "EmailOutboundMode" : { + "type" : "object", + "description" : "Email Outbound Mode", + "properties" : { + "AgentlessConfig" : { + "$ref" : "#/definitions/AgentlessConfig" + } + }, + "additionalProperties" : false + }, + "EmailOutboundConfig" : { + "type" : "object", + "description" : "Default SMS outbound config", + "properties" : { + "ConnectSourceEmailAddress" : { + "$ref" : "#/definitions/EmailAddress" + }, + "SourceEmailAddressDisplayName" : { + "$ref" : "#/definitions/SourceEmailAddressDisplayName" + }, + "WisdomTemplateArn" : { + "$ref" : "#/definitions/Arn" + } + }, + "required" : [ "ConnectSourceEmailAddress", "WisdomTemplateArn" ], + "additionalProperties" : false + }, + "EmailChannelSubtypeConfig" : { + "type" : "object", + "description" : "Email Channel Subtype config", + "properties" : { + "Capacity" : { + "$ref" : "#/definitions/Capacity" + }, + "OutboundMode" : { + "$ref" : "#/definitions/EmailOutboundMode" + }, + "DefaultOutboundConfig" : { + "$ref" : "#/definitions/EmailOutboundConfig" + } + }, + "required" : [ "OutboundMode", "DefaultOutboundConfig" ], + "additionalProperties" : false + }, + "ChannelSubtypeConfig" : { + "type" : "object", + "description" : "The possible types of channel subtype config parameters", + "properties" : { + "Telephony" : { + "$ref" : "#/definitions/TelephonyChannelSubtypeConfig" + }, + "Sms" : { + "$ref" : "#/definitions/SmsChannelSubtypeConfig" + }, + "Email" : { + "$ref" : "#/definitions/EmailChannelSubtypeConfig" + } + }, + "anyOf" : [ { + "required" : [ "Telephony" ] + }, { + "required" : [ "Sms" ] + }, { + "required" : [ "Email" ] + } ], + "additionalProperties" : false + }, + "Source" : { + "type" : "object", + "description" : "The possible types of channel config parameters", + "properties" : { + "CustomerProfilesSegmentArn" : { + "$ref" : "#/definitions/Arn" + } + }, + "oneOf" : [ { + "required" : [ "CustomerProfilesSegmentArn" ] + } ], + "additionalProperties" : false + }, + "TimeRange" : { + "type" : "object", + "description" : "Time range in 24 hour format", + "properties" : { + "StartTime" : { + "$ref" : "#/definitions/Iso8601Time" + }, + "EndTime" : { + "$ref" : "#/definitions/Iso8601Time" + } + }, + "required" : [ "StartTime", "EndTime" ], + "additionalProperties" : false + }, + "TimeRangeList" : { + "type" : "array", + "description" : "List of time range", + "items" : { + "$ref" : "#/definitions/TimeRange" + }, + "insertionOrder" : false + }, + "DailyHour" : { + "type" : "object", + "description" : "Daily Hour", + "properties" : { + "Key" : { + "$ref" : "#/definitions/DayOfWeek" + }, + "Value" : { + "$ref" : "#/definitions/TimeRangeList" + } + }, + "additionalProperties" : false + }, + "DailyHours" : { + "type" : "array", + "uniqueItems" : true, + "insertionOrder" : false, + "description" : "Daily Hours map", + "items" : { + "$ref" : "#/definitions/DailyHour" + } + }, + "OpenHours" : { + "type" : "object", + "description" : "Open Hours config", + "properties" : { + "DailyHours" : { + "$ref" : "#/definitions/DailyHours" + } + }, + "required" : [ "DailyHours" ], + "additionalProperties" : false + }, + "RestrictedPeriod" : { + "type" : "object", + "description" : "Restricted period", + "properties" : { + "Name" : { + "type" : "string", + "maxLength" : 127, + "description" : "The name of a restricted period" + }, + "StartDate" : { + "$ref" : "#/definitions/Iso8601Date" + }, + "EndDate" : { + "$ref" : "#/definitions/Iso8601Date" + } + }, + "required" : [ "StartDate", "EndDate" ], + "additionalProperties" : false + }, + "RestrictedPeriodList" : { + "type" : "array", + "description" : "List of restricted period", + "items" : { + "$ref" : "#/definitions/RestrictedPeriod" + }, + "insertionOrder" : false + }, + "RestrictedPeriods" : { + "type" : "object", + "description" : "Restricted period config", + "properties" : { + "RestrictedPeriodList" : { + "$ref" : "#/definitions/RestrictedPeriodList" + } + }, + "oneOf" : [ { + "required" : [ "RestrictedPeriodList" ] + } ], + "additionalProperties" : false + }, + "TimeWindow" : { + "type" : "object", + "description" : "Time window config", + "properties" : { + "OpenHours" : { + "$ref" : "#/definitions/OpenHours" + }, + "RestrictedPeriods" : { + "$ref" : "#/definitions/RestrictedPeriods" + } + }, + "required" : [ "OpenHours" ], + "additionalProperties" : false + }, + "Schedule" : { + "type" : "object", + "description" : "Campaign schedule", + "properties" : { + "StartTime" : { + "$ref" : "#/definitions/TimeStamp" + }, + "EndTime" : { + "$ref" : "#/definitions/TimeStamp" + }, + "RefreshFrequency" : { + "$ref" : "#/definitions/Iso8601Duration" + } + }, + "required" : [ "StartTime", "EndTime" ], + "additionalProperties" : false + }, + "LocalTimeZoneDetectionType" : { + "type" : "string", + "description" : "Local TimeZone Detection method", + "enum" : [ "ZIP_CODE", "AREA_CODE" ] + }, + "LocalTimeZoneDetection" : { + "type" : "array", + "description" : "Local TimeZone Detection method list", + "items" : { + "$ref" : "#/definitions/LocalTimeZoneDetectionType" + }, + "insertionOrder" : false + }, + "LocalTimeZoneConfig" : { + "type" : "object", + "description" : "Local time zone config", + "properties" : { + "DefaultTimeZone" : { + "$ref" : "#/definitions/TimeZone" + }, + "LocalTimeZoneDetection" : { + "$ref" : "#/definitions/LocalTimeZoneDetection" + } + }, + "additionalProperties" : false + }, + "CommunicationTimeConfig" : { + "type" : "object", + "description" : "Campaign communication time config", + "properties" : { + "LocalTimeZoneConfig" : { + "$ref" : "#/definitions/LocalTimeZoneConfig" + }, + "Telephony" : { + "$ref" : "#/definitions/TimeWindow" + }, + "Sms" : { + "$ref" : "#/definitions/TimeWindow" + }, + "Email" : { + "$ref" : "#/definitions/TimeWindow" + } + }, + "required" : [ "LocalTimeZoneConfig" ], + "additionalProperties" : false + }, + "CommunicationLimitTimeUnit" : { + "type" : "string", + "description" : "The communication limit time unit", + "enum" : [ "DAY" ] + }, + "CommunicationLimit" : { + "type" : "object", + "description" : "Communication Limit", + "properties" : { + "MaxCountPerRecipient" : { + "type" : "integer", + "minimum" : 1 + }, + "Frequency" : { + "type" : "integer", + "minimum" : 1 + }, + "Unit" : { + "$ref" : "#/definitions/CommunicationLimitTimeUnit" + } + }, + "required" : [ "MaxCountPerRecipient", "Frequency", "Unit" ], + "additionalProperties" : false + }, + "CommunicationLimitList" : { + "type" : "array", + "description" : "List of communication limit", + "items" : { + "$ref" : "#/definitions/CommunicationLimit" + }, + "insertionOrder" : false + }, + "CommunicationLimits" : { + "type" : "object", + "description" : "Communication limits", + "properties" : { + "CommunicationLimitList" : { + "$ref" : "#/definitions/CommunicationLimitList" + } + }, + "additionalProperties" : false + }, + "CommunicationLimitsConfig" : { + "type" : "object", + "description" : "Communication limits config", + "properties" : { + "AllChannelsSubtypes" : { + "$ref" : "#/definitions/CommunicationLimits" + } + }, + "additionalProperties" : false + }, + "Tag" : { + "type" : "object", + "properties" : { + "Key" : { + "type" : "string", + "description" : "The key name of the tag." + }, + "Value" : { + "type" : "string", + "description" : "The value for the tag." + } + }, + "required" : [ "Key", "Value" ], + "additionalProperties" : false + } + }, + "properties" : { + "Arn" : { + "type" : "string", + "maxLength" : 256, + "minLength" : 0, + "description" : "Amazon Connect Campaign Arn", + "pattern" : "^arn:aws[-a-z0-9]*:connect-campaigns:[-a-z0-9]*:[0-9]{12}:campaign/[-a-zA-Z0-9]*$" + }, + "Name" : { + "$ref" : "#/definitions/CampaignName" + }, + "ConnectInstanceId" : { + "$ref" : "#/definitions/InstanceId" + }, + "ChannelSubtypeConfig" : { + "$ref" : "#/definitions/ChannelSubtypeConfig" + }, + "Source" : { + "$ref" : "#/definitions/Source" + }, + "ConnectCampaignFlowArn" : { + "$ref" : "#/definitions/Arn" + }, + "Schedule" : { + "$ref" : "#/definitions/Schedule" + }, + "CommunicationTimeConfig" : { + "$ref" : "#/definitions/CommunicationTimeConfig" + }, + "CommunicationLimitsOverride" : { + "$ref" : "#/definitions/CommunicationLimitsConfig" + }, + "Tags" : { + "type" : "array", + "maxItems" : 50, + "uniqueItems" : true, + "insertionOrder" : false, + "description" : "One or more tags.", + "items" : { + "$ref" : "#/definitions/Tag" + } + } + }, + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : false, + "tagProperty" : "/properties/Tags", + "permissions" : [ "connect-campaigns:UntagResource", "connect-campaigns:TagResource" ] + }, + "required" : [ "Name", "ConnectInstanceId", "ChannelSubtypeConfig" ], + "readOnlyProperties" : [ "/properties/Arn" ], + "createOnlyProperties" : [ "/properties/ConnectInstanceId" ], + "primaryIdentifier" : [ "/properties/Arn" ], + "handlers" : { + "create" : { + "permissions" : [ "connect-campaigns:CreateCampaign", "connect-campaigns:DescribeCampaign", "connect-campaigns:TagResource", "connect:DescribeContactFlow", "connect:DescribeEmailAddress", "connect:DescribeInstance", "connect:DescribePhoneNumber", "connect:DescribeQueue", "profile:GetSegmentDefinition", "wisdom:GetMessageTemplate" ] + }, + "read" : { + "permissions" : [ "connect-campaigns:DescribeCampaign" ] + }, + "delete" : { + "permissions" : [ "connect-campaigns:DeleteCampaign", "connect-campaigns:DeleteCampaignChannelSubtypeConfig", "connect-campaigns:DeleteCampaignCommunicationLimits", "connect-campaigns:DeleteCampaignCommunicationTime" ] + }, + "list" : { + "handlerSchema" : { + "properties" : { + "ConnectInstanceId" : { + "$ref" : "resource-schema.json#/properties/ConnectInstanceId" + } + }, + "required" : [ "ConnectInstanceId" ] + }, + "permissions" : [ "connect-campaigns:ListCampaigns" ] + }, + "update" : { + "permissions" : [ "connect-campaigns:DeleteCampaignChannelSubtypeConfig", "connect-campaigns:DeleteCampaignCommunicationLimits", "connect-campaigns:DeleteCampaignCommunicationTime", "connect-campaigns:UpdateCampaignChannelSubtypeConfig", "connect-campaigns:UpdateCampaignCommunicationLimits", "connect-campaigns:UpdateCampaignCommunicationTime", "connect-campaigns:UpdateCampaignName", "connect-campaigns:UpdateCampaignFlowAssociation", "connect-campaigns:UpdateCampaignSchedule", "connect-campaigns:UpdateCampaignSource", "connect-campaigns:TagResource", "connect-campaigns:UntagResource", "connect-campaigns:DescribeCampaign", "connect:DescribeContactFlow", "connect:DescribeEmailAddress", "connect:DescribePhoneNumber", "connect:DescribeQueue", "profile:GetSegmentDefinition", "wisdom:GetMessageTemplate" ] + } + }, + "additionalProperties" : false +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-dynamodb-globaltable.json b/aws-cloudformation-schema/aws-dynamodb-globaltable.json index 7607094497..5118824ecb 100644 --- a/aws-cloudformation-schema/aws-dynamodb-globaltable.json +++ b/aws-cloudformation-schema/aws-dynamodb-globaltable.json @@ -1,140 +1,178 @@ { - "handlers" : { - "read" : { - "permissions" : [ "dynamodb:Describe*", "dynamodb:GetResourcePolicy", "application-autoscaling:Describe*", "cloudwatch:PutMetricData", "dynamodb:ListTagsOfResource", "kms:DescribeKey" ] + "typeName" : "AWS::DynamoDB::GlobalTable", + "description" : "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable", + "additionalProperties" : false, + "properties" : { + "Arn" : { + "type" : "string" }, - "create" : { - "permissions" : [ "dynamodb:CreateTable", "dynamodb:CreateTableReplica", "dynamodb:Describe*", "dynamodb:UpdateTimeToLive", "dynamodb:UpdateContributorInsights", "dynamodb:UpdateContinuousBackups", "dynamodb:ListTagsOfResource", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateItem", "dynamodb:PutItem", "dynamodb:GetItem", "dynamodb:DeleteItem", "dynamodb:BatchWriteItem", "dynamodb:TagResource", "dynamodb:EnableKinesisStreamingDestination", "dynamodb:DisableKinesisStreamingDestination", "dynamodb:UpdateTableReplicaAutoScaling", "dynamodb:TagResource", "dynamodb:GetResourcePolicy", "dynamodb:PutResourcePolicy", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:Describe*", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "kinesis:ListStreams", "kinesis:DescribeStream", "kinesis:PutRecords", "kms:CreateGrant", "kms:DescribeKey", "kms:ListAliases", "kms:Decrypt", "kms:RevokeGrant", "cloudwatch:PutMetricData", "iam:CreateServiceLinkedRole" ] + "StreamArn" : { + "type" : "string" }, - "update" : { - "permissions" : [ "dynamodb:Describe*", "dynamodb:CreateTableReplica", "dynamodb:UpdateTable", "dynamodb:UpdateTimeToLive", "dynamodb:UpdateContinuousBackups", "dynamodb:UpdateContributorInsights", "dynamodb:ListTagsOfResource", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateItem", "dynamodb:PutItem", "dynamodb:GetItem", "dynamodb:DeleteItem", "dynamodb:BatchWriteItem", "dynamodb:DeleteTable", "dynamodb:DeleteTableReplica", "dynamodb:UpdateItem", "dynamodb:TagResource", "dynamodb:UntagResource", "dynamodb:EnableKinesisStreamingDestination", "dynamodb:DisableKinesisStreamingDestination", "dynamodb:UpdateTableReplicaAutoScaling", "dynamodb:UpdateKinesisStreamingDestination", "dynamodb:GetResourcePolicy", "dynamodb:PutResourcePolicy", "dynamodb:DeleteResourcePolicy", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:Describe*", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "kinesis:ListStreams", "kinesis:DescribeStream", "kinesis:PutRecords", "kms:CreateGrant", "kms:DescribeKey", "kms:ListAliases", "kms:RevokeGrant", "cloudwatch:PutMetricData" ], - "timeoutInMinutes" : 1200 + "AttributeDefinitions" : { + "type" : "array", + "uniqueItems" : true, + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/AttributeDefinition" + }, + "minItems" : 1 }, - "list" : { - "permissions" : [ "dynamodb:ListTables", "cloudwatch:PutMetricData" ] + "BillingMode" : { + "type" : "string" }, - "delete" : { - "permissions" : [ "dynamodb:Describe*", "dynamodb:DeleteTable", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:Describe*", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget" ] + "GlobalSecondaryIndexes" : { + "type" : "array", + "uniqueItems" : true, + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/GlobalSecondaryIndex" + } + }, + "KeySchema" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "$ref" : "#/definitions/KeySchema" + }, + "minItems" : 1, + "maxItems" : 2 + }, + "LocalSecondaryIndexes" : { + "type" : "array", + "uniqueItems" : true, + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/LocalSecondaryIndex" + } + }, + "WriteProvisionedThroughputSettings" : { + "$ref" : "#/definitions/WriteProvisionedThroughputSettings" + }, + "WriteOnDemandThroughputSettings" : { + "$ref" : "#/definitions/WriteOnDemandThroughputSettings" + }, + "WarmThroughput" : { + "$ref" : "#/definitions/WarmThroughput" + }, + "Replicas" : { + "type" : "array", + "uniqueItems" : true, + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/ReplicaSpecification" + }, + "minItems" : 1 + }, + "SSESpecification" : { + "$ref" : "#/definitions/SSESpecification" + }, + "StreamSpecification" : { + "$ref" : "#/definitions/StreamSpecification" + }, + "TableName" : { + "type" : "string" + }, + "TableId" : { + "type" : "string" + }, + "TimeToLiveSpecification" : { + "$ref" : "#/definitions/TimeToLiveSpecification" } }, - "typeName" : "AWS::DynamoDB::GlobalTable", - "readOnlyProperties" : [ "/properties/Arn", "/properties/StreamArn", "/properties/TableId" ], - "description" : "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable", - "additionalIdentifiers" : [ [ "/properties/Arn" ], [ "/properties/StreamArn" ] ], - "writeOnlyProperties" : [ "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" ], - "createOnlyProperties" : [ "/properties/LocalSecondaryIndexes", "/properties/TableName", "/properties/KeySchema" ], - "additionalProperties" : false, - "primaryIdentifier" : [ "/properties/TableName" ], "definitions" : { - "LocalSecondaryIndex" : { - "additionalProperties" : false, + "StreamSpecification" : { "type" : "object", + "additionalProperties" : false, "properties" : { - "IndexName" : { - "minLength" : 3, - "type" : "string", - "maxLength" : 255 - }, - "Projection" : { - "$ref" : "#/definitions/Projection" - }, - "KeySchema" : { - "maxItems" : 2, - "uniqueItems" : true, - "type" : "array", - "items" : { - "$ref" : "#/definitions/KeySchema" - } + "StreamViewType" : { + "type" : "string" } }, - "required" : [ "IndexName", "Projection", "KeySchema" ] + "required" : [ "StreamViewType" ] }, - "SSESpecification" : { + "ResourcePolicy" : { + "type" : "object", "additionalProperties" : false, + "properties" : { + "PolicyDocument" : { + "type" : "object" + } + }, + "required" : [ "PolicyDocument" ] + }, + "ReplicaStreamSpecification" : { "type" : "object", + "additionalProperties" : false, "properties" : { - "SSEEnabled" : { - "type" : "boolean" - }, - "SSEType" : { - "type" : "string" + "ResourcePolicy" : { + "$ref" : "#/definitions/ResourcePolicy" } }, - "required" : [ "SSEEnabled" ] + "required" : [ "ResourcePolicy" ] }, "KinesisStreamSpecification" : { - "additionalProperties" : false, "type" : "object", + "additionalProperties" : false, "properties" : { - "ApproximateCreationDateTimePrecision" : { - "type" : "string", - "enum" : [ "MICROSECOND", "MILLISECOND" ] - }, "StreamArn" : { + "type" : "string", "relationshipRef" : { "typeName" : "AWS::Kinesis::Stream", "propertyPath" : "/properties/Arn" - }, - "type" : "string" + } + }, + "ApproximateCreationDateTimePrecision" : { + "type" : "string", + "enum" : [ "MICROSECOND", "MILLISECOND" ] } }, "required" : [ "StreamArn" ] }, - "StreamSpecification" : { - "additionalProperties" : false, + "KeySchema" : { "type" : "object", + "additionalProperties" : false, "properties" : { - "StreamViewType" : { + "AttributeName" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 255 + }, + "KeyType" : { "type" : "string" } }, - "required" : [ "StreamViewType" ] + "required" : [ "KeyType", "AttributeName" ] }, - "ContributorInsightsSpecification" : { - "additionalProperties" : false, + "PointInTimeRecoverySpecification" : { "type" : "object", + "additionalProperties" : false, "properties" : { - "Enabled" : { + "PointInTimeRecoveryEnabled" : { "type" : "boolean" } - }, - "required" : [ "Enabled" ] + } }, "ReplicaSpecification" : { - "additionalProperties" : false, "type" : "object", + "additionalProperties" : false, "properties" : { - "SSESpecification" : { - "$ref" : "#/definitions/ReplicaSSESpecification" - }, - "KinesisStreamSpecification" : { - "$ref" : "#/definitions/KinesisStreamSpecification" - }, - "ContributorInsightsSpecification" : { - "$ref" : "#/definitions/ContributorInsightsSpecification" - }, - "PointInTimeRecoverySpecification" : { - "$ref" : "#/definitions/PointInTimeRecoverySpecification" - }, - "ReplicaStreamSpecification" : { - "$ref" : "#/definitions/ReplicaStreamSpecification" + "Region" : { + "type" : "string" }, "GlobalSecondaryIndexes" : { + "type" : "array", "uniqueItems" : true, "insertionOrder" : false, - "type" : "array", "items" : { "$ref" : "#/definitions/ReplicaGlobalSecondaryIndexSpecification" } }, - "Region" : { - "type" : "string" - }, - "ResourcePolicy" : { - "$ref" : "#/definitions/ResourcePolicy" + "ContributorInsightsSpecification" : { + "$ref" : "#/definitions/ContributorInsightsSpecification" }, - "ReadProvisionedThroughputSettings" : { - "$ref" : "#/definitions/ReadProvisionedThroughputSettings" + "PointInTimeRecoverySpecification" : { + "$ref" : "#/definitions/PointInTimeRecoverySpecification" }, "TableClass" : { "type" : "string" @@ -142,191 +180,123 @@ "DeletionProtectionEnabled" : { "type" : "boolean" }, + "SSESpecification" : { + "$ref" : "#/definitions/ReplicaSSESpecification" + }, "Tags" : { - "uniqueItems" : true, - "insertionOrder" : false, "type" : "array", + "insertionOrder" : false, + "uniqueItems" : true, "items" : { "$ref" : "#/definitions/Tag" } }, + "ReadProvisionedThroughputSettings" : { + "$ref" : "#/definitions/ReadProvisionedThroughputSettings" + }, "ReadOnDemandThroughputSettings" : { "$ref" : "#/definitions/ReadOnDemandThroughputSettings" - } - }, - "required" : [ "Region" ] - }, - "CapacityAutoScalingSettings" : { - "additionalProperties" : false, - "type" : "object", - "properties" : { - "MinCapacity" : { - "type" : "integer", - "minimum" : 1 }, - "SeedCapacity" : { - "type" : "integer", - "minimum" : 1 + "KinesisStreamSpecification" : { + "$ref" : "#/definitions/KinesisStreamSpecification" }, - "TargetTrackingScalingPolicyConfiguration" : { - "$ref" : "#/definitions/TargetTrackingScalingPolicyConfiguration" + "ResourcePolicy" : { + "$ref" : "#/definitions/ResourcePolicy" }, - "MaxCapacity" : { - "type" : "integer", - "minimum" : 1 + "ReplicaStreamSpecification" : { + "$ref" : "#/definitions/ReplicaStreamSpecification" } }, - "required" : [ "MinCapacity", "MaxCapacity", "TargetTrackingScalingPolicyConfiguration" ] + "required" : [ "Region" ] }, - "AttributeDefinition" : { - "additionalProperties" : false, + "TimeToLiveSpecification" : { "type" : "object", + "additionalProperties" : false, "properties" : { - "AttributeType" : { + "AttributeName" : { "type" : "string" }, - "AttributeName" : { - "minLength" : 1, - "type" : "string", - "maxLength" : 255 + "Enabled" : { + "type" : "boolean" } }, - "required" : [ "AttributeName", "AttributeType" ] - }, - "Projection" : { - "additionalProperties" : false, - "type" : "object", - "properties" : { - "NonKeyAttributes" : { - "maxItems" : 20, - "uniqueItems" : true, - "insertionOrder" : false, - "type" : "array", - "items" : { - "type" : "string" - } - }, - "ProjectionType" : { - "type" : "string" - } - } + "required" : [ "Enabled" ] }, - "PointInTimeRecoverySpecification" : { - "additionalProperties" : false, + "LocalSecondaryIndex" : { "type" : "object", - "properties" : { - "PointInTimeRecoveryEnabled" : { - "type" : "boolean" - } - } - }, - "ReplicaGlobalSecondaryIndexSpecification" : { "additionalProperties" : false, - "type" : "object", "properties" : { "IndexName" : { - "minLength" : 3, "type" : "string", + "minLength" : 3, "maxLength" : 255 }, - "ContributorInsightsSpecification" : { - "$ref" : "#/definitions/ContributorInsightsSpecification" - }, - "ReadProvisionedThroughputSettings" : { - "$ref" : "#/definitions/ReadProvisionedThroughputSettings" - }, - "ReadOnDemandThroughputSettings" : { - "$ref" : "#/definitions/ReadOnDemandThroughputSettings" - } - }, - "required" : [ "IndexName" ] - }, - "TargetTrackingScalingPolicyConfiguration" : { - "additionalProperties" : false, - "type" : "object", - "properties" : { - "ScaleOutCooldown" : { - "type" : "integer", - "minimum" : 0 - }, - "TargetValue" : { - "format" : "double", - "type" : "number" - }, - "DisableScaleIn" : { - "type" : "boolean" + "KeySchema" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "$ref" : "#/definitions/KeySchema" + }, + "maxItems" : 2 }, - "ScaleInCooldown" : { - "type" : "integer", - "minimum" : 0 + "Projection" : { + "$ref" : "#/definitions/Projection" } }, - "required" : [ "TargetValue" ] + "required" : [ "IndexName", "Projection", "KeySchema" ] }, "GlobalSecondaryIndex" : { - "additionalProperties" : false, "type" : "object", + "additionalProperties" : false, "properties" : { "IndexName" : { - "minLength" : 3, "type" : "string", + "minLength" : 3, "maxLength" : 255 }, - "Projection" : { - "$ref" : "#/definitions/Projection" - }, "KeySchema" : { - "minItems" : 1, - "maxItems" : 2, - "uniqueItems" : true, "type" : "array", + "uniqueItems" : true, "items" : { "$ref" : "#/definitions/KeySchema" - } + }, + "minItems" : 1, + "maxItems" : 2 + }, + "Projection" : { + "$ref" : "#/definitions/Projection" }, "WriteProvisionedThroughputSettings" : { "$ref" : "#/definitions/WriteProvisionedThroughputSettings" }, "WriteOnDemandThroughputSettings" : { "$ref" : "#/definitions/WriteOnDemandThroughputSettings" + }, + "WarmThroughput" : { + "$ref" : "#/definitions/WarmThroughput" } - }, - "required" : [ "IndexName", "Projection", "KeySchema" ] - }, - "WriteProvisionedThroughputSettings" : { - "additionalProperties" : false, - "type" : "object", - "properties" : { - "WriteCapacityAutoScalingSettings" : { - "$ref" : "#/definitions/CapacityAutoScalingSettings" - } - } - }, - "WriteOnDemandThroughputSettings" : { - "additionalProperties" : false, - "type" : "object", - "properties" : { - "MaxWriteRequestUnits" : { - "type" : "integer", - "minimum" : 1 - } - } + }, + "required" : [ "IndexName", "Projection", "KeySchema" ] }, - "ReplicaStreamSpecification" : { - "additionalProperties" : false, + "SSESpecification" : { "type" : "object", + "additionalProperties" : false, "properties" : { - "ResourcePolicy" : { - "$ref" : "#/definitions/ResourcePolicy" + "SSEEnabled" : { + "type" : "boolean" + }, + "SSEType" : { + "type" : "string" } }, - "required" : [ "ResourcePolicy" ] + "required" : [ "SSEEnabled" ] }, "ReplicaSSESpecification" : { - "additionalProperties" : false, "type" : "object", + "additionalProperties" : false, "properties" : { "KMSMasterKeyId" : { + "type" : "string", "anyOf" : [ { "relationshipRef" : { "typeName" : "AWS::KMS::Key", @@ -342,161 +312,216 @@ "typeName" : "AWS::KMS::Alias", "propertyPath" : "/properties/AliasName" } - } ], - "type" : "string" + } ] } }, "required" : [ "KMSMasterKeyId" ] }, - "ResourcePolicy" : { - "additionalProperties" : false, + "AttributeDefinition" : { "type" : "object", - "properties" : { - "PolicyDocument" : { - "type" : "object" - } - }, - "required" : [ "PolicyDocument" ] - }, - "KeySchema" : { "additionalProperties" : false, - "type" : "object", "properties" : { - "KeyType" : { - "type" : "string" - }, "AttributeName" : { - "minLength" : 1, "type" : "string", + "minLength" : 1, "maxLength" : 255 + }, + "AttributeType" : { + "type" : "string" } }, - "required" : [ "KeyType", "AttributeName" ] + "required" : [ "AttributeName", "AttributeType" ] }, "Tag" : { - "additionalProperties" : false, "type" : "object", + "additionalProperties" : false, "properties" : { - "Value" : { + "Key" : { "type" : "string" }, - "Key" : { + "Value" : { "type" : "string" } }, "required" : [ "Value", "Key" ] }, - "ReadProvisionedThroughputSettings" : { - "additionalProperties" : false, + "Projection" : { "type" : "object", + "additionalProperties" : false, "properties" : { - "ReadCapacityUnits" : { - "type" : "integer", - "minimum" : 1 + "NonKeyAttributes" : { + "type" : "array", + "uniqueItems" : true, + "insertionOrder" : false, + "items" : { + "type" : "string" + }, + "maxItems" : 20 }, - "ReadCapacityAutoScalingSettings" : { - "$ref" : "#/definitions/CapacityAutoScalingSettings" + "ProjectionType" : { + "type" : "string" } } }, - "TimeToLiveSpecification" : { + "ReplicaGlobalSecondaryIndexSpecification" : { + "type" : "object", "additionalProperties" : false, + "properties" : { + "IndexName" : { + "type" : "string", + "minLength" : 3, + "maxLength" : 255 + }, + "ContributorInsightsSpecification" : { + "$ref" : "#/definitions/ContributorInsightsSpecification" + }, + "ReadProvisionedThroughputSettings" : { + "$ref" : "#/definitions/ReadProvisionedThroughputSettings" + }, + "ReadOnDemandThroughputSettings" : { + "$ref" : "#/definitions/ReadOnDemandThroughputSettings" + } + }, + "required" : [ "IndexName" ] + }, + "ContributorInsightsSpecification" : { "type" : "object", + "additionalProperties" : false, "properties" : { "Enabled" : { "type" : "boolean" - }, - "AttributeName" : { - "type" : "string" } }, "required" : [ "Enabled" ] }, - "ReadOnDemandThroughputSettings" : { - "additionalProperties" : false, + "ReadProvisionedThroughputSettings" : { "type" : "object", + "additionalProperties" : false, "properties" : { - "MaxReadRequestUnits" : { + "ReadCapacityUnits" : { "type" : "integer", "minimum" : 1 + }, + "ReadCapacityAutoScalingSettings" : { + "$ref" : "#/definitions/CapacityAutoScalingSettings" } } - } - }, - "required" : [ "KeySchema", "AttributeDefinitions", "Replicas" ], - "properties" : { - "TableId" : { - "type" : "string" - }, - "SSESpecification" : { - "$ref" : "#/definitions/SSESpecification" - }, - "StreamSpecification" : { - "$ref" : "#/definitions/StreamSpecification" }, - "Replicas" : { - "minItems" : 1, - "uniqueItems" : true, - "insertionOrder" : false, - "type" : "array", - "items" : { - "$ref" : "#/definitions/ReplicaSpecification" + "WriteProvisionedThroughputSettings" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "WriteCapacityAutoScalingSettings" : { + "$ref" : "#/definitions/CapacityAutoScalingSettings" + } } }, - "WriteProvisionedThroughputSettings" : { - "$ref" : "#/definitions/WriteProvisionedThroughputSettings" + "ReadOnDemandThroughputSettings" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "MaxReadRequestUnits" : { + "type" : "integer", + "minimum" : 1 + } + } }, "WriteOnDemandThroughputSettings" : { - "$ref" : "#/definitions/WriteOnDemandThroughputSettings" - }, - "TableName" : { - "type" : "string" - }, - "AttributeDefinitions" : { - "minItems" : 1, - "uniqueItems" : true, - "insertionOrder" : false, - "type" : "array", - "items" : { - "$ref" : "#/definitions/AttributeDefinition" + "type" : "object", + "additionalProperties" : false, + "properties" : { + "MaxWriteRequestUnits" : { + "type" : "integer", + "minimum" : 1 + } } }, - "BillingMode" : { - "type" : "string" + "CapacityAutoScalingSettings" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "MinCapacity" : { + "type" : "integer", + "minimum" : 1 + }, + "MaxCapacity" : { + "type" : "integer", + "minimum" : 1 + }, + "SeedCapacity" : { + "type" : "integer", + "minimum" : 1 + }, + "TargetTrackingScalingPolicyConfiguration" : { + "$ref" : "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required" : [ "MinCapacity", "MaxCapacity", "TargetTrackingScalingPolicyConfiguration" ] }, - "GlobalSecondaryIndexes" : { - "uniqueItems" : true, - "insertionOrder" : false, - "type" : "array", - "items" : { - "$ref" : "#/definitions/GlobalSecondaryIndex" - } + "TargetTrackingScalingPolicyConfiguration" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "DisableScaleIn" : { + "type" : "boolean" + }, + "ScaleInCooldown" : { + "type" : "integer", + "minimum" : 0 + }, + "ScaleOutCooldown" : { + "type" : "integer", + "minimum" : 0 + }, + "TargetValue" : { + "type" : "number", + "format" : "double" + } + }, + "required" : [ "TargetValue" ] }, - "KeySchema" : { - "minItems" : 1, - "maxItems" : 2, - "uniqueItems" : true, - "type" : "array", - "items" : { - "$ref" : "#/definitions/KeySchema" - } + "WarmThroughput" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "ReadUnitsPerSecond" : { + "type" : "integer", + "minimum" : 1 + }, + "WriteUnitsPerSecond" : { + "type" : "integer", + "minimum" : 1 + } + }, + "anyOf" : [ { + "required" : [ "ReadUnitsPerSecond" ] + }, { + "required" : [ "WriteUnitsPerSecond" ] + } ] + } + }, + "required" : [ "KeySchema", "AttributeDefinitions", "Replicas" ], + "readOnlyProperties" : [ "/properties/Arn", "/properties/StreamArn", "/properties/TableId" ], + "createOnlyProperties" : [ "/properties/LocalSecondaryIndexes", "/properties/TableName", "/properties/KeySchema" ], + "primaryIdentifier" : [ "/properties/TableName" ], + "additionalIdentifiers" : [ [ "/properties/Arn" ], [ "/properties/StreamArn" ] ], + "writeOnlyProperties" : [ "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" ], + "handlers" : { + "create" : { + "permissions" : [ "dynamodb:CreateTable", "dynamodb:CreateTableReplica", "dynamodb:Describe*", "dynamodb:UpdateTimeToLive", "dynamodb:UpdateContributorInsights", "dynamodb:UpdateContinuousBackups", "dynamodb:ListTagsOfResource", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateItem", "dynamodb:PutItem", "dynamodb:GetItem", "dynamodb:DeleteItem", "dynamodb:BatchWriteItem", "dynamodb:TagResource", "dynamodb:EnableKinesisStreamingDestination", "dynamodb:DisableKinesisStreamingDestination", "dynamodb:UpdateTableReplicaAutoScaling", "dynamodb:TagResource", "dynamodb:GetResourcePolicy", "dynamodb:PutResourcePolicy", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:Describe*", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "kinesis:ListStreams", "kinesis:DescribeStream", "kinesis:PutRecords", "kms:CreateGrant", "kms:DescribeKey", "kms:ListAliases", "kms:Decrypt", "kms:RevokeGrant", "cloudwatch:PutMetricData", "iam:CreateServiceLinkedRole" ] }, - "LocalSecondaryIndexes" : { - "uniqueItems" : true, - "insertionOrder" : false, - "type" : "array", - "items" : { - "$ref" : "#/definitions/LocalSecondaryIndex" - } + "read" : { + "permissions" : [ "dynamodb:Describe*", "dynamodb:GetResourcePolicy", "application-autoscaling:Describe*", "cloudwatch:PutMetricData", "dynamodb:ListTagsOfResource", "kms:DescribeKey" ] }, - "Arn" : { - "type" : "string" + "update" : { + "permissions" : [ "dynamodb:Describe*", "dynamodb:CreateTableReplica", "dynamodb:UpdateTable", "dynamodb:UpdateTimeToLive", "dynamodb:UpdateContinuousBackups", "dynamodb:UpdateContributorInsights", "dynamodb:ListTagsOfResource", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateItem", "dynamodb:PutItem", "dynamodb:GetItem", "dynamodb:DeleteItem", "dynamodb:BatchWriteItem", "dynamodb:DeleteTable", "dynamodb:DeleteTableReplica", "dynamodb:UpdateItem", "dynamodb:TagResource", "dynamodb:UntagResource", "dynamodb:EnableKinesisStreamingDestination", "dynamodb:DisableKinesisStreamingDestination", "dynamodb:UpdateTableReplicaAutoScaling", "dynamodb:UpdateKinesisStreamingDestination", "dynamodb:GetResourcePolicy", "dynamodb:PutResourcePolicy", "dynamodb:DeleteResourcePolicy", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:Describe*", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "kinesis:ListStreams", "kinesis:DescribeStream", "kinesis:PutRecords", "kms:CreateGrant", "kms:DescribeKey", "kms:ListAliases", "kms:RevokeGrant", "cloudwatch:PutMetricData" ], + "timeoutInMinutes" : 1200 }, - "StreamArn" : { - "type" : "string" + "delete" : { + "permissions" : [ "dynamodb:Describe*", "dynamodb:DeleteTable", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:Describe*", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget" ] }, - "TimeToLiveSpecification" : { - "$ref" : "#/definitions/TimeToLiveSpecification" + "list" : { + "permissions" : [ "dynamodb:ListTables", "cloudwatch:PutMetricData" ] } } } \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-dynamodb-table.json b/aws-cloudformation-schema/aws-dynamodb-table.json index c50e330e52..0558ce4210 100644 --- a/aws-cloudformation-schema/aws-dynamodb-table.json +++ b/aws-cloudformation-schema/aws-dynamodb-table.json @@ -9,7 +9,7 @@ }, "typeName" : "AWS::DynamoDB::Table", "readOnlyProperties" : [ "/properties/Arn", "/properties/StreamArn" ], - "description" : "The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*.\n You should be aware of the following behaviors when working with DDB tables:\n + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute).\n \n Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes.", + "description" : "The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*.\n You should be aware of the following behaviors when working with DDB tables:\n + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute).\n \n Our guidance is to use the latest schema documented for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes.", "createOnlyProperties" : [ "/properties/TableName", "/properties/ImportSourceSpecification" ], "primaryIdentifier" : [ "/properties/TableName" ], "required" : [ "KeySchema" ], @@ -281,6 +281,26 @@ }, "required" : [ "WriteCapacityUnits", "ReadCapacityUnits" ] }, + "WarmThroughput" : { + "anyOf" : [ { + "required" : [ "ReadUnitsPerSecond" ] + }, { + "required" : [ "WriteUnitsPerSecond" ] + } ], + "description" : "", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "ReadUnitsPerSecond" : { + "type" : "integer", + "minimum" : 1 + }, + "WriteUnitsPerSecond" : { + "type" : "integer", + "minimum" : 1 + } + } + }, "GlobalSecondaryIndex" : { "description" : "Represents the properties of a global secondary index.", "additionalProperties" : false, @@ -313,6 +333,10 @@ "items" : { "$ref" : "#/definitions/KeySchema" } + }, + "WarmThroughput" : { + "description" : "", + "$ref" : "#/definitions/WarmThroughput" } }, "required" : [ "IndexName", "Projection", "KeySchema" ] @@ -460,6 +484,10 @@ "description" : "Throughput for the specified table, which consists of values for ``ReadCapacityUnits`` and ``WriteCapacityUnits``. For more information about the contents of a provisioned throughput structure, see [Amazon DynamoDB Table ProvisionedThroughput](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ProvisionedThroughput.html). \n If you set ``BillingMode`` as ``PROVISIONED``, you must specify this property. If you set ``BillingMode`` as ``PAY_PER_REQUEST``, you cannot specify this property.", "$ref" : "#/definitions/ProvisionedThroughput" }, + "WarmThroughput" : { + "description" : "", + "$ref" : "#/definitions/WarmThroughput" + }, "TableName" : { "description" : "A name for the table. If you don't specify a name, CFNlong generates a unique physical ID and uses that ID for the table name. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html).\n If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.", "type" : "string" diff --git a/aws-cloudformation-schema/aws-ec2-launchtemplate.json b/aws-cloudformation-schema/aws-ec2-launchtemplate.json index d42ab5dad2..a2497d1a00 100644 --- a/aws-cloudformation-schema/aws-ec2-launchtemplate.json +++ b/aws-cloudformation-schema/aws-ec2-launchtemplate.json @@ -237,6 +237,16 @@ } } }, + "Cpu" : { + "description" : "", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "References" : { + "$ref" : "#/definitions/References" + } + } + }, "IamInstanceProfile" : { "description" : "Specifies an IAM instance profile, which is a container for an IAM role for your instance. You can use an IAM role to distribute your AWS credentials to your instances.\n If you are creating the launch template for use with an ASlong group, you can specify either the name or the ARN of the instance profile, but not both.\n ``IamInstanceProfile`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", "additionalProperties" : false, @@ -503,6 +513,17 @@ } } }, + "Reference" : { + "description" : "", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "InstanceFamily" : { + "description" : "The instance family to refer. Ensure that you specify the correct family name. For example, C6i and C6g are valid values, but C6 is not.", + "type" : "string" + } + } + }, "CpuOptions" : { "description" : "Specifies the CPU options for an instance. For more information, see [Optimize CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *User Guide*.\n ``CpuOptions`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", "additionalProperties" : false, @@ -804,6 +825,15 @@ } } }, + "References" : { + "uniqueItems" : true, + "description" : "A list of references to be used as baseline for the CPU performance. Currently, you can only specify a single reference across different instance type variations such as CPU manufacturers, architectures etc.", + "insertionOrder" : true, + "type" : "array", + "items" : { + "$ref" : "#/definitions/Reference" + } + }, "LaunchTemplateElasticInferenceAccelerator" : { "description" : "Specifies an elastic inference accelerator.\n ``LaunchTemplateElasticInferenceAccelerator`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", "additionalProperties" : false, @@ -839,14 +869,6 @@ "additionalProperties" : false, "type" : "object", "properties" : { - "LocalStorageTypes" : { - "uniqueItems" : false, - "description" : "The type of local storage that is required.\n + For instance types with hard disk drive (HDD) storage, specify ``hdd``.\n + For instance types with solid state drive (SSD) storage, specify ``ssd``.\n \n Default: ``hdd`` and ``ssd``", - "type" : "array", - "items" : { - "type" : "string" - } - }, "InstanceGenerations" : { "uniqueItems" : false, "description" : "Indicates whether current or previous generation instance types are included. The current generation instance types are recommended for use. Current generation instance types are typically the latest two to three generations in each instance family. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*.\n For current generation instance types, specify ``current``.\n For previous generation instance types, specify ``previous``.\n Default: Current and previous generation instance types", @@ -855,10 +877,6 @@ "type" : "string" } }, - "NetworkInterfaceCount" : { - "description" : "The minimum and maximum number of network interfaces.\n Default: No minimum or maximum limits", - "$ref" : "#/definitions/NetworkInterfaceCount" - }, "MemoryGiBPerVCpu" : { "description" : "The minimum and maximum amount of memory per vCPU, in GiB.\n Default: No minimum or maximum limits", "$ref" : "#/definitions/MemoryGiBPerVCpu" @@ -875,38 +893,70 @@ "description" : "The minimum and maximum number of vCPUs.", "$ref" : "#/definitions/VCpuCount" }, - "ExcludedInstanceTypes" : { + "AcceleratorManufacturers" : { "uniqueItems" : false, - "description" : "The instance types to exclude.\n You can use strings with one or more wild cards, represented by an asterisk (``*``), to exclude an instance type, size, or generation. The following are examples: ``m5.8xlarge``, ``c5*.*``, ``m5a.*``, ``r*``, ``*3*``.\n For example, if you specify ``c5*``,Amazon EC2 will exclude the entire C5 instance family, which includes all C5a and C5n instance types. If you specify ``m5a.*``, Amazon EC2 will exclude all the M5a instance types, but not the M5n instance types.\n If you specify ``ExcludedInstanceTypes``, you can't specify ``AllowedInstanceTypes``.\n Default: No excluded instance types", + "description" : "Indicates whether instance types must have accelerators by specific manufacturers.\n + For instance types with AWS devices, specify ``amazon-web-services``.\n + For instance types with AMD devices, specify ``amd``.\n + For instance types with Habana devices, specify ``habana``.\n + For instance types with NVIDIA devices, specify ``nvidia``.\n + For instance types with Xilinx devices, specify ``xilinx``.\n \n Default: Any manufacturer", "type" : "array", "items" : { - "description" : "The user data to make available to the instance.", "type" : "string" } }, - "AcceleratorManufacturers" : { + "LocalStorage" : { + "description" : "Indicates whether instance types with instance store volumes are included, excluded, or required. For more information, [Amazon EC2 instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) in the *Amazon EC2 User Guide*.\n + To include instance types with instance store volumes, specify ``included``.\n + To require only instance types with instance store volumes, specify ``required``.\n + To exclude instance types with instance store volumes, specify ``excluded``.\n \n Default: ``included``", + "type" : "string" + }, + "CpuManufacturers" : { "uniqueItems" : false, - "description" : "Indicates whether instance types must have accelerators by specific manufacturers.\n + For instance types with AWS devices, specify ``amazon-web-services``.\n + For instance types with AMD devices, specify ``amd``.\n + For instance types with Habana devices, specify ``habana``.\n + For instance types with NVIDIA devices, specify ``nvidia``.\n + For instance types with Xilinx devices, specify ``xilinx``.\n \n Default: Any manufacturer", + "description" : "The CPU manufacturers to include.\n + For instance types with Intel CPUs, specify ``intel``.\n + For instance types with AMD CPUs, specify ``amd``.\n + For instance types with AWS CPUs, specify ``amazon-web-services``.\n \n Don't confuse the CPU manufacturer with the CPU architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.\n Default: Any manufacturer", "type" : "array", "items" : { "type" : "string" } }, - "AllowedInstanceTypes" : { + "BareMetal" : { + "description" : "Indicates whether bare metal instance types must be included, excluded, or required.\n + To include bare metal instance types, specify ``included``.\n + To require only bare metal instance types, specify ``required``.\n + To exclude bare metal instance types, specify ``excluded``.\n \n Default: ``excluded``", + "type" : "string" + }, + "RequireHibernateSupport" : { + "description" : "Indicates whether instance types must support hibernation for On-Demand Instances.\n This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html).\n Default: ``false``", + "type" : "boolean" + }, + "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice" : { + "description" : "[Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price.\n Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``.", + "type" : "integer" + }, + "OnDemandMaxPricePercentageOverLowestPrice" : { + "description" : "[Price protection] The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n To turn off price protection, specify a high value, such as ``999999``.\n This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html).\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.\n Default: ``20``", + "type" : "integer" + }, + "MemoryMiB" : { + "description" : "The minimum and maximum amount of memory, in MiB.", + "$ref" : "#/definitions/MemoryMiB" + }, + "LocalStorageTypes" : { "uniqueItems" : false, - "description" : "The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes.\n You can use strings with one or more wild cards, represented by an asterisk (``*``), to allow an instance type, size, or generation. The following are examples: ``m5.8xlarge``, ``c5*.*``, ``m5a.*``, ``r*``, ``*3*``.\n For example, if you specify ``c5*``,Amazon EC2 will allow the entire C5 instance family, which includes all C5a and C5n instance types. If you specify ``m5a.*``, Amazon EC2 will allow all the M5a instance types, but not the M5n instance types.\n If you specify ``AllowedInstanceTypes``, you can't specify ``ExcludedInstanceTypes``.\n Default: All instance types", + "description" : "The type of local storage that is required.\n + For instance types with hard disk drive (HDD) storage, specify ``hdd``.\n + For instance types with solid state drive (SSD) storage, specify ``ssd``.\n \n Default: ``hdd`` and ``ssd``", "type" : "array", "items" : { "type" : "string" } }, - "LocalStorage" : { - "description" : "Indicates whether instance types with instance store volumes are included, excluded, or required. For more information, [Amazon EC2 instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) in the *Amazon EC2 User Guide*.\n + To include instance types with instance store volumes, specify ``included``.\n + To require only instance types with instance store volumes, specify ``required``.\n + To exclude instance types with instance store volumes, specify ``excluded``.\n \n Default: ``included``", - "type" : "string" + "NetworkInterfaceCount" : { + "description" : "The minimum and maximum number of network interfaces.\n Default: No minimum or maximum limits", + "$ref" : "#/definitions/NetworkInterfaceCount" }, - "CpuManufacturers" : { + "ExcludedInstanceTypes" : { "uniqueItems" : false, - "description" : "The CPU manufacturers to include.\n + For instance types with Intel CPUs, specify ``intel``.\n + For instance types with AMD CPUs, specify ``amd``.\n + For instance types with AWS CPUs, specify ``amazon-web-services``.\n \n Don't confuse the CPU manufacturer with the CPU architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.\n Default: Any manufacturer", + "description" : "The instance types to exclude.\n You can use strings with one or more wild cards, represented by an asterisk (``*``), to exclude an instance type, size, or generation. The following are examples: ``m5.8xlarge``, ``c5*.*``, ``m5a.*``, ``r*``, ``*3*``.\n For example, if you specify ``c5*``,Amazon EC2 will exclude the entire C5 instance family, which includes all C5a and C5n instance types. If you specify ``m5a.*``, Amazon EC2 will exclude all the M5a instance types, but not the M5n instance types.\n If you specify ``ExcludedInstanceTypes``, you can't specify ``AllowedInstanceTypes``.\n Default: No excluded instance types", + "type" : "array", + "items" : { + "description" : "The user data to make available to the instance.", + "type" : "string" + } + }, + "AllowedInstanceTypes" : { + "uniqueItems" : false, + "description" : "The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes.\n You can use strings with one or more wild cards, represented by an asterisk (``*``), to allow an instance type, size, or generation. The following are examples: ``m5.8xlarge``, ``c5*.*``, ``m5a.*``, ``r*``, ``*3*``.\n For example, if you specify ``c5*``,Amazon EC2 will allow the entire C5 instance family, which includes all C5a and C5n instance types. If you specify ``m5a.*``, Amazon EC2 will allow all the M5a instance types, but not the M5n instance types.\n If you specify ``AllowedInstanceTypes``, you can't specify ``ExcludedInstanceTypes``.\n Default: All instance types", "type" : "array", "items" : { "type" : "string" @@ -920,18 +970,6 @@ "description" : "The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps).\n Default: No minimum or maximum limits", "$ref" : "#/definitions/NetworkBandwidthGbps" }, - "BareMetal" : { - "description" : "Indicates whether bare metal instance types must be included, excluded, or required.\n + To include bare metal instance types, specify ``included``.\n + To require only bare metal instance types, specify ``required``.\n + To exclude bare metal instance types, specify ``excluded``.\n \n Default: ``excluded``", - "type" : "string" - }, - "RequireHibernateSupport" : { - "description" : "Indicates whether instance types must support hibernation for On-Demand Instances.\n This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html).\n Default: ``false``", - "type" : "boolean" - }, - "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice" : { - "description" : "[Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price.\n Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``.", - "type" : "integer" - }, "SpotMaxPricePercentageOverLowestPrice" : { "description" : "[Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.\n This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html).\n Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``.\n Default: ``100``", "type" : "integer" @@ -940,10 +978,6 @@ "description" : "The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide*.\n Default: No minimum or maximum limits", "$ref" : "#/definitions/BaselineEbsBandwidthMbps" }, - "OnDemandMaxPricePercentageOverLowestPrice" : { - "description" : "[Price protection] The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n To turn off price protection, specify a high value, such as ``999999``.\n This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html).\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.\n Default: ``20``", - "type" : "integer" - }, "AcceleratorNames" : { "uniqueItems" : false, "description" : "The accelerators that must be on the instance type.\n + For instance types with NVIDIA A10G GPUs, specify ``a10g``.\n + For instance types with NVIDIA A100 GPUs, specify ``a100``.\n + For instance types with NVIDIA H100 GPUs, specify ``h100``.\n + For instance types with AWS Inferentia chips, specify ``inferentia``.\n + For instance types with NVIDIA GRID K520 GPUs, specify ``k520``.\n + For instance types with NVIDIA K80 GPUs, specify ``k80``.\n + For instance types with NVIDIA M60 GPUs, specify ``m60``.\n + For instance types with AMD Radeon Pro V520 GPUs, specify ``radeon-pro-v520``.\n + For instance types with NVIDIA T4 GPUs, specify ``t4``.\n + For instance types with NVIDIA T4G GPUs, specify ``t4g``.\n + For instance types with Xilinx VU9P FPGAs, specify ``vu9p``.\n + For instance types with NVIDIA V100 GPUs, specify ``v100``.\n \n Default: Any accelerator", @@ -960,10 +994,6 @@ "description" : "Indicates whether burstable performance T instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html).\n + To include burstable performance instance types, specify ``included``.\n + To require only burstable performance instance types, specify ``required``.\n + To exclude burstable performance instance types, specify ``excluded``.\n \n Default: ``excluded``", "type" : "string" }, - "MemoryMiB" : { - "description" : "The minimum and maximum amount of memory, in MiB.", - "$ref" : "#/definitions/MemoryMiB" - }, "TotalLocalStorageGB" : { "description" : "The minimum and maximum amount of total local storage, in GB.\n Default: No minimum or maximum limits", "$ref" : "#/definitions/TotalLocalStorageGB" diff --git a/aws-cloudformation-schema/aws-eks-nodegroup.json b/aws-cloudformation-schema/aws-eks-nodegroup.json index 5e1d04af51..4d2ce9ca6f 100644 --- a/aws-cloudformation-schema/aws-eks-nodegroup.json +++ b/aws-cloudformation-schema/aws-eks-nodegroup.json @@ -96,6 +96,17 @@ "maximum" : 100 } } + }, + "NodeRepairConfig" : { + "description" : "The node auto repair configuration for node group.", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "Enabled" : { + "description" : "Set this value to true to enable node auto repair for the node group.", + "type" : "boolean" + } + } } }, "properties" : { @@ -196,6 +207,10 @@ "description" : "The node group update configuration.", "$ref" : "#/definitions/UpdateConfig" }, + "NodeRepairConfig" : { + "description" : "The node auto repair configuration for node group.", + "$ref" : "#/definitions/NodeRepairConfig" + }, "Version" : { "description" : "The Kubernetes version to use for your managed nodes.", "type" : "string" diff --git a/aws-cloudformation-schema/aws-elasticache-user.json b/aws-cloudformation-schema/aws-elasticache-user.json index 61673e16df..723747150b 100644 --- a/aws-cloudformation-schema/aws-elasticache-user.json +++ b/aws-cloudformation-schema/aws-elasticache-user.json @@ -41,9 +41,9 @@ "type" : "string" }, "Engine" : { - "description" : "Must be redis.", + "description" : "The target cache engine for the user.", "type" : "string", - "enum" : [ "redis" ] + "enum" : [ "redis", "valkey" ] }, "AccessString" : { "description" : "Access permissions string used for this user account.", @@ -110,7 +110,7 @@ "additionalProperties" : false, "required" : [ "UserId", "UserName", "Engine" ], "readOnlyProperties" : [ "/properties/Status", "/properties/Arn" ], - "createOnlyProperties" : [ "/properties/UserId", "/properties/UserName", "/properties/Engine" ], + "createOnlyProperties" : [ "/properties/UserId", "/properties/UserName" ], "writeOnlyProperties" : [ "/properties/Passwords", "/properties/NoPasswordRequired", "/properties/AccessString", "/properties/AuthenticationMode" ], "primaryIdentifier" : [ "/properties/UserId" ], "handlers" : { diff --git a/aws-cloudformation-schema/aws-elasticache-usergroup.json b/aws-cloudformation-schema/aws-elasticache-usergroup.json index c83c9cd875..d470f81be2 100644 --- a/aws-cloudformation-schema/aws-elasticache-usergroup.json +++ b/aws-cloudformation-schema/aws-elasticache-usergroup.json @@ -37,9 +37,9 @@ "type" : "string" }, "Engine" : { - "description" : "Must be redis.", + "description" : "The target cache engine for the user group.", "type" : "string", - "enum" : [ "redis" ] + "enum" : [ "redis", "valkey" ] }, "UserIds" : { "type" : "array", @@ -69,7 +69,7 @@ "additionalProperties" : false, "required" : [ "UserGroupId", "Engine", "UserIds" ], "readOnlyProperties" : [ "/properties/Status", "/properties/Arn" ], - "createOnlyProperties" : [ "/properties/UserGroupId", "/properties/Engine" ], + "createOnlyProperties" : [ "/properties/UserGroupId" ], "primaryIdentifier" : [ "/properties/UserGroupId" ], "tagging" : { "taggable" : true, diff --git a/aws-cloudformation-schema/aws-events-connection.json b/aws-cloudformation-schema/aws-events-connection.json index b102a6a275..4d1a51e369 100644 --- a/aws-cloudformation-schema/aws-events-connection.json +++ b/aws-cloudformation-schema/aws-events-connection.json @@ -23,9 +23,9 @@ } }, "typeName" : "AWS::Events::Connection", - "readOnlyProperties" : [ "/properties/Arn", "/properties/SecretArn" ], + "readOnlyProperties" : [ "/properties/Arn", "/properties/SecretArn", "/properties/AuthParameters/ConnectivityParameters/ResourceParameters/ResourceAssociationIdentifier" ], "description" : "Resource Type definition for AWS::Events::Connection.", - "writeOnlyProperties" : [ "/properties/AuthParameters" ], + "writeOnlyProperties" : [ "/properties/AuthParameters/BasicAuthParameters/Password", "/properties/AuthParameters/ApiKeyAuthParameters/ApiKeyValue", "/properties/AuthParameters/OAuthParameters/ClientParameters/ClientSecret", "/properties/AuthParameters/OAuthParameters/OAuthHttpParameters/HeaderParameters", "/properties/AuthParameters/OAuthParameters/OAuthHttpParameters/QueryStringParameters", "/properties/AuthParameters/OAuthParameters/OAuthHttpParameters/BodyParameters", "/properties/AuthParameters/InvocationHttpParameters" ], "createOnlyProperties" : [ "/properties/Name" ], "additionalProperties" : false, "primaryIdentifier" : [ "/properties/Name" ], diff --git a/aws-cloudformation-schema/aws-lambda-permission.json b/aws-cloudformation-schema/aws-lambda-permission.json index dd64e8c3ab..27b1ef05a6 100644 --- a/aws-cloudformation-schema/aws-lambda-permission.json +++ b/aws-cloudformation-schema/aws-lambda-permission.json @@ -98,7 +98,7 @@ "Principal" : { "minLength" : 1, "pattern" : "^.*$", - "description" : "The AWS-service or AWS-account that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service.", + "description" : "The AWS-service, AWS-account, IAM user, or IAM role that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service.", "type" : "string", "maxLength" : 256 } diff --git a/aws-cloudformation-schema/aws-redshift-integration.json b/aws-cloudformation-schema/aws-redshift-integration.json index 9509001d1f..55792a35f5 100644 --- a/aws-cloudformation-schema/aws-redshift-integration.json +++ b/aws-cloudformation-schema/aws-redshift-integration.json @@ -15,11 +15,11 @@ }, "SourceArn" : { "type" : "string", - "description" : "The Amazon Resource Name (ARN) of the database to use as the source for replication, for example, arn:aws:dynamodb:us-east-2:123412341234:table/dynamotable" + "description" : "The Amazon Resource Name (ARN) of the database to use as the source for replication" }, "TargetArn" : { "type" : "string", - "description" : "The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication, for example, arn:aws:redshift:us-east-2:123412341234:namespace:e43aab3e-10a3-4ec4-83d4-f227ff9bfbcf" + "description" : "The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication" }, "Tags" : { "type" : "array", diff --git a/aws-cloudformation-schema/aws-redshiftserverless-namespace.json b/aws-cloudformation-schema/aws-redshiftserverless-namespace.json index 630c0b7449..c8d89576ec 100644 --- a/aws-cloudformation-schema/aws-redshiftserverless-namespace.json +++ b/aws-cloudformation-schema/aws-redshiftserverless-namespace.json @@ -212,28 +212,33 @@ } }, "tagging" : { - "taggable" : false + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : false, + "tagProperty" : "/properties/Tags", + "permissions" : [ "redshift-serverless:ListTagsForResource", "redshift-serverless:TagResource", "redshift-serverless:UntagResource" ] }, "required" : [ "NamespaceName" ], "readOnlyProperties" : [ "/properties/Namespace", "/properties/Namespace/NamespaceArn", "/properties/Namespace/NamespaceId", "/properties/Namespace/NamespaceName", "/properties/Namespace/AdminUsername", "/properties/Namespace/DbName", "/properties/Namespace/KmsKeyId", "/properties/Namespace/DefaultIamRoleArn", "/properties/Namespace/IamRoles", "/properties/Namespace/LogExports", "/properties/Namespace/Status", "/properties/Namespace/CreationDate" ], - "writeOnlyProperties" : [ "/properties/AdminUserPassword", "/properties/FinalSnapshotName", "/properties/FinalSnapshotRetentionPeriod", "/properties/Tags", "/properties/Tags/*/Key", "/properties/Tags/*/Value", "/properties/ManageAdminPassword", "/properties/RedshiftIdcApplicationArn" ], + "writeOnlyProperties" : [ "/properties/AdminUserPassword", "/properties/FinalSnapshotName", "/properties/FinalSnapshotRetentionPeriod", "/properties/ManageAdminPassword", "/properties/RedshiftIdcApplicationArn" ], "createOnlyProperties" : [ "/properties/NamespaceName", "/properties/Tags" ], "primaryIdentifier" : [ "/properties/NamespaceName" ], "handlers" : { "create" : { - "permissions" : [ "iam:PassRole", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion", "kms:Encrypt", "kms:Decrypt", "kms:DescribeKey", "kms:GenerateDataKeyPair", "kms:GenerateDataKey", "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant", "kms:RetireGrant", "redshift-serverless:CreateNamespace", "redshift-serverless:GetNamespace", "redshift-serverless:ListSnapshotCopyConfigurations", "redshift-serverless:CreateSnapshotCopyConfiguration", "redshift:GetResourcePolicy", "redshift:PutResourcePolicy", "secretsmanager:CreateSecret", "secretsmanager:TagResource", "secretsmanager:RotateSecret", "secretsmanager:DescribeSecret" ] + "permissions" : [ "iam:CreateServiceLinkedRole", "iam:PassRole", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion", "kms:Encrypt", "kms:Decrypt", "kms:DescribeKey", "kms:GenerateDataKeyPair", "kms:GenerateDataKey", "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant", "kms:RetireGrant", "redshift-serverless:CreateNamespace", "redshift-serverless:GetNamespace", "redshift-serverless:ListSnapshotCopyConfigurations", "redshift-serverless:CreateSnapshotCopyConfiguration", "redshift-serverless:ListTagsForResource", "redshift-serverless:TagResource", "redshift:GetResourcePolicy", "redshift:PutResourcePolicy", "secretsmanager:CreateSecret", "secretsmanager:TagResource", "secretsmanager:RotateSecret", "secretsmanager:DescribeSecret" ] }, "read" : { - "permissions" : [ "iam:PassRole", "redshift-serverless:GetNamespace", "redshift:GetResourcePolicy", "redshift-serverless:ListSnapshotCopyConfigurations" ] + "permissions" : [ "iam:PassRole", "redshift-serverless:GetNamespace", "redshift-serverless:ListTagsForResource", "redshift:GetResourcePolicy", "redshift-serverless:ListSnapshotCopyConfigurations" ] }, "update" : { - "permissions" : [ "iam:PassRole", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion", "kms:Encrypt", "kms:Decrypt", "kms:DescribeKey", "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant", "kms:RetireGrant", "kms:GenerateDataKeyPair", "kms:GenerateDataKey", "redshift-serverless:UpdateNamespace", "redshift-serverless:GetNamespace", "redshift-serverless:ListSnapshotCopyConfigurations", "redshift-serverless:CreateSnapshotCopyConfiguration", "redshift-serverless:UpdateSnapshotCopyConfiguration", "redshift-serverless:DeleteSnapshotCopyConfiguration", "redshift:GetResourcePolicy", "redshift:PutResourcePolicy", "redshift:DeleteResourcePolicy", "secretsmanager:CreateSecret", "secretsmanager:TagResource", "secretsmanager:RotateSecret", "secretsmanager:DescribeSecret", "secretsmanager:UpdateSecret", "secretsmanager:DeleteSecret" ] + "permissions" : [ "iam:PassRole", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion", "kms:Encrypt", "kms:Decrypt", "kms:DescribeKey", "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant", "kms:RetireGrant", "kms:GenerateDataKeyPair", "kms:GenerateDataKey", "redshift-serverless:UpdateNamespace", "redshift-serverless:GetNamespace", "redshift-serverless:ListSnapshotCopyConfigurations", "redshift-serverless:CreateSnapshotCopyConfiguration", "redshift-serverless:UpdateSnapshotCopyConfiguration", "redshift-serverless:DeleteSnapshotCopyConfiguration", "redshift-serverless:ListTagsForResource", "redshift-serverless:TagResource", "redshift-serverless:UntagResource", "redshift:GetResourcePolicy", "redshift:PutResourcePolicy", "redshift:DeleteResourcePolicy", "secretsmanager:CreateSecret", "secretsmanager:TagResource", "secretsmanager:RotateSecret", "secretsmanager:DescribeSecret", "secretsmanager:UpdateSecret", "secretsmanager:DeleteSecret" ] }, "delete" : { - "permissions" : [ "iam:PassRole", "redshift-serverless:DeleteNamespace", "redshift-serverless:GetNamespace", "kms:RetireGrant", "secretsmanager:DescribeSecret", "secretsmanager:DeleteSecret", "redshift:DeleteResourcePolicy" ] + "permissions" : [ "iam:PassRole", "redshift-serverless:DeleteNamespace", "redshift-serverless:GetNamespace", "redshift-serverless:ListTagsForResource", "redshift-serverless:UntagResource", "kms:RetireGrant", "secretsmanager:DescribeSecret", "secretsmanager:DeleteSecret", "redshift:DeleteResourcePolicy" ] }, "list" : { - "permissions" : [ "iam:PassRole", "redshift-serverless:ListNamespaces" ] + "permissions" : [ "iam:PassRole", "redshift-serverless:ListNamespaces", "redshift-serverless:ListTagsForResource" ] } }, "additionalProperties" : false diff --git a/aws-cloudformation-schema/aws-redshiftserverless-workgroup.json b/aws-cloudformation-schema/aws-redshiftserverless-workgroup.json index 164a7f3160..d96fd145a2 100644 --- a/aws-cloudformation-schema/aws-redshiftserverless-workgroup.json +++ b/aws-cloudformation-schema/aws-redshiftserverless-workgroup.json @@ -259,29 +259,34 @@ } }, "tagging" : { - "taggable" : true + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : false, + "tagProperty" : "/properties/Tags", + "permissions" : [ "redshift-serverless:ListTagsForResource", "redshift-serverless:TagResource", "redshift-serverless:UntagResource" ] }, "additionalProperties" : false, "required" : [ "WorkgroupName" ], "createOnlyProperties" : [ "/properties/WorkgroupName", "/properties/NamespaceName" ], "readOnlyProperties" : [ "/properties/Workgroup", "/properties/Workgroup/WorkgroupId", "/properties/Workgroup/WorkgroupArn", "/properties/Workgroup/WorkgroupName", "/properties/Workgroup/NamespaceName", "/properties/Workgroup/BaseCapacity", "/properties/Workgroup/MaxCapacity", "/properties/Workgroup/EnhancedVpcRouting", "/properties/Workgroup/ConfigParameters/*/ParameterKey", "/properties/Workgroup/ConfigParameters/*/ParameterValue", "/properties/Workgroup/SecurityGroupIds", "/properties/Workgroup/SubnetIds", "/properties/Workgroup/Status", "/properties/Workgroup/Endpoint/Address", "/properties/Workgroup/Endpoint/Port", "/properties/Workgroup/Endpoint/VpcEndpoints/*/VpcEndpointId", "/properties/Workgroup/Endpoint/VpcEndpoints/*/VpcId", "/properties/Workgroup/Endpoint/VpcEndpoints/*/NetworkInterfaces/*/NetworkInterfaceId", "/properties/Workgroup/Endpoint/VpcEndpoints/*/NetworkInterfaces/*/SubnetId", "/properties/Workgroup/Endpoint/VpcEndpoints/*/NetworkInterfaces/*/PrivateIpAddress", "/properties/Workgroup/Endpoint/VpcEndpoints/*/NetworkInterfaces/*/AvailabilityZone", "/properties/Workgroup/PubliclyAccessible", "/properties/Workgroup/CreationDate" ], - "writeOnlyProperties" : [ "/properties/BaseCapacity", "/properties/MaxCapacity", "/properties/ConfigParameters", "/properties/SecurityGroupIds", "/properties/SubnetIds", "/properties/Tags", "/properties/Tags/*/Key", "/properties/Tags/*/Value" ], + "writeOnlyProperties" : [ "/properties/BaseCapacity", "/properties/MaxCapacity", "/properties/ConfigParameters", "/properties/SecurityGroupIds", "/properties/SubnetIds" ], "primaryIdentifier" : [ "/properties/WorkgroupName" ], "handlers" : { "create" : { - "permissions" : [ "ec2:DescribeVpcAttribute", "ec2:DescribeSecurityGroups", "ec2:DescribeAddresses", "ec2:DescribeInternetGateways", "ec2:DescribeSubnets", "ec2:DescribeAccountAttributes", "ec2:DescribeAvailabilityZones", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:GetWorkgroup", "redshift-serverless:GetNamespace" ] + "permissions" : [ "ec2:DescribeVpcAttribute", "ec2:DescribeSecurityGroups", "ec2:DescribeAddresses", "ec2:DescribeInternetGateways", "ec2:DescribeSubnets", "ec2:DescribeAccountAttributes", "ec2:DescribeAvailabilityZones", "redshift-serverless:CreateNamespace", "redshift-serverless:CreateWorkgroup", "redshift-serverless:GetWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:ListTagsForResource", "redshift-serverless:TagResource" ] }, "read" : { - "permissions" : [ "ec2:DescribeVpcAttribute", "ec2:DescribeSecurityGroups", "ec2:DescribeAddresses", "ec2:DescribeInternetGateways", "ec2:DescribeSubnets", "ec2:DescribeAccountAttributes", "ec2:DescribeAvailabilityZones", "redshift-serverless:GetWorkgroup" ] + "permissions" : [ "ec2:DescribeVpcAttribute", "ec2:DescribeSecurityGroups", "ec2:DescribeAddresses", "ec2:DescribeInternetGateways", "ec2:DescribeSubnets", "ec2:DescribeAccountAttributes", "ec2:DescribeAvailabilityZones", "redshift-serverless:GetWorkgroup", "redshift-serverless:ListTagsForResource" ] }, "update" : { - "permissions" : [ "ec2:DescribeVpcAttribute", "ec2:DescribeSecurityGroups", "ec2:DescribeAddresses", "ec2:DescribeInternetGateways", "ec2:DescribeSubnets", "ec2:DescribeAccountAttributes", "ec2:DescribeAvailabilityZones", "redshift-serverless:ListTagsForResource", "redshift-serverless:TagResource", "redshift-serverless:UntagResource", "redshift-serverless:GetWorkgroup", "redshift-serverless:UpdateWorkgroup" ] + "permissions" : [ "ec2:DescribeVpcAttribute", "ec2:DescribeSecurityGroups", "ec2:DescribeAddresses", "ec2:DescribeInternetGateways", "ec2:DescribeSubnets", "ec2:DescribeAccountAttributes", "ec2:DescribeAvailabilityZones", "redshift-serverless:ListTagsForResource", "redshift-serverless:TagResource", "redshift-serverless:UntagResource", "redshift-serverless:GetWorkgroup", "redshift-serverless:UpdateWorkgroup", "redshift-serverless:ListTagsForResource", "redshift-serverless:TagResource", "redshift-serverless:UntagResource" ] }, "delete" : { - "permissions" : [ "ec2:DescribeVpcAttribute", "ec2:DescribeSecurityGroups", "ec2:DescribeAddresses", "ec2:DescribeInternetGateways", "ec2:DescribeSubnets", "ec2:DescribeAccountAttributes", "ec2:DescribeAvailabilityZones", "redshift-serverless:GetWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:DeleteWorkgroup" ] + "permissions" : [ "ec2:DescribeVpcAttribute", "ec2:DescribeSecurityGroups", "ec2:DescribeAddresses", "ec2:DescribeInternetGateways", "ec2:DescribeSubnets", "ec2:DescribeAccountAttributes", "ec2:DescribeAvailabilityZones", "redshift-serverless:GetWorkgroup", "redshift-serverless:GetNamespace", "redshift-serverless:DeleteWorkgroup", "redshift-serverless:ListTagsForResource", "redshift-serverless:UntagResource" ] }, "list" : { - "permissions" : [ "ec2:DescribeVpcAttribute", "ec2:DescribeSecurityGroups", "ec2:DescribeAddresses", "ec2:DescribeInternetGateways", "ec2:DescribeSubnets", "ec2:DescribeAccountAttributes", "ec2:DescribeAvailabilityZones", "redshift-serverless:ListWorkgroups" ] + "permissions" : [ "ec2:DescribeVpcAttribute", "ec2:DescribeSecurityGroups", "ec2:DescribeAddresses", "ec2:DescribeInternetGateways", "ec2:DescribeSubnets", "ec2:DescribeAccountAttributes", "ec2:DescribeAvailabilityZones", "redshift-serverless:ListWorkgroups", "redshift-serverless:ListTagsForResource" ] } } } \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-sagemaker-cluster.json b/aws-cloudformation-schema/aws-sagemaker-cluster.json index 88619b1285..e412510f15 100644 --- a/aws-cloudformation-schema/aws-sagemaker-cluster.json +++ b/aws-cloudformation-schema/aws-sagemaker-cluster.json @@ -189,6 +189,9 @@ }, "OnStartDeepHealthChecks" : { "$ref" : "#/definitions/OnStartDeepHealthChecks" + }, + "OverrideVpcConfig" : { + "$ref" : "#/definitions/VpcConfig" } }, "required" : [ "ExecutionRole", "InstanceCount", "InstanceGroupName", "InstanceType", "LifeCycleConfig" ] @@ -275,7 +278,7 @@ "primaryIdentifier" : [ "/properties/ClusterArn" ], "additionalIdentifiers" : [ [ "/properties/ClusterName" ] ], "readOnlyProperties" : [ "/properties/ClusterArn", "/properties/CreationTime", "/properties/ClusterStatus", "/properties/FailureMessage", "/properties/InstanceGroups/*/CurrentCount" ], - "createOnlyProperties" : [ "/properties/ClusterName", "/properties/VpcConfig", "/properties/Orchestrator", "/properties/InstanceGroups/*/ExecutionRole", "/properties/InstanceGroups/*/InstanceGroupName", "/properties/InstanceGroups/*/InstanceType", "/properties/InstanceGroups/*/ThreadsPerCore" ], + "createOnlyProperties" : [ "/properties/ClusterName", "/properties/VpcConfig", "/properties/Orchestrator", "/properties/InstanceGroups/*/OverrideVpcConfig", "/properties/InstanceGroups/*/ExecutionRole", "/properties/InstanceGroups/*/InstanceGroupName", "/properties/InstanceGroups/*/InstanceType", "/properties/InstanceGroups/*/ThreadsPerCore" ], "tagging" : { "taggable" : true, "tagOnCreate" : true, diff --git a/aws-cloudformation-schema/aws-vpclattice-accesslogsubscription.json b/aws-cloudformation-schema/aws-vpclattice-accesslogsubscription.json index 20832ba0f3..cb4c44c0ae 100644 --- a/aws-cloudformation-schema/aws-vpclattice-accesslogsubscription.json +++ b/aws-cloudformation-schema/aws-vpclattice-accesslogsubscription.json @@ -55,8 +55,12 @@ "ResourceIdentifier" : { "type" : "string", "maxLength" : 2048, - "minLength" : 20, - "pattern" : "^((((sn)|(svc))-[0-9a-z]{17})|(arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:((servicenetwork/sn)|(service/svc))-[0-9a-z]{17}))$" + "minLength" : 17, + "pattern" : "^((((sn)|(svc)|(rcfg))-[0-9a-z]{17})|(arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:((servicenetwork/sn)|(resourceconfiguration/rcfg)|(service/svc))-[0-9a-z]{17}))$" + }, + "ServiceNetworkLogType" : { + "type" : "string", + "enum" : [ "SERVICE", "RESOURCE" ] }, "Tags" : { "type" : "array", @@ -74,7 +78,7 @@ "writeOnlyProperties" : [ "/properties/ResourceIdentifier" ], "createOnlyProperties" : [ "/properties/ResourceIdentifier" ], "primaryIdentifier" : [ "/properties/Arn" ], - "additionalIdentifiers" : [ [ "/properties/Id" ], [ "/properties/ResourceIdentifier" ] ], + "additionalIdentifiers" : [ [ "/properties/Id" ], [ "/properties/ResourceIdentifier", "/properties/DestinationArn", "/properties/ServiceNetworkLogType" ] ], "handlers" : { "create" : { "permissions" : [ "vpc-lattice:CreateAccessLogSubscription", "vpc-lattice:TagResource", "vpc-lattice:GetAccessLogSubscription", "vpc-lattice:ListTagsForResource", "logs:CreateLogDelivery", "logs:CreateLogStream", "logs:PutDestination", "logs:PutDestinationPolicy", "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups", "logs:GetLogDelivery", "s3:PutBucketLogging", "s3:GetBucketLogging", "s3:GetBucketPolicy", "s3:PutBucketPolicy", "firehose:TagDeliveryStream", "firehose:CreateDeliveryStream", "firehose:DescribeDeliveryStream", "iam:CreateServiceLinkedRole" ] diff --git a/aws-cloudformation-schema/aws-vpclattice-servicenetwork.json b/aws-cloudformation-schema/aws-vpclattice-servicenetwork.json index bdee595286..a8a0a6c191 100644 --- a/aws-cloudformation-schema/aws-vpclattice-servicenetwork.json +++ b/aws-cloudformation-schema/aws-vpclattice-servicenetwork.json @@ -3,6 +3,16 @@ "description" : "A service network is a logical boundary for a collection of services. You can associate services and VPCs with a service network.", "additionalProperties" : false, "definitions" : { + "SharingConfig" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "enabled" : { + "type" : "boolean" + } + }, + "required" : [ "enabled" ] + }, "Tag" : { "type" : "object", "additionalProperties" : false, @@ -60,6 +70,9 @@ "items" : { "$ref" : "#/definitions/Tag" } + }, + "SharingConfig" : { + "$ref" : "#/definitions/SharingConfig" } }, "readOnlyProperties" : [ "/properties/Arn", "/properties/CreatedAt", "/properties/Id", "/properties/LastUpdatedAt" ], diff --git a/meta/.botocore.version b/meta/.botocore.version index a5117d5cbb..4b6a5d4aa9 100644 --- a/meta/.botocore.version +++ b/meta/.botocore.version @@ -1 +1 @@ -1.35.60 +1.35.63 diff --git a/provider/cmd/pulumi-gen-aws-native/supported-types.txt b/provider/cmd/pulumi-gen-aws-native/supported-types.txt index 2a59d9c870..30e5b90592 100644 --- a/provider/cmd/pulumi-gen-aws-native/supported-types.txt +++ b/provider/cmd/pulumi-gen-aws-native/supported-types.txt @@ -241,6 +241,7 @@ AWS::Connect::UserHierarchyStructure AWS::Connect::View AWS::Connect::ViewVersion AWS::ConnectCampaigns::Campaign +AWS::ConnectCampaignsV2::Campaign AWS::ControlTower::EnabledBaseline AWS::ControlTower::EnabledControl AWS::ControlTower::LandingZone diff --git a/provider/cmd/pulumi-resource-aws-native/metadata.json b/provider/cmd/pulumi-resource-aws-native/metadata.json index 631f4bf057..1400b047d7 100644 --- a/provider/cmd/pulumi-resource-aws-native/metadata.json +++ b/provider/cmd/pulumi-resource-aws-native/metadata.json @@ -33,8 +33,7 @@ "outputs": { "analyzerConfiguration": { "$ref": "#/types/aws-native:accessanalyzer:AnalyzerConfigurationProperties", - "description": "The configuration for the analyzer", - "replaceOnChanges": true + "description": "The configuration for the analyzer" }, "analyzerName": { "type": "string", @@ -74,7 +73,6 @@ "type" ], "createOnly": [ - "analyzerConfiguration", "analyzerName", "type" ], @@ -5325,6 +5323,9 @@ "type": "string", "description": "The scaling policy type.\n The following policy types are supported: \n ``TargetTrackingScaling``—Not supported for Amazon EMR\n ``StepScaling``—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune." }, + "predictiveScalingPolicyConfiguration": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingPolicyConfiguration" + }, "resourceId": { "type": "string", "description": "The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.\n + ECS service - The resource type is ``service`` and the unique identifier is the cluster name and service name. Example: ``service/my-cluster/my-service``.\n + Spot Fleet - The resource type is ``spot-fleet-request`` and the unique identifier is the Spot Fleet request ID. Example: ``spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE``.\n + EMR cluster - The resource type is ``instancegroup`` and the unique identifier is the cluster ID and instance group ID. Example: ``instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0``.\n + AppStream 2.0 fleet - The resource type is ``fleet`` and the unique identifier is the fleet name. Example: ``fleet/sample-fleet``.\n + DynamoDB table - The resource type is ``table`` and the unique identifier is the table name. Example: ``table/my-table``.\n + DynamoDB global secondary index - The resource type is ``index`` and the unique identifier is the index name. Example: ``table/my-table/index/my-table-index``.\n + Aurora DB cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:my-db-cluster``.\n + SageMaker endpoint variant - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``.\n + Custom resources are not supported with a resource type. This parameter must specify the ``OutputValue`` from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our [GitHub repository](https://docs.aws.amazon.com/https://github.com/aws/aws-auto-scaling-custom-resource).\n + Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE``.\n + Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE``.\n + Lambda provisioned concurrency - The resource type is ``function`` and the unique identifier is the function name with a function version or alias name suffix that is not ``$LATEST``. Example: ``function:my-function:prod`` or ``function:my-function:1``.\n + Amazon Keyspaces table - The resource type is ``table`` and the unique identifier is the table name. Example: ``keyspace/mykeyspace/table/mytable``.\n + Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: ``arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5``.\n + Amazon ElastiCache replication group - The resource type is ``replication-group`` and the unique identifier is the replication group name. Example: ``replication-group/mycluster``.\n + Neptune cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:mycluster``.\n + SageMaker serverless endpoint - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``.\n + SageMaker inference component - The resource type is ``inference-component`` and the unique identifier is the resource ID. Example: ``inference-component/my-inference-component``.\n + Pool of WorkSpaces - The resource type is ``workspacespool`` and the unique identifier is the pool ID. Example: ``workspacespool/wspool-123456``." @@ -5364,6 +5365,9 @@ "type": "string", "description": "The scaling policy type.\n The following policy types are supported: \n ``TargetTrackingScaling``—Not supported for Amazon EMR\n ``StepScaling``—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune." }, + "predictiveScalingPolicyConfiguration": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingPolicyConfiguration" + }, "resourceId": { "type": "string", "description": "The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.\n + ECS service - The resource type is ``service`` and the unique identifier is the cluster name and service name. Example: ``service/my-cluster/my-service``.\n + Spot Fleet - The resource type is ``spot-fleet-request`` and the unique identifier is the Spot Fleet request ID. Example: ``spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE``.\n + EMR cluster - The resource type is ``instancegroup`` and the unique identifier is the cluster ID and instance group ID. Example: ``instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0``.\n + AppStream 2.0 fleet - The resource type is ``fleet`` and the unique identifier is the fleet name. Example: ``fleet/sample-fleet``.\n + DynamoDB table - The resource type is ``table`` and the unique identifier is the table name. Example: ``table/my-table``.\n + DynamoDB global secondary index - The resource type is ``index`` and the unique identifier is the index name. Example: ``table/my-table/index/my-table-index``.\n + Aurora DB cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:my-db-cluster``.\n + SageMaker endpoint variant - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``.\n + Custom resources are not supported with a resource type. This parameter must specify the ``OutputValue`` from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our [GitHub repository](https://docs.aws.amazon.com/https://github.com/aws/aws-auto-scaling-custom-resource).\n + Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE``.\n + Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE``.\n + Lambda provisioned concurrency - The resource type is ``function`` and the unique identifier is the function name with a function version or alias name suffix that is not ``$LATEST``. Example: ``function:my-function:prod`` or ``function:my-function:1``.\n + Amazon Keyspaces table - The resource type is ``table`` and the unique identifier is the table name. Example: ``keyspace/mykeyspace/table/mytable``.\n + Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: ``arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5``.\n + Amazon ElastiCache replication group - The resource type is ``replication-group`` and the unique identifier is the replication group name. Example: ``replication-group/mycluster``.\n + Neptune cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:mycluster``.\n + SageMaker serverless endpoint - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``.\n + SageMaker inference component - The resource type is ``inference-component`` and the unique identifier is the resource ID. Example: ``inference-component/my-inference-component``.\n + Pool of WorkSpaces - The resource type is ``workspacespool`` and the unique identifier is the pool ID. Example: ``workspacespool/wspool-123456``.", @@ -5571,6 +5575,12 @@ "aws-native:applicationsignals:ServiceLevelObjective": { "cf": "AWS::ApplicationSignals::ServiceLevelObjective", "inputs": { + "burnRateConfigurations": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:applicationsignals:ServiceLevelObjectiveBurnRateConfiguration" + } + }, "description": { "type": "string", "description": "An optional description for this SLO. Default is 'No description'" @@ -5604,6 +5614,12 @@ "type": "string", "description": "The ARN of this SLO." }, + "burnRateConfigurations": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:applicationsignals:ServiceLevelObjectiveBurnRateConfiguration" + } + }, "createdTime": { "type": "integer", "description": "Epoch time in seconds of the time that this SLO was created" @@ -8670,6 +8686,9 @@ "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupAvailabilityZoneDistribution", "description": "The instance capacity distribution across Availability Zones." }, + "availabilityZoneImpairmentPolicy": { + "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupAvailabilityZoneImpairmentPolicy" + }, "availabilityZones": { "type": "array", "items": { @@ -8784,6 +8803,9 @@ "type": "string", "description": "The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other AWS service on your behalf. By default, Amazon EC2 Auto Scaling uses a service-linked role named ``AWSServiceRoleForAutoScaling``, which it creates if it does not exist. For more information, see [Service-linked roles](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html) in the *Amazon EC2 Auto Scaling User Guide*." }, + "skipZonalShiftValidation": { + "type": "boolean" + }, "tags": { "type": "array", "items": { @@ -8830,6 +8852,9 @@ "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupAvailabilityZoneDistribution", "description": "The instance capacity distribution across Availability Zones." }, + "availabilityZoneImpairmentPolicy": { + "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupAvailabilityZoneImpairmentPolicy" + }, "availabilityZones": { "type": "array", "items": { @@ -8945,6 +8970,9 @@ "type": "string", "description": "The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other AWS service on your behalf. By default, Amazon EC2 Auto Scaling uses a service-linked role named ``AWSServiceRoleForAutoScaling``, which it creates if it does not exist. For more information, see [Service-linked roles](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html) in the *Amazon EC2 Auto Scaling User Guide*." }, + "skipZonalShiftValidation": { + "type": "boolean" + }, "tags": { "type": "array", "items": { @@ -8993,7 +9021,8 @@ "instanceId" ], "writeOnly": [ - "instanceId" + "instanceId", + "skipZonalShiftValidation" ], "irreversibleNames": { "serviceLinkedRoleArn": "ServiceLinkedRoleARN", @@ -14865,9 +14894,6 @@ "createOnly": [ "acceptTermsAndConditions", "connectionArn" - ], - "writeOnly": [ - "connectionArn" ] }, "aws-native:cloudformation:ResourceDefaultVersion": { @@ -15425,7 +15451,8 @@ }, "executionRoleArn": { "type": "string", - "description": "The Amazon Resource Name (ARN) of the IAM execution role to use to register the type. If your resource type calls AWS APIs in any of its handlers, you must create an IAM execution role that includes the necessary permissions to call those AWS APIs, and provision that execution role in your account. CloudFormation then assumes that execution role to provide your resource type with the appropriate credentials." + "description": "The Amazon Resource Name (ARN) of the IAM execution role to use to register the type. If your resource type calls AWS APIs in any of its handlers, you must create an IAM execution role that includes the necessary permissions to call those AWS APIs, and provision that execution role in your account. CloudFormation then assumes that execution role to provide your resource type with the appropriate credentials.", + "replaceOnChanges": true }, "loggingConfig": { "$ref": "#/types/aws-native:cloudformation:TypeActivationLoggingConfig", @@ -15438,23 +15465,28 @@ }, "publicTypeArn": { "type": "string", - "description": "The Amazon Resource Number (ARN) assigned to the public extension upon publication" + "description": "The Amazon Resource Number (ARN) assigned to the public extension upon publication", + "replaceOnChanges": true }, "publisherId": { "type": "string", - "description": "The publisher id assigned by CloudFormation for publishing in this region." + "description": "The publisher id assigned by CloudFormation for publishing in this region.", + "replaceOnChanges": true }, "type": { "$ref": "#/types/aws-native:cloudformation:TypeActivationType", - "description": "The kind of extension" + "description": "The kind of extension", + "replaceOnChanges": true }, "typeName": { "type": "string", - "description": "The name of the type being registered.\n\nWe recommend that type names adhere to the following pattern: company_or_organization::service::type." + "description": "The name of the type being registered.\n\nWe recommend that type names adhere to the following pattern: company_or_organization::service::type.", + "replaceOnChanges": true }, "typeNameAlias": { "type": "string", - "description": "An alias to assign to the public extension in this account and region. If you specify an alias for the extension, you must then use the alias to refer to the extension in your templates." + "description": "An alias to assign to the public extension in this account and region. If you specify an alias for the extension, you must then use the alias to refer to the extension in your templates.", + "replaceOnChanges": true }, "versionBump": { "$ref": "#/types/aws-native:cloudformation:TypeActivationVersionBump", @@ -15462,15 +15494,13 @@ } }, "createOnly": [ - "loggingConfig" - ], - "writeOnly": [ - "autoUpdate", "executionRoleArn", "loggingConfig", - "majorVersion", + "publicTypeArn", + "publisherId", "type", - "versionBump" + "typeName", + "typeNameAlias" ] }, "aws-native:cloudfront:CachePolicy": { @@ -22585,6 +22615,92 @@ "tagsProperty": "tags", "tagsStyle": "keyValueArray" }, + "aws-native:connectcampaignsv2:Campaign": { + "cf": "AWS::ConnectCampaignsV2::Campaign", + "inputs": { + "channelSubtypeConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignChannelSubtypeConfig" + }, + "communicationLimitsOverride": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignCommunicationLimitsConfig" + }, + "communicationTimeConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignCommunicationTimeConfig" + }, + "connectCampaignFlowArn": { + "type": "string" + }, + "connectInstanceId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "schedule": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignSchedule" + }, + "source": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignSource" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "One or more tags." + } + }, + "outputs": { + "arn": { + "type": "string", + "description": "Amazon Connect Campaign Arn" + }, + "channelSubtypeConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignChannelSubtypeConfig" + }, + "communicationLimitsOverride": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignCommunicationLimitsConfig" + }, + "communicationTimeConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignCommunicationTimeConfig" + }, + "connectCampaignFlowArn": { + "type": "string" + }, + "connectInstanceId": { + "type": "string", + "replaceOnChanges": true + }, + "name": { + "type": "string" + }, + "schedule": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignSchedule" + }, + "source": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignSource" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "One or more tags." + } + }, + "autoNamingSpec": { + "sdkName": "name" + }, + "required": [ + "channelSubtypeConfig", + "connectInstanceId" + ], + "createOnly": [ + "connectInstanceId" + ], + "tagsProperty": "tags", + "tagsStyle": "keyValueArray" + }, "aws-native:controltower:EnabledBaseline": { "cf": "AWS::ControlTower::EnabledBaseline", "inputs": { @@ -28933,9 +29049,12 @@ "$ref": "#/types/aws-native:dynamodb:GlobalTableTimeToLiveSpecification", "description": "Specifies the time to live (TTL) settings for the table. This setting will be applied to all replicas." }, + "warmThroughput": { + "$ref": "#/types/aws-native:dynamodb:GlobalTableWarmThroughput" + }, "writeOnDemandThroughputSettings": { "$ref": "#/types/aws-native:dynamodb:GlobalTableWriteOnDemandThroughputSettings", - "description": "Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` ." + "description": "Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` ." }, "writeProvisionedThroughputSettings": { "$ref": "#/types/aws-native:dynamodb:GlobalTableWriteProvisionedThroughputSettings", @@ -29013,9 +29132,12 @@ "$ref": "#/types/aws-native:dynamodb:GlobalTableTimeToLiveSpecification", "description": "Specifies the time to live (TTL) settings for the table. This setting will be applied to all replicas." }, + "warmThroughput": { + "$ref": "#/types/aws-native:dynamodb:GlobalTableWarmThroughput" + }, "writeOnDemandThroughputSettings": { "$ref": "#/types/aws-native:dynamodb:GlobalTableWriteOnDemandThroughputSettings", - "description": "Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` ." + "description": "Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` ." }, "writeProvisionedThroughputSettings": { "$ref": "#/types/aws-native:dynamodb:GlobalTableWriteProvisionedThroughputSettings", @@ -29145,6 +29267,9 @@ "timeToLiveSpecification": { "$ref": "#/types/aws-native:dynamodb:TableTimeToLiveSpecification", "description": "Specifies the Time to Live (TTL) settings for the table.\n For detailed information about the limits in DynamoDB, see [Limits in Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the Amazon DynamoDB Developer Guide." + }, + "warmThroughput": { + "$ref": "#/types/aws-native:dynamodb:TableWarmThroughput" } }, "outputs": { @@ -29255,6 +29380,9 @@ "timeToLiveSpecification": { "$ref": "#/types/aws-native:dynamodb:TableTimeToLiveSpecification", "description": "Specifies the Time to Live (TTL) settings for the table.\n For detailed information about the limits in DynamoDB, see [Limits in Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the Amazon DynamoDB Developer Guide." + }, + "warmThroughput": { + "$ref": "#/types/aws-native:dynamodb:TableWarmThroughput" } }, "autoNamingSpec": { @@ -38785,6 +38913,10 @@ "$ref": "#/types/aws-native:eks:NodegroupLaunchTemplateSpecification", "description": "An object representing a node group's launch template specification." }, + "nodeRepairConfig": { + "$ref": "#/types/aws-native:eks:NodegroupNodeRepairConfig", + "description": "The node auto repair configuration for node group." + }, "nodeRole": { "type": "string", "description": "The Amazon Resource Name (ARN) of the IAM role to associate with your node group." @@ -38886,6 +39018,10 @@ "$ref": "#/types/aws-native:eks:NodegroupLaunchTemplateSpecification", "description": "An object representing a node group's launch template specification." }, + "nodeRepairConfig": { + "$ref": "#/types/aws-native:eks:NodegroupNodeRepairConfig", + "description": "The node auto repair configuration for node group." + }, "nodeRole": { "type": "string", "description": "The Amazon Resource Name (ARN) of the IAM role to associate with your node group.", @@ -39495,7 +39631,7 @@ }, "engine": { "$ref": "#/types/aws-native:elasticache:UserEngine", - "description": "Must be redis." + "description": "The target cache engine for the user." }, "noPasswordRequired": { "type": "boolean", @@ -39539,8 +39675,7 @@ }, "engine": { "$ref": "#/types/aws-native:elasticache:UserEngine", - "description": "Must be redis.", - "replaceOnChanges": true + "description": "The target cache engine for the user." }, "noPasswordRequired": { "type": "boolean", @@ -39583,7 +39718,6 @@ "userId" ], "createOnly": [ - "engine", "userId", "userName" ], @@ -39601,7 +39735,7 @@ "inputs": { "engine": { "$ref": "#/types/aws-native:elasticache:UserGroupEngine", - "description": "Must be redis." + "description": "The target cache engine for the user group." }, "tags": { "type": "array", @@ -39629,8 +39763,7 @@ }, "engine": { "$ref": "#/types/aws-native:elasticache:UserGroupEngine", - "description": "Must be redis.", - "replaceOnChanges": true + "description": "The target cache engine for the user group." }, "status": { "type": "string", @@ -39662,7 +39795,6 @@ "userIds" ], "createOnly": [ - "engine", "userGroupId" ], "tagsProperty": "tags", @@ -40191,7 +40323,8 @@ "cf": "AWS::ElasticLoadBalancingV2::LoadBalancer", "inputs": { "enablePrefixForIpv6SourceNat": { - "type": "string" + "type": "string", + "description": "[Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` ." }, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string", @@ -40259,7 +40392,8 @@ "description": "The DNS name for the load balancer. For example, `my-load-balancer-424835706.us-west-2.elb.amazonaws.com` ." }, "enablePrefixForIpv6SourceNat": { - "type": "string" + "type": "string", + "description": "[Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` ." }, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string", @@ -41959,7 +42093,13 @@ "name" ], "writeOnly": [ - "authParameters" + "authParameters/ApiKeyAuthParameters/ApiKeyValue", + "authParameters/BasicAuthParameters/Password", + "authParameters/InvocationHttpParameters", + "authParameters/OAuthParameters/ClientParameters/ClientSecret", + "authParameters/OAuthParameters/OAuthHttpParameters/BodyParameters", + "authParameters/OAuthParameters/OAuthHttpParameters/HeaderParameters", + "authParameters/OAuthParameters/OAuthHttpParameters/QueryStringParameters" ] }, "aws-native:events:Endpoint": { @@ -43135,7 +43275,8 @@ "description": "The experiment options for an experiment template." }, "experimentReportConfiguration": { - "$ref": "#/types/aws-native:fis:ExperimentTemplateExperimentReportConfiguration" + "$ref": "#/types/aws-native:fis:ExperimentTemplateExperimentReportConfiguration", + "description": "Describes the report configuration for the experiment template." }, "logConfiguration": { "$ref": "#/types/aws-native:fis:ExperimentTemplateLogConfiguration", @@ -43188,7 +43329,8 @@ "description": "The experiment options for an experiment template." }, "experimentReportConfiguration": { - "$ref": "#/types/aws-native:fis:ExperimentTemplateExperimentReportConfiguration" + "$ref": "#/types/aws-native:fis:ExperimentTemplateExperimentReportConfiguration", + "description": "Describes the report configuration for the experiment template." }, "logConfiguration": { "$ref": "#/types/aws-native:fis:ExperimentTemplateLogConfiguration", @@ -59013,7 +59155,7 @@ }, "principal": { "type": "string", - "description": "The AWS-service or AWS-account that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service." + "description": "The AWS-service, AWS-account, IAM user, or IAM role that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service." }, "principalOrgId": { "type": "string", @@ -59054,7 +59196,7 @@ }, "principal": { "type": "string", - "description": "The AWS-service or AWS-account that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service.", + "description": "The AWS-service, AWS-account, IAM user, or IAM role that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service.", "replaceOnChanges": true }, "principalOrgId": { @@ -80176,7 +80318,7 @@ }, "sourceArn": { "type": "string", - "description": "The Amazon Resource Name (ARN) of the database to use as the source for replication, for example, arn:aws:dynamodb:us-east-2:123412341234:table/dynamotable" + "description": "The Amazon Resource Name (ARN) of the database to use as the source for replication" }, "tags": { "type": "array", @@ -80187,7 +80329,7 @@ }, "targetArn": { "type": "string", - "description": "The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication, for example, arn:aws:redshift:us-east-2:123412341234:namespace:e43aab3e-10a3-4ec4-83d4-f227ff9bfbcf" + "description": "The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication" } }, "outputs": { @@ -80218,7 +80360,7 @@ }, "sourceArn": { "type": "string", - "description": "The Amazon Resource Name (ARN) of the database to use as the source for replication, for example, arn:aws:dynamodb:us-east-2:123412341234:table/dynamotable", + "description": "The Amazon Resource Name (ARN) of the database to use as the source for replication", "replaceOnChanges": true }, "tags": { @@ -80230,7 +80372,7 @@ }, "targetArn": { "type": "string", - "description": "The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication, for example, arn:aws:redshift:us-east-2:123412341234:namespace:e43aab3e-10a3-4ec4-83d4-f227ff9bfbcf", + "description": "The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication", "replaceOnChanges": true } }, @@ -80527,10 +80669,7 @@ "finalSnapshotName", "finalSnapshotRetentionPeriod", "manageAdminPassword", - "redshiftIdcApplicationArn", - "tags", - "tags/*/Key", - "tags/*/Value" + "redshiftIdcApplicationArn" ], "tagsProperty": "tags", "tagsStyle": "keyValueArrayCreateOnly" @@ -80678,10 +80817,7 @@ "configParameters", "maxCapacity", "securityGroupIds", - "subnetIds", - "tags", - "tags/*/Key", - "tags/*/Value" + "subnetIds" ], "tagsProperty": "tags", "tagsStyle": "keyValueArray" @@ -85692,6 +85828,7 @@ "instanceGroups/*/ExecutionRole", "instanceGroups/*/InstanceGroupName", "instanceGroups/*/InstanceType", + "instanceGroups/*/OverrideVpcConfig", "instanceGroups/*/ThreadsPerCore", "orchestrator", "vpcConfig" @@ -96128,6 +96265,9 @@ "type": "string", "description": "The ID or Amazon Resource Name (ARN) of the service network or service." }, + "serviceNetworkLogType": { + "$ref": "#/types/aws-native:vpclattice:AccessLogSubscriptionServiceNetworkLogType" + }, "tags": { "type": "array", "items": { @@ -96162,6 +96302,9 @@ "description": "The ID or Amazon Resource Name (ARN) of the service network or service.", "replaceOnChanges": true }, + "serviceNetworkLogType": { + "$ref": "#/types/aws-native:vpclattice:AccessLogSubscriptionServiceNetworkLogType" + }, "tags": { "type": "array", "items": { @@ -96567,6 +96710,9 @@ "type": "string", "description": "The name of the service network. The name must be unique to the account. The valid characters are a-z, 0-9, and hyphens (-). You can't use a hyphen as the first or last character, or immediately after another hyphen.\n\nIf you don't specify a name, CloudFormation generates one. However, if you specify a name, and later want to replace the resource, you must specify a new name." }, + "sharingConfig": { + "$ref": "#/types/aws-native:vpclattice:ServiceNetworkSharingConfig" + }, "tags": { "type": "array", "items": { @@ -96601,6 +96747,9 @@ "description": "The name of the service network. The name must be unique to the account. The valid characters are a-z, 0-9, and hyphens (-). You can't use a hyphen as the first or last character, or immediately after another hyphen.\n\nIf you don't specify a name, CloudFormation generates one. However, if you specify a name, and later want to replace the resource, you must specify a new name.", "replaceOnChanges": true }, + "sharingConfig": { + "$ref": "#/types/aws-native:vpclattice:ServiceNetworkSharingConfig" + }, "tags": { "type": "array", "items": { @@ -99354,6 +99503,28 @@ } }, "types": { + "aws-native:accessanalyzer:AnalyzerAnalysisRuleCriteria": { + "type": "object", + "properties": { + "accountIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of AWS account IDs to apply to the analysis rule criteria. The accounts cannot include the organization analyzer owner account. Account IDs can only be applied to the analysis rule criteria for organization-level analyzers." + }, + "resourceTags": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:accessanalyzer:AnalyzerTag" + } + }, + "description": "An array of key-value pairs to match for your resources. You can use the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.\n\nFor the tag key, you can specify a value that is 1 to 128 characters in length and cannot be prefixed with aws:.\n\nFor the tag value, you can specify a value that is 0 to 256 characters in length. If the specified tag value is 0 characters, the rule is applied to all principals with the specified tag key." + } + } + }, "aws-native:accessanalyzer:AnalyzerArchiveRule": { "type": "object", "properties": { @@ -99375,7 +99546,7 @@ "properties": { "unusedAccessConfiguration": { "$ref": "#/types/aws-native:accessanalyzer:AnalyzerUnusedAccessConfiguration", - "description": "Specifies the configuration of an unused access analyzer for an AWS organization or account. External access analyzers do not support any configuration." + "description": "Specifies the configuration of an unused access analyzer for an AWS organization or account." } } }, @@ -99422,16 +99593,32 @@ }, "value": { "type": "string", - "description": "The value for the tag. You can specify a value that is 1 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. " + "description": "The value for the tag. You can specify a value that is 0 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. " } } }, "aws-native:accessanalyzer:AnalyzerUnusedAccessConfiguration": { "type": "object", "properties": { + "analysisRule": { + "$ref": "#/types/aws-native:accessanalyzer:AnalyzerUnusedAccessConfigurationAnalysisRuleProperties", + "description": "Contains information about rules for the analyzer." + }, "unusedAccessAge": { "type": "integer", - "description": "The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 180 days." + "description": "The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 365 days." + } + } + }, + "aws-native:accessanalyzer:AnalyzerUnusedAccessConfigurationAnalysisRuleProperties": { + "type": "object", + "properties": { + "exclusions": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:accessanalyzer:AnalyzerAnalysisRuleCriteria" + }, + "description": "A list of rules for the analyzer containing criteria to exclude from analysis. Entities that meet the rule criteria will not generate findings." } } }, @@ -104334,6 +104521,196 @@ } } }, + "aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingCustomizedCapacityMetric": { + "type": "object", + "properties": { + "metricDataQueries": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingMetricDataQuery" + } + } + } + }, + "aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingCustomizedLoadMetric": { + "type": "object", + "properties": { + "metricDataQueries": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingMetricDataQuery" + } + } + } + }, + "aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingCustomizedScalingMetric": { + "type": "object", + "properties": { + "metricDataQueries": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingMetricDataQuery" + } + } + } + }, + "aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingMetric": { + "type": "object", + "properties": { + "dimensions": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingMetricDimension" + }, + "description": "The dimensions for the metric." + }, + "metricName": { + "type": "string", + "description": "The name of the metric." + }, + "namespace": { + "type": "string", + "description": "The namespace of the metric." + } + } + }, + "aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingMetricDataQuery": { + "type": "object", + "properties": { + "expression": { + "type": "string", + "description": "The math expression to perform on the returned data, if this object is performing a math expression." + }, + "id": { + "type": "string", + "description": "A short name that identifies the object's results in the response." + }, + "label": { + "type": "string", + "description": "A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents." + }, + "metricStat": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingMetricStat", + "description": "Information about the metric data to return." + }, + "returnData": { + "type": "boolean", + "description": "Indicates whether to return the timestamps and raw data values of this metric." + } + } + }, + "aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingMetricDimension": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the dimension." + }, + "value": { + "type": "string", + "description": "The value of the dimension." + } + } + }, + "aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingMetricSpecification": { + "type": "object", + "properties": { + "customizedCapacityMetricSpecification": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingCustomizedCapacityMetric" + }, + "customizedLoadMetricSpecification": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingCustomizedLoadMetric" + }, + "customizedScalingMetricSpecification": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingCustomizedScalingMetric" + }, + "predefinedLoadMetricSpecification": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingPredefinedLoadMetric" + }, + "predefinedMetricPairSpecification": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingPredefinedMetricPair" + }, + "predefinedScalingMetricSpecification": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingPredefinedScalingMetric" + }, + "targetValue": { + "type": "number" + } + } + }, + "aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingMetricStat": { + "type": "object", + "properties": { + "metric": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingMetric", + "description": "The CloudWatch metric to return, including the metric name, namespace, and dimensions. " + }, + "stat": { + "type": "string", + "description": "The statistic to return. It can include any CloudWatch statistic or extended statistic." + }, + "unit": { + "type": "string", + "description": "The unit to use for the returned data points." + } + } + }, + "aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingPolicyConfiguration": { + "type": "object", + "properties": { + "maxCapacityBreachBehavior": { + "type": "string" + }, + "maxCapacityBuffer": { + "type": "integer" + }, + "metricSpecifications": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingMetricSpecification" + } + }, + "mode": { + "type": "string" + }, + "schedulingBufferTime": { + "type": "integer" + } + } + }, + "aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingPredefinedLoadMetric": { + "type": "object", + "properties": { + "predefinedMetricType": { + "type": "string" + }, + "resourceLabel": { + "type": "string" + } + } + }, + "aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingPredefinedMetricPair": { + "type": "object", + "properties": { + "predefinedMetricType": { + "type": "string" + }, + "resourceLabel": { + "type": "string" + } + } + }, + "aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingPredefinedScalingMetric": { + "type": "object", + "properties": { + "predefinedMetricType": { + "type": "string" + }, + "resourceLabel": { + "type": "string" + } + } + }, "aws-native:applicationautoscaling:ScalingPolicyStepAdjustment": { "type": "object", "properties": { @@ -104909,6 +105286,15 @@ } } }, + "aws-native:applicationsignals:ServiceLevelObjectiveBurnRateConfiguration": { + "type": "object", + "properties": { + "lookBackWindowMinutes": { + "type": "integer", + "description": "The number of minutes to use as the look-back window." + } + } + }, "aws-native:applicationsignals:ServiceLevelObjectiveCalendarInterval": { "type": "object", "properties": { @@ -107062,6 +107448,20 @@ "aws-native:autoscaling:AutoScalingGroupAvailabilityZoneDistributionCapacityDistributionStrategy": { "type": "string" }, + "aws-native:autoscaling:AutoScalingGroupAvailabilityZoneImpairmentPolicy": { + "type": "object", + "properties": { + "impairedZoneHealthCheckBehavior": { + "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior" + }, + "zonalShiftEnabled": { + "type": "boolean" + } + } + }, + "aws-native:autoscaling:AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior": { + "type": "string" + }, "aws-native:autoscaling:AutoScalingGroupBaselineEbsBandwidthMbpsRequest": { "type": "object", "properties": { @@ -107075,6 +107475,25 @@ } } }, + "aws-native:autoscaling:AutoScalingGroupBaselinePerformanceFactorsRequest": { + "type": "object", + "properties": { + "cpu": { + "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupCpuPerformanceFactorRequest" + } + } + }, + "aws-native:autoscaling:AutoScalingGroupCpuPerformanceFactorRequest": { + "type": "object", + "properties": { + "references": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupPerformanceFactorReferenceRequest" + } + } + } + }, "aws-native:autoscaling:AutoScalingGroupInstanceMaintenancePolicy": { "type": "object", "properties": { @@ -107135,6 +107554,9 @@ "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupBaselineEbsBandwidthMbpsRequest", "description": "The minimum and maximum baseline bandwidth performance for an instance type, in Mbps. For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide for Linux Instances*.\n Default: No minimum or maximum limits" }, + "baselinePerformanceFactors": { + "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupBaselinePerformanceFactorsRequest" + }, "burstablePerformance": { "type": "string", "description": "Indicates whether burstable performance instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide for Linux Instances*.\n Default: ``excluded``" @@ -107439,6 +107861,14 @@ "topicArn": "TopicARN" } }, + "aws-native:autoscaling:AutoScalingGroupPerformanceFactorReferenceRequest": { + "type": "object", + "properties": { + "instanceFamily": { + "type": "string" + } + } + }, "aws-native:autoscaling:AutoScalingGroupTagProperty": { "type": "object", "properties": { @@ -108959,11 +109389,12 @@ "type": "array", "items": { "$ref": "#/types/aws-native:batch:ComputeEnvironmentLaunchTemplateSpecificationOverride" - } + }, + "description": "A launch template to use in place of the default launch template. You must specify either the launch template ID or launch template name in the request, but not both.\n\nYou can specify up to ten (10) launch template overrides that are associated to unique instance types or families for each compute environment.\n\n\u003e To unset all override templates for a compute environment, you can pass an empty array to the [UpdateComputeEnvironment.overrides](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) parameter, or not include the `overrides` parameter when submitting the `UpdateComputeEnvironment` API operation." }, "version": { "type": "string", - "description": "The version number of the launch template, `$Latest` , or `$Default` .\n\nIf the value is `$Latest` , the latest version of the launch template is used. If the value is `$Default` , the default version of the launch template is used.\n\n\u003e If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Latest` or `$Default` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . \n\nDefault: `$Default` ." + "description": "The version number of the launch template, `$Default` , or `$Latest` .\n\nIf the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used.\n\n\u003e If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . \n\nDefault: `$Default`\n\nLatest: `$Latest`" } } }, @@ -108971,19 +109402,23 @@ "type": "object", "properties": { "launchTemplateId": { - "type": "string" + "type": "string", + "description": "The ID of the launch template.\n\n*Note:* If you specify the `launchTemplateId` you can't specify the `launchTemplateName` as well." }, "launchTemplateName": { - "type": "string" + "type": "string", + "description": "The name of the launch template.\n\n*Note:* If you specify the `launchTemplateName` you can't specify the `launchTemplateId` as well." }, "targetInstanceTypes": { "type": "array", "items": { "type": "string" - } + }, + "description": "The instance type or family that this this override launch template should be applied to.\n\nThis parameter is required when defining a launch template override.\n\nInformation included in this parameter must meet the following requirements:\n\n- Must be a valid Amazon EC2 instance type or family.\n- `optimal` isn't allowed.\n- `targetInstanceTypes` can target only instance types and families that are included within the [`ComputeResource.instanceTypes`](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes) set. `targetInstanceTypes` doesn't need to include all of the instances from the `instanceType` set, but at least a subset. For example, if `ComputeResource.instanceTypes` includes `[m5, g5]` , `targetInstanceTypes` can include `[m5.2xlarge]` and `[m5.large]` but not `[c5.large]` .\n- `targetInstanceTypes` included within the same launch template override or across launch template overrides can't overlap for the same compute environment. For example, you can't define one launch template override to target an instance family and another define an instance type within this same family." }, "version": { - "type": "string" + "type": "string", + "description": "The version number of the launch template, `$Default` , or `$Latest` .\n\nIf the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used.\n\n\u003e If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . \n\nDefault: `$Default`\n\nLatest: `$Latest`" } } }, @@ -120389,6 +120824,347 @@ } } }, + "aws-native:connectcampaignsv2:CampaignAgentlessConfig": { + "type": "object" + }, + "aws-native:connectcampaignsv2:CampaignAnswerMachineDetectionConfig": { + "type": "object", + "properties": { + "awaitAnswerMachinePrompt": { + "type": "boolean", + "description": "Enables detection of prompts (e.g., beep after after a voicemail greeting)" + }, + "enableAnswerMachineDetection": { + "type": "boolean", + "description": "Flag to decided whether outbound calls should have answering machine detection enabled or not" + } + } + }, + "aws-native:connectcampaignsv2:CampaignChannelSubtypeConfig": { + "type": "object", + "properties": { + "email": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignEmailChannelSubtypeConfig" + }, + "sms": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignSmsChannelSubtypeConfig" + }, + "telephony": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignTelephonyChannelSubtypeConfig" + } + } + }, + "aws-native:connectcampaignsv2:CampaignCommunicationLimit": { + "type": "object", + "properties": { + "frequency": { + "type": "integer" + }, + "maxCountPerRecipient": { + "type": "integer" + }, + "unit": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignCommunicationLimitTimeUnit" + } + } + }, + "aws-native:connectcampaignsv2:CampaignCommunicationLimitTimeUnit": { + "type": "string" + }, + "aws-native:connectcampaignsv2:CampaignCommunicationLimits": { + "type": "object", + "properties": { + "communicationLimitList": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignCommunicationLimit" + } + } + } + }, + "aws-native:connectcampaignsv2:CampaignCommunicationLimitsConfig": { + "type": "object", + "properties": { + "allChannelsSubtypes": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignCommunicationLimits" + } + } + }, + "aws-native:connectcampaignsv2:CampaignCommunicationTimeConfig": { + "type": "object", + "properties": { + "email": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignTimeWindow" + }, + "localTimeZoneConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignLocalTimeZoneConfig" + }, + "sms": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignTimeWindow" + }, + "telephony": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignTimeWindow" + } + } + }, + "aws-native:connectcampaignsv2:CampaignDailyHour": { + "type": "object", + "properties": { + "key": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignDayOfWeek" + }, + "value": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignTimeRange" + } + } + } + }, + "aws-native:connectcampaignsv2:CampaignDayOfWeek": { + "type": "string" + }, + "aws-native:connectcampaignsv2:CampaignEmailChannelSubtypeConfig": { + "type": "object", + "properties": { + "capacity": { + "type": "number" + }, + "defaultOutboundConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignEmailOutboundConfig" + }, + "outboundMode": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignEmailOutboundMode" + } + } + }, + "aws-native:connectcampaignsv2:CampaignEmailOutboundConfig": { + "type": "object", + "properties": { + "connectSourceEmailAddress": { + "type": "string" + }, + "sourceEmailAddressDisplayName": { + "type": "string" + }, + "wisdomTemplateArn": { + "type": "string" + } + } + }, + "aws-native:connectcampaignsv2:CampaignEmailOutboundMode": { + "type": "object", + "properties": { + "agentlessConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignAgentlessConfig" + } + } + }, + "aws-native:connectcampaignsv2:CampaignLocalTimeZoneConfig": { + "type": "object", + "properties": { + "defaultTimeZone": { + "type": "string" + }, + "localTimeZoneDetection": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignLocalTimeZoneDetectionType" + } + } + } + }, + "aws-native:connectcampaignsv2:CampaignLocalTimeZoneDetectionType": { + "type": "string" + }, + "aws-native:connectcampaignsv2:CampaignOpenHours": { + "type": "object", + "properties": { + "dailyHours": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignDailyHour" + } + } + } + }, + "aws-native:connectcampaignsv2:CampaignPredictiveConfig": { + "type": "object", + "properties": { + "bandwidthAllocation": { + "type": "number" + } + } + }, + "aws-native:connectcampaignsv2:CampaignProgressiveConfig": { + "type": "object", + "properties": { + "bandwidthAllocation": { + "type": "number" + } + } + }, + "aws-native:connectcampaignsv2:CampaignRestrictedPeriod": { + "type": "object", + "properties": { + "endDate": { + "type": "string" + }, + "name": { + "type": "string", + "description": "The name of a restricted period" + }, + "startDate": { + "type": "string" + } + } + }, + "aws-native:connectcampaignsv2:CampaignRestrictedPeriods": { + "type": "object", + "properties": { + "restrictedPeriodList": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignRestrictedPeriod" + } + } + } + }, + "aws-native:connectcampaignsv2:CampaignSchedule": { + "type": "object", + "properties": { + "endTime": { + "type": "string" + }, + "refreshFrequency": { + "type": "string" + }, + "startTime": { + "type": "string" + } + } + }, + "aws-native:connectcampaignsv2:CampaignSmsChannelSubtypeConfig": { + "type": "object", + "properties": { + "capacity": { + "type": "number" + }, + "defaultOutboundConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignSmsOutboundConfig" + }, + "outboundMode": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignSmsOutboundMode" + } + } + }, + "aws-native:connectcampaignsv2:CampaignSmsOutboundConfig": { + "type": "object", + "properties": { + "connectSourcePhoneNumberArn": { + "type": "string" + }, + "wisdomTemplateArn": { + "type": "string" + } + } + }, + "aws-native:connectcampaignsv2:CampaignSmsOutboundMode": { + "type": "object", + "properties": { + "agentlessConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignAgentlessConfig" + } + } + }, + "aws-native:connectcampaignsv2:CampaignSource": { + "type": "object", + "properties": { + "customerProfilesSegmentArn": { + "type": "string" + } + } + }, + "aws-native:connectcampaignsv2:CampaignTag": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "The key name of the tag." + }, + "value": { + "type": "string", + "description": "The value for the tag." + } + } + }, + "aws-native:connectcampaignsv2:CampaignTelephonyChannelSubtypeConfig": { + "type": "object", + "properties": { + "capacity": { + "type": "number" + }, + "connectQueueId": { + "type": "string" + }, + "defaultOutboundConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignTelephonyOutboundConfig" + }, + "outboundMode": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignTelephonyOutboundMode" + } + } + }, + "aws-native:connectcampaignsv2:CampaignTelephonyOutboundConfig": { + "type": "object", + "properties": { + "answerMachineDetectionConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignAnswerMachineDetectionConfig" + }, + "connectContactFlowId": { + "type": "string" + }, + "connectSourcePhoneNumber": { + "type": "string" + } + } + }, + "aws-native:connectcampaignsv2:CampaignTelephonyOutboundMode": { + "type": "object", + "properties": { + "agentlessConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignAgentlessConfig" + }, + "predictiveConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignPredictiveConfig" + }, + "progressiveConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignProgressiveConfig" + } + } + }, + "aws-native:connectcampaignsv2:CampaignTimeRange": { + "type": "object", + "properties": { + "endTime": { + "type": "string" + }, + "startTime": { + "type": "string" + } + } + }, + "aws-native:connectcampaignsv2:CampaignTimeWindow": { + "type": "object", + "properties": { + "openHours": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignOpenHours" + }, + "restrictedPeriods": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignRestrictedPeriods" + } + } + }, "aws-native:controltower:EnabledBaselineParameter": { "type": "object", "properties": { @@ -124833,9 +125609,12 @@ "$ref": "#/types/aws-native:dynamodb:GlobalTableProjection", "description": "Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected." }, + "warmThroughput": { + "$ref": "#/types/aws-native:dynamodb:GlobalTableWarmThroughput" + }, "writeOnDemandThroughputSettings": { "$ref": "#/types/aws-native:dynamodb:GlobalTableWriteOnDemandThroughputSettings", - "description": "Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` ." + "description": "Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` ." }, "writeProvisionedThroughputSettings": { "$ref": "#/types/aws-native:dynamodb:GlobalTableWriteProvisionedThroughputSettings", @@ -124952,7 +125731,7 @@ }, "readOnDemandThroughputSettings": { "$ref": "#/types/aws-native:dynamodb:GlobalTableReadOnDemandThroughputSettings", - "description": "Sets the read request settings for a replica global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` ." + "description": "Sets the read request settings for a replica global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` ." }, "readProvisionedThroughputSettings": { "$ref": "#/types/aws-native:dynamodb:GlobalTableReadProvisionedThroughputSettings", @@ -125129,6 +125908,17 @@ } } }, + "aws-native:dynamodb:GlobalTableWarmThroughput": { + "type": "object", + "properties": { + "readUnitsPerSecond": { + "type": "integer" + }, + "writeUnitsPerSecond": { + "type": "integer" + } + } + }, "aws-native:dynamodb:GlobalTableWriteOnDemandThroughputSettings": { "type": "object", "properties": { @@ -125214,6 +126004,9 @@ "provisionedThroughput": { "$ref": "#/types/aws-native:dynamodb:TableProvisionedThroughput", "description": "Represents the provisioned throughput settings for the specified global secondary index.\n For current minimum and maximum provisioned throughput values, see [Service, Account, and Table Quotas](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the *Amazon DynamoDB Developer Guide*." + }, + "warmThroughput": { + "$ref": "#/types/aws-native:dynamodb:TableWarmThroughput" } } }, @@ -125442,6 +126235,17 @@ } } }, + "aws-native:dynamodb:TableWarmThroughput": { + "type": "object", + "properties": { + "readUnitsPerSecond": { + "type": "integer" + }, + "writeUnitsPerSecond": { + "type": "integer" + } + } + }, "aws-native:ec2:CapacityReservationFleetInstanceMatchCriteria": { "type": "string" }, @@ -132681,6 +133485,15 @@ } } }, + "aws-native:eks:NodegroupNodeRepairConfig": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Set this value to true to enable node auto repair for the node group." + } + } + }, "aws-native:eks:NodegroupRemoteAccess": { "type": "object", "properties": { @@ -133774,7 +134587,8 @@ "description": "[Network Load Balancers] The private IPv4 address for an internal load balancer." }, "sourceNatIpv6Prefix": { - "type": "string" + "type": "string", + "description": "[Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block." }, "subnetId": { "type": "string", @@ -135968,7 +136782,8 @@ "type": "object", "properties": { "dashboardIdentifier": { - "type": "string" + "type": "string", + "description": "The Amazon Resource Name (ARN) of the CloudWatch dashboard to include in the experiment report." } } }, @@ -135996,16 +136811,20 @@ "type": "object", "properties": { "dataSources": { - "$ref": "#/types/aws-native:fis:ExperimentTemplateExperimentReportConfigurationDataSourcesProperties" + "$ref": "#/types/aws-native:fis:ExperimentTemplateExperimentReportConfigurationDataSourcesProperties", + "description": "The data sources for the experiment report." }, "outputs": { - "$ref": "#/types/aws-native:fis:ExperimentTemplateExperimentReportConfigurationOutputsProperties" + "$ref": "#/types/aws-native:fis:ExperimentTemplateExperimentReportConfigurationOutputsProperties", + "description": "The output destinations of the experiment report." }, "postExperimentDuration": { - "type": "string" + "type": "string", + "description": "The duration after the experiment end time for the data sources to include in the report." }, "preExperimentDuration": { - "type": "string" + "type": "string", + "description": "The duration before the experiment start time for the data sources to include in the report." } } }, @@ -202717,6 +203536,10 @@ "$ref": "#/types/aws-native:sagemaker:ClusterDeepHealthCheckType" } }, + "overrideVpcConfig": { + "$ref": "#/types/aws-native:sagemaker:ClusterVpcConfig", + "replaceOnChanges": true + }, "threadsPerCore": { "type": "integer", "description": "The number you specified to TreadsPerCore in CreateCluster for enabling or disabling multithreading. For instance types that support multithreading, you can specify 1 for disabling multithreading and 2 for enabling multithreading.", @@ -214323,6 +215146,9 @@ } } }, + "aws-native:vpclattice:AccessLogSubscriptionServiceNetworkLogType": { + "type": "string" + }, "aws-native:vpclattice:AccessLogSubscriptionTag": { "type": "object", "properties": { @@ -214602,6 +215428,14 @@ } } }, + "aws-native:vpclattice:ServiceNetworkSharingConfig": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + } + }, "aws-native:vpclattice:ServiceNetworkTag": { "type": "object", "properties": { @@ -219615,6 +220449,12 @@ "arn" ] }, + "aws-native:connectcampaignsv2:getCampaign": { + "cf": "AWS::ConnectCampaignsV2::Campaign", + "ids": [ + "arn" + ] + }, "aws-native:controltower:getEnabledBaseline": { "cf": "AWS::ControlTower::EnabledBaseline", "ids": [ diff --git a/provider/cmd/pulumi-resource-aws-native/schema.json b/provider/cmd/pulumi-resource-aws-native/schema.json index 3f832b3356..fd89175adf 100644 --- a/provider/cmd/pulumi-resource-aws-native/schema.json +++ b/provider/cmd/pulumi-resource-aws-native/schema.json @@ -70,6 +70,7 @@ "configuration": "Configuration", "connect": "Connect", "connectcampaigns": "ConnectCampaigns", + "connectcampaignsv2": "ConnectCampaignsV2", "controltower": "ControlTower", "customerprofiles": "CustomerProfiles", "databrew": "DataBrew", @@ -369,6 +370,29 @@ ] }, "types": { + "aws-native:accessanalyzer:AnalyzerAnalysisRuleCriteria": { + "description": "The criteria for an analysis rule for an analyzer.", + "properties": { + "accountIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of AWS account IDs to apply to the analysis rule criteria. The accounts cannot include the organization analyzer owner account. Account IDs can only be applied to the analysis rule criteria for organization-level analyzers." + }, + "resourceTags": { + "type": "array", + "items": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:accessanalyzer:AnalyzerTag" + } + }, + "description": "An array of key-value pairs to match for your resources. You can use the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.\n\nFor the tag key, you can specify a value that is 1 to 128 characters in length and cannot be prefixed with aws:.\n\nFor the tag value, you can specify a value that is 0 to 256 characters in length. If the specified tag value is 0 characters, the rule is applied to all principals with the specified tag key." + } + }, + "type": "object" + }, "aws-native:accessanalyzer:AnalyzerArchiveRule": { "description": "An Access Analyzer archive rule. Archive rules automatically archive new findings that meet the criteria you define when you create the rule.", "properties": { @@ -395,7 +419,7 @@ "properties": { "unusedAccessConfiguration": { "$ref": "#/types/aws-native:accessanalyzer:AnalyzerUnusedAccessConfiguration", - "description": "Specifies the configuration of an unused access analyzer for an AWS organization or account. External access analyzers do not support any configuration." + "description": "Specifies the configuration of an unused access analyzer for an AWS organization or account." } }, "type": "object" @@ -446,21 +470,37 @@ }, "value": { "type": "string", - "description": "The value for the tag. You can specify a value that is 1 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. " + "description": "The value for the tag. You can specify a value that is 0 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. " } }, "type": "object", "required": [ - "key", - "value" + "key" ] }, "aws-native:accessanalyzer:AnalyzerUnusedAccessConfiguration": { "description": "The Configuration for Unused Access Analyzer", "properties": { + "analysisRule": { + "$ref": "#/types/aws-native:accessanalyzer:AnalyzerUnusedAccessConfigurationAnalysisRuleProperties", + "description": "Contains information about rules for the analyzer." + }, "unusedAccessAge": { "type": "integer", - "description": "The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 180 days." + "description": "The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 365 days." + } + }, + "type": "object" + }, + "aws-native:accessanalyzer:AnalyzerUnusedAccessConfigurationAnalysisRuleProperties": { + "description": "Contains information about rules for the analyzer.", + "properties": { + "exclusions": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:accessanalyzer:AnalyzerAnalysisRuleCriteria" + }, + "description": "A list of rules for the analyzer containing criteria to exclude from analysis. Entities that meet the rule criteria will not generate findings." } }, "type": "object" @@ -7772,6 +7812,220 @@ "predefinedMetricType" ] }, + "aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingCustomizedCapacityMetric": { + "properties": { + "metricDataQueries": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingMetricDataQuery" + } + } + }, + "type": "object", + "required": [ + "metricDataQueries" + ] + }, + "aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingCustomizedLoadMetric": { + "properties": { + "metricDataQueries": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingMetricDataQuery" + } + } + }, + "type": "object", + "required": [ + "metricDataQueries" + ] + }, + "aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingCustomizedScalingMetric": { + "properties": { + "metricDataQueries": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingMetricDataQuery" + } + } + }, + "type": "object", + "required": [ + "metricDataQueries" + ] + }, + "aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingMetric": { + "properties": { + "dimensions": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingMetricDimension" + }, + "description": "The dimensions for the metric." + }, + "metricName": { + "type": "string", + "description": "The name of the metric." + }, + "namespace": { + "type": "string", + "description": "The namespace of the metric." + } + }, + "type": "object" + }, + "aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingMetricDataQuery": { + "properties": { + "expression": { + "type": "string", + "description": "The math expression to perform on the returned data, if this object is performing a math expression." + }, + "id": { + "type": "string", + "description": "A short name that identifies the object's results in the response." + }, + "label": { + "type": "string", + "description": "A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents." + }, + "metricStat": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingMetricStat", + "description": "Information about the metric data to return." + }, + "returnData": { + "type": "boolean", + "description": "Indicates whether to return the timestamps and raw data values of this metric." + } + }, + "type": "object" + }, + "aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingMetricDimension": { + "properties": { + "name": { + "type": "string", + "description": "The name of the dimension." + }, + "value": { + "type": "string", + "description": "The value of the dimension." + } + }, + "type": "object" + }, + "aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingMetricSpecification": { + "properties": { + "customizedCapacityMetricSpecification": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingCustomizedCapacityMetric" + }, + "customizedLoadMetricSpecification": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingCustomizedLoadMetric" + }, + "customizedScalingMetricSpecification": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingCustomizedScalingMetric" + }, + "predefinedLoadMetricSpecification": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingPredefinedLoadMetric" + }, + "predefinedMetricPairSpecification": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingPredefinedMetricPair" + }, + "predefinedScalingMetricSpecification": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingPredefinedScalingMetric" + }, + "targetValue": { + "type": "number" + } + }, + "type": "object", + "required": [ + "targetValue" + ] + }, + "aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingMetricStat": { + "properties": { + "metric": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingMetric", + "description": "The CloudWatch metric to return, including the metric name, namespace, and dimensions. " + }, + "stat": { + "type": "string", + "description": "The statistic to return. It can include any CloudWatch statistic or extended statistic." + }, + "unit": { + "type": "string", + "description": "The unit to use for the returned data points." + } + }, + "type": "object" + }, + "aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingPolicyConfiguration": { + "properties": { + "maxCapacityBreachBehavior": { + "type": "string" + }, + "maxCapacityBuffer": { + "type": "integer" + }, + "metricSpecifications": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingMetricSpecification" + } + }, + "mode": { + "type": "string" + }, + "schedulingBufferTime": { + "type": "integer" + } + }, + "type": "object", + "required": [ + "metricSpecifications" + ] + }, + "aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingPredefinedLoadMetric": { + "properties": { + "predefinedMetricType": { + "type": "string" + }, + "resourceLabel": { + "type": "string" + } + }, + "type": "object", + "required": [ + "predefinedMetricType" + ] + }, + "aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingPredefinedMetricPair": { + "properties": { + "predefinedMetricType": { + "type": "string" + }, + "resourceLabel": { + "type": "string" + } + }, + "type": "object", + "required": [ + "predefinedMetricType" + ] + }, + "aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingPredefinedScalingMetric": { + "properties": { + "predefinedMetricType": { + "type": "string" + }, + "resourceLabel": { + "type": "string" + } + }, + "type": "object", + "required": [ + "predefinedMetricType" + ] + }, "aws-native:applicationautoscaling:ScalingPolicyStepAdjustment": { "description": "``StepAdjustment`` specifies a step adjustment for the ``StepAdjustments`` property of the [AWS::ApplicationAutoScaling::ScalingPolicy StepScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html) property type. \n For the following examples, suppose that you have an alarm with a breach threshold of 50: \n + To trigger a step adjustment when the metric is greater than or equal to 50 and less than 60, specify a lower bound of 0 and an upper bound of 10. \n + To trigger a step adjustment when the metric is greater than 40 and less than or equal to 50, specify a lower bound of -10 and an upper bound of 0. \n \n For more information, see [Step adjustments](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html#as-scaling-steps) in the *Application Auto Scaling User Guide*.\n You can find a sample template snippet in the [Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html#aws-resource-applicationautoscaling-scalingpolicy--examples) section of the ``AWS::ApplicationAutoScaling::ScalingPolicy`` documentation.", "properties": { @@ -8498,6 +8752,19 @@ "logGroupName" ] }, + "aws-native:applicationsignals:ServiceLevelObjectiveBurnRateConfiguration": { + "description": "This object defines the length of the look-back window used to calculate one burn rate metric for this SLO. The burn rate measures how fast the service is consuming the error budget, relative to the attainment goal of the SLO. A burn rate of exactly 1 indicates that the SLO goal will be met exactly.\nFor example, if you specify 60 as the number of minutes in the look-back window, the burn rate is calculated as the following:\nburn rate = error rate over the look-back window / (1 - attainment goal percentage)", + "properties": { + "lookBackWindowMinutes": { + "type": "integer", + "description": "The number of minutes to use as the look-back window." + } + }, + "type": "object", + "required": [ + "lookBackWindowMinutes" + ] + }, "aws-native:applicationsignals:ServiceLevelObjectiveCalendarInterval": { "description": "If the interval for this service level objective is a calendar interval, this structure contains the interval specifications.", "properties": { @@ -11485,6 +11752,34 @@ } ] }, + "aws-native:autoscaling:AutoScalingGroupAvailabilityZoneImpairmentPolicy": { + "properties": { + "impairedZoneHealthCheckBehavior": { + "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior" + }, + "zonalShiftEnabled": { + "type": "boolean" + } + }, + "type": "object", + "required": [ + "impairedZoneHealthCheckBehavior", + "zonalShiftEnabled" + ] + }, + "aws-native:autoscaling:AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior": { + "type": "string", + "enum": [ + { + "name": "IgnoreUnhealthy", + "value": "IgnoreUnhealthy" + }, + { + "name": "ReplaceUnhealthy", + "value": "ReplaceUnhealthy" + } + ] + }, "aws-native:autoscaling:AutoScalingGroupBaselineEbsBandwidthMbpsRequest": { "description": "``BaselineEbsBandwidthMbpsRequest`` is a property of the ``InstanceRequirements`` property of the [AWS::AutoScaling::AutoScalingGroup LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplateoverrides.html) property type that describes the minimum and maximum baseline bandwidth performance for an instance type, in Mbps.", "properties": { @@ -11499,6 +11794,25 @@ }, "type": "object" }, + "aws-native:autoscaling:AutoScalingGroupBaselinePerformanceFactorsRequest": { + "properties": { + "cpu": { + "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupCpuPerformanceFactorRequest" + } + }, + "type": "object" + }, + "aws-native:autoscaling:AutoScalingGroupCpuPerformanceFactorRequest": { + "properties": { + "references": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupPerformanceFactorReferenceRequest" + } + } + }, + "type": "object" + }, "aws-native:autoscaling:AutoScalingGroupInstanceMaintenancePolicy": { "description": "``InstanceMaintenancePolicy`` is a property of the [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) resource.\n For more information, see [Instance maintenance policies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-maintenance-policy.html) in the *Amazon EC2 Auto Scaling User Guide*.", "properties": { @@ -11560,6 +11874,9 @@ "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupBaselineEbsBandwidthMbpsRequest", "description": "The minimum and maximum baseline bandwidth performance for an instance type, in Mbps. For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide for Linux Instances*.\n Default: No minimum or maximum limits" }, + "baselinePerformanceFactors": { + "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupBaselinePerformanceFactorsRequest" + }, "burstablePerformance": { "type": "string", "description": "Indicates whether burstable performance instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide for Linux Instances*.\n Default: ``excluded``" @@ -11890,6 +12207,14 @@ "topicArn" ] }, + "aws-native:autoscaling:AutoScalingGroupPerformanceFactorReferenceRequest": { + "properties": { + "instanceFamily": { + "type": "string" + } + }, + "type": "object" + }, "aws-native:autoscaling:AutoScalingGroupTagProperty": { "description": "A structure that specifies a tag for the ``Tags`` property of [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) resource.\n For more information, see [Tag Auto Scaling groups and instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html) in the *Amazon EC2 Auto Scaling User Guide*. You can find a sample template snippet in the [Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html#aws-resource-autoscaling-autoscalinggroup--examples) section of the ``AWS::AutoScaling::AutoScalingGroup`` resource.\n CloudFormation adds the following tags to all Auto Scaling groups and associated instances: \n + aws:cloudformation:stack-name\n + aws:cloudformation:stack-id\n + aws:cloudformation:logical-id", "properties": { @@ -14339,11 +14664,12 @@ "type": "array", "items": { "$ref": "#/types/aws-native:batch:ComputeEnvironmentLaunchTemplateSpecificationOverride" - } + }, + "description": "A launch template to use in place of the default launch template. You must specify either the launch template ID or launch template name in the request, but not both.\n\nYou can specify up to ten (10) launch template overrides that are associated to unique instance types or families for each compute environment.\n\n\u003e To unset all override templates for a compute environment, you can pass an empty array to the [UpdateComputeEnvironment.overrides](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) parameter, or not include the `overrides` parameter when submitting the `UpdateComputeEnvironment` API operation." }, "version": { "type": "string", - "description": "The version number of the launch template, `$Latest` , or `$Default` .\n\nIf the value is `$Latest` , the latest version of the launch template is used. If the value is `$Default` , the default version of the launch template is used.\n\n\u003e If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Latest` or `$Default` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . \n\nDefault: `$Default` ." + "description": "The version number of the launch template, `$Default` , or `$Latest` .\n\nIf the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used.\n\n\u003e If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . \n\nDefault: `$Default`\n\nLatest: `$Latest`" } }, "type": "object" @@ -14351,19 +14677,23 @@ "aws-native:batch:ComputeEnvironmentLaunchTemplateSpecificationOverride": { "properties": { "launchTemplateId": { - "type": "string" + "type": "string", + "description": "The ID of the launch template.\n\n*Note:* If you specify the `launchTemplateId` you can't specify the `launchTemplateName` as well." }, "launchTemplateName": { - "type": "string" + "type": "string", + "description": "The name of the launch template.\n\n*Note:* If you specify the `launchTemplateName` you can't specify the `launchTemplateId` as well." }, "targetInstanceTypes": { "type": "array", "items": { "type": "string" - } + }, + "description": "The instance type or family that this this override launch template should be applied to.\n\nThis parameter is required when defining a launch template override.\n\nInformation included in this parameter must meet the following requirements:\n\n- Must be a valid Amazon EC2 instance type or family.\n- `optimal` isn't allowed.\n- `targetInstanceTypes` can target only instance types and families that are included within the [`ComputeResource.instanceTypes`](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes) set. `targetInstanceTypes` doesn't need to include all of the instances from the `instanceType` set, but at least a subset. For example, if `ComputeResource.instanceTypes` includes `[m5, g5]` , `targetInstanceTypes` can include `[m5.2xlarge]` and `[m5.large]` but not `[c5.large]` .\n- `targetInstanceTypes` included within the same launch template override or across launch template overrides can't overlap for the same compute environment. For example, you can't define one launch template override to target an instance family and another define an instance type within this same family." }, "version": { - "type": "string" + "type": "string", + "description": "The version number of the launch template, `$Default` , or `$Latest` .\n\nIf the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used.\n\n\u003e If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . \n\nDefault: `$Default`\n\nLatest: `$Latest`" } }, "type": "object" @@ -31182,6 +31512,485 @@ "value" ] }, + "aws-native:connectcampaignsv2:CampaignAgentlessConfig": { + "description": "Agentless config", + "type": "object" + }, + "aws-native:connectcampaignsv2:CampaignAnswerMachineDetectionConfig": { + "description": "The configuration used for answering machine detection during outbound calls", + "properties": { + "awaitAnswerMachinePrompt": { + "type": "boolean", + "description": "Enables detection of prompts (e.g., beep after after a voicemail greeting)" + }, + "enableAnswerMachineDetection": { + "type": "boolean", + "description": "Flag to decided whether outbound calls should have answering machine detection enabled or not" + } + }, + "type": "object", + "required": [ + "enableAnswerMachineDetection" + ] + }, + "aws-native:connectcampaignsv2:CampaignChannelSubtypeConfig": { + "description": "The possible types of channel subtype config parameters", + "properties": { + "email": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignEmailChannelSubtypeConfig" + }, + "sms": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignSmsChannelSubtypeConfig" + }, + "telephony": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignTelephonyChannelSubtypeConfig" + } + }, + "type": "object" + }, + "aws-native:connectcampaignsv2:CampaignCommunicationLimit": { + "description": "Communication Limit", + "properties": { + "frequency": { + "type": "integer" + }, + "maxCountPerRecipient": { + "type": "integer" + }, + "unit": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignCommunicationLimitTimeUnit" + } + }, + "type": "object", + "required": [ + "frequency", + "maxCountPerRecipient", + "unit" + ] + }, + "aws-native:connectcampaignsv2:CampaignCommunicationLimitTimeUnit": { + "description": "The communication limit time unit", + "type": "string", + "enum": [ + { + "name": "Day", + "value": "DAY" + } + ] + }, + "aws-native:connectcampaignsv2:CampaignCommunicationLimits": { + "description": "Communication limits", + "properties": { + "communicationLimitList": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignCommunicationLimit" + } + } + }, + "type": "object" + }, + "aws-native:connectcampaignsv2:CampaignCommunicationLimitsConfig": { + "description": "Communication limits config", + "properties": { + "allChannelsSubtypes": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignCommunicationLimits" + } + }, + "type": "object" + }, + "aws-native:connectcampaignsv2:CampaignCommunicationTimeConfig": { + "description": "Campaign communication time config", + "properties": { + "email": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignTimeWindow" + }, + "localTimeZoneConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignLocalTimeZoneConfig" + }, + "sms": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignTimeWindow" + }, + "telephony": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignTimeWindow" + } + }, + "type": "object", + "required": [ + "localTimeZoneConfig" + ] + }, + "aws-native:connectcampaignsv2:CampaignDailyHour": { + "description": "Daily Hour", + "properties": { + "key": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignDayOfWeek" + }, + "value": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignTimeRange" + } + } + }, + "type": "object" + }, + "aws-native:connectcampaignsv2:CampaignDayOfWeek": { + "description": "Day of week", + "type": "string", + "enum": [ + { + "name": "Monday", + "value": "MONDAY" + }, + { + "name": "Tuesday", + "value": "TUESDAY" + }, + { + "name": "Wednesday", + "value": "WEDNESDAY" + }, + { + "name": "Thursday", + "value": "THURSDAY" + }, + { + "name": "Friday", + "value": "FRIDAY" + }, + { + "name": "Saturday", + "value": "SATURDAY" + }, + { + "name": "Sunday", + "value": "SUNDAY" + } + ] + }, + "aws-native:connectcampaignsv2:CampaignEmailChannelSubtypeConfig": { + "description": "Email Channel Subtype config", + "properties": { + "capacity": { + "type": "number" + }, + "defaultOutboundConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignEmailOutboundConfig" + }, + "outboundMode": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignEmailOutboundMode" + } + }, + "type": "object", + "required": [ + "defaultOutboundConfig", + "outboundMode" + ] + }, + "aws-native:connectcampaignsv2:CampaignEmailOutboundConfig": { + "description": "Default SMS outbound config", + "properties": { + "connectSourceEmailAddress": { + "type": "string" + }, + "sourceEmailAddressDisplayName": { + "type": "string" + }, + "wisdomTemplateArn": { + "type": "string" + } + }, + "type": "object", + "required": [ + "connectSourceEmailAddress", + "wisdomTemplateArn" + ] + }, + "aws-native:connectcampaignsv2:CampaignEmailOutboundMode": { + "description": "Email Outbound Mode", + "properties": { + "agentlessConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignAgentlessConfig" + } + }, + "type": "object" + }, + "aws-native:connectcampaignsv2:CampaignLocalTimeZoneConfig": { + "description": "Local time zone config", + "properties": { + "defaultTimeZone": { + "type": "string" + }, + "localTimeZoneDetection": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignLocalTimeZoneDetectionType" + } + } + }, + "type": "object" + }, + "aws-native:connectcampaignsv2:CampaignLocalTimeZoneDetectionType": { + "description": "Local TimeZone Detection method", + "type": "string", + "enum": [ + { + "name": "ZipCode", + "value": "ZIP_CODE" + }, + { + "name": "AreaCode", + "value": "AREA_CODE" + } + ] + }, + "aws-native:connectcampaignsv2:CampaignOpenHours": { + "description": "Open Hours config", + "properties": { + "dailyHours": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignDailyHour" + } + } + }, + "type": "object", + "required": [ + "dailyHours" + ] + }, + "aws-native:connectcampaignsv2:CampaignPredictiveConfig": { + "description": "Predictive config", + "properties": { + "bandwidthAllocation": { + "type": "number" + } + }, + "type": "object", + "required": [ + "bandwidthAllocation" + ] + }, + "aws-native:connectcampaignsv2:CampaignProgressiveConfig": { + "description": "Progressive config", + "properties": { + "bandwidthAllocation": { + "type": "number" + } + }, + "type": "object", + "required": [ + "bandwidthAllocation" + ] + }, + "aws-native:connectcampaignsv2:CampaignRestrictedPeriod": { + "description": "Restricted period", + "properties": { + "endDate": { + "type": "string" + }, + "name": { + "type": "string", + "description": "The name of a restricted period" + }, + "startDate": { + "type": "string" + } + }, + "type": "object", + "required": [ + "endDate", + "startDate" + ] + }, + "aws-native:connectcampaignsv2:CampaignRestrictedPeriods": { + "description": "Restricted period config", + "properties": { + "restrictedPeriodList": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignRestrictedPeriod" + } + } + }, + "type": "object" + }, + "aws-native:connectcampaignsv2:CampaignSchedule": { + "description": "Campaign schedule", + "properties": { + "endTime": { + "type": "string" + }, + "refreshFrequency": { + "type": "string" + }, + "startTime": { + "type": "string" + } + }, + "type": "object", + "required": [ + "endTime", + "startTime" + ] + }, + "aws-native:connectcampaignsv2:CampaignSmsChannelSubtypeConfig": { + "description": "SMS Channel Subtype config", + "properties": { + "capacity": { + "type": "number" + }, + "defaultOutboundConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignSmsOutboundConfig" + }, + "outboundMode": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignSmsOutboundMode" + } + }, + "type": "object", + "required": [ + "defaultOutboundConfig", + "outboundMode" + ] + }, + "aws-native:connectcampaignsv2:CampaignSmsOutboundConfig": { + "description": "Default SMS outbound config", + "properties": { + "connectSourcePhoneNumberArn": { + "type": "string" + }, + "wisdomTemplateArn": { + "type": "string" + } + }, + "type": "object", + "required": [ + "connectSourcePhoneNumberArn", + "wisdomTemplateArn" + ] + }, + "aws-native:connectcampaignsv2:CampaignSmsOutboundMode": { + "description": "SMS Outbound Mode", + "properties": { + "agentlessConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignAgentlessConfig" + } + }, + "type": "object" + }, + "aws-native:connectcampaignsv2:CampaignSource": { + "description": "The possible types of channel config parameters", + "properties": { + "customerProfilesSegmentArn": { + "type": "string" + } + }, + "type": "object" + }, + "aws-native:connectcampaignsv2:CampaignTag": { + "properties": { + "key": { + "type": "string", + "description": "The key name of the tag." + }, + "value": { + "type": "string", + "description": "The value for the tag." + } + }, + "type": "object", + "required": [ + "key", + "value" + ] + }, + "aws-native:connectcampaignsv2:CampaignTelephonyChannelSubtypeConfig": { + "description": "Telephony Channel Subtype config", + "properties": { + "capacity": { + "type": "number" + }, + "connectQueueId": { + "type": "string" + }, + "defaultOutboundConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignTelephonyOutboundConfig" + }, + "outboundMode": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignTelephonyOutboundMode" + } + }, + "type": "object", + "required": [ + "defaultOutboundConfig", + "outboundMode" + ] + }, + "aws-native:connectcampaignsv2:CampaignTelephonyOutboundConfig": { + "description": "Default Telephone Outbound config", + "properties": { + "answerMachineDetectionConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignAnswerMachineDetectionConfig" + }, + "connectContactFlowId": { + "type": "string" + }, + "connectSourcePhoneNumber": { + "type": "string" + } + }, + "type": "object", + "required": [ + "connectContactFlowId" + ] + }, + "aws-native:connectcampaignsv2:CampaignTelephonyOutboundMode": { + "description": "Telephony Outbound Mode", + "properties": { + "agentlessConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignAgentlessConfig" + }, + "predictiveConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignPredictiveConfig" + }, + "progressiveConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignProgressiveConfig" + } + }, + "type": "object" + }, + "aws-native:connectcampaignsv2:CampaignTimeRange": { + "description": "Time range in 24 hour format", + "properties": { + "endTime": { + "type": "string" + }, + "startTime": { + "type": "string" + } + }, + "type": "object", + "required": [ + "endTime", + "startTime" + ] + }, + "aws-native:connectcampaignsv2:CampaignTimeWindow": { + "description": "Time window config", + "properties": { + "openHours": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignOpenHours" + }, + "restrictedPeriods": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignRestrictedPeriods" + } + }, + "type": "object", + "required": [ + "openHours" + ] + }, "aws-native:controltower:EnabledBaselineParameter": { "properties": { "key": { @@ -38484,9 +39293,12 @@ "$ref": "#/types/aws-native:dynamodb:GlobalTableProjection", "description": "Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected." }, + "warmThroughput": { + "$ref": "#/types/aws-native:dynamodb:GlobalTableWarmThroughput" + }, "writeOnDemandThroughputSettings": { "$ref": "#/types/aws-native:dynamodb:GlobalTableWriteOnDemandThroughputSettings", - "description": "Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` ." + "description": "Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` ." }, "writeProvisionedThroughputSettings": { "$ref": "#/types/aws-native:dynamodb:GlobalTableWriteProvisionedThroughputSettings", @@ -38631,7 +39443,7 @@ }, "readOnDemandThroughputSettings": { "$ref": "#/types/aws-native:dynamodb:GlobalTableReadOnDemandThroughputSettings", - "description": "Sets the read request settings for a replica global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` ." + "description": "Sets the read request settings for a replica global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` ." }, "readProvisionedThroughputSettings": { "$ref": "#/types/aws-native:dynamodb:GlobalTableReadProvisionedThroughputSettings", @@ -38830,6 +39642,17 @@ "enabled" ] }, + "aws-native:dynamodb:GlobalTableWarmThroughput": { + "properties": { + "readUnitsPerSecond": { + "type": "integer" + }, + "writeUnitsPerSecond": { + "type": "integer" + } + }, + "type": "object" + }, "aws-native:dynamodb:GlobalTableWriteOnDemandThroughputSettings": { "properties": { "maxWriteRequestUnits": { @@ -38925,6 +39748,9 @@ "provisionedThroughput": { "$ref": "#/types/aws-native:dynamodb:TableProvisionedThroughput", "description": "Represents the provisioned throughput settings for the specified global secondary index.\n For current minimum and maximum provisioned throughput values, see [Service, Account, and Table Quotas](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the *Amazon DynamoDB Developer Guide*." + }, + "warmThroughput": { + "$ref": "#/types/aws-native:dynamodb:TableWarmThroughput" } }, "type": "object", @@ -39211,6 +40037,17 @@ "enabled" ] }, + "aws-native:dynamodb:TableWarmThroughput": { + "properties": { + "readUnitsPerSecond": { + "type": "integer" + }, + "writeUnitsPerSecond": { + "type": "integer" + } + }, + "type": "object" + }, "aws-native:ec2:CapacityReservationFleetInstanceMatchCriteria": { "description": "Indicates the type of instance launches that the Capacity Reservation Fleet accepts. All Capacity Reservations in the Fleet inherit this instance matching criteria.\n\nCurrently, Capacity Reservation Fleets support `open` instance matching criteria only. This means that instances that have matching attributes (instance type, platform, and Availability Zone) run in the Capacity Reservations automatically. Instances do not need to explicitly target a Capacity Reservation Fleet to use its reserved capacity.", "type": "string", @@ -48937,6 +49774,16 @@ }, "type": "object" }, + "aws-native:eks:NodegroupNodeRepairConfig": { + "description": "The node auto repair configuration for node group.", + "properties": { + "enabled": { + "type": "boolean", + "description": "Set this value to true to enable node auto repair for the node group." + } + }, + "type": "object" + }, "aws-native:eks:NodegroupRemoteAccess": { "description": "An object representing a remote access configuration specification for AWS EKS Nodegroup.", "properties": { @@ -49256,22 +50103,30 @@ ] }, "aws-native:elasticache:UserEngine": { - "description": "Must be redis.", + "description": "The target cache engine for the user.", "type": "string", "enum": [ { "name": "Redis", "value": "redis" + }, + { + "name": "Valkey", + "value": "valkey" } ] }, "aws-native:elasticache:UserGroupEngine": { - "description": "Must be redis.", + "description": "The target cache engine for the user group.", "type": "string", "enum": [ { "name": "Redis", "value": "redis" + }, + { + "name": "Valkey", + "value": "valkey" } ] }, @@ -50198,7 +51053,8 @@ "description": "[Network Load Balancers] The private IPv4 address for an internal load balancer." }, "sourceNatIpv6Prefix": { - "type": "string" + "type": "string", + "description": "[Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block." }, "subnetId": { "type": "string", @@ -53168,7 +54024,8 @@ "aws-native:fis:ExperimentTemplateCloudWatchDashboard": { "properties": { "dashboardIdentifier": { - "type": "string" + "type": "string", + "description": "The Amazon Resource Name (ARN) of the CloudWatch dashboard to include in the experiment report." } }, "type": "object", @@ -53221,16 +54078,20 @@ "aws-native:fis:ExperimentTemplateExperimentReportConfiguration": { "properties": { "dataSources": { - "$ref": "#/types/aws-native:fis:ExperimentTemplateExperimentReportConfigurationDataSourcesProperties" + "$ref": "#/types/aws-native:fis:ExperimentTemplateExperimentReportConfigurationDataSourcesProperties", + "description": "The data sources for the experiment report." }, "outputs": { - "$ref": "#/types/aws-native:fis:ExperimentTemplateExperimentReportConfigurationOutputsProperties" + "$ref": "#/types/aws-native:fis:ExperimentTemplateExperimentReportConfigurationOutputsProperties", + "description": "The output destinations of the experiment report." }, "postExperimentDuration": { - "type": "string" + "type": "string", + "description": "The duration after the experiment end time for the data sources to include in the report." }, "preExperimentDuration": { - "type": "string" + "type": "string", + "description": "The duration before the experiment start time for the data sources to include in the report." } }, "type": "object", @@ -53240,6 +54101,7 @@ ] }, "aws-native:fis:ExperimentTemplateExperimentReportConfigurationDataSourcesProperties": { + "description": "The data sources for the experiment report.", "properties": { "cloudWatchDashboards": { "type": "array", @@ -53251,6 +54113,7 @@ "type": "object" }, "aws-native:fis:ExperimentTemplateExperimentReportConfigurationOutputsProperties": { + "description": "The output destinations of the experiment report.", "properties": { "experimentReportS3Configuration": { "$ref": "#/types/aws-native:fis:ExperimentTemplateExperimentReportConfigurationOutputsPropertiesExperimentReportS3ConfigurationProperties" @@ -145323,6 +146186,10 @@ "$ref": "#/types/aws-native:sagemaker:ClusterDeepHealthCheckType" } }, + "overrideVpcConfig": { + "$ref": "#/types/aws-native:sagemaker:ClusterVpcConfig", + "replaceOnChanges": true + }, "threadsPerCore": { "type": "integer", "description": "The number you specified to TreadsPerCore in CreateCluster for enabling or disabling multithreading. For instance types that support multithreading, you can specify 1 for disabling multithreading and 2 for enabling multithreading.", @@ -162929,6 +163796,19 @@ "value" ] }, + "aws-native:vpclattice:AccessLogSubscriptionServiceNetworkLogType": { + "type": "string", + "enum": [ + { + "name": "Service", + "value": "SERVICE" + }, + { + "name": "Resource", + "value": "RESOURCE" + } + ] + }, "aws-native:vpclattice:AccessLogSubscriptionTag": { "properties": { "key": { @@ -163358,6 +164238,17 @@ "value" ] }, + "aws-native:vpclattice:ServiceNetworkSharingConfig": { + "properties": { + "enabled": { + "type": "boolean" + } + }, + "type": "object", + "required": [ + "enabled" + ] + }, "aws-native:vpclattice:ServiceNetworkTag": { "properties": { "key": { @@ -168898,8 +169789,7 @@ "properties": { "analyzerConfiguration": { "$ref": "#/types/aws-native:accessanalyzer:AnalyzerConfigurationProperties", - "description": "The configuration for the analyzer", - "replaceOnChanges": true + "description": "The configuration for the analyzer" }, "analyzerName": { "type": "string", @@ -174032,6 +174922,9 @@ "type": "string", "description": "The scaling policy type.\n The following policy types are supported: \n ``TargetTrackingScaling``—Not supported for Amazon EMR\n ``StepScaling``—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune." }, + "predictiveScalingPolicyConfiguration": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingPolicyConfiguration" + }, "resourceId": { "type": "string", "description": "The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.\n + ECS service - The resource type is ``service`` and the unique identifier is the cluster name and service name. Example: ``service/my-cluster/my-service``.\n + Spot Fleet - The resource type is ``spot-fleet-request`` and the unique identifier is the Spot Fleet request ID. Example: ``spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE``.\n + EMR cluster - The resource type is ``instancegroup`` and the unique identifier is the cluster ID and instance group ID. Example: ``instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0``.\n + AppStream 2.0 fleet - The resource type is ``fleet`` and the unique identifier is the fleet name. Example: ``fleet/sample-fleet``.\n + DynamoDB table - The resource type is ``table`` and the unique identifier is the table name. Example: ``table/my-table``.\n + DynamoDB global secondary index - The resource type is ``index`` and the unique identifier is the index name. Example: ``table/my-table/index/my-table-index``.\n + Aurora DB cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:my-db-cluster``.\n + SageMaker endpoint variant - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``.\n + Custom resources are not supported with a resource type. This parameter must specify the ``OutputValue`` from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our [GitHub repository](https://docs.aws.amazon.com/https://github.com/aws/aws-auto-scaling-custom-resource).\n + Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE``.\n + Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE``.\n + Lambda provisioned concurrency - The resource type is ``function`` and the unique identifier is the function name with a function version or alias name suffix that is not ``$LATEST``. Example: ``function:my-function:prod`` or ``function:my-function:1``.\n + Amazon Keyspaces table - The resource type is ``table`` and the unique identifier is the table name. Example: ``keyspace/mykeyspace/table/mytable``.\n + Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: ``arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5``.\n + Amazon ElastiCache replication group - The resource type is ``replication-group`` and the unique identifier is the replication group name. Example: ``replication-group/mycluster``.\n + Neptune cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:mycluster``.\n + SageMaker serverless endpoint - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``.\n + SageMaker inference component - The resource type is ``inference-component`` and the unique identifier is the resource ID. Example: ``inference-component/my-inference-component``.\n + Pool of WorkSpaces - The resource type is ``workspacespool`` and the unique identifier is the pool ID. Example: ``workspacespool/wspool-123456``.", @@ -174076,6 +174969,9 @@ "type": "string", "description": "The scaling policy type.\n The following policy types are supported: \n ``TargetTrackingScaling``—Not supported for Amazon EMR\n ``StepScaling``—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune." }, + "predictiveScalingPolicyConfiguration": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingPolicyConfiguration" + }, "resourceId": { "type": "string", "description": "The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.\n + ECS service - The resource type is ``service`` and the unique identifier is the cluster name and service name. Example: ``service/my-cluster/my-service``.\n + Spot Fleet - The resource type is ``spot-fleet-request`` and the unique identifier is the Spot Fleet request ID. Example: ``spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE``.\n + EMR cluster - The resource type is ``instancegroup`` and the unique identifier is the cluster ID and instance group ID. Example: ``instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0``.\n + AppStream 2.0 fleet - The resource type is ``fleet`` and the unique identifier is the fleet name. Example: ``fleet/sample-fleet``.\n + DynamoDB table - The resource type is ``table`` and the unique identifier is the table name. Example: ``table/my-table``.\n + DynamoDB global secondary index - The resource type is ``index`` and the unique identifier is the index name. Example: ``table/my-table/index/my-table-index``.\n + Aurora DB cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:my-db-cluster``.\n + SageMaker endpoint variant - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``.\n + Custom resources are not supported with a resource type. This parameter must specify the ``OutputValue`` from the CloudFormation template stack used to access the resources. The unique identifier is defined by the service provider. More information is available in our [GitHub repository](https://docs.aws.amazon.com/https://github.com/aws/aws-auto-scaling-custom-resource).\n + Amazon Comprehend document classification endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE``.\n + Amazon Comprehend entity recognizer endpoint - The resource type and unique identifier are specified using the endpoint ARN. Example: ``arn:aws:comprehend:us-west-2:123456789012:entity-recognizer-endpoint/EXAMPLE``.\n + Lambda provisioned concurrency - The resource type is ``function`` and the unique identifier is the function name with a function version or alias name suffix that is not ``$LATEST``. Example: ``function:my-function:prod`` or ``function:my-function:1``.\n + Amazon Keyspaces table - The resource type is ``table`` and the unique identifier is the table name. Example: ``keyspace/mykeyspace/table/mytable``.\n + Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: ``arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5``.\n + Amazon ElastiCache replication group - The resource type is ``replication-group`` and the unique identifier is the replication group name. Example: ``replication-group/mycluster``.\n + Neptune cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:mycluster``.\n + SageMaker serverless endpoint - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``.\n + SageMaker inference component - The resource type is ``inference-component`` and the unique identifier is the resource ID. Example: ``inference-component/my-inference-component``.\n + Pool of WorkSpaces - The resource type is ``workspacespool`` and the unique identifier is the pool ID. Example: ``workspacespool/wspool-123456``." @@ -174253,6 +175149,12 @@ "type": "string", "description": "The ARN of this SLO." }, + "burnRateConfigurations": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:applicationsignals:ServiceLevelObjectiveBurnRateConfiguration" + } + }, "createdTime": { "type": "integer", "description": "Epoch time in seconds of the time that this SLO was created" @@ -174303,6 +175205,12 @@ "name" ], "inputProperties": { + "burnRateConfigurations": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:applicationsignals:ServiceLevelObjectiveBurnRateConfiguration" + } + }, "description": { "type": "string", "description": "An optional description for this SLO. Default is 'No description'" @@ -177247,6 +178155,9 @@ "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupAvailabilityZoneDistribution", "description": "The instance capacity distribution across Availability Zones." }, + "availabilityZoneImpairmentPolicy": { + "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupAvailabilityZoneImpairmentPolicy" + }, "availabilityZones": { "type": "array", "items": { @@ -177362,6 +178273,9 @@ "type": "string", "description": "The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other AWS service on your behalf. By default, Amazon EC2 Auto Scaling uses a service-linked role named ``AWSServiceRoleForAutoScaling``, which it creates if it does not exist. For more information, see [Service-linked roles](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html) in the *Amazon EC2 Auto Scaling User Guide*." }, + "skipZonalShiftValidation": { + "type": "boolean" + }, "tags": { "type": "array", "items": { @@ -177412,6 +178326,9 @@ "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupAvailabilityZoneDistribution", "description": "The instance capacity distribution across Availability Zones." }, + "availabilityZoneImpairmentPolicy": { + "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupAvailabilityZoneImpairmentPolicy" + }, "availabilityZones": { "type": "array", "items": { @@ -177526,6 +178443,9 @@ "type": "string", "description": "The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other AWS service on your behalf. By default, Amazon EC2 Auto Scaling uses a service-linked role named ``AWSServiceRoleForAutoScaling``, which it creates if it does not exist. For more information, see [Service-linked roles](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html) in the *Amazon EC2 Auto Scaling User Guide*." }, + "skipZonalShiftValidation": { + "type": "boolean" + }, "tags": { "type": "array", "items": { @@ -183942,7 +184862,8 @@ }, "executionRoleArn": { "type": "string", - "description": "The Amazon Resource Name (ARN) of the IAM execution role to use to register the type. If your resource type calls AWS APIs in any of its handlers, you must create an IAM execution role that includes the necessary permissions to call those AWS APIs, and provision that execution role in your account. CloudFormation then assumes that execution role to provide your resource type with the appropriate credentials." + "description": "The Amazon Resource Name (ARN) of the IAM execution role to use to register the type. If your resource type calls AWS APIs in any of its handlers, you must create an IAM execution role that includes the necessary permissions to call those AWS APIs, and provision that execution role in your account. CloudFormation then assumes that execution role to provide your resource type with the appropriate credentials.", + "replaceOnChanges": true }, "loggingConfig": { "$ref": "#/types/aws-native:cloudformation:TypeActivationLoggingConfig", @@ -183955,23 +184876,28 @@ }, "publicTypeArn": { "type": "string", - "description": "The Amazon Resource Number (ARN) assigned to the public extension upon publication" + "description": "The Amazon Resource Number (ARN) assigned to the public extension upon publication", + "replaceOnChanges": true }, "publisherId": { "type": "string", - "description": "The publisher id assigned by CloudFormation for publishing in this region." + "description": "The publisher id assigned by CloudFormation for publishing in this region.", + "replaceOnChanges": true }, "type": { "$ref": "#/types/aws-native:cloudformation:TypeActivationType", - "description": "The kind of extension" + "description": "The kind of extension", + "replaceOnChanges": true }, "typeName": { "type": "string", - "description": "The name of the type being registered.\n\nWe recommend that type names adhere to the following pattern: company_or_organization::service::type." + "description": "The name of the type being registered.\n\nWe recommend that type names adhere to the following pattern: company_or_organization::service::type.", + "replaceOnChanges": true }, "typeNameAlias": { "type": "string", - "description": "An alias to assign to the public extension in this account and region. If you specify an alias for the extension, you must then use the alias to refer to the extension in your templates." + "description": "An alias to assign to the public extension in this account and region. If you specify an alias for the extension, you must then use the alias to refer to the extension in your templates.", + "replaceOnChanges": true }, "versionBump": { "$ref": "#/types/aws-native:cloudformation:TypeActivationVersionBump", @@ -190949,6 +191875,91 @@ "outboundCallConfig" ] }, + "aws-native:connectcampaignsv2:Campaign": { + "description": "Definition of AWS::ConnectCampaignsV2::Campaign Resource Type", + "properties": { + "arn": { + "type": "string", + "description": "Amazon Connect Campaign Arn" + }, + "channelSubtypeConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignChannelSubtypeConfig" + }, + "communicationLimitsOverride": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignCommunicationLimitsConfig" + }, + "communicationTimeConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignCommunicationTimeConfig" + }, + "connectCampaignFlowArn": { + "type": "string" + }, + "connectInstanceId": { + "type": "string", + "replaceOnChanges": true + }, + "name": { + "type": "string" + }, + "schedule": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignSchedule" + }, + "source": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignSource" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "One or more tags." + } + }, + "type": "object", + "required": [ + "arn", + "channelSubtypeConfig", + "connectInstanceId", + "name" + ], + "inputProperties": { + "channelSubtypeConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignChannelSubtypeConfig" + }, + "communicationLimitsOverride": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignCommunicationLimitsConfig" + }, + "communicationTimeConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignCommunicationTimeConfig" + }, + "connectCampaignFlowArn": { + "type": "string" + }, + "connectInstanceId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "schedule": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignSchedule" + }, + "source": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignSource" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "One or more tags." + } + }, + "requiredInputs": [ + "channelSubtypeConfig", + "connectInstanceId" + ] + }, "aws-native:controltower:EnabledBaseline": { "description": "Definition of AWS::ControlTower::EnabledBaseline Resource Type", "properties": { @@ -197179,9 +198190,12 @@ "$ref": "#/types/aws-native:dynamodb:GlobalTableTimeToLiveSpecification", "description": "Specifies the time to live (TTL) settings for the table. This setting will be applied to all replicas." }, + "warmThroughput": { + "$ref": "#/types/aws-native:dynamodb:GlobalTableWarmThroughput" + }, "writeOnDemandThroughputSettings": { "$ref": "#/types/aws-native:dynamodb:GlobalTableWriteOnDemandThroughputSettings", - "description": "Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` ." + "description": "Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` ." }, "writeProvisionedThroughputSettings": { "$ref": "#/types/aws-native:dynamodb:GlobalTableWriteProvisionedThroughputSettings", @@ -197253,9 +198267,12 @@ "$ref": "#/types/aws-native:dynamodb:GlobalTableTimeToLiveSpecification", "description": "Specifies the time to live (TTL) settings for the table. This setting will be applied to all replicas." }, + "warmThroughput": { + "$ref": "#/types/aws-native:dynamodb:GlobalTableWarmThroughput" + }, "writeOnDemandThroughputSettings": { "$ref": "#/types/aws-native:dynamodb:GlobalTableWriteOnDemandThroughputSettings", - "description": "Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` ." + "description": "Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` ." }, "writeProvisionedThroughputSettings": { "$ref": "#/types/aws-native:dynamodb:GlobalTableWriteProvisionedThroughputSettings", @@ -197269,7 +198286,7 @@ ] }, "aws-native:dynamodb:Table": { - "description": "The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*.\n You should be aware of the following behaviors when working with DDB tables:\n + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute).\n \n Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Example\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AwsNative = Pulumi.AwsNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myDynamoDBTable = new AwsNative.DynamoDb.Table(\"myDynamoDBTable\", new()\n {\n AttributeDefinitions = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"Album\",\n AttributeType = \"S\",\n },\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"Artist\",\n AttributeType = \"S\",\n },\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"Sales\",\n AttributeType = \"N\",\n },\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"NumberOfSongs\",\n AttributeType = \"N\",\n },\n },\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Album\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Artist\",\n KeyType = \"RANGE\",\n },\n },\n ProvisionedThroughput = new AwsNative.DynamoDb.Inputs.TableProvisionedThroughputArgs\n {\n ReadCapacityUnits = 5,\n WriteCapacityUnits = 5,\n },\n TableName = \"myTableName\",\n GlobalSecondaryIndexes = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableGlobalSecondaryIndexArgs\n {\n IndexName = \"myGSI\",\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Sales\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Artist\",\n KeyType = \"RANGE\",\n },\n },\n Projection = new AwsNative.DynamoDb.Inputs.TableProjectionArgs\n {\n NonKeyAttributes = new[]\n {\n \"Album\",\n \"NumberOfSongs\",\n },\n ProjectionType = \"INCLUDE\",\n },\n ProvisionedThroughput = new AwsNative.DynamoDb.Inputs.TableProvisionedThroughputArgs\n {\n ReadCapacityUnits = 5,\n WriteCapacityUnits = 5,\n },\n },\n new AwsNative.DynamoDb.Inputs.TableGlobalSecondaryIndexArgs\n {\n IndexName = \"myGSI2\",\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"NumberOfSongs\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Sales\",\n KeyType = \"RANGE\",\n },\n },\n Projection = new AwsNative.DynamoDb.Inputs.TableProjectionArgs\n {\n NonKeyAttributes = new[]\n {\n \"Album\",\n \"Artist\",\n },\n ProjectionType = \"INCLUDE\",\n },\n ProvisionedThroughput = new AwsNative.DynamoDb.Inputs.TableProvisionedThroughputArgs\n {\n ReadCapacityUnits = 5,\n WriteCapacityUnits = 5,\n },\n },\n },\n LocalSecondaryIndexes = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableLocalSecondaryIndexArgs\n {\n IndexName = \"myLSI\",\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Album\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Sales\",\n KeyType = \"RANGE\",\n },\n },\n Projection = new AwsNative.DynamoDb.Inputs.TableProjectionArgs\n {\n NonKeyAttributes = new[]\n {\n \"Artist\",\n \"NumberOfSongs\",\n },\n ProjectionType = \"INCLUDE\",\n },\n },\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/dynamodb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dynamodb.NewTable(ctx, \"myDynamoDBTable\", \u0026dynamodb.TableArgs{\n\t\t\tAttributeDefinitions: dynamodb.TableAttributeDefinitionArray{\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Album\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"S\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Artist\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"S\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"N\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"N\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tKeySchema: pulumi.Any{\n\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Album\"),\n\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Artist\"),\n\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tProvisionedThroughput: \u0026dynamodb.TableProvisionedThroughputArgs{\n\t\t\t\tReadCapacityUnits: pulumi.Int(5),\n\t\t\t\tWriteCapacityUnits: pulumi.Int(5),\n\t\t\t},\n\t\t\tTableName: pulumi.String(\"myTableName\"),\n\t\t\tGlobalSecondaryIndexes: dynamodb.TableGlobalSecondaryIndexArray{\n\t\t\t\t\u0026dynamodb.TableGlobalSecondaryIndexArgs{\n\t\t\t\t\tIndexName: pulumi.String(\"myGSI\"),\n\t\t\t\t\tKeySchema: dynamodb.TableKeySchemaArray{\n\t\t\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Artist\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tProjection: \u0026dynamodb.TableProjectionArgs{\n\t\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Album\"),\n\t\t\t\t\t\t\tpulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\t},\n\t\t\t\t\tProvisionedThroughput: \u0026dynamodb.TableProvisionedThroughputArgs{\n\t\t\t\t\t\tReadCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t\tWriteCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableGlobalSecondaryIndexArgs{\n\t\t\t\t\tIndexName: pulumi.String(\"myGSI2\"),\n\t\t\t\t\tKeySchema: dynamodb.TableKeySchemaArray{\n\t\t\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tProjection: \u0026dynamodb.TableProjectionArgs{\n\t\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Album\"),\n\t\t\t\t\t\t\tpulumi.String(\"Artist\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\t},\n\t\t\t\t\tProvisionedThroughput: \u0026dynamodb.TableProvisionedThroughputArgs{\n\t\t\t\t\t\tReadCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t\tWriteCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocalSecondaryIndexes: dynamodb.TableLocalSecondaryIndexArray{\n\t\t\t\t\u0026dynamodb.TableLocalSecondaryIndexArgs{\n\t\t\t\t\tIndexName: pulumi.String(\"myLSI\"),\n\t\t\t\t\tKeySchema: dynamodb.TableKeySchemaArray{\n\t\t\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Album\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tProjection: \u0026dynamodb.TableProjectionArgs{\n\t\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Artist\"),\n\t\t\t\t\t\t\tpulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst myDynamoDBTable = new aws_native.dynamodb.Table(\"myDynamoDBTable\", {\n attributeDefinitions: [\n {\n attributeName: \"Album\",\n attributeType: \"S\",\n },\n {\n attributeName: \"Artist\",\n attributeType: \"S\",\n },\n {\n attributeName: \"Sales\",\n attributeType: \"N\",\n },\n {\n attributeName: \"NumberOfSongs\",\n attributeType: \"N\",\n },\n ],\n keySchema: [\n {\n attributeName: \"Album\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Artist\",\n keyType: \"RANGE\",\n },\n ],\n provisionedThroughput: {\n readCapacityUnits: 5,\n writeCapacityUnits: 5,\n },\n tableName: \"myTableName\",\n globalSecondaryIndexes: [\n {\n indexName: \"myGSI\",\n keySchema: [\n {\n attributeName: \"Sales\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Artist\",\n keyType: \"RANGE\",\n },\n ],\n projection: {\n nonKeyAttributes: [\n \"Album\",\n \"NumberOfSongs\",\n ],\n projectionType: \"INCLUDE\",\n },\n provisionedThroughput: {\n readCapacityUnits: 5,\n writeCapacityUnits: 5,\n },\n },\n {\n indexName: \"myGSI2\",\n keySchema: [\n {\n attributeName: \"NumberOfSongs\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Sales\",\n keyType: \"RANGE\",\n },\n ],\n projection: {\n nonKeyAttributes: [\n \"Album\",\n \"Artist\",\n ],\n projectionType: \"INCLUDE\",\n },\n provisionedThroughput: {\n readCapacityUnits: 5,\n writeCapacityUnits: 5,\n },\n },\n ],\n localSecondaryIndexes: [{\n indexName: \"myLSI\",\n keySchema: [\n {\n attributeName: \"Album\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Sales\",\n keyType: \"RANGE\",\n },\n ],\n projection: {\n nonKeyAttributes: [\n \"Artist\",\n \"NumberOfSongs\",\n ],\n projectionType: \"INCLUDE\",\n },\n }],\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nmy_dynamo_db_table = aws_native.dynamodb.Table(\"myDynamoDBTable\",\n attribute_definitions=[\n {\n \"attribute_name\": \"Album\",\n \"attribute_type\": \"S\",\n },\n {\n \"attribute_name\": \"Artist\",\n \"attribute_type\": \"S\",\n },\n {\n \"attribute_name\": \"Sales\",\n \"attribute_type\": \"N\",\n },\n {\n \"attribute_name\": \"NumberOfSongs\",\n \"attribute_type\": \"N\",\n },\n ],\n key_schema=[\n {\n \"attributeName\": \"Album\",\n \"keyType\": \"HASH\",\n },\n {\n \"attributeName\": \"Artist\",\n \"keyType\": \"RANGE\",\n },\n ],\n provisioned_throughput={\n \"read_capacity_units\": 5,\n \"write_capacity_units\": 5,\n },\n table_name=\"myTableName\",\n global_secondary_indexes=[\n {\n \"index_name\": \"myGSI\",\n \"key_schema\": [\n {\n \"attribute_name\": \"Sales\",\n \"key_type\": \"HASH\",\n },\n {\n \"attribute_name\": \"Artist\",\n \"key_type\": \"RANGE\",\n },\n ],\n \"projection\": {\n \"non_key_attributes\": [\n \"Album\",\n \"NumberOfSongs\",\n ],\n \"projection_type\": \"INCLUDE\",\n },\n \"provisioned_throughput\": {\n \"read_capacity_units\": 5,\n \"write_capacity_units\": 5,\n },\n },\n {\n \"index_name\": \"myGSI2\",\n \"key_schema\": [\n {\n \"attribute_name\": \"NumberOfSongs\",\n \"key_type\": \"HASH\",\n },\n {\n \"attribute_name\": \"Sales\",\n \"key_type\": \"RANGE\",\n },\n ],\n \"projection\": {\n \"non_key_attributes\": [\n \"Album\",\n \"Artist\",\n ],\n \"projection_type\": \"INCLUDE\",\n },\n \"provisioned_throughput\": {\n \"read_capacity_units\": 5,\n \"write_capacity_units\": 5,\n },\n },\n ],\n local_secondary_indexes=[{\n \"index_name\": \"myLSI\",\n \"key_schema\": [\n {\n \"attribute_name\": \"Album\",\n \"key_type\": \"HASH\",\n },\n {\n \"attribute_name\": \"Sales\",\n \"key_type\": \"RANGE\",\n },\n ],\n \"projection\": {\n \"non_key_attributes\": [\n \"Artist\",\n \"NumberOfSongs\",\n ],\n \"projection_type\": \"INCLUDE\",\n },\n }])\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Example\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AwsNative = Pulumi.AwsNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myDynamoDBTable = new AwsNative.DynamoDb.Table(\"myDynamoDBTable\", new()\n {\n AttributeDefinitions = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"Album\",\n AttributeType = \"S\",\n },\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"Artist\",\n AttributeType = \"S\",\n },\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"Sales\",\n AttributeType = \"N\",\n },\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"NumberOfSongs\",\n AttributeType = \"N\",\n },\n },\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Album\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Artist\",\n KeyType = \"RANGE\",\n },\n },\n ProvisionedThroughput = new AwsNative.DynamoDb.Inputs.TableProvisionedThroughputArgs\n {\n ReadCapacityUnits = 5,\n WriteCapacityUnits = 5,\n },\n TableName = \"myTableName\",\n GlobalSecondaryIndexes = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableGlobalSecondaryIndexArgs\n {\n IndexName = \"myGSI\",\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Sales\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Artist\",\n KeyType = \"RANGE\",\n },\n },\n Projection = new AwsNative.DynamoDb.Inputs.TableProjectionArgs\n {\n NonKeyAttributes = new[]\n {\n \"Album\",\n \"NumberOfSongs\",\n },\n ProjectionType = \"INCLUDE\",\n },\n ProvisionedThroughput = new AwsNative.DynamoDb.Inputs.TableProvisionedThroughputArgs\n {\n ReadCapacityUnits = 5,\n WriteCapacityUnits = 5,\n },\n },\n new AwsNative.DynamoDb.Inputs.TableGlobalSecondaryIndexArgs\n {\n IndexName = \"myGSI2\",\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"NumberOfSongs\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Sales\",\n KeyType = \"RANGE\",\n },\n },\n Projection = new AwsNative.DynamoDb.Inputs.TableProjectionArgs\n {\n NonKeyAttributes = new[]\n {\n \"Album\",\n \"Artist\",\n },\n ProjectionType = \"INCLUDE\",\n },\n ProvisionedThroughput = new AwsNative.DynamoDb.Inputs.TableProvisionedThroughputArgs\n {\n ReadCapacityUnits = 5,\n WriteCapacityUnits = 5,\n },\n },\n },\n LocalSecondaryIndexes = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableLocalSecondaryIndexArgs\n {\n IndexName = \"myLSI\",\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Album\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Sales\",\n KeyType = \"RANGE\",\n },\n },\n Projection = new AwsNative.DynamoDb.Inputs.TableProjectionArgs\n {\n NonKeyAttributes = new[]\n {\n \"Artist\",\n \"NumberOfSongs\",\n },\n ProjectionType = \"INCLUDE\",\n },\n },\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/dynamodb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dynamodb.NewTable(ctx, \"myDynamoDBTable\", \u0026dynamodb.TableArgs{\n\t\t\tAttributeDefinitions: dynamodb.TableAttributeDefinitionArray{\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Album\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"S\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Artist\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"S\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"N\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"N\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tKeySchema: pulumi.Any{\n\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Album\"),\n\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Artist\"),\n\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tProvisionedThroughput: \u0026dynamodb.TableProvisionedThroughputArgs{\n\t\t\t\tReadCapacityUnits: pulumi.Int(5),\n\t\t\t\tWriteCapacityUnits: pulumi.Int(5),\n\t\t\t},\n\t\t\tTableName: pulumi.String(\"myTableName\"),\n\t\t\tGlobalSecondaryIndexes: dynamodb.TableGlobalSecondaryIndexArray{\n\t\t\t\t\u0026dynamodb.TableGlobalSecondaryIndexArgs{\n\t\t\t\t\tIndexName: pulumi.String(\"myGSI\"),\n\t\t\t\t\tKeySchema: dynamodb.TableKeySchemaArray{\n\t\t\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Artist\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tProjection: \u0026dynamodb.TableProjectionArgs{\n\t\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Album\"),\n\t\t\t\t\t\t\tpulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\t},\n\t\t\t\t\tProvisionedThroughput: \u0026dynamodb.TableProvisionedThroughputArgs{\n\t\t\t\t\t\tReadCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t\tWriteCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableGlobalSecondaryIndexArgs{\n\t\t\t\t\tIndexName: pulumi.String(\"myGSI2\"),\n\t\t\t\t\tKeySchema: dynamodb.TableKeySchemaArray{\n\t\t\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tProjection: \u0026dynamodb.TableProjectionArgs{\n\t\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Album\"),\n\t\t\t\t\t\t\tpulumi.String(\"Artist\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\t},\n\t\t\t\t\tProvisionedThroughput: \u0026dynamodb.TableProvisionedThroughputArgs{\n\t\t\t\t\t\tReadCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t\tWriteCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocalSecondaryIndexes: dynamodb.TableLocalSecondaryIndexArray{\n\t\t\t\t\u0026dynamodb.TableLocalSecondaryIndexArgs{\n\t\t\t\t\tIndexName: pulumi.String(\"myLSI\"),\n\t\t\t\t\tKeySchema: dynamodb.TableKeySchemaArray{\n\t\t\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Album\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tProjection: \u0026dynamodb.TableProjectionArgs{\n\t\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Artist\"),\n\t\t\t\t\t\t\tpulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst myDynamoDBTable = new aws_native.dynamodb.Table(\"myDynamoDBTable\", {\n attributeDefinitions: [\n {\n attributeName: \"Album\",\n attributeType: \"S\",\n },\n {\n attributeName: \"Artist\",\n attributeType: \"S\",\n },\n {\n attributeName: \"Sales\",\n attributeType: \"N\",\n },\n {\n attributeName: \"NumberOfSongs\",\n attributeType: \"N\",\n },\n ],\n keySchema: [\n {\n attributeName: \"Album\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Artist\",\n keyType: \"RANGE\",\n },\n ],\n provisionedThroughput: {\n readCapacityUnits: 5,\n writeCapacityUnits: 5,\n },\n tableName: \"myTableName\",\n globalSecondaryIndexes: [\n {\n indexName: \"myGSI\",\n keySchema: [\n {\n attributeName: \"Sales\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Artist\",\n keyType: \"RANGE\",\n },\n ],\n projection: {\n nonKeyAttributes: [\n \"Album\",\n \"NumberOfSongs\",\n ],\n projectionType: \"INCLUDE\",\n },\n provisionedThroughput: {\n readCapacityUnits: 5,\n writeCapacityUnits: 5,\n },\n },\n {\n indexName: \"myGSI2\",\n keySchema: [\n {\n attributeName: \"NumberOfSongs\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Sales\",\n keyType: \"RANGE\",\n },\n ],\n projection: {\n nonKeyAttributes: [\n \"Album\",\n \"Artist\",\n ],\n projectionType: \"INCLUDE\",\n },\n provisionedThroughput: {\n readCapacityUnits: 5,\n writeCapacityUnits: 5,\n },\n },\n ],\n localSecondaryIndexes: [{\n indexName: \"myLSI\",\n keySchema: [\n {\n attributeName: \"Album\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Sales\",\n keyType: \"RANGE\",\n },\n ],\n projection: {\n nonKeyAttributes: [\n \"Artist\",\n \"NumberOfSongs\",\n ],\n projectionType: \"INCLUDE\",\n },\n }],\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nmy_dynamo_db_table = aws_native.dynamodb.Table(\"myDynamoDBTable\",\n attribute_definitions=[\n {\n \"attribute_name\": \"Album\",\n \"attribute_type\": \"S\",\n },\n {\n \"attribute_name\": \"Artist\",\n \"attribute_type\": \"S\",\n },\n {\n \"attribute_name\": \"Sales\",\n \"attribute_type\": \"N\",\n },\n {\n \"attribute_name\": \"NumberOfSongs\",\n \"attribute_type\": \"N\",\n },\n ],\n key_schema=[\n {\n \"attributeName\": \"Album\",\n \"keyType\": \"HASH\",\n },\n {\n \"attributeName\": \"Artist\",\n \"keyType\": \"RANGE\",\n },\n ],\n provisioned_throughput={\n \"read_capacity_units\": 5,\n \"write_capacity_units\": 5,\n },\n table_name=\"myTableName\",\n global_secondary_indexes=[\n {\n \"index_name\": \"myGSI\",\n \"key_schema\": [\n {\n \"attribute_name\": \"Sales\",\n \"key_type\": \"HASH\",\n },\n {\n \"attribute_name\": \"Artist\",\n \"key_type\": \"RANGE\",\n },\n ],\n \"projection\": {\n \"non_key_attributes\": [\n \"Album\",\n \"NumberOfSongs\",\n ],\n \"projection_type\": \"INCLUDE\",\n },\n \"provisioned_throughput\": {\n \"read_capacity_units\": 5,\n \"write_capacity_units\": 5,\n },\n },\n {\n \"index_name\": \"myGSI2\",\n \"key_schema\": [\n {\n \"attribute_name\": \"NumberOfSongs\",\n \"key_type\": \"HASH\",\n },\n {\n \"attribute_name\": \"Sales\",\n \"key_type\": \"RANGE\",\n },\n ],\n \"projection\": {\n \"non_key_attributes\": [\n \"Album\",\n \"Artist\",\n ],\n \"projection_type\": \"INCLUDE\",\n },\n \"provisioned_throughput\": {\n \"read_capacity_units\": 5,\n \"write_capacity_units\": 5,\n },\n },\n ],\n local_secondary_indexes=[{\n \"index_name\": \"myLSI\",\n \"key_schema\": [\n {\n \"attribute_name\": \"Album\",\n \"key_type\": \"HASH\",\n },\n {\n \"attribute_name\": \"Sales\",\n \"key_type\": \"RANGE\",\n },\n ],\n \"projection\": {\n \"non_key_attributes\": [\n \"Artist\",\n \"NumberOfSongs\",\n ],\n \"projection_type\": \"INCLUDE\",\n },\n }])\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n", + "description": "The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*.\n You should be aware of the following behaviors when working with DDB tables:\n + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute).\n \n Our guidance is to use the latest schema documented for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Example\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AwsNative = Pulumi.AwsNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myDynamoDBTable = new AwsNative.DynamoDb.Table(\"myDynamoDBTable\", new()\n {\n AttributeDefinitions = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"Album\",\n AttributeType = \"S\",\n },\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"Artist\",\n AttributeType = \"S\",\n },\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"Sales\",\n AttributeType = \"N\",\n },\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"NumberOfSongs\",\n AttributeType = \"N\",\n },\n },\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Album\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Artist\",\n KeyType = \"RANGE\",\n },\n },\n ProvisionedThroughput = new AwsNative.DynamoDb.Inputs.TableProvisionedThroughputArgs\n {\n ReadCapacityUnits = 5,\n WriteCapacityUnits = 5,\n },\n TableName = \"myTableName\",\n GlobalSecondaryIndexes = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableGlobalSecondaryIndexArgs\n {\n IndexName = \"myGSI\",\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Sales\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Artist\",\n KeyType = \"RANGE\",\n },\n },\n Projection = new AwsNative.DynamoDb.Inputs.TableProjectionArgs\n {\n NonKeyAttributes = new[]\n {\n \"Album\",\n \"NumberOfSongs\",\n },\n ProjectionType = \"INCLUDE\",\n },\n ProvisionedThroughput = new AwsNative.DynamoDb.Inputs.TableProvisionedThroughputArgs\n {\n ReadCapacityUnits = 5,\n WriteCapacityUnits = 5,\n },\n },\n new AwsNative.DynamoDb.Inputs.TableGlobalSecondaryIndexArgs\n {\n IndexName = \"myGSI2\",\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"NumberOfSongs\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Sales\",\n KeyType = \"RANGE\",\n },\n },\n Projection = new AwsNative.DynamoDb.Inputs.TableProjectionArgs\n {\n NonKeyAttributes = new[]\n {\n \"Album\",\n \"Artist\",\n },\n ProjectionType = \"INCLUDE\",\n },\n ProvisionedThroughput = new AwsNative.DynamoDb.Inputs.TableProvisionedThroughputArgs\n {\n ReadCapacityUnits = 5,\n WriteCapacityUnits = 5,\n },\n },\n },\n LocalSecondaryIndexes = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableLocalSecondaryIndexArgs\n {\n IndexName = \"myLSI\",\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Album\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Sales\",\n KeyType = \"RANGE\",\n },\n },\n Projection = new AwsNative.DynamoDb.Inputs.TableProjectionArgs\n {\n NonKeyAttributes = new[]\n {\n \"Artist\",\n \"NumberOfSongs\",\n },\n ProjectionType = \"INCLUDE\",\n },\n },\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/dynamodb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dynamodb.NewTable(ctx, \"myDynamoDBTable\", \u0026dynamodb.TableArgs{\n\t\t\tAttributeDefinitions: dynamodb.TableAttributeDefinitionArray{\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Album\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"S\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Artist\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"S\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"N\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"N\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tKeySchema: pulumi.Any{\n\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Album\"),\n\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Artist\"),\n\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tProvisionedThroughput: \u0026dynamodb.TableProvisionedThroughputArgs{\n\t\t\t\tReadCapacityUnits: pulumi.Int(5),\n\t\t\t\tWriteCapacityUnits: pulumi.Int(5),\n\t\t\t},\n\t\t\tTableName: pulumi.String(\"myTableName\"),\n\t\t\tGlobalSecondaryIndexes: dynamodb.TableGlobalSecondaryIndexArray{\n\t\t\t\t\u0026dynamodb.TableGlobalSecondaryIndexArgs{\n\t\t\t\t\tIndexName: pulumi.String(\"myGSI\"),\n\t\t\t\t\tKeySchema: dynamodb.TableKeySchemaArray{\n\t\t\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Artist\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tProjection: \u0026dynamodb.TableProjectionArgs{\n\t\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Album\"),\n\t\t\t\t\t\t\tpulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\t},\n\t\t\t\t\tProvisionedThroughput: \u0026dynamodb.TableProvisionedThroughputArgs{\n\t\t\t\t\t\tReadCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t\tWriteCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableGlobalSecondaryIndexArgs{\n\t\t\t\t\tIndexName: pulumi.String(\"myGSI2\"),\n\t\t\t\t\tKeySchema: dynamodb.TableKeySchemaArray{\n\t\t\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tProjection: \u0026dynamodb.TableProjectionArgs{\n\t\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Album\"),\n\t\t\t\t\t\t\tpulumi.String(\"Artist\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\t},\n\t\t\t\t\tProvisionedThroughput: \u0026dynamodb.TableProvisionedThroughputArgs{\n\t\t\t\t\t\tReadCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t\tWriteCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocalSecondaryIndexes: dynamodb.TableLocalSecondaryIndexArray{\n\t\t\t\t\u0026dynamodb.TableLocalSecondaryIndexArgs{\n\t\t\t\t\tIndexName: pulumi.String(\"myLSI\"),\n\t\t\t\t\tKeySchema: dynamodb.TableKeySchemaArray{\n\t\t\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Album\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tProjection: \u0026dynamodb.TableProjectionArgs{\n\t\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Artist\"),\n\t\t\t\t\t\t\tpulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst myDynamoDBTable = new aws_native.dynamodb.Table(\"myDynamoDBTable\", {\n attributeDefinitions: [\n {\n attributeName: \"Album\",\n attributeType: \"S\",\n },\n {\n attributeName: \"Artist\",\n attributeType: \"S\",\n },\n {\n attributeName: \"Sales\",\n attributeType: \"N\",\n },\n {\n attributeName: \"NumberOfSongs\",\n attributeType: \"N\",\n },\n ],\n keySchema: [\n {\n attributeName: \"Album\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Artist\",\n keyType: \"RANGE\",\n },\n ],\n provisionedThroughput: {\n readCapacityUnits: 5,\n writeCapacityUnits: 5,\n },\n tableName: \"myTableName\",\n globalSecondaryIndexes: [\n {\n indexName: \"myGSI\",\n keySchema: [\n {\n attributeName: \"Sales\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Artist\",\n keyType: \"RANGE\",\n },\n ],\n projection: {\n nonKeyAttributes: [\n \"Album\",\n \"NumberOfSongs\",\n ],\n projectionType: \"INCLUDE\",\n },\n provisionedThroughput: {\n readCapacityUnits: 5,\n writeCapacityUnits: 5,\n },\n },\n {\n indexName: \"myGSI2\",\n keySchema: [\n {\n attributeName: \"NumberOfSongs\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Sales\",\n keyType: \"RANGE\",\n },\n ],\n projection: {\n nonKeyAttributes: [\n \"Album\",\n \"Artist\",\n ],\n projectionType: \"INCLUDE\",\n },\n provisionedThroughput: {\n readCapacityUnits: 5,\n writeCapacityUnits: 5,\n },\n },\n ],\n localSecondaryIndexes: [{\n indexName: \"myLSI\",\n keySchema: [\n {\n attributeName: \"Album\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Sales\",\n keyType: \"RANGE\",\n },\n ],\n projection: {\n nonKeyAttributes: [\n \"Artist\",\n \"NumberOfSongs\",\n ],\n projectionType: \"INCLUDE\",\n },\n }],\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nmy_dynamo_db_table = aws_native.dynamodb.Table(\"myDynamoDBTable\",\n attribute_definitions=[\n {\n \"attribute_name\": \"Album\",\n \"attribute_type\": \"S\",\n },\n {\n \"attribute_name\": \"Artist\",\n \"attribute_type\": \"S\",\n },\n {\n \"attribute_name\": \"Sales\",\n \"attribute_type\": \"N\",\n },\n {\n \"attribute_name\": \"NumberOfSongs\",\n \"attribute_type\": \"N\",\n },\n ],\n key_schema=[\n {\n \"attributeName\": \"Album\",\n \"keyType\": \"HASH\",\n },\n {\n \"attributeName\": \"Artist\",\n \"keyType\": \"RANGE\",\n },\n ],\n provisioned_throughput={\n \"read_capacity_units\": 5,\n \"write_capacity_units\": 5,\n },\n table_name=\"myTableName\",\n global_secondary_indexes=[\n {\n \"index_name\": \"myGSI\",\n \"key_schema\": [\n {\n \"attribute_name\": \"Sales\",\n \"key_type\": \"HASH\",\n },\n {\n \"attribute_name\": \"Artist\",\n \"key_type\": \"RANGE\",\n },\n ],\n \"projection\": {\n \"non_key_attributes\": [\n \"Album\",\n \"NumberOfSongs\",\n ],\n \"projection_type\": \"INCLUDE\",\n },\n \"provisioned_throughput\": {\n \"read_capacity_units\": 5,\n \"write_capacity_units\": 5,\n },\n },\n {\n \"index_name\": \"myGSI2\",\n \"key_schema\": [\n {\n \"attribute_name\": \"NumberOfSongs\",\n \"key_type\": \"HASH\",\n },\n {\n \"attribute_name\": \"Sales\",\n \"key_type\": \"RANGE\",\n },\n ],\n \"projection\": {\n \"non_key_attributes\": [\n \"Album\",\n \"Artist\",\n ],\n \"projection_type\": \"INCLUDE\",\n },\n \"provisioned_throughput\": {\n \"read_capacity_units\": 5,\n \"write_capacity_units\": 5,\n },\n },\n ],\n local_secondary_indexes=[{\n \"index_name\": \"myLSI\",\n \"key_schema\": [\n {\n \"attribute_name\": \"Album\",\n \"key_type\": \"HASH\",\n },\n {\n \"attribute_name\": \"Sales\",\n \"key_type\": \"RANGE\",\n },\n ],\n \"projection\": {\n \"non_key_attributes\": [\n \"Artist\",\n \"NumberOfSongs\",\n ],\n \"projection_type\": \"INCLUDE\",\n },\n }])\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Example\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AwsNative = Pulumi.AwsNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myDynamoDBTable = new AwsNative.DynamoDb.Table(\"myDynamoDBTable\", new()\n {\n AttributeDefinitions = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"Album\",\n AttributeType = \"S\",\n },\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"Artist\",\n AttributeType = \"S\",\n },\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"Sales\",\n AttributeType = \"N\",\n },\n new AwsNative.DynamoDb.Inputs.TableAttributeDefinitionArgs\n {\n AttributeName = \"NumberOfSongs\",\n AttributeType = \"N\",\n },\n },\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Album\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Artist\",\n KeyType = \"RANGE\",\n },\n },\n ProvisionedThroughput = new AwsNative.DynamoDb.Inputs.TableProvisionedThroughputArgs\n {\n ReadCapacityUnits = 5,\n WriteCapacityUnits = 5,\n },\n TableName = \"myTableName\",\n GlobalSecondaryIndexes = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableGlobalSecondaryIndexArgs\n {\n IndexName = \"myGSI\",\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Sales\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Artist\",\n KeyType = \"RANGE\",\n },\n },\n Projection = new AwsNative.DynamoDb.Inputs.TableProjectionArgs\n {\n NonKeyAttributes = new[]\n {\n \"Album\",\n \"NumberOfSongs\",\n },\n ProjectionType = \"INCLUDE\",\n },\n ProvisionedThroughput = new AwsNative.DynamoDb.Inputs.TableProvisionedThroughputArgs\n {\n ReadCapacityUnits = 5,\n WriteCapacityUnits = 5,\n },\n },\n new AwsNative.DynamoDb.Inputs.TableGlobalSecondaryIndexArgs\n {\n IndexName = \"myGSI2\",\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"NumberOfSongs\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Sales\",\n KeyType = \"RANGE\",\n },\n },\n Projection = new AwsNative.DynamoDb.Inputs.TableProjectionArgs\n {\n NonKeyAttributes = new[]\n {\n \"Album\",\n \"Artist\",\n },\n ProjectionType = \"INCLUDE\",\n },\n ProvisionedThroughput = new AwsNative.DynamoDb.Inputs.TableProvisionedThroughputArgs\n {\n ReadCapacityUnits = 5,\n WriteCapacityUnits = 5,\n },\n },\n },\n LocalSecondaryIndexes = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableLocalSecondaryIndexArgs\n {\n IndexName = \"myLSI\",\n KeySchema = new[]\n {\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Album\",\n KeyType = \"HASH\",\n },\n new AwsNative.DynamoDb.Inputs.TableKeySchemaArgs\n {\n AttributeName = \"Sales\",\n KeyType = \"RANGE\",\n },\n },\n Projection = new AwsNative.DynamoDb.Inputs.TableProjectionArgs\n {\n NonKeyAttributes = new[]\n {\n \"Artist\",\n \"NumberOfSongs\",\n },\n ProjectionType = \"INCLUDE\",\n },\n },\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/dynamodb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := dynamodb.NewTable(ctx, \"myDynamoDBTable\", \u0026dynamodb.TableArgs{\n\t\t\tAttributeDefinitions: dynamodb.TableAttributeDefinitionArray{\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Album\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"S\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Artist\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"S\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"N\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableAttributeDefinitionArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\tAttributeType: pulumi.String(\"N\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tKeySchema: pulumi.Any{\n\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Album\"),\n\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\tAttributeName: pulumi.String(\"Artist\"),\n\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tProvisionedThroughput: \u0026dynamodb.TableProvisionedThroughputArgs{\n\t\t\t\tReadCapacityUnits: pulumi.Int(5),\n\t\t\t\tWriteCapacityUnits: pulumi.Int(5),\n\t\t\t},\n\t\t\tTableName: pulumi.String(\"myTableName\"),\n\t\t\tGlobalSecondaryIndexes: dynamodb.TableGlobalSecondaryIndexArray{\n\t\t\t\t\u0026dynamodb.TableGlobalSecondaryIndexArgs{\n\t\t\t\t\tIndexName: pulumi.String(\"myGSI\"),\n\t\t\t\t\tKeySchema: dynamodb.TableKeySchemaArray{\n\t\t\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Artist\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tProjection: \u0026dynamodb.TableProjectionArgs{\n\t\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Album\"),\n\t\t\t\t\t\t\tpulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\t},\n\t\t\t\t\tProvisionedThroughput: \u0026dynamodb.TableProvisionedThroughputArgs{\n\t\t\t\t\t\tReadCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t\tWriteCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026dynamodb.TableGlobalSecondaryIndexArgs{\n\t\t\t\t\tIndexName: pulumi.String(\"myGSI2\"),\n\t\t\t\t\tKeySchema: dynamodb.TableKeySchemaArray{\n\t\t\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tProjection: \u0026dynamodb.TableProjectionArgs{\n\t\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Album\"),\n\t\t\t\t\t\t\tpulumi.String(\"Artist\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\t},\n\t\t\t\t\tProvisionedThroughput: \u0026dynamodb.TableProvisionedThroughputArgs{\n\t\t\t\t\t\tReadCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t\tWriteCapacityUnits: pulumi.Int(5),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLocalSecondaryIndexes: dynamodb.TableLocalSecondaryIndexArray{\n\t\t\t\t\u0026dynamodb.TableLocalSecondaryIndexArgs{\n\t\t\t\t\tIndexName: pulumi.String(\"myLSI\"),\n\t\t\t\t\tKeySchema: dynamodb.TableKeySchemaArray{\n\t\t\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Album\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"HASH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026dynamodb.TableKeySchemaArgs{\n\t\t\t\t\t\t\tAttributeName: pulumi.String(\"Sales\"),\n\t\t\t\t\t\t\tKeyType: pulumi.String(\"RANGE\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tProjection: \u0026dynamodb.TableProjectionArgs{\n\t\t\t\t\t\tNonKeyAttributes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Artist\"),\n\t\t\t\t\t\t\tpulumi.String(\"NumberOfSongs\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tProjectionType: pulumi.String(\"INCLUDE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst myDynamoDBTable = new aws_native.dynamodb.Table(\"myDynamoDBTable\", {\n attributeDefinitions: [\n {\n attributeName: \"Album\",\n attributeType: \"S\",\n },\n {\n attributeName: \"Artist\",\n attributeType: \"S\",\n },\n {\n attributeName: \"Sales\",\n attributeType: \"N\",\n },\n {\n attributeName: \"NumberOfSongs\",\n attributeType: \"N\",\n },\n ],\n keySchema: [\n {\n attributeName: \"Album\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Artist\",\n keyType: \"RANGE\",\n },\n ],\n provisionedThroughput: {\n readCapacityUnits: 5,\n writeCapacityUnits: 5,\n },\n tableName: \"myTableName\",\n globalSecondaryIndexes: [\n {\n indexName: \"myGSI\",\n keySchema: [\n {\n attributeName: \"Sales\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Artist\",\n keyType: \"RANGE\",\n },\n ],\n projection: {\n nonKeyAttributes: [\n \"Album\",\n \"NumberOfSongs\",\n ],\n projectionType: \"INCLUDE\",\n },\n provisionedThroughput: {\n readCapacityUnits: 5,\n writeCapacityUnits: 5,\n },\n },\n {\n indexName: \"myGSI2\",\n keySchema: [\n {\n attributeName: \"NumberOfSongs\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Sales\",\n keyType: \"RANGE\",\n },\n ],\n projection: {\n nonKeyAttributes: [\n \"Album\",\n \"Artist\",\n ],\n projectionType: \"INCLUDE\",\n },\n provisionedThroughput: {\n readCapacityUnits: 5,\n writeCapacityUnits: 5,\n },\n },\n ],\n localSecondaryIndexes: [{\n indexName: \"myLSI\",\n keySchema: [\n {\n attributeName: \"Album\",\n keyType: \"HASH\",\n },\n {\n attributeName: \"Sales\",\n keyType: \"RANGE\",\n },\n ],\n projection: {\n nonKeyAttributes: [\n \"Artist\",\n \"NumberOfSongs\",\n ],\n projectionType: \"INCLUDE\",\n },\n }],\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nmy_dynamo_db_table = aws_native.dynamodb.Table(\"myDynamoDBTable\",\n attribute_definitions=[\n {\n \"attribute_name\": \"Album\",\n \"attribute_type\": \"S\",\n },\n {\n \"attribute_name\": \"Artist\",\n \"attribute_type\": \"S\",\n },\n {\n \"attribute_name\": \"Sales\",\n \"attribute_type\": \"N\",\n },\n {\n \"attribute_name\": \"NumberOfSongs\",\n \"attribute_type\": \"N\",\n },\n ],\n key_schema=[\n {\n \"attributeName\": \"Album\",\n \"keyType\": \"HASH\",\n },\n {\n \"attributeName\": \"Artist\",\n \"keyType\": \"RANGE\",\n },\n ],\n provisioned_throughput={\n \"read_capacity_units\": 5,\n \"write_capacity_units\": 5,\n },\n table_name=\"myTableName\",\n global_secondary_indexes=[\n {\n \"index_name\": \"myGSI\",\n \"key_schema\": [\n {\n \"attribute_name\": \"Sales\",\n \"key_type\": \"HASH\",\n },\n {\n \"attribute_name\": \"Artist\",\n \"key_type\": \"RANGE\",\n },\n ],\n \"projection\": {\n \"non_key_attributes\": [\n \"Album\",\n \"NumberOfSongs\",\n ],\n \"projection_type\": \"INCLUDE\",\n },\n \"provisioned_throughput\": {\n \"read_capacity_units\": 5,\n \"write_capacity_units\": 5,\n },\n },\n {\n \"index_name\": \"myGSI2\",\n \"key_schema\": [\n {\n \"attribute_name\": \"NumberOfSongs\",\n \"key_type\": \"HASH\",\n },\n {\n \"attribute_name\": \"Sales\",\n \"key_type\": \"RANGE\",\n },\n ],\n \"projection\": {\n \"non_key_attributes\": [\n \"Album\",\n \"Artist\",\n ],\n \"projection_type\": \"INCLUDE\",\n },\n \"provisioned_throughput\": {\n \"read_capacity_units\": 5,\n \"write_capacity_units\": 5,\n },\n },\n ],\n local_secondary_indexes=[{\n \"index_name\": \"myLSI\",\n \"key_schema\": [\n {\n \"attribute_name\": \"Album\",\n \"key_type\": \"HASH\",\n },\n {\n \"attribute_name\": \"Sales\",\n \"key_type\": \"RANGE\",\n },\n ],\n \"projection\": {\n \"non_key_attributes\": [\n \"Artist\",\n \"NumberOfSongs\",\n ],\n \"projection_type\": \"INCLUDE\",\n },\n }])\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n", "properties": { "arn": { "type": "string", @@ -197378,6 +198395,9 @@ "timeToLiveSpecification": { "$ref": "#/types/aws-native:dynamodb:TableTimeToLiveSpecification", "description": "Specifies the Time to Live (TTL) settings for the table.\n For detailed information about the limits in DynamoDB, see [Limits in Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the Amazon DynamoDB Developer Guide." + }, + "warmThroughput": { + "$ref": "#/types/aws-native:dynamodb:TableWarmThroughput" } }, "type": "object", @@ -197484,6 +198504,9 @@ "timeToLiveSpecification": { "$ref": "#/types/aws-native:dynamodb:TableTimeToLiveSpecification", "description": "Specifies the Time to Live (TTL) settings for the table.\n For detailed information about the limits in DynamoDB, see [Limits in Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the Amazon DynamoDB Developer Guide." + }, + "warmThroughput": { + "$ref": "#/types/aws-native:dynamodb:TableWarmThroughput" } }, "requiredInputs": [ @@ -206779,6 +207802,10 @@ "$ref": "#/types/aws-native:eks:NodegroupLaunchTemplateSpecification", "description": "An object representing a node group's launch template specification." }, + "nodeRepairConfig": { + "$ref": "#/types/aws-native:eks:NodegroupNodeRepairConfig", + "description": "The node auto repair configuration for node group." + }, "nodeRole": { "type": "string", "description": "The Amazon Resource Name (ARN) of the IAM role to associate with your node group.", @@ -206880,6 +207907,10 @@ "$ref": "#/types/aws-native:eks:NodegroupLaunchTemplateSpecification", "description": "An object representing a node group's launch template specification." }, + "nodeRepairConfig": { + "$ref": "#/types/aws-native:eks:NodegroupNodeRepairConfig", + "description": "The node auto repair configuration for node group." + }, "nodeRole": { "type": "string", "description": "The Amazon Resource Name (ARN) of the IAM role to associate with your node group." @@ -207458,8 +208489,7 @@ }, "engine": { "$ref": "#/types/aws-native:elasticache:UserEngine", - "description": "Must be redis.", - "replaceOnChanges": true + "description": "The target cache engine for the user." }, "noPasswordRequired": { "type": "boolean", @@ -207513,7 +208543,7 @@ }, "engine": { "$ref": "#/types/aws-native:elasticache:UserEngine", - "description": "Must be redis." + "description": "The target cache engine for the user." }, "noPasswordRequired": { "type": "boolean", @@ -207556,8 +208586,7 @@ }, "engine": { "$ref": "#/types/aws-native:elasticache:UserGroupEngine", - "description": "Must be redis.", - "replaceOnChanges": true + "description": "The target cache engine for the user group." }, "status": { "type": "string", @@ -207594,7 +208623,7 @@ "inputProperties": { "engine": { "$ref": "#/types/aws-native:elasticache:UserGroupEngine", - "description": "Must be redis." + "description": "The target cache engine for the user group." }, "tags": { "type": "array", @@ -208120,7 +209149,8 @@ "description": "The DNS name for the load balancer. For example, `my-load-balancer-424835706.us-west-2.elb.amazonaws.com` ." }, "enablePrefixForIpv6SourceNat": { - "type": "string" + "type": "string", + "description": "[Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` ." }, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string", @@ -208203,7 +209233,8 @@ ], "inputProperties": { "enablePrefixForIpv6SourceNat": { - "type": "string" + "type": "string", + "description": "[Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` ." }, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string", @@ -210967,7 +211998,8 @@ "description": "The experiment options for an experiment template." }, "experimentReportConfiguration": { - "$ref": "#/types/aws-native:fis:ExperimentTemplateExperimentReportConfiguration" + "$ref": "#/types/aws-native:fis:ExperimentTemplateExperimentReportConfiguration", + "description": "Describes the report configuration for the experiment template." }, "logConfiguration": { "$ref": "#/types/aws-native:fis:ExperimentTemplateLogConfiguration", @@ -211026,7 +212058,8 @@ "description": "The experiment options for an experiment template." }, "experimentReportConfiguration": { - "$ref": "#/types/aws-native:fis:ExperimentTemplateExperimentReportConfiguration" + "$ref": "#/types/aws-native:fis:ExperimentTemplateExperimentReportConfiguration", + "description": "Describes the report configuration for the experiment template." }, "logConfiguration": { "$ref": "#/types/aws-native:fis:ExperimentTemplateLogConfiguration", @@ -226270,7 +227303,7 @@ }, "principal": { "type": "string", - "description": "The AWS-service or AWS-account that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service.", + "description": "The AWS-service, AWS-account, IAM user, or IAM role that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service.", "replaceOnChanges": true }, "principalOrgId": { @@ -226315,7 +227348,7 @@ }, "principal": { "type": "string", - "description": "The AWS-service or AWS-account that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service." + "description": "The AWS-service, AWS-account, IAM user, or IAM role that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service." }, "principalOrgId": { "type": "string", @@ -246795,7 +247828,7 @@ }, "sourceArn": { "type": "string", - "description": "The Amazon Resource Name (ARN) of the database to use as the source for replication, for example, arn:aws:dynamodb:us-east-2:123412341234:table/dynamotable", + "description": "The Amazon Resource Name (ARN) of the database to use as the source for replication", "replaceOnChanges": true }, "tags": { @@ -246807,7 +247840,7 @@ }, "targetArn": { "type": "string", - "description": "The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication, for example, arn:aws:redshift:us-east-2:123412341234:namespace:e43aab3e-10a3-4ec4-83d4-f227ff9bfbcf", + "description": "The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication", "replaceOnChanges": true } }, @@ -246836,7 +247869,7 @@ }, "sourceArn": { "type": "string", - "description": "The Amazon Resource Name (ARN) of the database to use as the source for replication, for example, arn:aws:dynamodb:us-east-2:123412341234:table/dynamotable" + "description": "The Amazon Resource Name (ARN) of the database to use as the source for replication" }, "tags": { "type": "array", @@ -246847,7 +247880,7 @@ }, "targetArn": { "type": "string", - "description": "The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication, for example, arn:aws:redshift:us-east-2:123412341234:namespace:e43aab3e-10a3-4ec4-83d4-f227ff9bfbcf" + "description": "The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication" } }, "requiredInputs": [ @@ -262179,6 +263212,9 @@ "description": "The ID or Amazon Resource Name (ARN) of the service network or service.", "replaceOnChanges": true }, + "serviceNetworkLogType": { + "$ref": "#/types/aws-native:vpclattice:AccessLogSubscriptionServiceNetworkLogType" + }, "tags": { "type": "array", "items": { @@ -262204,6 +263240,9 @@ "type": "string", "description": "The ID or Amazon Resource Name (ARN) of the service network or service." }, + "serviceNetworkLogType": { + "$ref": "#/types/aws-native:vpclattice:AccessLogSubscriptionServiceNetworkLogType" + }, "tags": { "type": "array", "items": { @@ -262593,6 +263632,9 @@ "description": "The name of the service network. The name must be unique to the account. The valid characters are a-z, 0-9, and hyphens (-). You can't use a hyphen as the first or last character, or immediately after another hyphen.\n\nIf you don't specify a name, CloudFormation generates one. However, if you specify a name, and later want to replace the resource, you must specify a new name.", "replaceOnChanges": true }, + "sharingConfig": { + "$ref": "#/types/aws-native:vpclattice:ServiceNetworkSharingConfig" + }, "tags": { "type": "array", "items": { @@ -262617,6 +263659,9 @@ "type": "string", "description": "The name of the service network. The name must be unique to the account. The valid characters are a-z, 0-9, and hyphens (-). You can't use a hyphen as the first or last character, or immediately after another hyphen.\n\nIf you don't specify a name, CloudFormation generates one. However, if you specify a name, and later want to replace the resource, you must specify a new name." }, + "sharingConfig": { + "$ref": "#/types/aws-native:vpclattice:ServiceNetworkSharingConfig" + }, "tags": { "type": "array", "items": { @@ -265315,6 +266360,10 @@ }, "outputs": { "properties": { + "analyzerConfiguration": { + "$ref": "#/types/aws-native:accessanalyzer:AnalyzerConfigurationProperties", + "description": "The configuration for the analyzer" + }, "archiveRules": { "type": "array", "items": { @@ -268061,6 +269110,9 @@ "type": "string", "description": "The scaling policy type.\n The following policy types are supported: \n ``TargetTrackingScaling``—Not supported for Amazon EMR\n ``StepScaling``—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune." }, + "predictiveScalingPolicyConfiguration": { + "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyPredictiveScalingPolicyConfiguration" + }, "stepScalingPolicyConfiguration": { "$ref": "#/types/aws-native:applicationautoscaling:ScalingPolicyStepScalingPolicyConfiguration", "description": "A step scaling policy." @@ -268132,6 +269184,12 @@ "type": "string", "description": "The ARN of this SLO." }, + "burnRateConfigurations": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:applicationsignals:ServiceLevelObjectiveBurnRateConfiguration" + } + }, "createdTime": { "type": "integer", "description": "Epoch time in seconds of the time that this SLO was created" @@ -269638,6 +270696,9 @@ "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupAvailabilityZoneDistribution", "description": "The instance capacity distribution across Availability Zones." }, + "availabilityZoneImpairmentPolicy": { + "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupAvailabilityZoneImpairmentPolicy" + }, "availabilityZones": { "type": "array", "items": { @@ -273154,21 +274215,17 @@ "type": "string", "description": "The Amazon Resource Name (ARN) of the extension." }, - "publicTypeArn": { - "type": "string", - "description": "The Amazon Resource Number (ARN) assigned to the public extension upon publication" - }, - "publisherId": { - "type": "string", - "description": "The publisher id assigned by CloudFormation for publishing in this region." + "autoUpdate": { + "type": "boolean", + "description": "Whether to automatically update the extension in this account and region when a new minor version is published by the extension publisher. Major versions released by the publisher must be manually updated." }, - "typeName": { + "majorVersion": { "type": "string", - "description": "The name of the type being registered.\n\nWe recommend that type names adhere to the following pattern: company_or_organization::service::type." + "description": "The Major Version of the type you want to enable" }, - "typeNameAlias": { - "type": "string", - "description": "An alias to assign to the public extension in this account and region. If you specify an alias for the extension, you must then use the alias to refer to the extension in your templates." + "versionBump": { + "$ref": "#/types/aws-native:cloudformation:TypeActivationVersionBump", + "description": "Manually updates a previously-enabled type to a new major or minor version, if available. You can also use this parameter to update the value of AutoUpdateEnabled" } } } @@ -277007,6 +278064,56 @@ } } }, + "aws-native:connectcampaignsv2:getCampaign": { + "description": "Definition of AWS::ConnectCampaignsV2::Campaign Resource Type", + "inputs": { + "properties": { + "arn": { + "type": "string", + "description": "Amazon Connect Campaign Arn" + } + }, + "required": [ + "arn" + ] + }, + "outputs": { + "properties": { + "arn": { + "type": "string", + "description": "Amazon Connect Campaign Arn" + }, + "channelSubtypeConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignChannelSubtypeConfig" + }, + "communicationLimitsOverride": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignCommunicationLimitsConfig" + }, + "communicationTimeConfig": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignCommunicationTimeConfig" + }, + "connectCampaignFlowArn": { + "type": "string" + }, + "name": { + "type": "string" + }, + "schedule": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignSchedule" + }, + "source": { + "$ref": "#/types/aws-native:connectcampaignsv2:CampaignSource" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "One or more tags." + } + } + } + }, "aws-native:controltower:getEnabledBaseline": { "description": "Definition of AWS::ControlTower::EnabledBaseline Resource Type", "inputs": { @@ -280382,9 +281489,12 @@ "$ref": "#/types/aws-native:dynamodb:GlobalTableTimeToLiveSpecification", "description": "Specifies the time to live (TTL) settings for the table. This setting will be applied to all replicas." }, + "warmThroughput": { + "$ref": "#/types/aws-native:dynamodb:GlobalTableWarmThroughput" + }, "writeOnDemandThroughputSettings": { "$ref": "#/types/aws-native:dynamodb:GlobalTableWriteOnDemandThroughputSettings", - "description": "Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` ." + "description": "Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` ." }, "writeProvisionedThroughputSettings": { "$ref": "#/types/aws-native:dynamodb:GlobalTableWriteProvisionedThroughputSettings", @@ -280394,7 +281504,7 @@ } }, "aws-native:dynamodb:getTable": { - "description": "The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*.\n You should be aware of the following behaviors when working with DDB tables:\n + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute).\n \n Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes.", + "description": "The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*.\n You should be aware of the following behaviors when working with DDB tables:\n + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute).\n \n Our guidance is to use the latest schema documented for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes.", "inputs": { "properties": { "tableName": { @@ -280505,6 +281615,9 @@ "timeToLiveSpecification": { "$ref": "#/types/aws-native:dynamodb:TableTimeToLiveSpecification", "description": "Specifies the Time to Live (TTL) settings for the table.\n For detailed information about the limits in DynamoDB, see [Limits in Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the Amazon DynamoDB Developer Guide." + }, + "warmThroughput": { + "$ref": "#/types/aws-native:dynamodb:TableWarmThroughput" } } } @@ -284801,6 +285914,10 @@ "$ref": "#/types/aws-native:eks:NodegroupLaunchTemplateSpecification", "description": "An object representing a node group's launch template specification." }, + "nodeRepairConfig": { + "$ref": "#/types/aws-native:eks:NodegroupNodeRepairConfig", + "description": "The node auto repair configuration for node group." + }, "releaseVersion": { "type": "string", "description": "The AMI version of the Amazon EKS-optimized AMI to use with your node group." @@ -285091,6 +286208,10 @@ "type": "string", "description": "The Amazon Resource Name (ARN) of the user account." }, + "engine": { + "$ref": "#/types/aws-native:elasticache:UserEngine", + "description": "The target cache engine for the user." + }, "status": { "type": "string", "description": "Indicates the user status. Can be \"active\", \"modifying\" or \"deleting\"." @@ -285124,6 +286245,10 @@ "type": "string", "description": "The Amazon Resource Name (ARN) of the user account." }, + "engine": { + "$ref": "#/types/aws-native:elasticache:UserGroupEngine", + "description": "The target cache engine for the user group." + }, "status": { "type": "string", "description": "Indicates user group status. Can be \"creating\", \"active\", \"modifying\", \"deleting\"." @@ -285421,7 +286546,8 @@ "description": "The DNS name for the load balancer. For example, `my-load-balancer-424835706.us-west-2.elb.amazonaws.com` ." }, "enablePrefixForIpv6SourceNat": { - "type": "string" + "type": "string", + "description": "[Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` ." }, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string", @@ -286265,6 +287391,10 @@ "type": "string", "description": "The arn of the connection resource." }, + "authParameters": { + "$ref": "#/types/aws-native:events:ConnectionAuthParameters", + "description": "A `CreateConnectionAuthRequestParameters` object that contains the authorization parameters to use to authorize with the endpoint." + }, "authorizationType": { "$ref": "#/types/aws-native:events:ConnectionAuthorizationType", "description": "The type of authorization to use for the connection.\n\n\u003e OAUTH tokens are refreshed when a 401 or 407 response is returned." @@ -286963,7 +288093,8 @@ "description": "The experiment options for an experiment template." }, "experimentReportConfiguration": { - "$ref": "#/types/aws-native:fis:ExperimentTemplateExperimentReportConfiguration" + "$ref": "#/types/aws-native:fis:ExperimentTemplateExperimentReportConfiguration", + "description": "Describes the report configuration for the experiment template." }, "id": { "type": "string", @@ -305896,6 +307027,13 @@ "type": "boolean", "description": "A value that specifies whether the workgroup can be accessible from a public network." }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "The map of the key-value pairs used to tag the workgroup." + }, "workgroup": { "$ref": "#/types/aws-native:redshiftserverless:Workgroup", "description": "Definition for workgroup resource", @@ -313920,6 +315058,9 @@ "type": "string", "description": "The ID of the service network or service." }, + "serviceNetworkLogType": { + "$ref": "#/types/aws-native:vpclattice:AccessLogSubscriptionServiceNetworkLogType" + }, "tags": { "type": "array", "items": { @@ -314160,6 +315301,9 @@ "type": "string", "description": "The date and time of the last update, specified in ISO-8601 format." }, + "sharingConfig": { + "$ref": "#/types/aws-native:vpclattice:ServiceNetworkSharingConfig" + }, "tags": { "type": "array", "items": { diff --git a/reports/missedAutonaming.json b/reports/missedAutonaming.json index 6f17fdba43..b70b433e96 100644 --- a/reports/missedAutonaming.json +++ b/reports/missedAutonaming.json @@ -6673,7 +6673,7 @@ "properties": { "engine": { "$ref": "#/types/aws-native:elasticache:UserGroupEngine", - "description": "Must be redis." + "description": "The target cache engine for the user group." }, "tags": { "type": "array", @@ -6987,7 +6987,8 @@ "description": "The experiment options for an experiment template." }, "experimentReportConfiguration": { - "$ref": "#/types/aws-native:fis:ExperimentTemplateExperimentReportConfiguration" + "$ref": "#/types/aws-native:fis:ExperimentTemplateExperimentReportConfiguration", + "description": "Describes the report configuration for the experiment template." }, "logConfiguration": { "$ref": "#/types/aws-native:fis:ExperimentTemplateLogConfiguration", @@ -8502,7 +8503,7 @@ }, "principal": { "type": "string", - "description": "The AWS-service or AWS-account that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service." + "description": "The AWS-service, AWS-account, IAM user, or IAM role that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service." }, "principalOrgId": { "type": "string", @@ -12963,6 +12964,9 @@ "type": "string", "description": "The ID or Amazon Resource Name (ARN) of the service network or service." }, + "serviceNetworkLogType": { + "$ref": "#/types/aws-native:vpclattice:AccessLogSubscriptionServiceNetworkLogType" + }, "tags": { "type": "array", "items": { diff --git a/sdk/dotnet/AccessAnalyzer/Analyzer.cs b/sdk/dotnet/AccessAnalyzer/Analyzer.cs index 66bec1f52c..7a610d04be 100644 --- a/sdk/dotnet/AccessAnalyzer/Analyzer.cs +++ b/sdk/dotnet/AccessAnalyzer/Analyzer.cs @@ -139,7 +139,6 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? Version = Utilities.Version, ReplaceOnChanges = { - "analyzerConfiguration", "analyzerName", "type", }, diff --git a/sdk/dotnet/AccessAnalyzer/GetAnalyzer.cs b/sdk/dotnet/AccessAnalyzer/GetAnalyzer.cs index b72f733c95..a513cd9c86 100644 --- a/sdk/dotnet/AccessAnalyzer/GetAnalyzer.cs +++ b/sdk/dotnet/AccessAnalyzer/GetAnalyzer.cs @@ -57,6 +57,10 @@ public GetAnalyzerInvokeArgs() [OutputType] public sealed class GetAnalyzerResult { + /// + /// The configuration for the analyzer + /// + public readonly Outputs.AnalyzerConfigurationProperties? AnalyzerConfiguration; /// /// Specifies the archive rules to add for the analyzer. Archive rules automatically archive findings that meet the criteria you define for the rule. /// @@ -72,12 +76,15 @@ public sealed class GetAnalyzerResult [OutputConstructor] private GetAnalyzerResult( + Outputs.AnalyzerConfigurationProperties? analyzerConfiguration, + ImmutableArray archiveRules, string? arn, ImmutableArray tags) { + AnalyzerConfiguration = analyzerConfiguration; ArchiveRules = archiveRules; Arn = arn; Tags = tags; diff --git a/sdk/dotnet/AccessAnalyzer/Inputs/AnalyzerAnalysisRuleCriteriaArgs.cs b/sdk/dotnet/AccessAnalyzer/Inputs/AnalyzerAnalysisRuleCriteriaArgs.cs new file mode 100644 index 0000000000..2e763e1725 --- /dev/null +++ b/sdk/dotnet/AccessAnalyzer/Inputs/AnalyzerAnalysisRuleCriteriaArgs.cs @@ -0,0 +1,51 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AccessAnalyzer.Inputs +{ + + /// + /// The criteria for an analysis rule for an analyzer. + /// + public sealed class AnalyzerAnalysisRuleCriteriaArgs : global::Pulumi.ResourceArgs + { + [Input("accountIds")] + private InputList? _accountIds; + + /// + /// A list of AWS account IDs to apply to the analysis rule criteria. The accounts cannot include the organization analyzer owner account. Account IDs can only be applied to the analysis rule criteria for organization-level analyzers. + /// + public InputList AccountIds + { + get => _accountIds ?? (_accountIds = new InputList()); + set => _accountIds = value; + } + + [Input("resourceTags")] + private InputList>? _resourceTags; + + /// + /// An array of key-value pairs to match for your resources. You can use the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + /// + /// For the tag key, you can specify a value that is 1 to 128 characters in length and cannot be prefixed with aws:. + /// + /// For the tag value, you can specify a value that is 0 to 256 characters in length. If the specified tag value is 0 characters, the rule is applied to all principals with the specified tag key. + /// + public InputList> ResourceTags + { + get => _resourceTags ?? (_resourceTags = new InputList>()); + set => _resourceTags = value; + } + + public AnalyzerAnalysisRuleCriteriaArgs() + { + } + public static new AnalyzerAnalysisRuleCriteriaArgs Empty => new AnalyzerAnalysisRuleCriteriaArgs(); + } +} diff --git a/sdk/dotnet/AccessAnalyzer/Inputs/AnalyzerConfigurationPropertiesArgs.cs b/sdk/dotnet/AccessAnalyzer/Inputs/AnalyzerConfigurationPropertiesArgs.cs index 6635367791..a65700a4ec 100644 --- a/sdk/dotnet/AccessAnalyzer/Inputs/AnalyzerConfigurationPropertiesArgs.cs +++ b/sdk/dotnet/AccessAnalyzer/Inputs/AnalyzerConfigurationPropertiesArgs.cs @@ -16,7 +16,7 @@ namespace Pulumi.AwsNative.AccessAnalyzer.Inputs public sealed class AnalyzerConfigurationPropertiesArgs : global::Pulumi.ResourceArgs { /// - /// Specifies the configuration of an unused access analyzer for an AWS organization or account. External access analyzers do not support any configuration. + /// Specifies the configuration of an unused access analyzer for an AWS organization or account. /// [Input("unusedAccessConfiguration")] public Input? UnusedAccessConfiguration { get; set; } diff --git a/sdk/dotnet/AccessAnalyzer/Inputs/AnalyzerTagArgs.cs b/sdk/dotnet/AccessAnalyzer/Inputs/AnalyzerTagArgs.cs new file mode 100644 index 0000000000..31e4fe92b1 --- /dev/null +++ b/sdk/dotnet/AccessAnalyzer/Inputs/AnalyzerTagArgs.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AccessAnalyzer.Inputs +{ + + /// + /// A key-value pair to associate with a resource. + /// + public sealed class AnalyzerTagArgs : global::Pulumi.ResourceArgs + { + /// + /// The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + /// + [Input("key", required: true)] + public Input Key { get; set; } = null!; + + /// + /// The value for the tag. You can specify a value that is 0 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + /// + [Input("value")] + public Input? Value { get; set; } + + public AnalyzerTagArgs() + { + } + public static new AnalyzerTagArgs Empty => new AnalyzerTagArgs(); + } +} diff --git a/sdk/dotnet/AccessAnalyzer/Inputs/AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs.cs b/sdk/dotnet/AccessAnalyzer/Inputs/AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs.cs new file mode 100644 index 0000000000..51c0ab90a8 --- /dev/null +++ b/sdk/dotnet/AccessAnalyzer/Inputs/AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AccessAnalyzer.Inputs +{ + + /// + /// Contains information about rules for the analyzer. + /// + public sealed class AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs : global::Pulumi.ResourceArgs + { + [Input("exclusions")] + private InputList? _exclusions; + + /// + /// A list of rules for the analyzer containing criteria to exclude from analysis. Entities that meet the rule criteria will not generate findings. + /// + public InputList Exclusions + { + get => _exclusions ?? (_exclusions = new InputList()); + set => _exclusions = value; + } + + public AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs() + { + } + public static new AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs Empty => new AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs(); + } +} diff --git a/sdk/dotnet/AccessAnalyzer/Inputs/AnalyzerUnusedAccessConfigurationArgs.cs b/sdk/dotnet/AccessAnalyzer/Inputs/AnalyzerUnusedAccessConfigurationArgs.cs index 798e3d299b..3c94dc36ec 100644 --- a/sdk/dotnet/AccessAnalyzer/Inputs/AnalyzerUnusedAccessConfigurationArgs.cs +++ b/sdk/dotnet/AccessAnalyzer/Inputs/AnalyzerUnusedAccessConfigurationArgs.cs @@ -16,7 +16,13 @@ namespace Pulumi.AwsNative.AccessAnalyzer.Inputs public sealed class AnalyzerUnusedAccessConfigurationArgs : global::Pulumi.ResourceArgs { /// - /// The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 180 days. + /// Contains information about rules for the analyzer. + /// + [Input("analysisRule")] + public Input? AnalysisRule { get; set; } + + /// + /// The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 365 days. /// [Input("unusedAccessAge")] public Input? UnusedAccessAge { get; set; } diff --git a/sdk/dotnet/AccessAnalyzer/Outputs/AnalyzerAnalysisRuleCriteria.cs b/sdk/dotnet/AccessAnalyzer/Outputs/AnalyzerAnalysisRuleCriteria.cs new file mode 100644 index 0000000000..64182c0d94 --- /dev/null +++ b/sdk/dotnet/AccessAnalyzer/Outputs/AnalyzerAnalysisRuleCriteria.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AccessAnalyzer.Outputs +{ + + /// + /// The criteria for an analysis rule for an analyzer. + /// + [OutputType] + public sealed class AnalyzerAnalysisRuleCriteria + { + /// + /// A list of AWS account IDs to apply to the analysis rule criteria. The accounts cannot include the organization analyzer owner account. Account IDs can only be applied to the analysis rule criteria for organization-level analyzers. + /// + public readonly ImmutableArray AccountIds; + /// + /// An array of key-value pairs to match for your resources. You can use the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + /// + /// For the tag key, you can specify a value that is 1 to 128 characters in length and cannot be prefixed with aws:. + /// + /// For the tag value, you can specify a value that is 0 to 256 characters in length. If the specified tag value is 0 characters, the rule is applied to all principals with the specified tag key. + /// + public readonly ImmutableArray> ResourceTags; + + [OutputConstructor] + private AnalyzerAnalysisRuleCriteria( + ImmutableArray accountIds, + + ImmutableArray> resourceTags) + { + AccountIds = accountIds; + ResourceTags = resourceTags; + } + } +} diff --git a/sdk/dotnet/AccessAnalyzer/Outputs/AnalyzerConfigurationProperties.cs b/sdk/dotnet/AccessAnalyzer/Outputs/AnalyzerConfigurationProperties.cs index 47fb5e2645..ca3c5584b6 100644 --- a/sdk/dotnet/AccessAnalyzer/Outputs/AnalyzerConfigurationProperties.cs +++ b/sdk/dotnet/AccessAnalyzer/Outputs/AnalyzerConfigurationProperties.cs @@ -17,7 +17,7 @@ namespace Pulumi.AwsNative.AccessAnalyzer.Outputs public sealed class AnalyzerConfigurationProperties { /// - /// Specifies the configuration of an unused access analyzer for an AWS organization or account. External access analyzers do not support any configuration. + /// Specifies the configuration of an unused access analyzer for an AWS organization or account. /// public readonly Outputs.AnalyzerUnusedAccessConfiguration? UnusedAccessConfiguration; diff --git a/sdk/dotnet/AccessAnalyzer/Outputs/AnalyzerTag.cs b/sdk/dotnet/AccessAnalyzer/Outputs/AnalyzerTag.cs new file mode 100644 index 0000000000..7848b90e01 --- /dev/null +++ b/sdk/dotnet/AccessAnalyzer/Outputs/AnalyzerTag.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AccessAnalyzer.Outputs +{ + + /// + /// A key-value pair to associate with a resource. + /// + [OutputType] + public sealed class AnalyzerTag + { + /// + /// The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + /// + public readonly string Key; + /// + /// The value for the tag. You can specify a value that is 0 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + /// + public readonly string? Value; + + [OutputConstructor] + private AnalyzerTag( + string key, + + string? value) + { + Key = key; + Value = value; + } + } +} diff --git a/sdk/dotnet/AccessAnalyzer/Outputs/AnalyzerUnusedAccessConfiguration.cs b/sdk/dotnet/AccessAnalyzer/Outputs/AnalyzerUnusedAccessConfiguration.cs index 985fc39537..dd51ff277c 100644 --- a/sdk/dotnet/AccessAnalyzer/Outputs/AnalyzerUnusedAccessConfiguration.cs +++ b/sdk/dotnet/AccessAnalyzer/Outputs/AnalyzerUnusedAccessConfiguration.cs @@ -17,13 +17,21 @@ namespace Pulumi.AwsNative.AccessAnalyzer.Outputs public sealed class AnalyzerUnusedAccessConfiguration { /// - /// The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 180 days. + /// Contains information about rules for the analyzer. + /// + public readonly Outputs.AnalyzerUnusedAccessConfigurationAnalysisRuleProperties? AnalysisRule; + /// + /// The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 365 days. /// public readonly int? UnusedAccessAge; [OutputConstructor] - private AnalyzerUnusedAccessConfiguration(int? unusedAccessAge) + private AnalyzerUnusedAccessConfiguration( + Outputs.AnalyzerUnusedAccessConfigurationAnalysisRuleProperties? analysisRule, + + int? unusedAccessAge) { + AnalysisRule = analysisRule; UnusedAccessAge = unusedAccessAge; } } diff --git a/sdk/dotnet/AccessAnalyzer/Outputs/AnalyzerUnusedAccessConfigurationAnalysisRuleProperties.cs b/sdk/dotnet/AccessAnalyzer/Outputs/AnalyzerUnusedAccessConfigurationAnalysisRuleProperties.cs new file mode 100644 index 0000000000..dc36127c60 --- /dev/null +++ b/sdk/dotnet/AccessAnalyzer/Outputs/AnalyzerUnusedAccessConfigurationAnalysisRuleProperties.cs @@ -0,0 +1,30 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AccessAnalyzer.Outputs +{ + + /// + /// Contains information about rules for the analyzer. + /// + [OutputType] + public sealed class AnalyzerUnusedAccessConfigurationAnalysisRuleProperties + { + /// + /// A list of rules for the analyzer containing criteria to exclude from analysis. Entities that meet the rule criteria will not generate findings. + /// + public readonly ImmutableArray Exclusions; + + [OutputConstructor] + private AnalyzerUnusedAccessConfigurationAnalysisRuleProperties(ImmutableArray exclusions) + { + Exclusions = exclusions; + } + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/GetScalingPolicy.cs b/sdk/dotnet/ApplicationAutoScaling/GetScalingPolicy.cs index bce085be6c..2856638d87 100644 --- a/sdk/dotnet/ApplicationAutoScaling/GetScalingPolicy.cs +++ b/sdk/dotnet/ApplicationAutoScaling/GetScalingPolicy.cs @@ -128,6 +128,7 @@ public sealed class GetScalingPolicyResult /// ``StepScaling``—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune. /// public readonly string? PolicyType; + public readonly Outputs.ScalingPolicyPredictiveScalingPolicyConfiguration? PredictiveScalingPolicyConfiguration; /// /// A step scaling policy. /// @@ -143,12 +144,15 @@ private GetScalingPolicyResult( string? policyType, + Outputs.ScalingPolicyPredictiveScalingPolicyConfiguration? predictiveScalingPolicyConfiguration, + Outputs.ScalingPolicyStepScalingPolicyConfiguration? stepScalingPolicyConfiguration, Outputs.ScalingPolicyTargetTrackingScalingPolicyConfiguration? targetTrackingScalingPolicyConfiguration) { Arn = arn; PolicyType = policyType; + PredictiveScalingPolicyConfiguration = predictiveScalingPolicyConfiguration; StepScalingPolicyConfiguration = stepScalingPolicyConfiguration; TargetTrackingScalingPolicyConfiguration = targetTrackingScalingPolicyConfiguration; } diff --git a/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs.cs b/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs.cs new file mode 100644 index 0000000000..7a2cc0d125 --- /dev/null +++ b/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs.cs @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationAutoScaling.Inputs +{ + + public sealed class ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs : global::Pulumi.ResourceArgs + { + [Input("metricDataQueries", required: true)] + private InputList? _metricDataQueries; + public InputList MetricDataQueries + { + get => _metricDataQueries ?? (_metricDataQueries = new InputList()); + set => _metricDataQueries = value; + } + + public ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs() + { + } + public static new ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs Empty => new ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs(); + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs.cs b/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs.cs new file mode 100644 index 0000000000..127eeec859 --- /dev/null +++ b/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs.cs @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationAutoScaling.Inputs +{ + + public sealed class ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs : global::Pulumi.ResourceArgs + { + [Input("metricDataQueries", required: true)] + private InputList? _metricDataQueries; + public InputList MetricDataQueries + { + get => _metricDataQueries ?? (_metricDataQueries = new InputList()); + set => _metricDataQueries = value; + } + + public ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs() + { + } + public static new ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs Empty => new ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs(); + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs.cs b/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs.cs new file mode 100644 index 0000000000..dc6ed91057 --- /dev/null +++ b/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs.cs @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationAutoScaling.Inputs +{ + + public sealed class ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs : global::Pulumi.ResourceArgs + { + [Input("metricDataQueries", required: true)] + private InputList? _metricDataQueries; + public InputList MetricDataQueries + { + get => _metricDataQueries ?? (_metricDataQueries = new InputList()); + set => _metricDataQueries = value; + } + + public ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs() + { + } + public static new ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs Empty => new ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs(); + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingMetricArgs.cs b/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingMetricArgs.cs new file mode 100644 index 0000000000..e6a48fea44 --- /dev/null +++ b/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingMetricArgs.cs @@ -0,0 +1,44 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationAutoScaling.Inputs +{ + + public sealed class ScalingPolicyPredictiveScalingMetricArgs : global::Pulumi.ResourceArgs + { + [Input("dimensions")] + private InputList? _dimensions; + + /// + /// The dimensions for the metric. + /// + public InputList Dimensions + { + get => _dimensions ?? (_dimensions = new InputList()); + set => _dimensions = value; + } + + /// + /// The name of the metric. + /// + [Input("metricName")] + public Input? MetricName { get; set; } + + /// + /// The namespace of the metric. + /// + [Input("namespace")] + public Input? Namespace { get; set; } + + public ScalingPolicyPredictiveScalingMetricArgs() + { + } + public static new ScalingPolicyPredictiveScalingMetricArgs Empty => new ScalingPolicyPredictiveScalingMetricArgs(); + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingMetricDataQueryArgs.cs b/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingMetricDataQueryArgs.cs new file mode 100644 index 0000000000..efaab430a1 --- /dev/null +++ b/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingMetricDataQueryArgs.cs @@ -0,0 +1,50 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationAutoScaling.Inputs +{ + + public sealed class ScalingPolicyPredictiveScalingMetricDataQueryArgs : global::Pulumi.ResourceArgs + { + /// + /// The math expression to perform on the returned data, if this object is performing a math expression. + /// + [Input("expression")] + public Input? Expression { get; set; } + + /// + /// A short name that identifies the object's results in the response. + /// + [Input("id")] + public Input? Id { get; set; } + + /// + /// A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents. + /// + [Input("label")] + public Input? Label { get; set; } + + /// + /// Information about the metric data to return. + /// + [Input("metricStat")] + public Input? MetricStat { get; set; } + + /// + /// Indicates whether to return the timestamps and raw data values of this metric. + /// + [Input("returnData")] + public Input? ReturnData { get; set; } + + public ScalingPolicyPredictiveScalingMetricDataQueryArgs() + { + } + public static new ScalingPolicyPredictiveScalingMetricDataQueryArgs Empty => new ScalingPolicyPredictiveScalingMetricDataQueryArgs(); + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingMetricDimensionArgs.cs b/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingMetricDimensionArgs.cs new file mode 100644 index 0000000000..90891254e3 --- /dev/null +++ b/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingMetricDimensionArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationAutoScaling.Inputs +{ + + public sealed class ScalingPolicyPredictiveScalingMetricDimensionArgs : global::Pulumi.ResourceArgs + { + /// + /// The name of the dimension. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The value of the dimension. + /// + [Input("value")] + public Input? Value { get; set; } + + public ScalingPolicyPredictiveScalingMetricDimensionArgs() + { + } + public static new ScalingPolicyPredictiveScalingMetricDimensionArgs Empty => new ScalingPolicyPredictiveScalingMetricDimensionArgs(); + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingMetricSpecificationArgs.cs b/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingMetricSpecificationArgs.cs new file mode 100644 index 0000000000..b318579a90 --- /dev/null +++ b/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingMetricSpecificationArgs.cs @@ -0,0 +1,41 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationAutoScaling.Inputs +{ + + public sealed class ScalingPolicyPredictiveScalingMetricSpecificationArgs : global::Pulumi.ResourceArgs + { + [Input("customizedCapacityMetricSpecification")] + public Input? CustomizedCapacityMetricSpecification { get; set; } + + [Input("customizedLoadMetricSpecification")] + public Input? CustomizedLoadMetricSpecification { get; set; } + + [Input("customizedScalingMetricSpecification")] + public Input? CustomizedScalingMetricSpecification { get; set; } + + [Input("predefinedLoadMetricSpecification")] + public Input? PredefinedLoadMetricSpecification { get; set; } + + [Input("predefinedMetricPairSpecification")] + public Input? PredefinedMetricPairSpecification { get; set; } + + [Input("predefinedScalingMetricSpecification")] + public Input? PredefinedScalingMetricSpecification { get; set; } + + [Input("targetValue", required: true)] + public Input TargetValue { get; set; } = null!; + + public ScalingPolicyPredictiveScalingMetricSpecificationArgs() + { + } + public static new ScalingPolicyPredictiveScalingMetricSpecificationArgs Empty => new ScalingPolicyPredictiveScalingMetricSpecificationArgs(); + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingMetricStatArgs.cs b/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingMetricStatArgs.cs new file mode 100644 index 0000000000..cc855ce3dc --- /dev/null +++ b/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingMetricStatArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationAutoScaling.Inputs +{ + + public sealed class ScalingPolicyPredictiveScalingMetricStatArgs : global::Pulumi.ResourceArgs + { + /// + /// The CloudWatch metric to return, including the metric name, namespace, and dimensions. + /// + [Input("metric")] + public Input? Metric { get; set; } + + /// + /// The statistic to return. It can include any CloudWatch statistic or extended statistic. + /// + [Input("stat")] + public Input? Stat { get; set; } + + /// + /// The unit to use for the returned data points. + /// + [Input("unit")] + public Input? Unit { get; set; } + + public ScalingPolicyPredictiveScalingMetricStatArgs() + { + } + public static new ScalingPolicyPredictiveScalingMetricStatArgs Empty => new ScalingPolicyPredictiveScalingMetricStatArgs(); + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingPolicyConfigurationArgs.cs b/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingPolicyConfigurationArgs.cs new file mode 100644 index 0000000000..ac1c774479 --- /dev/null +++ b/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingPolicyConfigurationArgs.cs @@ -0,0 +1,40 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationAutoScaling.Inputs +{ + + public sealed class ScalingPolicyPredictiveScalingPolicyConfigurationArgs : global::Pulumi.ResourceArgs + { + [Input("maxCapacityBreachBehavior")] + public Input? MaxCapacityBreachBehavior { get; set; } + + [Input("maxCapacityBuffer")] + public Input? MaxCapacityBuffer { get; set; } + + [Input("metricSpecifications", required: true)] + private InputList? _metricSpecifications; + public InputList MetricSpecifications + { + get => _metricSpecifications ?? (_metricSpecifications = new InputList()); + set => _metricSpecifications = value; + } + + [Input("mode")] + public Input? Mode { get; set; } + + [Input("schedulingBufferTime")] + public Input? SchedulingBufferTime { get; set; } + + public ScalingPolicyPredictiveScalingPolicyConfigurationArgs() + { + } + public static new ScalingPolicyPredictiveScalingPolicyConfigurationArgs Empty => new ScalingPolicyPredictiveScalingPolicyConfigurationArgs(); + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs.cs b/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs.cs new file mode 100644 index 0000000000..c74ae33361 --- /dev/null +++ b/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationAutoScaling.Inputs +{ + + public sealed class ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs : global::Pulumi.ResourceArgs + { + [Input("predefinedMetricType", required: true)] + public Input PredefinedMetricType { get; set; } = null!; + + [Input("resourceLabel")] + public Input? ResourceLabel { get; set; } + + public ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs() + { + } + public static new ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs Empty => new ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs(); + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingPredefinedMetricPairArgs.cs b/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingPredefinedMetricPairArgs.cs new file mode 100644 index 0000000000..fbef75badf --- /dev/null +++ b/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingPredefinedMetricPairArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationAutoScaling.Inputs +{ + + public sealed class ScalingPolicyPredictiveScalingPredefinedMetricPairArgs : global::Pulumi.ResourceArgs + { + [Input("predefinedMetricType", required: true)] + public Input PredefinedMetricType { get; set; } = null!; + + [Input("resourceLabel")] + public Input? ResourceLabel { get; set; } + + public ScalingPolicyPredictiveScalingPredefinedMetricPairArgs() + { + } + public static new ScalingPolicyPredictiveScalingPredefinedMetricPairArgs Empty => new ScalingPolicyPredictiveScalingPredefinedMetricPairArgs(); + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs.cs b/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs.cs new file mode 100644 index 0000000000..800f428e36 --- /dev/null +++ b/sdk/dotnet/ApplicationAutoScaling/Inputs/ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationAutoScaling.Inputs +{ + + public sealed class ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs : global::Pulumi.ResourceArgs + { + [Input("predefinedMetricType", required: true)] + public Input PredefinedMetricType { get; set; } = null!; + + [Input("resourceLabel")] + public Input? ResourceLabel { get; set; } + + public ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs() + { + } + public static new ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs Empty => new ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs(); + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingCustomizedCapacityMetric.cs b/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingCustomizedCapacityMetric.cs new file mode 100644 index 0000000000..e2881293e6 --- /dev/null +++ b/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingCustomizedCapacityMetric.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationAutoScaling.Outputs +{ + + [OutputType] + public sealed class ScalingPolicyPredictiveScalingCustomizedCapacityMetric + { + public readonly ImmutableArray MetricDataQueries; + + [OutputConstructor] + private ScalingPolicyPredictiveScalingCustomizedCapacityMetric(ImmutableArray metricDataQueries) + { + MetricDataQueries = metricDataQueries; + } + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingCustomizedLoadMetric.cs b/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingCustomizedLoadMetric.cs new file mode 100644 index 0000000000..66ae665d3c --- /dev/null +++ b/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingCustomizedLoadMetric.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationAutoScaling.Outputs +{ + + [OutputType] + public sealed class ScalingPolicyPredictiveScalingCustomizedLoadMetric + { + public readonly ImmutableArray MetricDataQueries; + + [OutputConstructor] + private ScalingPolicyPredictiveScalingCustomizedLoadMetric(ImmutableArray metricDataQueries) + { + MetricDataQueries = metricDataQueries; + } + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingCustomizedScalingMetric.cs b/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingCustomizedScalingMetric.cs new file mode 100644 index 0000000000..2d0c7dfe73 --- /dev/null +++ b/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingCustomizedScalingMetric.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationAutoScaling.Outputs +{ + + [OutputType] + public sealed class ScalingPolicyPredictiveScalingCustomizedScalingMetric + { + public readonly ImmutableArray MetricDataQueries; + + [OutputConstructor] + private ScalingPolicyPredictiveScalingCustomizedScalingMetric(ImmutableArray metricDataQueries) + { + MetricDataQueries = metricDataQueries; + } + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingMetric.cs b/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingMetric.cs new file mode 100644 index 0000000000..f82d5577e8 --- /dev/null +++ b/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingMetric.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationAutoScaling.Outputs +{ + + [OutputType] + public sealed class ScalingPolicyPredictiveScalingMetric + { + /// + /// The dimensions for the metric. + /// + public readonly ImmutableArray Dimensions; + /// + /// The name of the metric. + /// + public readonly string? MetricName; + /// + /// The namespace of the metric. + /// + public readonly string? Namespace; + + [OutputConstructor] + private ScalingPolicyPredictiveScalingMetric( + ImmutableArray dimensions, + + string? metricName, + + string? @namespace) + { + Dimensions = dimensions; + MetricName = metricName; + Namespace = @namespace; + } + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingMetricDataQuery.cs b/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingMetricDataQuery.cs new file mode 100644 index 0000000000..117ea77d78 --- /dev/null +++ b/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingMetricDataQuery.cs @@ -0,0 +1,56 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationAutoScaling.Outputs +{ + + [OutputType] + public sealed class ScalingPolicyPredictiveScalingMetricDataQuery + { + /// + /// The math expression to perform on the returned data, if this object is performing a math expression. + /// + public readonly string? Expression; + /// + /// A short name that identifies the object's results in the response. + /// + public readonly string? Id; + /// + /// A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents. + /// + public readonly string? Label; + /// + /// Information about the metric data to return. + /// + public readonly Outputs.ScalingPolicyPredictiveScalingMetricStat? MetricStat; + /// + /// Indicates whether to return the timestamps and raw data values of this metric. + /// + public readonly bool? ReturnData; + + [OutputConstructor] + private ScalingPolicyPredictiveScalingMetricDataQuery( + string? expression, + + string? id, + + string? label, + + Outputs.ScalingPolicyPredictiveScalingMetricStat? metricStat, + + bool? returnData) + { + Expression = expression; + Id = id; + Label = label; + MetricStat = metricStat; + ReturnData = returnData; + } + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingMetricDimension.cs b/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingMetricDimension.cs new file mode 100644 index 0000000000..448cbac051 --- /dev/null +++ b/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingMetricDimension.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationAutoScaling.Outputs +{ + + [OutputType] + public sealed class ScalingPolicyPredictiveScalingMetricDimension + { + /// + /// The name of the dimension. + /// + public readonly string? Name; + /// + /// The value of the dimension. + /// + public readonly string? Value; + + [OutputConstructor] + private ScalingPolicyPredictiveScalingMetricDimension( + string? name, + + string? value) + { + Name = name; + Value = value; + } + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingMetricSpecification.cs b/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingMetricSpecification.cs new file mode 100644 index 0000000000..4ee560e2a2 --- /dev/null +++ b/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingMetricSpecification.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationAutoScaling.Outputs +{ + + [OutputType] + public sealed class ScalingPolicyPredictiveScalingMetricSpecification + { + public readonly Outputs.ScalingPolicyPredictiveScalingCustomizedCapacityMetric? CustomizedCapacityMetricSpecification; + public readonly Outputs.ScalingPolicyPredictiveScalingCustomizedLoadMetric? CustomizedLoadMetricSpecification; + public readonly Outputs.ScalingPolicyPredictiveScalingCustomizedScalingMetric? CustomizedScalingMetricSpecification; + public readonly Outputs.ScalingPolicyPredictiveScalingPredefinedLoadMetric? PredefinedLoadMetricSpecification; + public readonly Outputs.ScalingPolicyPredictiveScalingPredefinedMetricPair? PredefinedMetricPairSpecification; + public readonly Outputs.ScalingPolicyPredictiveScalingPredefinedScalingMetric? PredefinedScalingMetricSpecification; + public readonly double TargetValue; + + [OutputConstructor] + private ScalingPolicyPredictiveScalingMetricSpecification( + Outputs.ScalingPolicyPredictiveScalingCustomizedCapacityMetric? customizedCapacityMetricSpecification, + + Outputs.ScalingPolicyPredictiveScalingCustomizedLoadMetric? customizedLoadMetricSpecification, + + Outputs.ScalingPolicyPredictiveScalingCustomizedScalingMetric? customizedScalingMetricSpecification, + + Outputs.ScalingPolicyPredictiveScalingPredefinedLoadMetric? predefinedLoadMetricSpecification, + + Outputs.ScalingPolicyPredictiveScalingPredefinedMetricPair? predefinedMetricPairSpecification, + + Outputs.ScalingPolicyPredictiveScalingPredefinedScalingMetric? predefinedScalingMetricSpecification, + + double targetValue) + { + CustomizedCapacityMetricSpecification = customizedCapacityMetricSpecification; + CustomizedLoadMetricSpecification = customizedLoadMetricSpecification; + CustomizedScalingMetricSpecification = customizedScalingMetricSpecification; + PredefinedLoadMetricSpecification = predefinedLoadMetricSpecification; + PredefinedMetricPairSpecification = predefinedMetricPairSpecification; + PredefinedScalingMetricSpecification = predefinedScalingMetricSpecification; + TargetValue = targetValue; + } + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingMetricStat.cs b/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingMetricStat.cs new file mode 100644 index 0000000000..7714b12620 --- /dev/null +++ b/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingMetricStat.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationAutoScaling.Outputs +{ + + [OutputType] + public sealed class ScalingPolicyPredictiveScalingMetricStat + { + /// + /// The CloudWatch metric to return, including the metric name, namespace, and dimensions. + /// + public readonly Outputs.ScalingPolicyPredictiveScalingMetric? Metric; + /// + /// The statistic to return. It can include any CloudWatch statistic or extended statistic. + /// + public readonly string? Stat; + /// + /// The unit to use for the returned data points. + /// + public readonly string? Unit; + + [OutputConstructor] + private ScalingPolicyPredictiveScalingMetricStat( + Outputs.ScalingPolicyPredictiveScalingMetric? metric, + + string? stat, + + string? unit) + { + Metric = metric; + Stat = stat; + Unit = unit; + } + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingPolicyConfiguration.cs b/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingPolicyConfiguration.cs new file mode 100644 index 0000000000..17e154a1c3 --- /dev/null +++ b/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingPolicyConfiguration.cs @@ -0,0 +1,41 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationAutoScaling.Outputs +{ + + [OutputType] + public sealed class ScalingPolicyPredictiveScalingPolicyConfiguration + { + public readonly string? MaxCapacityBreachBehavior; + public readonly int? MaxCapacityBuffer; + public readonly ImmutableArray MetricSpecifications; + public readonly string? Mode; + public readonly int? SchedulingBufferTime; + + [OutputConstructor] + private ScalingPolicyPredictiveScalingPolicyConfiguration( + string? maxCapacityBreachBehavior, + + int? maxCapacityBuffer, + + ImmutableArray metricSpecifications, + + string? mode, + + int? schedulingBufferTime) + { + MaxCapacityBreachBehavior = maxCapacityBreachBehavior; + MaxCapacityBuffer = maxCapacityBuffer; + MetricSpecifications = metricSpecifications; + Mode = mode; + SchedulingBufferTime = schedulingBufferTime; + } + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingPredefinedLoadMetric.cs b/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingPredefinedLoadMetric.cs new file mode 100644 index 0000000000..f0e342c9f1 --- /dev/null +++ b/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingPredefinedLoadMetric.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationAutoScaling.Outputs +{ + + [OutputType] + public sealed class ScalingPolicyPredictiveScalingPredefinedLoadMetric + { + public readonly string PredefinedMetricType; + public readonly string? ResourceLabel; + + [OutputConstructor] + private ScalingPolicyPredictiveScalingPredefinedLoadMetric( + string predefinedMetricType, + + string? resourceLabel) + { + PredefinedMetricType = predefinedMetricType; + ResourceLabel = resourceLabel; + } + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingPredefinedMetricPair.cs b/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingPredefinedMetricPair.cs new file mode 100644 index 0000000000..f4ddb65849 --- /dev/null +++ b/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingPredefinedMetricPair.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationAutoScaling.Outputs +{ + + [OutputType] + public sealed class ScalingPolicyPredictiveScalingPredefinedMetricPair + { + public readonly string PredefinedMetricType; + public readonly string? ResourceLabel; + + [OutputConstructor] + private ScalingPolicyPredictiveScalingPredefinedMetricPair( + string predefinedMetricType, + + string? resourceLabel) + { + PredefinedMetricType = predefinedMetricType; + ResourceLabel = resourceLabel; + } + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingPredefinedScalingMetric.cs b/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingPredefinedScalingMetric.cs new file mode 100644 index 0000000000..4a776cb620 --- /dev/null +++ b/sdk/dotnet/ApplicationAutoScaling/Outputs/ScalingPolicyPredictiveScalingPredefinedScalingMetric.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationAutoScaling.Outputs +{ + + [OutputType] + public sealed class ScalingPolicyPredictiveScalingPredefinedScalingMetric + { + public readonly string PredefinedMetricType; + public readonly string? ResourceLabel; + + [OutputConstructor] + private ScalingPolicyPredictiveScalingPredefinedScalingMetric( + string predefinedMetricType, + + string? resourceLabel) + { + PredefinedMetricType = predefinedMetricType; + ResourceLabel = resourceLabel; + } + } +} diff --git a/sdk/dotnet/ApplicationAutoScaling/ScalingPolicy.cs b/sdk/dotnet/ApplicationAutoScaling/ScalingPolicy.cs index 62a9546619..c9f0c5fb55 100644 --- a/sdk/dotnet/ApplicationAutoScaling/ScalingPolicy.cs +++ b/sdk/dotnet/ApplicationAutoScaling/ScalingPolicy.cs @@ -38,6 +38,9 @@ public partial class ScalingPolicy : global::Pulumi.CustomResource [Output("policyType")] public Output PolicyType { get; private set; } = null!; + [Output("predictiveScalingPolicyConfiguration")] + public Output PredictiveScalingPolicyConfiguration { get; private set; } = null!; + /// /// The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. /// + ECS service - The resource type is ``service`` and the unique identifier is the cluster name and service name. Example: ``service/my-cluster/my-service``. @@ -186,6 +189,9 @@ public sealed class ScalingPolicyArgs : global::Pulumi.ResourceArgs [Input("policyType", required: true)] public Input PolicyType { get; set; } = null!; + [Input("predictiveScalingPolicyConfiguration")] + public Input? PredictiveScalingPolicyConfiguration { get; set; } + /// /// The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. /// + ECS service - The resource type is ``service`` and the unique identifier is the cluster name and service name. Example: ``service/my-cluster/my-service``. diff --git a/sdk/dotnet/ApplicationSignals/GetServiceLevelObjective.cs b/sdk/dotnet/ApplicationSignals/GetServiceLevelObjective.cs index 450730e5e0..3853b9f37e 100644 --- a/sdk/dotnet/ApplicationSignals/GetServiceLevelObjective.cs +++ b/sdk/dotnet/ApplicationSignals/GetServiceLevelObjective.cs @@ -61,6 +61,7 @@ public sealed class GetServiceLevelObjectiveResult /// The ARN of this SLO. /// public readonly string? Arn; + public readonly ImmutableArray BurnRateConfigurations; /// /// Epoch time in seconds of the time that this SLO was created /// @@ -100,6 +101,8 @@ public sealed class GetServiceLevelObjectiveResult private GetServiceLevelObjectiveResult( string? arn, + ImmutableArray burnRateConfigurations, + int? createdTime, string? description, @@ -117,6 +120,7 @@ private GetServiceLevelObjectiveResult( ImmutableArray tags) { Arn = arn; + BurnRateConfigurations = burnRateConfigurations; CreatedTime = createdTime; Description = description; EvaluationType = evaluationType; diff --git a/sdk/dotnet/ApplicationSignals/Inputs/ServiceLevelObjectiveBurnRateConfigurationArgs.cs b/sdk/dotnet/ApplicationSignals/Inputs/ServiceLevelObjectiveBurnRateConfigurationArgs.cs new file mode 100644 index 0000000000..72c22da23f --- /dev/null +++ b/sdk/dotnet/ApplicationSignals/Inputs/ServiceLevelObjectiveBurnRateConfigurationArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationSignals.Inputs +{ + + /// + /// This object defines the length of the look-back window used to calculate one burn rate metric for this SLO. The burn rate measures how fast the service is consuming the error budget, relative to the attainment goal of the SLO. A burn rate of exactly 1 indicates that the SLO goal will be met exactly. + /// For example, if you specify 60 as the number of minutes in the look-back window, the burn rate is calculated as the following: + /// burn rate = error rate over the look-back window / (1 - attainment goal percentage) + /// + public sealed class ServiceLevelObjectiveBurnRateConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// The number of minutes to use as the look-back window. + /// + [Input("lookBackWindowMinutes", required: true)] + public Input LookBackWindowMinutes { get; set; } = null!; + + public ServiceLevelObjectiveBurnRateConfigurationArgs() + { + } + public static new ServiceLevelObjectiveBurnRateConfigurationArgs Empty => new ServiceLevelObjectiveBurnRateConfigurationArgs(); + } +} diff --git a/sdk/dotnet/ApplicationSignals/Outputs/ServiceLevelObjectiveBurnRateConfiguration.cs b/sdk/dotnet/ApplicationSignals/Outputs/ServiceLevelObjectiveBurnRateConfiguration.cs new file mode 100644 index 0000000000..a7de434291 --- /dev/null +++ b/sdk/dotnet/ApplicationSignals/Outputs/ServiceLevelObjectiveBurnRateConfiguration.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ApplicationSignals.Outputs +{ + + /// + /// This object defines the length of the look-back window used to calculate one burn rate metric for this SLO. The burn rate measures how fast the service is consuming the error budget, relative to the attainment goal of the SLO. A burn rate of exactly 1 indicates that the SLO goal will be met exactly. + /// For example, if you specify 60 as the number of minutes in the look-back window, the burn rate is calculated as the following: + /// burn rate = error rate over the look-back window / (1 - attainment goal percentage) + /// + [OutputType] + public sealed class ServiceLevelObjectiveBurnRateConfiguration + { + /// + /// The number of minutes to use as the look-back window. + /// + public readonly int LookBackWindowMinutes; + + [OutputConstructor] + private ServiceLevelObjectiveBurnRateConfiguration(int lookBackWindowMinutes) + { + LookBackWindowMinutes = lookBackWindowMinutes; + } + } +} diff --git a/sdk/dotnet/ApplicationSignals/ServiceLevelObjective.cs b/sdk/dotnet/ApplicationSignals/ServiceLevelObjective.cs index 69d4ae766d..9def5df869 100644 --- a/sdk/dotnet/ApplicationSignals/ServiceLevelObjective.cs +++ b/sdk/dotnet/ApplicationSignals/ServiceLevelObjective.cs @@ -21,6 +21,9 @@ public partial class ServiceLevelObjective : global::Pulumi.CustomResource [Output("arn")] public Output Arn { get; private set; } = null!; + [Output("burnRateConfigurations")] + public Output> BurnRateConfigurations { get; private set; } = null!; + /// /// Epoch time in seconds of the time that this SLO was created /// @@ -126,6 +129,14 @@ public static ServiceLevelObjective Get(string name, Input id, CustomRes public sealed class ServiceLevelObjectiveArgs : global::Pulumi.ResourceArgs { + [Input("burnRateConfigurations")] + private InputList? _burnRateConfigurations; + public InputList BurnRateConfigurations + { + get => _burnRateConfigurations ?? (_burnRateConfigurations = new InputList()); + set => _burnRateConfigurations = value; + } + /// /// An optional description for this SLO. Default is 'No description' /// diff --git a/sdk/dotnet/AutoScaling/AutoScalingGroup.cs b/sdk/dotnet/AutoScaling/AutoScalingGroup.cs index 5b7921bfb9..eaa381e25d 100644 --- a/sdk/dotnet/AutoScaling/AutoScalingGroup.cs +++ b/sdk/dotnet/AutoScaling/AutoScalingGroup.cs @@ -32,6 +32,9 @@ public partial class AutoScalingGroup : global::Pulumi.CustomResource [Output("availabilityZoneDistribution")] public Output AvailabilityZoneDistribution { get; private set; } = null!; + [Output("availabilityZoneImpairmentPolicy")] + public Output AvailabilityZoneImpairmentPolicy { get; private set; } = null!; + /// /// A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the ``VPCZoneIdentifier`` property, or for attaching a network interface when an existing network interface ID is specified in a launch template. /// @@ -198,6 +201,9 @@ public partial class AutoScalingGroup : global::Pulumi.CustomResource [Output("serviceLinkedRoleArn")] public Output ServiceLinkedRoleArn { get; private set; } = null!; + [Output("skipZonalShiftValidation")] + public Output SkipZonalShiftValidation { get; private set; } = null!; + /// /// One or more tags. You can tag your Auto Scaling group and propagate the tags to the Amazon EC2 instances it launches. Tags are not propagated to Amazon EBS volumes. To add tags to Amazon EBS volumes, specify the tags in a launch template but use caution. If the launch template specifies an instance tag with a key that is also specified for the Auto Scaling group, Amazon EC2 Auto Scaling overrides the value of that instance tag with the value specified by the Auto Scaling group. For more information, see [Tag Auto Scaling groups and instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-tagging.html) in the *Amazon EC2 Auto Scaling User Guide*. /// @@ -296,6 +302,9 @@ public sealed class AutoScalingGroupArgs : global::Pulumi.ResourceArgs [Input("availabilityZoneDistribution")] public Input? AvailabilityZoneDistribution { get; set; } + [Input("availabilityZoneImpairmentPolicy")] + public Input? AvailabilityZoneImpairmentPolicy { get; set; } + [Input("availabilityZones")] private InputList? _availabilityZones; @@ -492,6 +501,9 @@ public InputList Notificat [Input("serviceLinkedRoleArn")] public Input? ServiceLinkedRoleArn { get; set; } + [Input("skipZonalShiftValidation")] + public Input? SkipZonalShiftValidation { get; set; } + [Input("tags")] private InputList? _tags; diff --git a/sdk/dotnet/AutoScaling/Enums.cs b/sdk/dotnet/AutoScaling/Enums.cs index 195fef4143..d77eef7829 100644 --- a/sdk/dotnet/AutoScaling/Enums.cs +++ b/sdk/dotnet/AutoScaling/Enums.cs @@ -40,4 +40,32 @@ private AutoScalingGroupAvailabilityZoneDistributionCapacityDistributionStrategy public override string ToString() => _value; } + + [EnumType] + public readonly struct AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior : IEquatable + { + private readonly string _value; + + private AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior IgnoreUnhealthy { get; } = new AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior("IgnoreUnhealthy"); + public static AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior ReplaceUnhealthy { get; } = new AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior("ReplaceUnhealthy"); + + public static bool operator ==(AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior left, AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior right) => left.Equals(right); + public static bool operator !=(AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior left, AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior right) => !left.Equals(right); + + public static explicit operator string(AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior other && Equals(other); + public bool Equals(AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } } diff --git a/sdk/dotnet/AutoScaling/GetAutoScalingGroup.cs b/sdk/dotnet/AutoScaling/GetAutoScalingGroup.cs index 46268fe79d..e1cc552133 100644 --- a/sdk/dotnet/AutoScaling/GetAutoScalingGroup.cs +++ b/sdk/dotnet/AutoScaling/GetAutoScalingGroup.cs @@ -71,6 +71,7 @@ public sealed class GetAutoScalingGroupResult /// The instance capacity distribution across Availability Zones. /// public readonly Outputs.AutoScalingGroupAvailabilityZoneDistribution? AvailabilityZoneDistribution; + public readonly Outputs.AutoScalingGroupAvailabilityZoneImpairmentPolicy? AvailabilityZoneImpairmentPolicy; /// /// A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the ``VPCZoneIdentifier`` property, or for attaching a network interface when an existing network interface ID is specified in a launch template. /// @@ -211,6 +212,8 @@ public sealed class GetAutoScalingGroupResult private GetAutoScalingGroupResult( Outputs.AutoScalingGroupAvailabilityZoneDistribution? availabilityZoneDistribution, + Outputs.AutoScalingGroupAvailabilityZoneImpairmentPolicy? availabilityZoneImpairmentPolicy, + ImmutableArray availabilityZones, bool? capacityRebalance, @@ -270,6 +273,7 @@ private GetAutoScalingGroupResult( ImmutableArray vpcZoneIdentifier) { AvailabilityZoneDistribution = availabilityZoneDistribution; + AvailabilityZoneImpairmentPolicy = availabilityZoneImpairmentPolicy; AvailabilityZones = availabilityZones; CapacityRebalance = capacityRebalance; Context = context; diff --git a/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs.cs b/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs.cs new file mode 100644 index 0000000000..99326940ab --- /dev/null +++ b/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AutoScaling.Inputs +{ + + public sealed class AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs : global::Pulumi.ResourceArgs + { + [Input("impairedZoneHealthCheckBehavior", required: true)] + public Input ImpairedZoneHealthCheckBehavior { get; set; } = null!; + + [Input("zonalShiftEnabled", required: true)] + public Input ZonalShiftEnabled { get; set; } = null!; + + public AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs() + { + } + public static new AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs Empty => new AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs(); + } +} diff --git a/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupBaselinePerformanceFactorsRequestArgs.cs b/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupBaselinePerformanceFactorsRequestArgs.cs new file mode 100644 index 0000000000..3dab100200 --- /dev/null +++ b/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupBaselinePerformanceFactorsRequestArgs.cs @@ -0,0 +1,23 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AutoScaling.Inputs +{ + + public sealed class AutoScalingGroupBaselinePerformanceFactorsRequestArgs : global::Pulumi.ResourceArgs + { + [Input("cpu")] + public Input? Cpu { get; set; } + + public AutoScalingGroupBaselinePerformanceFactorsRequestArgs() + { + } + public static new AutoScalingGroupBaselinePerformanceFactorsRequestArgs Empty => new AutoScalingGroupBaselinePerformanceFactorsRequestArgs(); + } +} diff --git a/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupCpuPerformanceFactorRequestArgs.cs b/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupCpuPerformanceFactorRequestArgs.cs new file mode 100644 index 0000000000..5f46f7e20b --- /dev/null +++ b/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupCpuPerformanceFactorRequestArgs.cs @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AutoScaling.Inputs +{ + + public sealed class AutoScalingGroupCpuPerformanceFactorRequestArgs : global::Pulumi.ResourceArgs + { + [Input("references")] + private InputList? _references; + public InputList References + { + get => _references ?? (_references = new InputList()); + set => _references = value; + } + + public AutoScalingGroupCpuPerformanceFactorRequestArgs() + { + } + public static new AutoScalingGroupCpuPerformanceFactorRequestArgs Empty => new AutoScalingGroupCpuPerformanceFactorRequestArgs(); + } +} diff --git a/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupInstanceRequirementsArgs.cs b/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupInstanceRequirementsArgs.cs index f657d6f619..a6cc83e73c 100644 --- a/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupInstanceRequirementsArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupInstanceRequirementsArgs.cs @@ -125,6 +125,9 @@ public InputList AllowedInstanceTypes [Input("baselineEbsBandwidthMbps")] public Input? BaselineEbsBandwidthMbps { get; set; } + [Input("baselinePerformanceFactors")] + public Input? BaselinePerformanceFactors { get; set; } + /// /// Indicates whether burstable performance instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide for Linux Instances*. /// Default: ``excluded`` diff --git a/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupPerformanceFactorReferenceRequestArgs.cs b/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupPerformanceFactorReferenceRequestArgs.cs new file mode 100644 index 0000000000..d2f26d46d0 --- /dev/null +++ b/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupPerformanceFactorReferenceRequestArgs.cs @@ -0,0 +1,23 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AutoScaling.Inputs +{ + + public sealed class AutoScalingGroupPerformanceFactorReferenceRequestArgs : global::Pulumi.ResourceArgs + { + [Input("instanceFamily")] + public Input? InstanceFamily { get; set; } + + public AutoScalingGroupPerformanceFactorReferenceRequestArgs() + { + } + public static new AutoScalingGroupPerformanceFactorReferenceRequestArgs Empty => new AutoScalingGroupPerformanceFactorReferenceRequestArgs(); + } +} diff --git a/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupAvailabilityZoneImpairmentPolicy.cs b/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupAvailabilityZoneImpairmentPolicy.cs new file mode 100644 index 0000000000..ccfa173096 --- /dev/null +++ b/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupAvailabilityZoneImpairmentPolicy.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AutoScaling.Outputs +{ + + [OutputType] + public sealed class AutoScalingGroupAvailabilityZoneImpairmentPolicy + { + public readonly Pulumi.AwsNative.AutoScaling.AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior ImpairedZoneHealthCheckBehavior; + public readonly bool ZonalShiftEnabled; + + [OutputConstructor] + private AutoScalingGroupAvailabilityZoneImpairmentPolicy( + Pulumi.AwsNative.AutoScaling.AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior impairedZoneHealthCheckBehavior, + + bool zonalShiftEnabled) + { + ImpairedZoneHealthCheckBehavior = impairedZoneHealthCheckBehavior; + ZonalShiftEnabled = zonalShiftEnabled; + } + } +} diff --git a/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupBaselinePerformanceFactorsRequest.cs b/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupBaselinePerformanceFactorsRequest.cs new file mode 100644 index 0000000000..551211e221 --- /dev/null +++ b/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupBaselinePerformanceFactorsRequest.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AutoScaling.Outputs +{ + + [OutputType] + public sealed class AutoScalingGroupBaselinePerformanceFactorsRequest + { + public readonly Outputs.AutoScalingGroupCpuPerformanceFactorRequest? Cpu; + + [OutputConstructor] + private AutoScalingGroupBaselinePerformanceFactorsRequest(Outputs.AutoScalingGroupCpuPerformanceFactorRequest? cpu) + { + Cpu = cpu; + } + } +} diff --git a/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupCpuPerformanceFactorRequest.cs b/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupCpuPerformanceFactorRequest.cs new file mode 100644 index 0000000000..c41d619b6b --- /dev/null +++ b/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupCpuPerformanceFactorRequest.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AutoScaling.Outputs +{ + + [OutputType] + public sealed class AutoScalingGroupCpuPerformanceFactorRequest + { + public readonly ImmutableArray References; + + [OutputConstructor] + private AutoScalingGroupCpuPerformanceFactorRequest(ImmutableArray references) + { + References = references; + } + } +} diff --git a/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupInstanceRequirements.cs b/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupInstanceRequirements.cs index ae9965aaeb..474394156b 100644 --- a/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupInstanceRequirements.cs +++ b/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupInstanceRequirements.cs @@ -86,6 +86,7 @@ public sealed class AutoScalingGroupInstanceRequirements /// Default: No minimum or maximum limits /// public readonly Outputs.AutoScalingGroupBaselineEbsBandwidthMbpsRequest? BaselineEbsBandwidthMbps; + public readonly Outputs.AutoScalingGroupBaselinePerformanceFactorsRequest? BaselinePerformanceFactors; /// /// Indicates whether burstable performance instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide for Linux Instances*. /// Default: ``excluded`` @@ -203,6 +204,8 @@ private AutoScalingGroupInstanceRequirements( Outputs.AutoScalingGroupBaselineEbsBandwidthMbpsRequest? baselineEbsBandwidthMbps, + Outputs.AutoScalingGroupBaselinePerformanceFactorsRequest? baselinePerformanceFactors, + string? burstablePerformance, ImmutableArray cpuManufacturers, @@ -243,6 +246,7 @@ private AutoScalingGroupInstanceRequirements( AllowedInstanceTypes = allowedInstanceTypes; BareMetal = bareMetal; BaselineEbsBandwidthMbps = baselineEbsBandwidthMbps; + BaselinePerformanceFactors = baselinePerformanceFactors; BurstablePerformance = burstablePerformance; CpuManufacturers = cpuManufacturers; ExcludedInstanceTypes = excludedInstanceTypes; diff --git a/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupPerformanceFactorReferenceRequest.cs b/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupPerformanceFactorReferenceRequest.cs new file mode 100644 index 0000000000..f4c9d973de --- /dev/null +++ b/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupPerformanceFactorReferenceRequest.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AutoScaling.Outputs +{ + + [OutputType] + public sealed class AutoScalingGroupPerformanceFactorReferenceRequest + { + public readonly string? InstanceFamily; + + [OutputConstructor] + private AutoScalingGroupPerformanceFactorReferenceRequest(string? instanceFamily) + { + InstanceFamily = instanceFamily; + } + } +} diff --git a/sdk/dotnet/Batch/Inputs/ComputeEnvironmentLaunchTemplateSpecificationArgs.cs b/sdk/dotnet/Batch/Inputs/ComputeEnvironmentLaunchTemplateSpecificationArgs.cs index 813e033155..9b5fe6546b 100644 --- a/sdk/dotnet/Batch/Inputs/ComputeEnvironmentLaunchTemplateSpecificationArgs.cs +++ b/sdk/dotnet/Batch/Inputs/ComputeEnvironmentLaunchTemplateSpecificationArgs.cs @@ -26,6 +26,14 @@ public sealed class ComputeEnvironmentLaunchTemplateSpecificationArgs : global:: [Input("overrides")] private InputList? _overrides; + + /// + /// A launch template to use in place of the default launch template. You must specify either the launch template ID or launch template name in the request, but not both. + /// + /// You can specify up to ten (10) launch template overrides that are associated to unique instance types or families for each compute environment. + /// + /// > To unset all override templates for a compute environment, you can pass an empty array to the [UpdateComputeEnvironment.overrides](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) parameter, or not include the `overrides` parameter when submitting the `UpdateComputeEnvironment` API operation. + /// public InputList Overrides { get => _overrides ?? (_overrides = new InputList()); @@ -33,13 +41,15 @@ public InputList - /// The version number of the launch template, `$Latest` , or `$Default` . + /// The version number of the launch template, `$Default` , or `$Latest` . + /// + /// If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. /// - /// If the value is `$Latest` , the latest version of the launch template is used. If the value is `$Default` , the default version of the launch template is used. + /// > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . /// - /// > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Latest` or `$Default` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + /// Default: `$Default` /// - /// Default: `$Default` . + /// Latest: `$Latest` /// [Input("version")] public Input? Version { get; set; } diff --git a/sdk/dotnet/Batch/Inputs/ComputeEnvironmentLaunchTemplateSpecificationOverrideArgs.cs b/sdk/dotnet/Batch/Inputs/ComputeEnvironmentLaunchTemplateSpecificationOverrideArgs.cs index 9a1b5390d1..c064058e7e 100644 --- a/sdk/dotnet/Batch/Inputs/ComputeEnvironmentLaunchTemplateSpecificationOverrideArgs.cs +++ b/sdk/dotnet/Batch/Inputs/ComputeEnvironmentLaunchTemplateSpecificationOverrideArgs.cs @@ -12,20 +12,54 @@ namespace Pulumi.AwsNative.Batch.Inputs public sealed class ComputeEnvironmentLaunchTemplateSpecificationOverrideArgs : global::Pulumi.ResourceArgs { + /// + /// The ID of the launch template. + /// + /// *Note:* If you specify the `launchTemplateId` you can't specify the `launchTemplateName` as well. + /// [Input("launchTemplateId")] public Input? LaunchTemplateId { get; set; } + /// + /// The name of the launch template. + /// + /// *Note:* If you specify the `launchTemplateName` you can't specify the `launchTemplateId` as well. + /// [Input("launchTemplateName")] public Input? LaunchTemplateName { get; set; } [Input("targetInstanceTypes")] private InputList? _targetInstanceTypes; + + /// + /// The instance type or family that this this override launch template should be applied to. + /// + /// This parameter is required when defining a launch template override. + /// + /// Information included in this parameter must meet the following requirements: + /// + /// - Must be a valid Amazon EC2 instance type or family. + /// - `optimal` isn't allowed. + /// - `targetInstanceTypes` can target only instance types and families that are included within the [`ComputeResource.instanceTypes`](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes) set. `targetInstanceTypes` doesn't need to include all of the instances from the `instanceType` set, but at least a subset. For example, if `ComputeResource.instanceTypes` includes `[m5, g5]` , `targetInstanceTypes` can include `[m5.2xlarge]` and `[m5.large]` but not `[c5.large]` . + /// - `targetInstanceTypes` included within the same launch template override or across launch template overrides can't overlap for the same compute environment. For example, you can't define one launch template override to target an instance family and another define an instance type within this same family. + /// public InputList TargetInstanceTypes { get => _targetInstanceTypes ?? (_targetInstanceTypes = new InputList()); set => _targetInstanceTypes = value; } + /// + /// The version number of the launch template, `$Default` , or `$Latest` . + /// + /// If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. + /// + /// > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + /// + /// Default: `$Default` + /// + /// Latest: `$Latest` + /// [Input("version")] public Input? Version { get; set; } diff --git a/sdk/dotnet/Batch/Outputs/ComputeEnvironmentLaunchTemplateSpecification.cs b/sdk/dotnet/Batch/Outputs/ComputeEnvironmentLaunchTemplateSpecification.cs index 17a61f3227..90d635ddef 100644 --- a/sdk/dotnet/Batch/Outputs/ComputeEnvironmentLaunchTemplateSpecification.cs +++ b/sdk/dotnet/Batch/Outputs/ComputeEnvironmentLaunchTemplateSpecification.cs @@ -21,15 +21,24 @@ public sealed class ComputeEnvironmentLaunchTemplateSpecification /// The name of the launch template. /// public readonly string? LaunchTemplateName; + /// + /// A launch template to use in place of the default launch template. You must specify either the launch template ID or launch template name in the request, but not both. + /// + /// You can specify up to ten (10) launch template overrides that are associated to unique instance types or families for each compute environment. + /// + /// > To unset all override templates for a compute environment, you can pass an empty array to the [UpdateComputeEnvironment.overrides](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) parameter, or not include the `overrides` parameter when submitting the `UpdateComputeEnvironment` API operation. + /// public readonly ImmutableArray Overrides; /// - /// The version number of the launch template, `$Latest` , or `$Default` . + /// The version number of the launch template, `$Default` , or `$Latest` . + /// + /// If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. /// - /// If the value is `$Latest` , the latest version of the launch template is used. If the value is `$Default` , the default version of the launch template is used. + /// > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . /// - /// > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Latest` or `$Default` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + /// Default: `$Default` /// - /// Default: `$Default` . + /// Latest: `$Latest` /// public readonly string? Version; diff --git a/sdk/dotnet/Batch/Outputs/ComputeEnvironmentLaunchTemplateSpecificationOverride.cs b/sdk/dotnet/Batch/Outputs/ComputeEnvironmentLaunchTemplateSpecificationOverride.cs index f7fe0cc1e0..fc2e093421 100644 --- a/sdk/dotnet/Batch/Outputs/ComputeEnvironmentLaunchTemplateSpecificationOverride.cs +++ b/sdk/dotnet/Batch/Outputs/ComputeEnvironmentLaunchTemplateSpecificationOverride.cs @@ -13,9 +13,42 @@ namespace Pulumi.AwsNative.Batch.Outputs [OutputType] public sealed class ComputeEnvironmentLaunchTemplateSpecificationOverride { + /// + /// The ID of the launch template. + /// + /// *Note:* If you specify the `launchTemplateId` you can't specify the `launchTemplateName` as well. + /// public readonly string? LaunchTemplateId; + /// + /// The name of the launch template. + /// + /// *Note:* If you specify the `launchTemplateName` you can't specify the `launchTemplateId` as well. + /// public readonly string? LaunchTemplateName; + /// + /// The instance type or family that this this override launch template should be applied to. + /// + /// This parameter is required when defining a launch template override. + /// + /// Information included in this parameter must meet the following requirements: + /// + /// - Must be a valid Amazon EC2 instance type or family. + /// - `optimal` isn't allowed. + /// - `targetInstanceTypes` can target only instance types and families that are included within the [`ComputeResource.instanceTypes`](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes) set. `targetInstanceTypes` doesn't need to include all of the instances from the `instanceType` set, but at least a subset. For example, if `ComputeResource.instanceTypes` includes `[m5, g5]` , `targetInstanceTypes` can include `[m5.2xlarge]` and `[m5.large]` but not `[c5.large]` . + /// - `targetInstanceTypes` included within the same launch template override or across launch template overrides can't overlap for the same compute environment. For example, you can't define one launch template override to target an instance family and another define an instance type within this same family. + /// public readonly ImmutableArray TargetInstanceTypes; + /// + /// The version number of the launch template, `$Default` , or `$Latest` . + /// + /// If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. + /// + /// > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + /// + /// Default: `$Default` + /// + /// Latest: `$Latest` + /// public readonly string? Version; [OutputConstructor] diff --git a/sdk/dotnet/CloudFormation/GetTypeActivation.cs b/sdk/dotnet/CloudFormation/GetTypeActivation.cs index 7cb18ca66c..28311961f1 100644 --- a/sdk/dotnet/CloudFormation/GetTypeActivation.cs +++ b/sdk/dotnet/CloudFormation/GetTypeActivation.cs @@ -62,41 +62,32 @@ public sealed class GetTypeActivationResult /// public readonly string? Arn; /// - /// The Amazon Resource Number (ARN) assigned to the public extension upon publication + /// Whether to automatically update the extension in this account and region when a new minor version is published by the extension publisher. Major versions released by the publisher must be manually updated. /// - public readonly string? PublicTypeArn; + public readonly bool? AutoUpdate; /// - /// The publisher id assigned by CloudFormation for publishing in this region. + /// The Major Version of the type you want to enable /// - public readonly string? PublisherId; + public readonly string? MajorVersion; /// - /// The name of the type being registered. - /// - /// We recommend that type names adhere to the following pattern: company_or_organization::service::type. + /// Manually updates a previously-enabled type to a new major or minor version, if available. You can also use this parameter to update the value of AutoUpdateEnabled /// - public readonly string? TypeName; - /// - /// An alias to assign to the public extension in this account and region. If you specify an alias for the extension, you must then use the alias to refer to the extension in your templates. - /// - public readonly string? TypeNameAlias; + public readonly Pulumi.AwsNative.CloudFormation.TypeActivationVersionBump? VersionBump; [OutputConstructor] private GetTypeActivationResult( string? arn, - string? publicTypeArn, - - string? publisherId, + bool? autoUpdate, - string? typeName, + string? majorVersion, - string? typeNameAlias) + Pulumi.AwsNative.CloudFormation.TypeActivationVersionBump? versionBump) { Arn = arn; - PublicTypeArn = publicTypeArn; - PublisherId = publisherId; - TypeName = typeName; - TypeNameAlias = typeNameAlias; + AutoUpdate = autoUpdate; + MajorVersion = majorVersion; + VersionBump = versionBump; } } } diff --git a/sdk/dotnet/CloudFormation/TypeActivation.cs b/sdk/dotnet/CloudFormation/TypeActivation.cs index 83fa3a30c0..ae7822f3b8 100644 --- a/sdk/dotnet/CloudFormation/TypeActivation.cs +++ b/sdk/dotnet/CloudFormation/TypeActivation.cs @@ -108,7 +108,13 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? Version = Utilities.Version, ReplaceOnChanges = { + "executionRoleArn", "loggingConfig", + "publicTypeArn", + "publisherId", + "type", + "typeName", + "typeNameAlias", }, }; var merged = CustomResourceOptions.Merge(defaultOptions, options); diff --git a/sdk/dotnet/ConnectCampaignsV2/Campaign.cs b/sdk/dotnet/ConnectCampaignsV2/Campaign.cs new file mode 100644 index 0000000000..6efaf9ec12 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Campaign.cs @@ -0,0 +1,144 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2 +{ + /// + /// Definition of AWS::ConnectCampaignsV2::Campaign Resource Type + /// + [AwsNativeResourceType("aws-native:connectcampaignsv2:Campaign")] + public partial class Campaign : global::Pulumi.CustomResource + { + /// + /// Amazon Connect Campaign Arn + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + [Output("channelSubtypeConfig")] + public Output ChannelSubtypeConfig { get; private set; } = null!; + + [Output("communicationLimitsOverride")] + public Output CommunicationLimitsOverride { get; private set; } = null!; + + [Output("communicationTimeConfig")] + public Output CommunicationTimeConfig { get; private set; } = null!; + + [Output("connectCampaignFlowArn")] + public Output ConnectCampaignFlowArn { get; private set; } = null!; + + [Output("connectInstanceId")] + public Output ConnectInstanceId { get; private set; } = null!; + + [Output("name")] + public Output Name { get; private set; } = null!; + + [Output("schedule")] + public Output Schedule { get; private set; } = null!; + + [Output("source")] + public Output Source { get; private set; } = null!; + + /// + /// One or more tags. + /// + [Output("tags")] + public Output> Tags { get; private set; } = null!; + + + /// + /// Create a Campaign resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public Campaign(string name, CampaignArgs args, CustomResourceOptions? options = null) + : base("aws-native:connectcampaignsv2:Campaign", name, args ?? new CampaignArgs(), MakeResourceOptions(options, "")) + { + } + + private Campaign(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:connectcampaignsv2:Campaign", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "connectInstanceId", + }, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing Campaign resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static Campaign Get(string name, Input id, CustomResourceOptions? options = null) + { + return new Campaign(name, id, options); + } + } + + public sealed class CampaignArgs : global::Pulumi.ResourceArgs + { + [Input("channelSubtypeConfig", required: true)] + public Input ChannelSubtypeConfig { get; set; } = null!; + + [Input("communicationLimitsOverride")] + public Input? CommunicationLimitsOverride { get; set; } + + [Input("communicationTimeConfig")] + public Input? CommunicationTimeConfig { get; set; } + + [Input("connectCampaignFlowArn")] + public Input? ConnectCampaignFlowArn { get; set; } + + [Input("connectInstanceId", required: true)] + public Input ConnectInstanceId { get; set; } = null!; + + [Input("name")] + public Input? Name { get; set; } + + [Input("schedule")] + public Input? Schedule { get; set; } + + [Input("source")] + public Input? Source { get; set; } + + [Input("tags")] + private InputList? _tags; + + /// + /// One or more tags. + /// + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + + public CampaignArgs() + { + } + public static new CampaignArgs Empty => new CampaignArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Enums.cs b/sdk/dotnet/ConnectCampaignsV2/Enums.cs new file mode 100644 index 0000000000..5b2c981a09 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Enums.cs @@ -0,0 +1,106 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.ComponentModel; +using Pulumi; + +namespace Pulumi.AwsNative.ConnectCampaignsV2 +{ + /// + /// The communication limit time unit + /// + [EnumType] + public readonly struct CampaignCommunicationLimitTimeUnit : IEquatable + { + private readonly string _value; + + private CampaignCommunicationLimitTimeUnit(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static CampaignCommunicationLimitTimeUnit Day { get; } = new CampaignCommunicationLimitTimeUnit("DAY"); + + public static bool operator ==(CampaignCommunicationLimitTimeUnit left, CampaignCommunicationLimitTimeUnit right) => left.Equals(right); + public static bool operator !=(CampaignCommunicationLimitTimeUnit left, CampaignCommunicationLimitTimeUnit right) => !left.Equals(right); + + public static explicit operator string(CampaignCommunicationLimitTimeUnit value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is CampaignCommunicationLimitTimeUnit other && Equals(other); + public bool Equals(CampaignCommunicationLimitTimeUnit other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + + /// + /// Day of week + /// + [EnumType] + public readonly struct CampaignDayOfWeek : IEquatable + { + private readonly string _value; + + private CampaignDayOfWeek(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static CampaignDayOfWeek Monday { get; } = new CampaignDayOfWeek("MONDAY"); + public static CampaignDayOfWeek Tuesday { get; } = new CampaignDayOfWeek("TUESDAY"); + public static CampaignDayOfWeek Wednesday { get; } = new CampaignDayOfWeek("WEDNESDAY"); + public static CampaignDayOfWeek Thursday { get; } = new CampaignDayOfWeek("THURSDAY"); + public static CampaignDayOfWeek Friday { get; } = new CampaignDayOfWeek("FRIDAY"); + public static CampaignDayOfWeek Saturday { get; } = new CampaignDayOfWeek("SATURDAY"); + public static CampaignDayOfWeek Sunday { get; } = new CampaignDayOfWeek("SUNDAY"); + + public static bool operator ==(CampaignDayOfWeek left, CampaignDayOfWeek right) => left.Equals(right); + public static bool operator !=(CampaignDayOfWeek left, CampaignDayOfWeek right) => !left.Equals(right); + + public static explicit operator string(CampaignDayOfWeek value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is CampaignDayOfWeek other && Equals(other); + public bool Equals(CampaignDayOfWeek other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + + /// + /// Local TimeZone Detection method + /// + [EnumType] + public readonly struct CampaignLocalTimeZoneDetectionType : IEquatable + { + private readonly string _value; + + private CampaignLocalTimeZoneDetectionType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static CampaignLocalTimeZoneDetectionType ZipCode { get; } = new CampaignLocalTimeZoneDetectionType("ZIP_CODE"); + public static CampaignLocalTimeZoneDetectionType AreaCode { get; } = new CampaignLocalTimeZoneDetectionType("AREA_CODE"); + + public static bool operator ==(CampaignLocalTimeZoneDetectionType left, CampaignLocalTimeZoneDetectionType right) => left.Equals(right); + public static bool operator !=(CampaignLocalTimeZoneDetectionType left, CampaignLocalTimeZoneDetectionType right) => !left.Equals(right); + + public static explicit operator string(CampaignLocalTimeZoneDetectionType value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is CampaignLocalTimeZoneDetectionType other && Equals(other); + public bool Equals(CampaignLocalTimeZoneDetectionType other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/GetCampaign.cs b/sdk/dotnet/ConnectCampaignsV2/GetCampaign.cs new file mode 100644 index 0000000000..f4afd8ab1e --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/GetCampaign.cs @@ -0,0 +1,107 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2 +{ + public static class GetCampaign + { + /// + /// Definition of AWS::ConnectCampaignsV2::Campaign Resource Type + /// + public static Task InvokeAsync(GetCampaignArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:connectcampaignsv2:getCampaign", args ?? new GetCampaignArgs(), options.WithDefaults()); + + /// + /// Definition of AWS::ConnectCampaignsV2::Campaign Resource Type + /// + public static Output Invoke(GetCampaignInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:connectcampaignsv2:getCampaign", args ?? new GetCampaignInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetCampaignArgs : global::Pulumi.InvokeArgs + { + /// + /// Amazon Connect Campaign Arn + /// + [Input("arn", required: true)] + public string Arn { get; set; } = null!; + + public GetCampaignArgs() + { + } + public static new GetCampaignArgs Empty => new GetCampaignArgs(); + } + + public sealed class GetCampaignInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// Amazon Connect Campaign Arn + /// + [Input("arn", required: true)] + public Input Arn { get; set; } = null!; + + public GetCampaignInvokeArgs() + { + } + public static new GetCampaignInvokeArgs Empty => new GetCampaignInvokeArgs(); + } + + + [OutputType] + public sealed class GetCampaignResult + { + /// + /// Amazon Connect Campaign Arn + /// + public readonly string? Arn; + public readonly Outputs.CampaignChannelSubtypeConfig? ChannelSubtypeConfig; + public readonly Outputs.CampaignCommunicationLimitsConfig? CommunicationLimitsOverride; + public readonly Outputs.CampaignCommunicationTimeConfig? CommunicationTimeConfig; + public readonly string? ConnectCampaignFlowArn; + public readonly string? Name; + public readonly Outputs.CampaignSchedule? Schedule; + public readonly Outputs.CampaignSource? Source; + /// + /// One or more tags. + /// + public readonly ImmutableArray Tags; + + [OutputConstructor] + private GetCampaignResult( + string? arn, + + Outputs.CampaignChannelSubtypeConfig? channelSubtypeConfig, + + Outputs.CampaignCommunicationLimitsConfig? communicationLimitsOverride, + + Outputs.CampaignCommunicationTimeConfig? communicationTimeConfig, + + string? connectCampaignFlowArn, + + string? name, + + Outputs.CampaignSchedule? schedule, + + Outputs.CampaignSource? source, + + ImmutableArray tags) + { + Arn = arn; + ChannelSubtypeConfig = channelSubtypeConfig; + CommunicationLimitsOverride = communicationLimitsOverride; + CommunicationTimeConfig = communicationTimeConfig; + ConnectCampaignFlowArn = connectCampaignFlowArn; + Name = name; + Schedule = schedule; + Source = source; + Tags = tags; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignAgentlessConfigArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignAgentlessConfigArgs.cs new file mode 100644 index 0000000000..454d4d2797 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignAgentlessConfigArgs.cs @@ -0,0 +1,23 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// Agentless config + /// + public sealed class CampaignAgentlessConfigArgs : global::Pulumi.ResourceArgs + { + public CampaignAgentlessConfigArgs() + { + } + public static new CampaignAgentlessConfigArgs Empty => new CampaignAgentlessConfigArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignAnswerMachineDetectionConfigArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignAnswerMachineDetectionConfigArgs.cs new file mode 100644 index 0000000000..a7221de5b8 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignAnswerMachineDetectionConfigArgs.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// The configuration used for answering machine detection during outbound calls + /// + public sealed class CampaignAnswerMachineDetectionConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Enables detection of prompts (e.g., beep after after a voicemail greeting) + /// + [Input("awaitAnswerMachinePrompt")] + public Input? AwaitAnswerMachinePrompt { get; set; } + + /// + /// Flag to decided whether outbound calls should have answering machine detection enabled or not + /// + [Input("enableAnswerMachineDetection", required: true)] + public Input EnableAnswerMachineDetection { get; set; } = null!; + + public CampaignAnswerMachineDetectionConfigArgs() + { + } + public static new CampaignAnswerMachineDetectionConfigArgs Empty => new CampaignAnswerMachineDetectionConfigArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignChannelSubtypeConfigArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignChannelSubtypeConfigArgs.cs new file mode 100644 index 0000000000..b3eb5ca900 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignChannelSubtypeConfigArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// The possible types of channel subtype config parameters + /// + public sealed class CampaignChannelSubtypeConfigArgs : global::Pulumi.ResourceArgs + { + [Input("email")] + public Input? Email { get; set; } + + [Input("sms")] + public Input? Sms { get; set; } + + [Input("telephony")] + public Input? Telephony { get; set; } + + public CampaignChannelSubtypeConfigArgs() + { + } + public static new CampaignChannelSubtypeConfigArgs Empty => new CampaignChannelSubtypeConfigArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignCommunicationLimitArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignCommunicationLimitArgs.cs new file mode 100644 index 0000000000..d731e1eeec --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignCommunicationLimitArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// Communication Limit + /// + public sealed class CampaignCommunicationLimitArgs : global::Pulumi.ResourceArgs + { + [Input("frequency", required: true)] + public Input Frequency { get; set; } = null!; + + [Input("maxCountPerRecipient", required: true)] + public Input MaxCountPerRecipient { get; set; } = null!; + + [Input("unit", required: true)] + public Input Unit { get; set; } = null!; + + public CampaignCommunicationLimitArgs() + { + } + public static new CampaignCommunicationLimitArgs Empty => new CampaignCommunicationLimitArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignCommunicationLimitsArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignCommunicationLimitsArgs.cs new file mode 100644 index 0000000000..771b29535f --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignCommunicationLimitsArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// Communication limits + /// + public sealed class CampaignCommunicationLimitsArgs : global::Pulumi.ResourceArgs + { + [Input("communicationLimitList")] + private InputList? _communicationLimitList; + public InputList CommunicationLimitList + { + get => _communicationLimitList ?? (_communicationLimitList = new InputList()); + set => _communicationLimitList = value; + } + + public CampaignCommunicationLimitsArgs() + { + } + public static new CampaignCommunicationLimitsArgs Empty => new CampaignCommunicationLimitsArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignCommunicationLimitsConfigArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignCommunicationLimitsConfigArgs.cs new file mode 100644 index 0000000000..1cff6a1870 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignCommunicationLimitsConfigArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// Communication limits config + /// + public sealed class CampaignCommunicationLimitsConfigArgs : global::Pulumi.ResourceArgs + { + [Input("allChannelsSubtypes")] + public Input? AllChannelsSubtypes { get; set; } + + public CampaignCommunicationLimitsConfigArgs() + { + } + public static new CampaignCommunicationLimitsConfigArgs Empty => new CampaignCommunicationLimitsConfigArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignCommunicationTimeConfigArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignCommunicationTimeConfigArgs.cs new file mode 100644 index 0000000000..256fc004fb --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignCommunicationTimeConfigArgs.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// Campaign communication time config + /// + public sealed class CampaignCommunicationTimeConfigArgs : global::Pulumi.ResourceArgs + { + [Input("email")] + public Input? Email { get; set; } + + [Input("localTimeZoneConfig", required: true)] + public Input LocalTimeZoneConfig { get; set; } = null!; + + [Input("sms")] + public Input? Sms { get; set; } + + [Input("telephony")] + public Input? Telephony { get; set; } + + public CampaignCommunicationTimeConfigArgs() + { + } + public static new CampaignCommunicationTimeConfigArgs Empty => new CampaignCommunicationTimeConfigArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignDailyHourArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignDailyHourArgs.cs new file mode 100644 index 0000000000..477e67eac0 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignDailyHourArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// Daily Hour + /// + public sealed class CampaignDailyHourArgs : global::Pulumi.ResourceArgs + { + [Input("key")] + public Input? Key { get; set; } + + [Input("value")] + private InputList? _value; + public InputList Value + { + get => _value ?? (_value = new InputList()); + set => _value = value; + } + + public CampaignDailyHourArgs() + { + } + public static new CampaignDailyHourArgs Empty => new CampaignDailyHourArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignEmailChannelSubtypeConfigArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignEmailChannelSubtypeConfigArgs.cs new file mode 100644 index 0000000000..e0118427d2 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignEmailChannelSubtypeConfigArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// Email Channel Subtype config + /// + public sealed class CampaignEmailChannelSubtypeConfigArgs : global::Pulumi.ResourceArgs + { + [Input("capacity")] + public Input? Capacity { get; set; } + + [Input("defaultOutboundConfig", required: true)] + public Input DefaultOutboundConfig { get; set; } = null!; + + [Input("outboundMode", required: true)] + public Input OutboundMode { get; set; } = null!; + + public CampaignEmailChannelSubtypeConfigArgs() + { + } + public static new CampaignEmailChannelSubtypeConfigArgs Empty => new CampaignEmailChannelSubtypeConfigArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignEmailOutboundConfigArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignEmailOutboundConfigArgs.cs new file mode 100644 index 0000000000..0775154e93 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignEmailOutboundConfigArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// Default SMS outbound config + /// + public sealed class CampaignEmailOutboundConfigArgs : global::Pulumi.ResourceArgs + { + [Input("connectSourceEmailAddress", required: true)] + public Input ConnectSourceEmailAddress { get; set; } = null!; + + [Input("sourceEmailAddressDisplayName")] + public Input? SourceEmailAddressDisplayName { get; set; } + + [Input("wisdomTemplateArn", required: true)] + public Input WisdomTemplateArn { get; set; } = null!; + + public CampaignEmailOutboundConfigArgs() + { + } + public static new CampaignEmailOutboundConfigArgs Empty => new CampaignEmailOutboundConfigArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignEmailOutboundModeArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignEmailOutboundModeArgs.cs new file mode 100644 index 0000000000..10ed077604 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignEmailOutboundModeArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// Email Outbound Mode + /// + public sealed class CampaignEmailOutboundModeArgs : global::Pulumi.ResourceArgs + { + [Input("agentlessConfig")] + public Input? AgentlessConfig { get; set; } + + public CampaignEmailOutboundModeArgs() + { + } + public static new CampaignEmailOutboundModeArgs Empty => new CampaignEmailOutboundModeArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignLocalTimeZoneConfigArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignLocalTimeZoneConfigArgs.cs new file mode 100644 index 0000000000..6f4478d87a --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignLocalTimeZoneConfigArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// Local time zone config + /// + public sealed class CampaignLocalTimeZoneConfigArgs : global::Pulumi.ResourceArgs + { + [Input("defaultTimeZone")] + public Input? DefaultTimeZone { get; set; } + + [Input("localTimeZoneDetection")] + private InputList? _localTimeZoneDetection; + public InputList LocalTimeZoneDetection + { + get => _localTimeZoneDetection ?? (_localTimeZoneDetection = new InputList()); + set => _localTimeZoneDetection = value; + } + + public CampaignLocalTimeZoneConfigArgs() + { + } + public static new CampaignLocalTimeZoneConfigArgs Empty => new CampaignLocalTimeZoneConfigArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignOpenHoursArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignOpenHoursArgs.cs new file mode 100644 index 0000000000..b4a5d02396 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignOpenHoursArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// Open Hours config + /// + public sealed class CampaignOpenHoursArgs : global::Pulumi.ResourceArgs + { + [Input("dailyHours", required: true)] + private InputList? _dailyHours; + public InputList DailyHours + { + get => _dailyHours ?? (_dailyHours = new InputList()); + set => _dailyHours = value; + } + + public CampaignOpenHoursArgs() + { + } + public static new CampaignOpenHoursArgs Empty => new CampaignOpenHoursArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignPredictiveConfigArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignPredictiveConfigArgs.cs new file mode 100644 index 0000000000..190e9311d8 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignPredictiveConfigArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// Predictive config + /// + public sealed class CampaignPredictiveConfigArgs : global::Pulumi.ResourceArgs + { + [Input("bandwidthAllocation", required: true)] + public Input BandwidthAllocation { get; set; } = null!; + + public CampaignPredictiveConfigArgs() + { + } + public static new CampaignPredictiveConfigArgs Empty => new CampaignPredictiveConfigArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignProgressiveConfigArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignProgressiveConfigArgs.cs new file mode 100644 index 0000000000..34afd6a9bf --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignProgressiveConfigArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// Progressive config + /// + public sealed class CampaignProgressiveConfigArgs : global::Pulumi.ResourceArgs + { + [Input("bandwidthAllocation", required: true)] + public Input BandwidthAllocation { get; set; } = null!; + + public CampaignProgressiveConfigArgs() + { + } + public static new CampaignProgressiveConfigArgs Empty => new CampaignProgressiveConfigArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignRestrictedPeriodArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignRestrictedPeriodArgs.cs new file mode 100644 index 0000000000..0375fa55e0 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignRestrictedPeriodArgs.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// Restricted period + /// + public sealed class CampaignRestrictedPeriodArgs : global::Pulumi.ResourceArgs + { + [Input("endDate", required: true)] + public Input EndDate { get; set; } = null!; + + /// + /// The name of a restricted period + /// + [Input("name")] + public Input? Name { get; set; } + + [Input("startDate", required: true)] + public Input StartDate { get; set; } = null!; + + public CampaignRestrictedPeriodArgs() + { + } + public static new CampaignRestrictedPeriodArgs Empty => new CampaignRestrictedPeriodArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignRestrictedPeriodsArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignRestrictedPeriodsArgs.cs new file mode 100644 index 0000000000..a199d33518 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignRestrictedPeriodsArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// Restricted period config + /// + public sealed class CampaignRestrictedPeriodsArgs : global::Pulumi.ResourceArgs + { + [Input("restrictedPeriodList")] + private InputList? _restrictedPeriodList; + public InputList RestrictedPeriodList + { + get => _restrictedPeriodList ?? (_restrictedPeriodList = new InputList()); + set => _restrictedPeriodList = value; + } + + public CampaignRestrictedPeriodsArgs() + { + } + public static new CampaignRestrictedPeriodsArgs Empty => new CampaignRestrictedPeriodsArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignScheduleArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignScheduleArgs.cs new file mode 100644 index 0000000000..3a383ff233 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignScheduleArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// Campaign schedule + /// + public sealed class CampaignScheduleArgs : global::Pulumi.ResourceArgs + { + [Input("endTime", required: true)] + public Input EndTime { get; set; } = null!; + + [Input("refreshFrequency")] + public Input? RefreshFrequency { get; set; } + + [Input("startTime", required: true)] + public Input StartTime { get; set; } = null!; + + public CampaignScheduleArgs() + { + } + public static new CampaignScheduleArgs Empty => new CampaignScheduleArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignSmsChannelSubtypeConfigArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignSmsChannelSubtypeConfigArgs.cs new file mode 100644 index 0000000000..e7393fbb96 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignSmsChannelSubtypeConfigArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// SMS Channel Subtype config + /// + public sealed class CampaignSmsChannelSubtypeConfigArgs : global::Pulumi.ResourceArgs + { + [Input("capacity")] + public Input? Capacity { get; set; } + + [Input("defaultOutboundConfig", required: true)] + public Input DefaultOutboundConfig { get; set; } = null!; + + [Input("outboundMode", required: true)] + public Input OutboundMode { get; set; } = null!; + + public CampaignSmsChannelSubtypeConfigArgs() + { + } + public static new CampaignSmsChannelSubtypeConfigArgs Empty => new CampaignSmsChannelSubtypeConfigArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignSmsOutboundConfigArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignSmsOutboundConfigArgs.cs new file mode 100644 index 0000000000..f06cea66bc --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignSmsOutboundConfigArgs.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// Default SMS outbound config + /// + public sealed class CampaignSmsOutboundConfigArgs : global::Pulumi.ResourceArgs + { + [Input("connectSourcePhoneNumberArn", required: true)] + public Input ConnectSourcePhoneNumberArn { get; set; } = null!; + + [Input("wisdomTemplateArn", required: true)] + public Input WisdomTemplateArn { get; set; } = null!; + + public CampaignSmsOutboundConfigArgs() + { + } + public static new CampaignSmsOutboundConfigArgs Empty => new CampaignSmsOutboundConfigArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignSmsOutboundModeArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignSmsOutboundModeArgs.cs new file mode 100644 index 0000000000..731a9681bf --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignSmsOutboundModeArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// SMS Outbound Mode + /// + public sealed class CampaignSmsOutboundModeArgs : global::Pulumi.ResourceArgs + { + [Input("agentlessConfig")] + public Input? AgentlessConfig { get; set; } + + public CampaignSmsOutboundModeArgs() + { + } + public static new CampaignSmsOutboundModeArgs Empty => new CampaignSmsOutboundModeArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignSourceArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignSourceArgs.cs new file mode 100644 index 0000000000..07b4082b4d --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignSourceArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// The possible types of channel config parameters + /// + public sealed class CampaignSourceArgs : global::Pulumi.ResourceArgs + { + [Input("customerProfilesSegmentArn")] + public Input? CustomerProfilesSegmentArn { get; set; } + + public CampaignSourceArgs() + { + } + public static new CampaignSourceArgs Empty => new CampaignSourceArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignTelephonyChannelSubtypeConfigArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignTelephonyChannelSubtypeConfigArgs.cs new file mode 100644 index 0000000000..32a3d45895 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignTelephonyChannelSubtypeConfigArgs.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// Telephony Channel Subtype config + /// + public sealed class CampaignTelephonyChannelSubtypeConfigArgs : global::Pulumi.ResourceArgs + { + [Input("capacity")] + public Input? Capacity { get; set; } + + [Input("connectQueueId")] + public Input? ConnectQueueId { get; set; } + + [Input("defaultOutboundConfig", required: true)] + public Input DefaultOutboundConfig { get; set; } = null!; + + [Input("outboundMode", required: true)] + public Input OutboundMode { get; set; } = null!; + + public CampaignTelephonyChannelSubtypeConfigArgs() + { + } + public static new CampaignTelephonyChannelSubtypeConfigArgs Empty => new CampaignTelephonyChannelSubtypeConfigArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignTelephonyOutboundConfigArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignTelephonyOutboundConfigArgs.cs new file mode 100644 index 0000000000..894e4fd4b3 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignTelephonyOutboundConfigArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// Default Telephone Outbound config + /// + public sealed class CampaignTelephonyOutboundConfigArgs : global::Pulumi.ResourceArgs + { + [Input("answerMachineDetectionConfig")] + public Input? AnswerMachineDetectionConfig { get; set; } + + [Input("connectContactFlowId", required: true)] + public Input ConnectContactFlowId { get; set; } = null!; + + [Input("connectSourcePhoneNumber")] + public Input? ConnectSourcePhoneNumber { get; set; } + + public CampaignTelephonyOutboundConfigArgs() + { + } + public static new CampaignTelephonyOutboundConfigArgs Empty => new CampaignTelephonyOutboundConfigArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignTelephonyOutboundModeArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignTelephonyOutboundModeArgs.cs new file mode 100644 index 0000000000..6c669f2bab --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignTelephonyOutboundModeArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// Telephony Outbound Mode + /// + public sealed class CampaignTelephonyOutboundModeArgs : global::Pulumi.ResourceArgs + { + [Input("agentlessConfig")] + public Input? AgentlessConfig { get; set; } + + [Input("predictiveConfig")] + public Input? PredictiveConfig { get; set; } + + [Input("progressiveConfig")] + public Input? ProgressiveConfig { get; set; } + + public CampaignTelephonyOutboundModeArgs() + { + } + public static new CampaignTelephonyOutboundModeArgs Empty => new CampaignTelephonyOutboundModeArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignTimeRangeArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignTimeRangeArgs.cs new file mode 100644 index 0000000000..e022eb9c51 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignTimeRangeArgs.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// Time range in 24 hour format + /// + public sealed class CampaignTimeRangeArgs : global::Pulumi.ResourceArgs + { + [Input("endTime", required: true)] + public Input EndTime { get; set; } = null!; + + [Input("startTime", required: true)] + public Input StartTime { get; set; } = null!; + + public CampaignTimeRangeArgs() + { + } + public static new CampaignTimeRangeArgs Empty => new CampaignTimeRangeArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignTimeWindowArgs.cs b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignTimeWindowArgs.cs new file mode 100644 index 0000000000..6a76809189 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Inputs/CampaignTimeWindowArgs.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Inputs +{ + + /// + /// Time window config + /// + public sealed class CampaignTimeWindowArgs : global::Pulumi.ResourceArgs + { + [Input("openHours", required: true)] + public Input OpenHours { get; set; } = null!; + + [Input("restrictedPeriods")] + public Input? RestrictedPeriods { get; set; } + + public CampaignTimeWindowArgs() + { + } + public static new CampaignTimeWindowArgs Empty => new CampaignTimeWindowArgs(); + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignAgentlessConfig.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignAgentlessConfig.cs new file mode 100644 index 0000000000..787d49c9e2 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignAgentlessConfig.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// Agentless config + /// + [OutputType] + public sealed class CampaignAgentlessConfig + { + [OutputConstructor] + private CampaignAgentlessConfig() + { + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignAnswerMachineDetectionConfig.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignAnswerMachineDetectionConfig.cs new file mode 100644 index 0000000000..26cc76d595 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignAnswerMachineDetectionConfig.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// The configuration used for answering machine detection during outbound calls + /// + [OutputType] + public sealed class CampaignAnswerMachineDetectionConfig + { + /// + /// Enables detection of prompts (e.g., beep after after a voicemail greeting) + /// + public readonly bool? AwaitAnswerMachinePrompt; + /// + /// Flag to decided whether outbound calls should have answering machine detection enabled or not + /// + public readonly bool EnableAnswerMachineDetection; + + [OutputConstructor] + private CampaignAnswerMachineDetectionConfig( + bool? awaitAnswerMachinePrompt, + + bool enableAnswerMachineDetection) + { + AwaitAnswerMachinePrompt = awaitAnswerMachinePrompt; + EnableAnswerMachineDetection = enableAnswerMachineDetection; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignChannelSubtypeConfig.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignChannelSubtypeConfig.cs new file mode 100644 index 0000000000..181bcb5254 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignChannelSubtypeConfig.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// The possible types of channel subtype config parameters + /// + [OutputType] + public sealed class CampaignChannelSubtypeConfig + { + public readonly Outputs.CampaignEmailChannelSubtypeConfig? Email; + public readonly Outputs.CampaignSmsChannelSubtypeConfig? Sms; + public readonly Outputs.CampaignTelephonyChannelSubtypeConfig? Telephony; + + [OutputConstructor] + private CampaignChannelSubtypeConfig( + Outputs.CampaignEmailChannelSubtypeConfig? email, + + Outputs.CampaignSmsChannelSubtypeConfig? sms, + + Outputs.CampaignTelephonyChannelSubtypeConfig? telephony) + { + Email = email; + Sms = sms; + Telephony = telephony; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignCommunicationLimit.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignCommunicationLimit.cs new file mode 100644 index 0000000000..23bffaf5f0 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignCommunicationLimit.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// Communication Limit + /// + [OutputType] + public sealed class CampaignCommunicationLimit + { + public readonly int Frequency; + public readonly int MaxCountPerRecipient; + public readonly Pulumi.AwsNative.ConnectCampaignsV2.CampaignCommunicationLimitTimeUnit Unit; + + [OutputConstructor] + private CampaignCommunicationLimit( + int frequency, + + int maxCountPerRecipient, + + Pulumi.AwsNative.ConnectCampaignsV2.CampaignCommunicationLimitTimeUnit unit) + { + Frequency = frequency; + MaxCountPerRecipient = maxCountPerRecipient; + Unit = unit; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignCommunicationLimits.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignCommunicationLimits.cs new file mode 100644 index 0000000000..3d77e871a6 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignCommunicationLimits.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// Communication limits + /// + [OutputType] + public sealed class CampaignCommunicationLimits + { + public readonly ImmutableArray CommunicationLimitList; + + [OutputConstructor] + private CampaignCommunicationLimits(ImmutableArray communicationLimitList) + { + CommunicationLimitList = communicationLimitList; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignCommunicationLimitsConfig.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignCommunicationLimitsConfig.cs new file mode 100644 index 0000000000..5982cf566a --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignCommunicationLimitsConfig.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// Communication limits config + /// + [OutputType] + public sealed class CampaignCommunicationLimitsConfig + { + public readonly Outputs.CampaignCommunicationLimits? AllChannelsSubtypes; + + [OutputConstructor] + private CampaignCommunicationLimitsConfig(Outputs.CampaignCommunicationLimits? allChannelsSubtypes) + { + AllChannelsSubtypes = allChannelsSubtypes; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignCommunicationTimeConfig.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignCommunicationTimeConfig.cs new file mode 100644 index 0000000000..79e3aefe6d --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignCommunicationTimeConfig.cs @@ -0,0 +1,40 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// Campaign communication time config + /// + [OutputType] + public sealed class CampaignCommunicationTimeConfig + { + public readonly Outputs.CampaignTimeWindow? Email; + public readonly Outputs.CampaignLocalTimeZoneConfig LocalTimeZoneConfig; + public readonly Outputs.CampaignTimeWindow? Sms; + public readonly Outputs.CampaignTimeWindow? Telephony; + + [OutputConstructor] + private CampaignCommunicationTimeConfig( + Outputs.CampaignTimeWindow? email, + + Outputs.CampaignLocalTimeZoneConfig localTimeZoneConfig, + + Outputs.CampaignTimeWindow? sms, + + Outputs.CampaignTimeWindow? telephony) + { + Email = email; + LocalTimeZoneConfig = localTimeZoneConfig; + Sms = sms; + Telephony = telephony; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignDailyHour.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignDailyHour.cs new file mode 100644 index 0000000000..bde8254592 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignDailyHour.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// Daily Hour + /// + [OutputType] + public sealed class CampaignDailyHour + { + public readonly Pulumi.AwsNative.ConnectCampaignsV2.CampaignDayOfWeek? Key; + public readonly ImmutableArray Value; + + [OutputConstructor] + private CampaignDailyHour( + Pulumi.AwsNative.ConnectCampaignsV2.CampaignDayOfWeek? key, + + ImmutableArray value) + { + Key = key; + Value = value; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignEmailChannelSubtypeConfig.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignEmailChannelSubtypeConfig.cs new file mode 100644 index 0000000000..1c0850a9a9 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignEmailChannelSubtypeConfig.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// Email Channel Subtype config + /// + [OutputType] + public sealed class CampaignEmailChannelSubtypeConfig + { + public readonly double? Capacity; + public readonly Outputs.CampaignEmailOutboundConfig DefaultOutboundConfig; + public readonly Outputs.CampaignEmailOutboundMode OutboundMode; + + [OutputConstructor] + private CampaignEmailChannelSubtypeConfig( + double? capacity, + + Outputs.CampaignEmailOutboundConfig defaultOutboundConfig, + + Outputs.CampaignEmailOutboundMode outboundMode) + { + Capacity = capacity; + DefaultOutboundConfig = defaultOutboundConfig; + OutboundMode = outboundMode; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignEmailOutboundConfig.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignEmailOutboundConfig.cs new file mode 100644 index 0000000000..77175b0c65 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignEmailOutboundConfig.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// Default SMS outbound config + /// + [OutputType] + public sealed class CampaignEmailOutboundConfig + { + public readonly string ConnectSourceEmailAddress; + public readonly string? SourceEmailAddressDisplayName; + public readonly string WisdomTemplateArn; + + [OutputConstructor] + private CampaignEmailOutboundConfig( + string connectSourceEmailAddress, + + string? sourceEmailAddressDisplayName, + + string wisdomTemplateArn) + { + ConnectSourceEmailAddress = connectSourceEmailAddress; + SourceEmailAddressDisplayName = sourceEmailAddressDisplayName; + WisdomTemplateArn = wisdomTemplateArn; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignEmailOutboundMode.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignEmailOutboundMode.cs new file mode 100644 index 0000000000..8f43c9b883 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignEmailOutboundMode.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// Email Outbound Mode + /// + [OutputType] + public sealed class CampaignEmailOutboundMode + { + public readonly Outputs.CampaignAgentlessConfig? AgentlessConfig; + + [OutputConstructor] + private CampaignEmailOutboundMode(Outputs.CampaignAgentlessConfig? agentlessConfig) + { + AgentlessConfig = agentlessConfig; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignLocalTimeZoneConfig.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignLocalTimeZoneConfig.cs new file mode 100644 index 0000000000..27f5747f07 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignLocalTimeZoneConfig.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// Local time zone config + /// + [OutputType] + public sealed class CampaignLocalTimeZoneConfig + { + public readonly string? DefaultTimeZone; + public readonly ImmutableArray LocalTimeZoneDetection; + + [OutputConstructor] + private CampaignLocalTimeZoneConfig( + string? defaultTimeZone, + + ImmutableArray localTimeZoneDetection) + { + DefaultTimeZone = defaultTimeZone; + LocalTimeZoneDetection = localTimeZoneDetection; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignOpenHours.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignOpenHours.cs new file mode 100644 index 0000000000..328c449ec1 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignOpenHours.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// Open Hours config + /// + [OutputType] + public sealed class CampaignOpenHours + { + public readonly ImmutableArray DailyHours; + + [OutputConstructor] + private CampaignOpenHours(ImmutableArray dailyHours) + { + DailyHours = dailyHours; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignPredictiveConfig.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignPredictiveConfig.cs new file mode 100644 index 0000000000..8cb1c93277 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignPredictiveConfig.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// Predictive config + /// + [OutputType] + public sealed class CampaignPredictiveConfig + { + public readonly double BandwidthAllocation; + + [OutputConstructor] + private CampaignPredictiveConfig(double bandwidthAllocation) + { + BandwidthAllocation = bandwidthAllocation; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignProgressiveConfig.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignProgressiveConfig.cs new file mode 100644 index 0000000000..f48541b48a --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignProgressiveConfig.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// Progressive config + /// + [OutputType] + public sealed class CampaignProgressiveConfig + { + public readonly double BandwidthAllocation; + + [OutputConstructor] + private CampaignProgressiveConfig(double bandwidthAllocation) + { + BandwidthAllocation = bandwidthAllocation; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignRestrictedPeriod.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignRestrictedPeriod.cs new file mode 100644 index 0000000000..a39d49e845 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignRestrictedPeriod.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// Restricted period + /// + [OutputType] + public sealed class CampaignRestrictedPeriod + { + public readonly string EndDate; + /// + /// The name of a restricted period + /// + public readonly string? Name; + public readonly string StartDate; + + [OutputConstructor] + private CampaignRestrictedPeriod( + string endDate, + + string? name, + + string startDate) + { + EndDate = endDate; + Name = name; + StartDate = startDate; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignRestrictedPeriods.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignRestrictedPeriods.cs new file mode 100644 index 0000000000..20409280f9 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignRestrictedPeriods.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// Restricted period config + /// + [OutputType] + public sealed class CampaignRestrictedPeriods + { + public readonly ImmutableArray RestrictedPeriodList; + + [OutputConstructor] + private CampaignRestrictedPeriods(ImmutableArray restrictedPeriodList) + { + RestrictedPeriodList = restrictedPeriodList; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignSchedule.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignSchedule.cs new file mode 100644 index 0000000000..a8bb755ea7 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignSchedule.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// Campaign schedule + /// + [OutputType] + public sealed class CampaignSchedule + { + public readonly string EndTime; + public readonly string? RefreshFrequency; + public readonly string StartTime; + + [OutputConstructor] + private CampaignSchedule( + string endTime, + + string? refreshFrequency, + + string startTime) + { + EndTime = endTime; + RefreshFrequency = refreshFrequency; + StartTime = startTime; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignSmsChannelSubtypeConfig.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignSmsChannelSubtypeConfig.cs new file mode 100644 index 0000000000..5552e62640 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignSmsChannelSubtypeConfig.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// SMS Channel Subtype config + /// + [OutputType] + public sealed class CampaignSmsChannelSubtypeConfig + { + public readonly double? Capacity; + public readonly Outputs.CampaignSmsOutboundConfig DefaultOutboundConfig; + public readonly Outputs.CampaignSmsOutboundMode OutboundMode; + + [OutputConstructor] + private CampaignSmsChannelSubtypeConfig( + double? capacity, + + Outputs.CampaignSmsOutboundConfig defaultOutboundConfig, + + Outputs.CampaignSmsOutboundMode outboundMode) + { + Capacity = capacity; + DefaultOutboundConfig = defaultOutboundConfig; + OutboundMode = outboundMode; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignSmsOutboundConfig.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignSmsOutboundConfig.cs new file mode 100644 index 0000000000..dae0603a1d --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignSmsOutboundConfig.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// Default SMS outbound config + /// + [OutputType] + public sealed class CampaignSmsOutboundConfig + { + public readonly string ConnectSourcePhoneNumberArn; + public readonly string WisdomTemplateArn; + + [OutputConstructor] + private CampaignSmsOutboundConfig( + string connectSourcePhoneNumberArn, + + string wisdomTemplateArn) + { + ConnectSourcePhoneNumberArn = connectSourcePhoneNumberArn; + WisdomTemplateArn = wisdomTemplateArn; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignSmsOutboundMode.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignSmsOutboundMode.cs new file mode 100644 index 0000000000..3710b48208 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignSmsOutboundMode.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// SMS Outbound Mode + /// + [OutputType] + public sealed class CampaignSmsOutboundMode + { + public readonly Outputs.CampaignAgentlessConfig? AgentlessConfig; + + [OutputConstructor] + private CampaignSmsOutboundMode(Outputs.CampaignAgentlessConfig? agentlessConfig) + { + AgentlessConfig = agentlessConfig; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignSource.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignSource.cs new file mode 100644 index 0000000000..e3aaa94317 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignSource.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// The possible types of channel config parameters + /// + [OutputType] + public sealed class CampaignSource + { + public readonly string? CustomerProfilesSegmentArn; + + [OutputConstructor] + private CampaignSource(string? customerProfilesSegmentArn) + { + CustomerProfilesSegmentArn = customerProfilesSegmentArn; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignTelephonyChannelSubtypeConfig.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignTelephonyChannelSubtypeConfig.cs new file mode 100644 index 0000000000..997caca109 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignTelephonyChannelSubtypeConfig.cs @@ -0,0 +1,40 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// Telephony Channel Subtype config + /// + [OutputType] + public sealed class CampaignTelephonyChannelSubtypeConfig + { + public readonly double? Capacity; + public readonly string? ConnectQueueId; + public readonly Outputs.CampaignTelephonyOutboundConfig DefaultOutboundConfig; + public readonly Outputs.CampaignTelephonyOutboundMode OutboundMode; + + [OutputConstructor] + private CampaignTelephonyChannelSubtypeConfig( + double? capacity, + + string? connectQueueId, + + Outputs.CampaignTelephonyOutboundConfig defaultOutboundConfig, + + Outputs.CampaignTelephonyOutboundMode outboundMode) + { + Capacity = capacity; + ConnectQueueId = connectQueueId; + DefaultOutboundConfig = defaultOutboundConfig; + OutboundMode = outboundMode; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignTelephonyOutboundConfig.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignTelephonyOutboundConfig.cs new file mode 100644 index 0000000000..899e1841cb --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignTelephonyOutboundConfig.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// Default Telephone Outbound config + /// + [OutputType] + public sealed class CampaignTelephonyOutboundConfig + { + public readonly Outputs.CampaignAnswerMachineDetectionConfig? AnswerMachineDetectionConfig; + public readonly string ConnectContactFlowId; + public readonly string? ConnectSourcePhoneNumber; + + [OutputConstructor] + private CampaignTelephonyOutboundConfig( + Outputs.CampaignAnswerMachineDetectionConfig? answerMachineDetectionConfig, + + string connectContactFlowId, + + string? connectSourcePhoneNumber) + { + AnswerMachineDetectionConfig = answerMachineDetectionConfig; + ConnectContactFlowId = connectContactFlowId; + ConnectSourcePhoneNumber = connectSourcePhoneNumber; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignTelephonyOutboundMode.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignTelephonyOutboundMode.cs new file mode 100644 index 0000000000..ec1b0b782b --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignTelephonyOutboundMode.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// Telephony Outbound Mode + /// + [OutputType] + public sealed class CampaignTelephonyOutboundMode + { + public readonly Outputs.CampaignAgentlessConfig? AgentlessConfig; + public readonly Outputs.CampaignPredictiveConfig? PredictiveConfig; + public readonly Outputs.CampaignProgressiveConfig? ProgressiveConfig; + + [OutputConstructor] + private CampaignTelephonyOutboundMode( + Outputs.CampaignAgentlessConfig? agentlessConfig, + + Outputs.CampaignPredictiveConfig? predictiveConfig, + + Outputs.CampaignProgressiveConfig? progressiveConfig) + { + AgentlessConfig = agentlessConfig; + PredictiveConfig = predictiveConfig; + ProgressiveConfig = progressiveConfig; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignTimeRange.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignTimeRange.cs new file mode 100644 index 0000000000..c9bf65589a --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignTimeRange.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// Time range in 24 hour format + /// + [OutputType] + public sealed class CampaignTimeRange + { + public readonly string EndTime; + public readonly string StartTime; + + [OutputConstructor] + private CampaignTimeRange( + string endTime, + + string startTime) + { + EndTime = endTime; + StartTime = startTime; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignTimeWindow.cs b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignTimeWindow.cs new file mode 100644 index 0000000000..81e26f718a --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/Outputs/CampaignTimeWindow.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.ConnectCampaignsV2.Outputs +{ + + /// + /// Time window config + /// + [OutputType] + public sealed class CampaignTimeWindow + { + public readonly Outputs.CampaignOpenHours OpenHours; + public readonly Outputs.CampaignRestrictedPeriods? RestrictedPeriods; + + [OutputConstructor] + private CampaignTimeWindow( + Outputs.CampaignOpenHours openHours, + + Outputs.CampaignRestrictedPeriods? restrictedPeriods) + { + OpenHours = openHours; + RestrictedPeriods = restrictedPeriods; + } + } +} diff --git a/sdk/dotnet/ConnectCampaignsV2/README.md b/sdk/dotnet/ConnectCampaignsV2/README.md new file mode 100644 index 0000000000..77b2f47ec2 --- /dev/null +++ b/sdk/dotnet/ConnectCampaignsV2/README.md @@ -0,0 +1 @@ +A native Pulumi package for creating and managing Amazon Web Services (AWS) resources. diff --git a/sdk/dotnet/DynamoDb/GetGlobalTable.cs b/sdk/dotnet/DynamoDb/GetGlobalTable.cs index 9eb1e3e556..0097d95647 100644 --- a/sdk/dotnet/DynamoDb/GetGlobalTable.cs +++ b/sdk/dotnet/DynamoDb/GetGlobalTable.cs @@ -116,8 +116,9 @@ public sealed class GetGlobalTableResult /// Specifies the time to live (TTL) settings for the table. This setting will be applied to all replicas. /// public readonly Outputs.GlobalTableTimeToLiveSpecification? TimeToLiveSpecification; + public readonly Outputs.GlobalTableWarmThroughput? WarmThroughput; /// - /// Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + /// Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . /// public readonly Outputs.GlobalTableWriteOnDemandThroughputSettings? WriteOnDemandThroughputSettings; /// @@ -147,6 +148,8 @@ private GetGlobalTableResult( Outputs.GlobalTableTimeToLiveSpecification? timeToLiveSpecification, + Outputs.GlobalTableWarmThroughput? warmThroughput, + Outputs.GlobalTableWriteOnDemandThroughputSettings? writeOnDemandThroughputSettings, Outputs.GlobalTableWriteProvisionedThroughputSettings? writeProvisionedThroughputSettings) @@ -161,6 +164,7 @@ private GetGlobalTableResult( StreamSpecification = streamSpecification; TableId = tableId; TimeToLiveSpecification = timeToLiveSpecification; + WarmThroughput = warmThroughput; WriteOnDemandThroughputSettings = writeOnDemandThroughputSettings; WriteProvisionedThroughputSettings = writeProvisionedThroughputSettings; } diff --git a/sdk/dotnet/DynamoDb/GetTable.cs b/sdk/dotnet/DynamoDb/GetTable.cs index cb7a18b8ab..b2081ff1b3 100644 --- a/sdk/dotnet/DynamoDb/GetTable.cs +++ b/sdk/dotnet/DynamoDb/GetTable.cs @@ -16,7 +16,7 @@ public static class GetTable /// You should be aware of the following behaviors when working with DDB tables: /// + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). /// - /// Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. + /// Our guidance is to use the latest schema documented for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. /// public static Task InvokeAsync(GetTableArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:dynamodb:getTable", args ?? new GetTableArgs(), options.WithDefaults()); @@ -26,7 +26,7 @@ public static Task InvokeAsync(GetTableArgs args, InvokeOptions? /// You should be aware of the following behaviors when working with DDB tables: /// + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). /// - /// Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. + /// Our guidance is to use the latest schema documented for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. /// public static Output Invoke(GetTableInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("aws-native:dynamodb:getTable", args ?? new GetTableInvokeArgs(), options.WithDefaults()); @@ -161,6 +161,7 @@ public sealed class GetTableResult /// For detailed information about the limits in DynamoDB, see [Limits in Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the Amazon DynamoDB Developer Guide. /// public readonly Outputs.TableTimeToLiveSpecification? TimeToLiveSpecification; + public readonly Outputs.TableWarmThroughput? WarmThroughput; [OutputConstructor] private GetTableResult( @@ -200,7 +201,9 @@ private GetTableResult( ImmutableArray tags, - Outputs.TableTimeToLiveSpecification? timeToLiveSpecification) + Outputs.TableTimeToLiveSpecification? timeToLiveSpecification, + + Outputs.TableWarmThroughput? warmThroughput) { Arn = arn; AttributeDefinitions = attributeDefinitions; @@ -221,6 +224,7 @@ private GetTableResult( TableClass = tableClass; Tags = tags; TimeToLiveSpecification = timeToLiveSpecification; + WarmThroughput = warmThroughput; } } } diff --git a/sdk/dotnet/DynamoDb/GlobalTable.cs b/sdk/dotnet/DynamoDb/GlobalTable.cs index dbeaff8298..d812deb850 100644 --- a/sdk/dotnet/DynamoDb/GlobalTable.cs +++ b/sdk/dotnet/DynamoDb/GlobalTable.cs @@ -110,8 +110,11 @@ public partial class GlobalTable : global::Pulumi.CustomResource [Output("timeToLiveSpecification")] public Output TimeToLiveSpecification { get; private set; } = null!; + [Output("warmThroughput")] + public Output WarmThroughput { get; private set; } = null!; + /// - /// Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + /// Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . /// [Output("writeOnDemandThroughputSettings")] public Output WriteOnDemandThroughputSettings { get; private set; } = null!; @@ -278,8 +281,11 @@ public InputList Replicas [Input("timeToLiveSpecification")] public Input? TimeToLiveSpecification { get; set; } + [Input("warmThroughput")] + public Input? WarmThroughput { get; set; } + /// - /// Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + /// Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . /// [Input("writeOnDemandThroughputSettings")] public Input? WriteOnDemandThroughputSettings { get; set; } diff --git a/sdk/dotnet/DynamoDb/Inputs/GlobalTableGlobalSecondaryIndexArgs.cs b/sdk/dotnet/DynamoDb/Inputs/GlobalTableGlobalSecondaryIndexArgs.cs index b490207bd9..7d76037082 100644 --- a/sdk/dotnet/DynamoDb/Inputs/GlobalTableGlobalSecondaryIndexArgs.cs +++ b/sdk/dotnet/DynamoDb/Inputs/GlobalTableGlobalSecondaryIndexArgs.cs @@ -43,8 +43,11 @@ public InputList KeySchema [Input("projection", required: true)] public Input Projection { get; set; } = null!; + [Input("warmThroughput")] + public Input? WarmThroughput { get; set; } + /// - /// Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + /// Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . /// [Input("writeOnDemandThroughputSettings")] public Input? WriteOnDemandThroughputSettings { get; set; } diff --git a/sdk/dotnet/DynamoDb/Inputs/GlobalTableReplicaGlobalSecondaryIndexSpecificationArgs.cs b/sdk/dotnet/DynamoDb/Inputs/GlobalTableReplicaGlobalSecondaryIndexSpecificationArgs.cs index 0761b66a9b..6437a89ac7 100644 --- a/sdk/dotnet/DynamoDb/Inputs/GlobalTableReplicaGlobalSecondaryIndexSpecificationArgs.cs +++ b/sdk/dotnet/DynamoDb/Inputs/GlobalTableReplicaGlobalSecondaryIndexSpecificationArgs.cs @@ -25,7 +25,7 @@ public sealed class GlobalTableReplicaGlobalSecondaryIndexSpecificationArgs : gl public Input IndexName { get; set; } = null!; /// - /// Sets the read request settings for a replica global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + /// Sets the read request settings for a replica global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . /// [Input("readOnDemandThroughputSettings")] public Input? ReadOnDemandThroughputSettings { get; set; } diff --git a/sdk/dotnet/DynamoDb/Inputs/GlobalTableWarmThroughputArgs.cs b/sdk/dotnet/DynamoDb/Inputs/GlobalTableWarmThroughputArgs.cs new file mode 100644 index 0000000000..2e44303515 --- /dev/null +++ b/sdk/dotnet/DynamoDb/Inputs/GlobalTableWarmThroughputArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.DynamoDb.Inputs +{ + + public sealed class GlobalTableWarmThroughputArgs : global::Pulumi.ResourceArgs + { + [Input("readUnitsPerSecond")] + public Input? ReadUnitsPerSecond { get; set; } + + [Input("writeUnitsPerSecond")] + public Input? WriteUnitsPerSecond { get; set; } + + public GlobalTableWarmThroughputArgs() + { + } + public static new GlobalTableWarmThroughputArgs Empty => new GlobalTableWarmThroughputArgs(); + } +} diff --git a/sdk/dotnet/DynamoDb/Inputs/TableGlobalSecondaryIndexArgs.cs b/sdk/dotnet/DynamoDb/Inputs/TableGlobalSecondaryIndexArgs.cs index 4ba5f4b75a..b26902554d 100644 --- a/sdk/dotnet/DynamoDb/Inputs/TableGlobalSecondaryIndexArgs.cs +++ b/sdk/dotnet/DynamoDb/Inputs/TableGlobalSecondaryIndexArgs.cs @@ -63,6 +63,9 @@ public InputList KeySchema [Input("provisionedThroughput")] public Input? ProvisionedThroughput { get; set; } + [Input("warmThroughput")] + public Input? WarmThroughput { get; set; } + public TableGlobalSecondaryIndexArgs() { } diff --git a/sdk/dotnet/DynamoDb/Inputs/TableWarmThroughputArgs.cs b/sdk/dotnet/DynamoDb/Inputs/TableWarmThroughputArgs.cs new file mode 100644 index 0000000000..61510352f3 --- /dev/null +++ b/sdk/dotnet/DynamoDb/Inputs/TableWarmThroughputArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.DynamoDb.Inputs +{ + + public sealed class TableWarmThroughputArgs : global::Pulumi.ResourceArgs + { + [Input("readUnitsPerSecond")] + public Input? ReadUnitsPerSecond { get; set; } + + [Input("writeUnitsPerSecond")] + public Input? WriteUnitsPerSecond { get; set; } + + public TableWarmThroughputArgs() + { + } + public static new TableWarmThroughputArgs Empty => new TableWarmThroughputArgs(); + } +} diff --git a/sdk/dotnet/DynamoDb/Outputs/GlobalTableGlobalSecondaryIndex.cs b/sdk/dotnet/DynamoDb/Outputs/GlobalTableGlobalSecondaryIndex.cs index fb4b6436f6..32f7e52ef9 100644 --- a/sdk/dotnet/DynamoDb/Outputs/GlobalTableGlobalSecondaryIndex.cs +++ b/sdk/dotnet/DynamoDb/Outputs/GlobalTableGlobalSecondaryIndex.cs @@ -32,8 +32,9 @@ public sealed class GlobalTableGlobalSecondaryIndex /// Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. /// public readonly Outputs.GlobalTableProjection Projection; + public readonly Outputs.GlobalTableWarmThroughput? WarmThroughput; /// - /// Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + /// Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . /// public readonly Outputs.GlobalTableWriteOnDemandThroughputSettings? WriteOnDemandThroughputSettings; /// @@ -49,6 +50,8 @@ private GlobalTableGlobalSecondaryIndex( Outputs.GlobalTableProjection projection, + Outputs.GlobalTableWarmThroughput? warmThroughput, + Outputs.GlobalTableWriteOnDemandThroughputSettings? writeOnDemandThroughputSettings, Outputs.GlobalTableWriteProvisionedThroughputSettings? writeProvisionedThroughputSettings) @@ -56,6 +59,7 @@ private GlobalTableGlobalSecondaryIndex( IndexName = indexName; KeySchema = keySchema; Projection = projection; + WarmThroughput = warmThroughput; WriteOnDemandThroughputSettings = writeOnDemandThroughputSettings; WriteProvisionedThroughputSettings = writeProvisionedThroughputSettings; } diff --git a/sdk/dotnet/DynamoDb/Outputs/GlobalTableReplicaGlobalSecondaryIndexSpecification.cs b/sdk/dotnet/DynamoDb/Outputs/GlobalTableReplicaGlobalSecondaryIndexSpecification.cs index 837fee132d..16e94a728f 100644 --- a/sdk/dotnet/DynamoDb/Outputs/GlobalTableReplicaGlobalSecondaryIndexSpecification.cs +++ b/sdk/dotnet/DynamoDb/Outputs/GlobalTableReplicaGlobalSecondaryIndexSpecification.cs @@ -22,7 +22,7 @@ public sealed class GlobalTableReplicaGlobalSecondaryIndexSpecification /// public readonly string IndexName; /// - /// Sets the read request settings for a replica global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + /// Sets the read request settings for a replica global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . /// public readonly Outputs.GlobalTableReadOnDemandThroughputSettings? ReadOnDemandThroughputSettings; /// diff --git a/sdk/dotnet/DynamoDb/Outputs/GlobalTableWarmThroughput.cs b/sdk/dotnet/DynamoDb/Outputs/GlobalTableWarmThroughput.cs new file mode 100644 index 0000000000..8bd33a1fd7 --- /dev/null +++ b/sdk/dotnet/DynamoDb/Outputs/GlobalTableWarmThroughput.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.DynamoDb.Outputs +{ + + [OutputType] + public sealed class GlobalTableWarmThroughput + { + public readonly int? ReadUnitsPerSecond; + public readonly int? WriteUnitsPerSecond; + + [OutputConstructor] + private GlobalTableWarmThroughput( + int? readUnitsPerSecond, + + int? writeUnitsPerSecond) + { + ReadUnitsPerSecond = readUnitsPerSecond; + WriteUnitsPerSecond = writeUnitsPerSecond; + } + } +} diff --git a/sdk/dotnet/DynamoDb/Outputs/TableGlobalSecondaryIndex.cs b/sdk/dotnet/DynamoDb/Outputs/TableGlobalSecondaryIndex.cs index 7ce0fa2163..cfe5d37510 100644 --- a/sdk/dotnet/DynamoDb/Outputs/TableGlobalSecondaryIndex.cs +++ b/sdk/dotnet/DynamoDb/Outputs/TableGlobalSecondaryIndex.cs @@ -46,6 +46,7 @@ public sealed class TableGlobalSecondaryIndex /// For current minimum and maximum provisioned throughput values, see [Service, Account, and Table Quotas](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the *Amazon DynamoDB Developer Guide*. /// public readonly Outputs.TableProvisionedThroughput? ProvisionedThroughput; + public readonly Outputs.TableWarmThroughput? WarmThroughput; [OutputConstructor] private TableGlobalSecondaryIndex( @@ -59,7 +60,9 @@ private TableGlobalSecondaryIndex( Outputs.TableProjection projection, - Outputs.TableProvisionedThroughput? provisionedThroughput) + Outputs.TableProvisionedThroughput? provisionedThroughput, + + Outputs.TableWarmThroughput? warmThroughput) { ContributorInsightsSpecification = contributorInsightsSpecification; IndexName = indexName; @@ -67,6 +70,7 @@ private TableGlobalSecondaryIndex( OnDemandThroughput = onDemandThroughput; Projection = projection; ProvisionedThroughput = provisionedThroughput; + WarmThroughput = warmThroughput; } } } diff --git a/sdk/dotnet/DynamoDb/Outputs/TableWarmThroughput.cs b/sdk/dotnet/DynamoDb/Outputs/TableWarmThroughput.cs new file mode 100644 index 0000000000..5efdc76b55 --- /dev/null +++ b/sdk/dotnet/DynamoDb/Outputs/TableWarmThroughput.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.DynamoDb.Outputs +{ + + [OutputType] + public sealed class TableWarmThroughput + { + public readonly int? ReadUnitsPerSecond; + public readonly int? WriteUnitsPerSecond; + + [OutputConstructor] + private TableWarmThroughput( + int? readUnitsPerSecond, + + int? writeUnitsPerSecond) + { + ReadUnitsPerSecond = readUnitsPerSecond; + WriteUnitsPerSecond = writeUnitsPerSecond; + } + } +} diff --git a/sdk/dotnet/DynamoDb/Table.cs b/sdk/dotnet/DynamoDb/Table.cs index e45d7cf270..44306fe2b0 100644 --- a/sdk/dotnet/DynamoDb/Table.cs +++ b/sdk/dotnet/DynamoDb/Table.cs @@ -14,7 +14,7 @@ namespace Pulumi.AwsNative.DynamoDb /// You should be aware of the following behaviors when working with DDB tables: /// + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). /// - /// Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. + /// Our guidance is to use the latest schema documented for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. /// /// ## Example Usage /// ### Example @@ -473,6 +473,9 @@ public partial class Table : global::Pulumi.CustomResource [Output("timeToLiveSpecification")] public Output TimeToLiveSpecification { get; private set; } = null!; + [Output("warmThroughput")] + public Output WarmThroughput { get; private set; } = null!; + /// /// Create a Table resource with the given unique name, arguments, and options. @@ -679,6 +682,9 @@ public InputList Tags [Input("timeToLiveSpecification")] public Input? TimeToLiveSpecification { get; set; } + [Input("warmThroughput")] + public Input? WarmThroughput { get; set; } + public TableArgs() { } diff --git a/sdk/dotnet/Eks/GetNodegroup.cs b/sdk/dotnet/Eks/GetNodegroup.cs index e988b55c3c..6219ac1977 100644 --- a/sdk/dotnet/Eks/GetNodegroup.cs +++ b/sdk/dotnet/Eks/GetNodegroup.cs @@ -65,6 +65,10 @@ public sealed class GetNodegroupResult /// public readonly Outputs.NodegroupLaunchTemplateSpecification? LaunchTemplate; /// + /// The node auto repair configuration for node group. + /// + public readonly Outputs.NodegroupNodeRepairConfig? NodeRepairConfig; + /// /// The AMI version of the Amazon EKS-optimized AMI to use with your node group. /// public readonly string? ReleaseVersion; @@ -99,6 +103,8 @@ private GetNodegroupResult( Outputs.NodegroupLaunchTemplateSpecification? launchTemplate, + Outputs.NodegroupNodeRepairConfig? nodeRepairConfig, + string? releaseVersion, Outputs.NodegroupScalingConfig? scalingConfig, @@ -115,6 +121,7 @@ private GetNodegroupResult( Id = id; Labels = labels; LaunchTemplate = launchTemplate; + NodeRepairConfig = nodeRepairConfig; ReleaseVersion = releaseVersion; ScalingConfig = scalingConfig; Tags = tags; diff --git a/sdk/dotnet/Eks/Inputs/NodegroupNodeRepairConfigArgs.cs b/sdk/dotnet/Eks/Inputs/NodegroupNodeRepairConfigArgs.cs new file mode 100644 index 0000000000..ee535a361f --- /dev/null +++ b/sdk/dotnet/Eks/Inputs/NodegroupNodeRepairConfigArgs.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.Eks.Inputs +{ + + /// + /// The node auto repair configuration for node group. + /// + public sealed class NodegroupNodeRepairConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Set this value to true to enable node auto repair for the node group. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + public NodegroupNodeRepairConfigArgs() + { + } + public static new NodegroupNodeRepairConfigArgs Empty => new NodegroupNodeRepairConfigArgs(); + } +} diff --git a/sdk/dotnet/Eks/Nodegroup.cs b/sdk/dotnet/Eks/Nodegroup.cs index 97c98de7fd..b0fc352202 100644 --- a/sdk/dotnet/Eks/Nodegroup.cs +++ b/sdk/dotnet/Eks/Nodegroup.cs @@ -144,6 +144,12 @@ public partial class Nodegroup : global::Pulumi.CustomResource [Output("launchTemplate")] public Output LaunchTemplate { get; private set; } = null!; + /// + /// The node auto repair configuration for node group. + /// + [Output("nodeRepairConfig")] + public Output NodeRepairConfig { get; private set; } = null!; + /// /// The Amazon Resource Name (ARN) of the IAM role to associate with your node group. /// @@ -321,6 +327,12 @@ public InputMap Labels [Input("launchTemplate")] public Input? LaunchTemplate { get; set; } + /// + /// The node auto repair configuration for node group. + /// + [Input("nodeRepairConfig")] + public Input? NodeRepairConfig { get; set; } + /// /// The Amazon Resource Name (ARN) of the IAM role to associate with your node group. /// diff --git a/sdk/dotnet/Eks/Outputs/NodegroupNodeRepairConfig.cs b/sdk/dotnet/Eks/Outputs/NodegroupNodeRepairConfig.cs new file mode 100644 index 0000000000..e2ada4a7bb --- /dev/null +++ b/sdk/dotnet/Eks/Outputs/NodegroupNodeRepairConfig.cs @@ -0,0 +1,30 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.Eks.Outputs +{ + + /// + /// The node auto repair configuration for node group. + /// + [OutputType] + public sealed class NodegroupNodeRepairConfig + { + /// + /// Set this value to true to enable node auto repair for the node group. + /// + public readonly bool? Enabled; + + [OutputConstructor] + private NodegroupNodeRepairConfig(bool? enabled) + { + Enabled = enabled; + } + } +} diff --git a/sdk/dotnet/ElastiCache/Enums.cs b/sdk/dotnet/ElastiCache/Enums.cs index 33c61367ba..f32174f9d5 100644 --- a/sdk/dotnet/ElastiCache/Enums.cs +++ b/sdk/dotnet/ElastiCache/Enums.cs @@ -101,7 +101,7 @@ private UserAuthenticationModePropertiesType(string value) } /// - /// Must be redis. + /// The target cache engine for the user. /// [EnumType] public readonly struct UserEngine : IEquatable @@ -114,6 +114,7 @@ private UserEngine(string value) } public static UserEngine Redis { get; } = new UserEngine("redis"); + public static UserEngine Valkey { get; } = new UserEngine("valkey"); public static bool operator ==(UserEngine left, UserEngine right) => left.Equals(right); public static bool operator !=(UserEngine left, UserEngine right) => !left.Equals(right); @@ -131,7 +132,7 @@ private UserEngine(string value) } /// - /// Must be redis. + /// The target cache engine for the user group. /// [EnumType] public readonly struct UserGroupEngine : IEquatable @@ -144,6 +145,7 @@ private UserGroupEngine(string value) } public static UserGroupEngine Redis { get; } = new UserGroupEngine("redis"); + public static UserGroupEngine Valkey { get; } = new UserGroupEngine("valkey"); public static bool operator ==(UserGroupEngine left, UserGroupEngine right) => left.Equals(right); public static bool operator !=(UserGroupEngine left, UserGroupEngine right) => !left.Equals(right); diff --git a/sdk/dotnet/ElastiCache/GetUser.cs b/sdk/dotnet/ElastiCache/GetUser.cs index 72b0cd8355..55e7b603e3 100644 --- a/sdk/dotnet/ElastiCache/GetUser.cs +++ b/sdk/dotnet/ElastiCache/GetUser.cs @@ -62,6 +62,10 @@ public sealed class GetUserResult /// public readonly string? Arn; /// + /// The target cache engine for the user. + /// + public readonly Pulumi.AwsNative.ElastiCache.UserEngine? Engine; + /// /// Indicates the user status. Can be "active", "modifying" or "deleting". /// public readonly string? Status; @@ -74,11 +78,14 @@ public sealed class GetUserResult private GetUserResult( string? arn, + Pulumi.AwsNative.ElastiCache.UserEngine? engine, + string? status, ImmutableArray tags) { Arn = arn; + Engine = engine; Status = status; Tags = tags; } diff --git a/sdk/dotnet/ElastiCache/GetUserGroup.cs b/sdk/dotnet/ElastiCache/GetUserGroup.cs index 04d49ed75d..1af9b0877e 100644 --- a/sdk/dotnet/ElastiCache/GetUserGroup.cs +++ b/sdk/dotnet/ElastiCache/GetUserGroup.cs @@ -62,6 +62,10 @@ public sealed class GetUserGroupResult /// public readonly string? Arn; /// + /// The target cache engine for the user group. + /// + public readonly Pulumi.AwsNative.ElastiCache.UserGroupEngine? Engine; + /// /// Indicates user group status. Can be "creating", "active", "modifying", "deleting". /// public readonly string? Status; @@ -78,6 +82,8 @@ public sealed class GetUserGroupResult private GetUserGroupResult( string? arn, + Pulumi.AwsNative.ElastiCache.UserGroupEngine? engine, + string? status, ImmutableArray tags, @@ -85,6 +91,7 @@ private GetUserGroupResult( ImmutableArray userIds) { Arn = arn; + Engine = engine; Status = status; Tags = tags; UserIds = userIds; diff --git a/sdk/dotnet/ElastiCache/User.cs b/sdk/dotnet/ElastiCache/User.cs index 03a37a8c4d..506f82c725 100644 --- a/sdk/dotnet/ElastiCache/User.cs +++ b/sdk/dotnet/ElastiCache/User.cs @@ -39,7 +39,7 @@ public partial class User : global::Pulumi.CustomResource public Output AuthenticationMode { get; private set; } = null!; /// - /// Must be redis. + /// The target cache engine for the user. /// [Output("engine")] public Output Engine { get; private set; } = null!; @@ -105,7 +105,6 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? Version = Utilities.Version, ReplaceOnChanges = { - "engine", "userId", "userName", }, @@ -149,7 +148,7 @@ public sealed class UserArgs : global::Pulumi.ResourceArgs public Input? AuthenticationMode { get; set; } /// - /// Must be redis. + /// The target cache engine for the user. /// [Input("engine", required: true)] public Input Engine { get; set; } = null!; diff --git a/sdk/dotnet/ElastiCache/UserGroup.cs b/sdk/dotnet/ElastiCache/UserGroup.cs index ac9152500b..0661c7f849 100644 --- a/sdk/dotnet/ElastiCache/UserGroup.cs +++ b/sdk/dotnet/ElastiCache/UserGroup.cs @@ -22,7 +22,7 @@ public partial class UserGroup : global::Pulumi.CustomResource public Output Arn { get; private set; } = null!; /// - /// Must be redis. + /// The target cache engine for the user group. /// [Output("engine")] public Output Engine { get; private set; } = null!; @@ -76,7 +76,6 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? Version = Utilities.Version, ReplaceOnChanges = { - "engine", "userGroupId", }, }; @@ -102,7 +101,7 @@ public static UserGroup Get(string name, Input id, CustomResourceOptions public sealed class UserGroupArgs : global::Pulumi.ResourceArgs { /// - /// Must be redis. + /// The target cache engine for the user group. /// [Input("engine", required: true)] public Input Engine { get; set; } = null!; diff --git a/sdk/dotnet/ElasticLoadBalancingV2/GetLoadBalancer.cs b/sdk/dotnet/ElasticLoadBalancingV2/GetLoadBalancer.cs index de68b32411..9d91574086 100644 --- a/sdk/dotnet/ElasticLoadBalancingV2/GetLoadBalancer.cs +++ b/sdk/dotnet/ElasticLoadBalancingV2/GetLoadBalancer.cs @@ -65,6 +65,9 @@ public sealed class GetLoadBalancerResult /// The DNS name for the load balancer. For example, `my-load-balancer-424835706.us-west-2.elb.amazonaws.com` . /// public readonly string? DnsName; + /// + /// [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . + /// public readonly string? EnablePrefixForIpv6SourceNat; /// /// Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. diff --git a/sdk/dotnet/ElasticLoadBalancingV2/Inputs/LoadBalancerSubnetMappingArgs.cs b/sdk/dotnet/ElasticLoadBalancingV2/Inputs/LoadBalancerSubnetMappingArgs.cs index 66563ca07e..63b1747d52 100644 --- a/sdk/dotnet/ElasticLoadBalancingV2/Inputs/LoadBalancerSubnetMappingArgs.cs +++ b/sdk/dotnet/ElasticLoadBalancingV2/Inputs/LoadBalancerSubnetMappingArgs.cs @@ -33,6 +33,9 @@ public sealed class LoadBalancerSubnetMappingArgs : global::Pulumi.ResourceArgs [Input("privateIPv4Address")] public Input? PrivateIPv4Address { get; set; } + /// + /// [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block. + /// [Input("sourceNatIpv6Prefix")] public Input? SourceNatIpv6Prefix { get; set; } diff --git a/sdk/dotnet/ElasticLoadBalancingV2/LoadBalancer.cs b/sdk/dotnet/ElasticLoadBalancingV2/LoadBalancer.cs index 37118fcea5..c12981247c 100644 --- a/sdk/dotnet/ElasticLoadBalancingV2/LoadBalancer.cs +++ b/sdk/dotnet/ElasticLoadBalancingV2/LoadBalancer.cs @@ -27,6 +27,9 @@ public partial class LoadBalancer : global::Pulumi.CustomResource [Output("dnsName")] public Output DnsName { get; private set; } = null!; + /// + /// [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . + /// [Output("enablePrefixForIpv6SourceNat")] public Output EnablePrefixForIpv6SourceNat { get; private set; } = null!; @@ -177,6 +180,9 @@ public static LoadBalancer Get(string name, Input id, CustomResourceOpti public sealed class LoadBalancerArgs : global::Pulumi.ResourceArgs { + /// + /// [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . + /// [Input("enablePrefixForIpv6SourceNat")] public Input? EnablePrefixForIpv6SourceNat { get; set; } diff --git a/sdk/dotnet/ElasticLoadBalancingV2/Outputs/LoadBalancerSubnetMapping.cs b/sdk/dotnet/ElasticLoadBalancingV2/Outputs/LoadBalancerSubnetMapping.cs index 32550c37f6..10f99be4e9 100644 --- a/sdk/dotnet/ElasticLoadBalancingV2/Outputs/LoadBalancerSubnetMapping.cs +++ b/sdk/dotnet/ElasticLoadBalancingV2/Outputs/LoadBalancerSubnetMapping.cs @@ -28,6 +28,9 @@ public sealed class LoadBalancerSubnetMapping /// [Network Load Balancers] The private IPv4 address for an internal load balancer. /// public readonly string? PrivateIPv4Address; + /// + /// [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block. + /// public readonly string? SourceNatIpv6Prefix; /// /// The ID of the subnet. diff --git a/sdk/dotnet/Events/GetConnection.cs b/sdk/dotnet/Events/GetConnection.cs index 46943990fe..ad2cd86a99 100644 --- a/sdk/dotnet/Events/GetConnection.cs +++ b/sdk/dotnet/Events/GetConnection.cs @@ -62,6 +62,10 @@ public sealed class GetConnectionResult /// public readonly string? Arn; /// + /// A `CreateConnectionAuthRequestParameters` object that contains the authorization parameters to use to authorize with the endpoint. + /// + public readonly Outputs.ConnectionAuthParameters? AuthParameters; + /// /// The type of authorization to use for the connection. /// /// > OAUTH tokens are refreshed when a 401 or 407 response is returned. @@ -80,6 +84,8 @@ public sealed class GetConnectionResult private GetConnectionResult( string? arn, + Outputs.ConnectionAuthParameters? authParameters, + Pulumi.AwsNative.Events.ConnectionAuthorizationType? authorizationType, string? description, @@ -87,6 +93,7 @@ private GetConnectionResult( string? secretArn) { Arn = arn; + AuthParameters = authParameters; AuthorizationType = authorizationType; Description = description; SecretArn = secretArn; diff --git a/sdk/dotnet/Fis/ExperimentTemplate.cs b/sdk/dotnet/Fis/ExperimentTemplate.cs index 80c05981c3..61737c9473 100644 --- a/sdk/dotnet/Fis/ExperimentTemplate.cs +++ b/sdk/dotnet/Fis/ExperimentTemplate.cs @@ -144,6 +144,9 @@ public partial class ExperimentTemplate : global::Pulumi.CustomResource [Output("experimentOptions")] public Output ExperimentOptions { get; private set; } = null!; + /// + /// Describes the report configuration for the experiment template. + /// [Output("experimentReportConfiguration")] public Output ExperimentReportConfiguration { get; private set; } = null!; @@ -251,6 +254,9 @@ public InputMap Actions [Input("experimentOptions")] public Input? ExperimentOptions { get; set; } + /// + /// Describes the report configuration for the experiment template. + /// [Input("experimentReportConfiguration")] public Input? ExperimentReportConfiguration { get; set; } diff --git a/sdk/dotnet/Fis/GetExperimentTemplate.cs b/sdk/dotnet/Fis/GetExperimentTemplate.cs index de747505a3..5543fc9f09 100644 --- a/sdk/dotnet/Fis/GetExperimentTemplate.cs +++ b/sdk/dotnet/Fis/GetExperimentTemplate.cs @@ -69,6 +69,9 @@ public sealed class GetExperimentTemplateResult /// The experiment options for an experiment template. /// public readonly Outputs.ExperimentTemplateExperimentOptions? ExperimentOptions; + /// + /// Describes the report configuration for the experiment template. + /// public readonly Outputs.ExperimentTemplateExperimentReportConfiguration? ExperimentReportConfiguration; /// /// The ID of the experiment template. diff --git a/sdk/dotnet/Fis/Inputs/ExperimentTemplateCloudWatchDashboardArgs.cs b/sdk/dotnet/Fis/Inputs/ExperimentTemplateCloudWatchDashboardArgs.cs index e7db0244e5..8edc5e81fc 100644 --- a/sdk/dotnet/Fis/Inputs/ExperimentTemplateCloudWatchDashboardArgs.cs +++ b/sdk/dotnet/Fis/Inputs/ExperimentTemplateCloudWatchDashboardArgs.cs @@ -12,6 +12,9 @@ namespace Pulumi.AwsNative.Fis.Inputs public sealed class ExperimentTemplateCloudWatchDashboardArgs : global::Pulumi.ResourceArgs { + /// + /// The Amazon Resource Name (ARN) of the CloudWatch dashboard to include in the experiment report. + /// [Input("dashboardIdentifier", required: true)] public Input DashboardIdentifier { get; set; } = null!; diff --git a/sdk/dotnet/Fis/Inputs/ExperimentTemplateExperimentReportConfigurationArgs.cs b/sdk/dotnet/Fis/Inputs/ExperimentTemplateExperimentReportConfigurationArgs.cs index 1f9d52da8f..db7bf0988e 100644 --- a/sdk/dotnet/Fis/Inputs/ExperimentTemplateExperimentReportConfigurationArgs.cs +++ b/sdk/dotnet/Fis/Inputs/ExperimentTemplateExperimentReportConfigurationArgs.cs @@ -12,15 +12,27 @@ namespace Pulumi.AwsNative.Fis.Inputs public sealed class ExperimentTemplateExperimentReportConfigurationArgs : global::Pulumi.ResourceArgs { + /// + /// The data sources for the experiment report. + /// [Input("dataSources", required: true)] public Input DataSources { get; set; } = null!; + /// + /// The output destinations of the experiment report. + /// [Input("outputs", required: true)] public Input Outputs { get; set; } = null!; + /// + /// The duration after the experiment end time for the data sources to include in the report. + /// [Input("postExperimentDuration")] public Input? PostExperimentDuration { get; set; } + /// + /// The duration before the experiment start time for the data sources to include in the report. + /// [Input("preExperimentDuration")] public Input? PreExperimentDuration { get; set; } diff --git a/sdk/dotnet/Fis/Inputs/ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesArgs.cs b/sdk/dotnet/Fis/Inputs/ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesArgs.cs index c26f992ef6..31adf2cbd7 100644 --- a/sdk/dotnet/Fis/Inputs/ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesArgs.cs +++ b/sdk/dotnet/Fis/Inputs/ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesArgs.cs @@ -10,6 +10,9 @@ namespace Pulumi.AwsNative.Fis.Inputs { + /// + /// The data sources for the experiment report. + /// public sealed class ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesArgs : global::Pulumi.ResourceArgs { [Input("cloudWatchDashboards")] diff --git a/sdk/dotnet/Fis/Inputs/ExperimentTemplateExperimentReportConfigurationOutputsPropertiesArgs.cs b/sdk/dotnet/Fis/Inputs/ExperimentTemplateExperimentReportConfigurationOutputsPropertiesArgs.cs index d8d5c585fa..cc2dd6b871 100644 --- a/sdk/dotnet/Fis/Inputs/ExperimentTemplateExperimentReportConfigurationOutputsPropertiesArgs.cs +++ b/sdk/dotnet/Fis/Inputs/ExperimentTemplateExperimentReportConfigurationOutputsPropertiesArgs.cs @@ -10,6 +10,9 @@ namespace Pulumi.AwsNative.Fis.Inputs { + /// + /// The output destinations of the experiment report. + /// public sealed class ExperimentTemplateExperimentReportConfigurationOutputsPropertiesArgs : global::Pulumi.ResourceArgs { [Input("experimentReportS3Configuration", required: true)] diff --git a/sdk/dotnet/Fis/Outputs/ExperimentTemplateCloudWatchDashboard.cs b/sdk/dotnet/Fis/Outputs/ExperimentTemplateCloudWatchDashboard.cs index 329c213049..1ca954af34 100644 --- a/sdk/dotnet/Fis/Outputs/ExperimentTemplateCloudWatchDashboard.cs +++ b/sdk/dotnet/Fis/Outputs/ExperimentTemplateCloudWatchDashboard.cs @@ -13,6 +13,9 @@ namespace Pulumi.AwsNative.Fis.Outputs [OutputType] public sealed class ExperimentTemplateCloudWatchDashboard { + /// + /// The Amazon Resource Name (ARN) of the CloudWatch dashboard to include in the experiment report. + /// public readonly string DashboardIdentifier; [OutputConstructor] diff --git a/sdk/dotnet/Fis/Outputs/ExperimentTemplateExperimentReportConfiguration.cs b/sdk/dotnet/Fis/Outputs/ExperimentTemplateExperimentReportConfiguration.cs index 208719408e..03105860f2 100644 --- a/sdk/dotnet/Fis/Outputs/ExperimentTemplateExperimentReportConfiguration.cs +++ b/sdk/dotnet/Fis/Outputs/ExperimentTemplateExperimentReportConfiguration.cs @@ -13,9 +13,21 @@ namespace Pulumi.AwsNative.Fis.Outputs [OutputType] public sealed class ExperimentTemplateExperimentReportConfiguration { + /// + /// The data sources for the experiment report. + /// public readonly Outputs.ExperimentTemplateExperimentReportConfigurationDataSourcesProperties DataSources; + /// + /// The output destinations of the experiment report. + /// public readonly Outputs.ExperimentTemplateExperimentReportConfigurationOutputsProperties Outputs; + /// + /// The duration after the experiment end time for the data sources to include in the report. + /// public readonly string? PostExperimentDuration; + /// + /// The duration before the experiment start time for the data sources to include in the report. + /// public readonly string? PreExperimentDuration; [OutputConstructor] diff --git a/sdk/dotnet/Fis/Outputs/ExperimentTemplateExperimentReportConfigurationDataSourcesProperties.cs b/sdk/dotnet/Fis/Outputs/ExperimentTemplateExperimentReportConfigurationDataSourcesProperties.cs index 51b253bcfb..b9b3f5be99 100644 --- a/sdk/dotnet/Fis/Outputs/ExperimentTemplateExperimentReportConfigurationDataSourcesProperties.cs +++ b/sdk/dotnet/Fis/Outputs/ExperimentTemplateExperimentReportConfigurationDataSourcesProperties.cs @@ -10,6 +10,9 @@ namespace Pulumi.AwsNative.Fis.Outputs { + /// + /// The data sources for the experiment report. + /// [OutputType] public sealed class ExperimentTemplateExperimentReportConfigurationDataSourcesProperties { diff --git a/sdk/dotnet/Fis/Outputs/ExperimentTemplateExperimentReportConfigurationOutputsProperties.cs b/sdk/dotnet/Fis/Outputs/ExperimentTemplateExperimentReportConfigurationOutputsProperties.cs index ec6119fc3c..d08cd10afd 100644 --- a/sdk/dotnet/Fis/Outputs/ExperimentTemplateExperimentReportConfigurationOutputsProperties.cs +++ b/sdk/dotnet/Fis/Outputs/ExperimentTemplateExperimentReportConfigurationOutputsProperties.cs @@ -10,6 +10,9 @@ namespace Pulumi.AwsNative.Fis.Outputs { + /// + /// The output destinations of the experiment report. + /// [OutputType] public sealed class ExperimentTemplateExperimentReportConfigurationOutputsProperties { diff --git a/sdk/dotnet/Lambda/Permission.cs b/sdk/dotnet/Lambda/Permission.cs index fbe002b319..3f8d0ab20d 100644 --- a/sdk/dotnet/Lambda/Permission.cs +++ b/sdk/dotnet/Lambda/Permission.cs @@ -52,7 +52,7 @@ public partial class Permission : global::Pulumi.CustomResource public Output FunctionUrlAuthType { get; private set; } = null!; /// - /// The AWS-service or AWS-account that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service. + /// The AWS-service, AWS-account, IAM user, or IAM role that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service. /// [Output("principal")] public Output Principal { get; private set; } = null!; @@ -163,7 +163,7 @@ public sealed class PermissionArgs : global::Pulumi.ResourceArgs public Input? FunctionUrlAuthType { get; set; } /// - /// The AWS-service or AWS-account that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service. + /// The AWS-service, AWS-account, IAM user, or IAM role that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service. /// [Input("principal", required: true)] public Input Principal { get; set; } = null!; diff --git a/sdk/dotnet/Redshift/Integration.cs b/sdk/dotnet/Redshift/Integration.cs index 08fa11a373..3d086a28f1 100644 --- a/sdk/dotnet/Redshift/Integration.cs +++ b/sdk/dotnet/Redshift/Integration.cs @@ -46,7 +46,7 @@ public partial class Integration : global::Pulumi.CustomResource public Output KmsKeyId { get; private set; } = null!; /// - /// The Amazon Resource Name (ARN) of the database to use as the source for replication, for example, arn:aws:dynamodb:us-east-2:123412341234:table/dynamotable + /// The Amazon Resource Name (ARN) of the database to use as the source for replication /// [Output("sourceArn")] public Output SourceArn { get; private set; } = null!; @@ -58,7 +58,7 @@ public partial class Integration : global::Pulumi.CustomResource public Output> Tags { get; private set; } = null!; /// - /// The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication, for example, arn:aws:redshift:us-east-2:123412341234:namespace:e43aab3e-10a3-4ec4-83d4-f227ff9bfbcf + /// The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication /// [Output("targetArn")] public Output TargetArn { get; private set; } = null!; @@ -140,7 +140,7 @@ public InputMap AdditionalEncryptionContext public Input? KmsKeyId { get; set; } /// - /// The Amazon Resource Name (ARN) of the database to use as the source for replication, for example, arn:aws:dynamodb:us-east-2:123412341234:table/dynamotable + /// The Amazon Resource Name (ARN) of the database to use as the source for replication /// [Input("sourceArn", required: true)] public Input SourceArn { get; set; } = null!; @@ -158,7 +158,7 @@ public InputList Tags } /// - /// The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication, for example, arn:aws:redshift:us-east-2:123412341234:namespace:e43aab3e-10a3-4ec4-83d4-f227ff9bfbcf + /// The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication /// [Input("targetArn", required: true)] public Input TargetArn { get; set; } = null!; diff --git a/sdk/dotnet/RedshiftServerless/GetWorkgroup.cs b/sdk/dotnet/RedshiftServerless/GetWorkgroup.cs index 4901aac30d..d7bfeae5bb 100644 --- a/sdk/dotnet/RedshiftServerless/GetWorkgroup.cs +++ b/sdk/dotnet/RedshiftServerless/GetWorkgroup.cs @@ -70,6 +70,10 @@ public sealed class GetWorkgroupResult /// public readonly bool? PubliclyAccessible; /// + /// The map of the key-value pairs used to tag the workgroup. + /// + public readonly ImmutableArray Tags; + /// /// Definition for workgroup resource /// public readonly Outputs.Workgroup? WorkgroupValue; @@ -82,11 +86,14 @@ private GetWorkgroupResult( bool? publiclyAccessible, + ImmutableArray tags, + Outputs.Workgroup? workgroup) { EnhancedVpcRouting = enhancedVpcRouting; Port = port; PubliclyAccessible = publiclyAccessible; + Tags = tags; WorkgroupValue = workgroup; } } diff --git a/sdk/dotnet/SageMaker/Cluster.cs b/sdk/dotnet/SageMaker/Cluster.cs index 96efb85cb8..f29ac12647 100644 --- a/sdk/dotnet/SageMaker/Cluster.cs +++ b/sdk/dotnet/SageMaker/Cluster.cs @@ -104,6 +104,7 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? "instanceGroups[*].executionRole", "instanceGroups[*].instanceGroupName", "instanceGroups[*].instanceType", + "instanceGroups[*].overrideVpcConfig", "instanceGroups[*].threadsPerCore", "orchestrator", "vpcConfig", diff --git a/sdk/dotnet/SageMaker/Inputs/ClusterInstanceGroupArgs.cs b/sdk/dotnet/SageMaker/Inputs/ClusterInstanceGroupArgs.cs index 2172c9d236..c578ced779 100644 --- a/sdk/dotnet/SageMaker/Inputs/ClusterInstanceGroupArgs.cs +++ b/sdk/dotnet/SageMaker/Inputs/ClusterInstanceGroupArgs.cs @@ -55,6 +55,9 @@ public InputList OnStartD set => _onStartDeepHealthChecks = value; } + [Input("overrideVpcConfig")] + public Input? OverrideVpcConfig { get; set; } + /// /// The number you specified to TreadsPerCore in CreateCluster for enabling or disabling multithreading. For instance types that support multithreading, you can specify 1 for disabling multithreading and 2 for enabling multithreading. /// diff --git a/sdk/dotnet/SageMaker/Outputs/ClusterInstanceGroup.cs b/sdk/dotnet/SageMaker/Outputs/ClusterInstanceGroup.cs index 8fec74a452..fb1d651ec4 100644 --- a/sdk/dotnet/SageMaker/Outputs/ClusterInstanceGroup.cs +++ b/sdk/dotnet/SageMaker/Outputs/ClusterInstanceGroup.cs @@ -30,6 +30,7 @@ public sealed class ClusterInstanceGroup public readonly string InstanceType; public readonly Outputs.ClusterLifeCycleConfig LifeCycleConfig; public readonly ImmutableArray OnStartDeepHealthChecks; + public readonly Outputs.ClusterVpcConfig? OverrideVpcConfig; /// /// The number you specified to TreadsPerCore in CreateCluster for enabling or disabling multithreading. For instance types that support multithreading, you can specify 1 for disabling multithreading and 2 for enabling multithreading. /// @@ -53,6 +54,8 @@ private ClusterInstanceGroup( ImmutableArray onStartDeepHealthChecks, + Outputs.ClusterVpcConfig? overrideVpcConfig, + int? threadsPerCore) { CurrentCount = currentCount; @@ -63,6 +66,7 @@ private ClusterInstanceGroup( InstanceType = instanceType; LifeCycleConfig = lifeCycleConfig; OnStartDeepHealthChecks = onStartDeepHealthChecks; + OverrideVpcConfig = overrideVpcConfig; ThreadsPerCore = threadsPerCore; } } diff --git a/sdk/dotnet/VpcLattice/AccessLogSubscription.cs b/sdk/dotnet/VpcLattice/AccessLogSubscription.cs index 6e0539d677..2e5788d8a4 100644 --- a/sdk/dotnet/VpcLattice/AccessLogSubscription.cs +++ b/sdk/dotnet/VpcLattice/AccessLogSubscription.cs @@ -51,6 +51,9 @@ public partial class AccessLogSubscription : global::Pulumi.CustomResource [Output("resourceIdentifier")] public Output ResourceIdentifier { get; private set; } = null!; + [Output("serviceNetworkLogType")] + public Output ServiceNetworkLogType { get; private set; } = null!; + /// /// The tags for the access log subscription. /// @@ -118,6 +121,9 @@ public sealed class AccessLogSubscriptionArgs : global::Pulumi.ResourceArgs [Input("resourceIdentifier")] public Input? ResourceIdentifier { get; set; } + [Input("serviceNetworkLogType")] + public Input? ServiceNetworkLogType { get; set; } + [Input("tags")] private InputList? _tags; diff --git a/sdk/dotnet/VpcLattice/Enums.cs b/sdk/dotnet/VpcLattice/Enums.cs index 5507c12b7f..46d496b321 100644 --- a/sdk/dotnet/VpcLattice/Enums.cs +++ b/sdk/dotnet/VpcLattice/Enums.cs @@ -7,6 +7,34 @@ namespace Pulumi.AwsNative.VpcLattice { + [EnumType] + public readonly struct AccessLogSubscriptionServiceNetworkLogType : IEquatable + { + private readonly string _value; + + private AccessLogSubscriptionServiceNetworkLogType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static AccessLogSubscriptionServiceNetworkLogType Service { get; } = new AccessLogSubscriptionServiceNetworkLogType("SERVICE"); + public static AccessLogSubscriptionServiceNetworkLogType Resource { get; } = new AccessLogSubscriptionServiceNetworkLogType("RESOURCE"); + + public static bool operator ==(AccessLogSubscriptionServiceNetworkLogType left, AccessLogSubscriptionServiceNetworkLogType right) => left.Equals(right); + public static bool operator !=(AccessLogSubscriptionServiceNetworkLogType left, AccessLogSubscriptionServiceNetworkLogType right) => !left.Equals(right); + + public static explicit operator string(AccessLogSubscriptionServiceNetworkLogType value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is AccessLogSubscriptionServiceNetworkLogType other && Equals(other); + public bool Equals(AccessLogSubscriptionServiceNetworkLogType other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + /// /// The state of the auth policy. The auth policy is only active when the auth type is set to `AWS _IAM` . If you provide a policy, then authentication and authorization decisions are made based on this policy and the client's IAM policy. If the auth type is `NONE` , then any auth policy you provide will remain inactive. /// diff --git a/sdk/dotnet/VpcLattice/GetAccessLogSubscription.cs b/sdk/dotnet/VpcLattice/GetAccessLogSubscription.cs index 23284af763..77538c55f1 100644 --- a/sdk/dotnet/VpcLattice/GetAccessLogSubscription.cs +++ b/sdk/dotnet/VpcLattice/GetAccessLogSubscription.cs @@ -77,6 +77,7 @@ public sealed class GetAccessLogSubscriptionResult /// The ID of the service network or service. /// public readonly string? ResourceId; + public readonly Pulumi.AwsNative.VpcLattice.AccessLogSubscriptionServiceNetworkLogType? ServiceNetworkLogType; /// /// The tags for the access log subscription. /// @@ -94,6 +95,8 @@ private GetAccessLogSubscriptionResult( string? resourceId, + Pulumi.AwsNative.VpcLattice.AccessLogSubscriptionServiceNetworkLogType? serviceNetworkLogType, + ImmutableArray tags) { Arn = arn; @@ -101,6 +104,7 @@ private GetAccessLogSubscriptionResult( Id = id; ResourceArn = resourceArn; ResourceId = resourceId; + ServiceNetworkLogType = serviceNetworkLogType; Tags = tags; } } diff --git a/sdk/dotnet/VpcLattice/GetServiceNetwork.cs b/sdk/dotnet/VpcLattice/GetServiceNetwork.cs index f304823124..d235c30f4e 100644 --- a/sdk/dotnet/VpcLattice/GetServiceNetwork.cs +++ b/sdk/dotnet/VpcLattice/GetServiceNetwork.cs @@ -80,6 +80,7 @@ public sealed class GetServiceNetworkResult /// The date and time of the last update, specified in ISO-8601 format. /// public readonly string? LastUpdatedAt; + public readonly Outputs.ServiceNetworkSharingConfig? SharingConfig; /// /// The tags for the service network. /// @@ -97,6 +98,8 @@ private GetServiceNetworkResult( string? lastUpdatedAt, + Outputs.ServiceNetworkSharingConfig? sharingConfig, + ImmutableArray tags) { Arn = arn; @@ -104,6 +107,7 @@ private GetServiceNetworkResult( CreatedAt = createdAt; Id = id; LastUpdatedAt = lastUpdatedAt; + SharingConfig = sharingConfig; Tags = tags; } } diff --git a/sdk/dotnet/VpcLattice/Inputs/ServiceNetworkSharingConfigArgs.cs b/sdk/dotnet/VpcLattice/Inputs/ServiceNetworkSharingConfigArgs.cs new file mode 100644 index 0000000000..ca4b328c2e --- /dev/null +++ b/sdk/dotnet/VpcLattice/Inputs/ServiceNetworkSharingConfigArgs.cs @@ -0,0 +1,23 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.VpcLattice.Inputs +{ + + public sealed class ServiceNetworkSharingConfigArgs : global::Pulumi.ResourceArgs + { + [Input("enabled", required: true)] + public Input Enabled { get; set; } = null!; + + public ServiceNetworkSharingConfigArgs() + { + } + public static new ServiceNetworkSharingConfigArgs Empty => new ServiceNetworkSharingConfigArgs(); + } +} diff --git a/sdk/dotnet/VpcLattice/Outputs/ServiceNetworkSharingConfig.cs b/sdk/dotnet/VpcLattice/Outputs/ServiceNetworkSharingConfig.cs new file mode 100644 index 0000000000..c8cd8bcac6 --- /dev/null +++ b/sdk/dotnet/VpcLattice/Outputs/ServiceNetworkSharingConfig.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.VpcLattice.Outputs +{ + + [OutputType] + public sealed class ServiceNetworkSharingConfig + { + public readonly bool Enabled; + + [OutputConstructor] + private ServiceNetworkSharingConfig(bool enabled) + { + Enabled = enabled; + } + } +} diff --git a/sdk/dotnet/VpcLattice/ServiceNetwork.cs b/sdk/dotnet/VpcLattice/ServiceNetwork.cs index b57bacc27b..567bfd0a98 100644 --- a/sdk/dotnet/VpcLattice/ServiceNetwork.cs +++ b/sdk/dotnet/VpcLattice/ServiceNetwork.cs @@ -56,6 +56,9 @@ public partial class ServiceNetwork : global::Pulumi.CustomResource [Output("name")] public Output Name { get; private set; } = null!; + [Output("sharingConfig")] + public Output SharingConfig { get; private set; } = null!; + /// /// The tags for the service network. /// @@ -128,6 +131,9 @@ public sealed class ServiceNetworkArgs : global::Pulumi.ResourceArgs [Input("name")] public Input? Name { get; set; } + [Input("sharingConfig")] + public Input? SharingConfig { get; set; } + [Input("tags")] private InputList? _tags; diff --git a/sdk/go/aws/accessanalyzer/analyzer.go b/sdk/go/aws/accessanalyzer/analyzer.go index 5a97c5e783..4b75029c6e 100644 --- a/sdk/go/aws/accessanalyzer/analyzer.go +++ b/sdk/go/aws/accessanalyzer/analyzer.go @@ -102,7 +102,6 @@ func NewAnalyzer(ctx *pulumi.Context, return nil, errors.New("invalid value for required argument 'Type'") } replaceOnChanges := pulumi.ReplaceOnChanges([]string{ - "analyzerConfiguration", "analyzerName", "type", }) diff --git a/sdk/go/aws/accessanalyzer/getAnalyzer.go b/sdk/go/aws/accessanalyzer/getAnalyzer.go index b123b79d8c..f92c7cb804 100644 --- a/sdk/go/aws/accessanalyzer/getAnalyzer.go +++ b/sdk/go/aws/accessanalyzer/getAnalyzer.go @@ -29,6 +29,8 @@ type LookupAnalyzerArgs struct { } type LookupAnalyzerResult struct { + // The configuration for the analyzer + AnalyzerConfiguration *AnalyzerConfigurationProperties `pulumi:"analyzerConfiguration"` // Specifies the archive rules to add for the analyzer. Archive rules automatically archive findings that meet the criteria you define for the rule. ArchiveRules []AnalyzerArchiveRule `pulumi:"archiveRules"` // Amazon Resource Name (ARN) of the analyzer @@ -79,6 +81,11 @@ func (o LookupAnalyzerResultOutput) ToLookupAnalyzerResultOutputWithContext(ctx return o } +// The configuration for the analyzer +func (o LookupAnalyzerResultOutput) AnalyzerConfiguration() AnalyzerConfigurationPropertiesPtrOutput { + return o.ApplyT(func(v LookupAnalyzerResult) *AnalyzerConfigurationProperties { return v.AnalyzerConfiguration }).(AnalyzerConfigurationPropertiesPtrOutput) +} + // Specifies the archive rules to add for the analyzer. Archive rules automatically archive findings that meet the criteria you define for the rule. func (o LookupAnalyzerResultOutput) ArchiveRules() AnalyzerArchiveRuleArrayOutput { return o.ApplyT(func(v LookupAnalyzerResult) []AnalyzerArchiveRule { return v.ArchiveRules }).(AnalyzerArchiveRuleArrayOutput) diff --git a/sdk/go/aws/accessanalyzer/pulumiTypes.go b/sdk/go/aws/accessanalyzer/pulumiTypes.go index 579acfd6a2..a56dcc70f8 100644 --- a/sdk/go/aws/accessanalyzer/pulumiTypes.go +++ b/sdk/go/aws/accessanalyzer/pulumiTypes.go @@ -13,6 +13,127 @@ import ( var _ = internal.GetEnvOrDefault +// The criteria for an analysis rule for an analyzer. +type AnalyzerAnalysisRuleCriteria struct { + // A list of AWS account IDs to apply to the analysis rule criteria. The accounts cannot include the organization analyzer owner account. Account IDs can only be applied to the analysis rule criteria for organization-level analyzers. + AccountIds []string `pulumi:"accountIds"` + // An array of key-value pairs to match for your resources. You can use the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + // + // For the tag key, you can specify a value that is 1 to 128 characters in length and cannot be prefixed with aws:. + // + // For the tag value, you can specify a value that is 0 to 256 characters in length. If the specified tag value is 0 characters, the rule is applied to all principals with the specified tag key. + ResourceTags [][]AnalyzerTag `pulumi:"resourceTags"` +} + +// AnalyzerAnalysisRuleCriteriaInput is an input type that accepts AnalyzerAnalysisRuleCriteriaArgs and AnalyzerAnalysisRuleCriteriaOutput values. +// You can construct a concrete instance of `AnalyzerAnalysisRuleCriteriaInput` via: +// +// AnalyzerAnalysisRuleCriteriaArgs{...} +type AnalyzerAnalysisRuleCriteriaInput interface { + pulumi.Input + + ToAnalyzerAnalysisRuleCriteriaOutput() AnalyzerAnalysisRuleCriteriaOutput + ToAnalyzerAnalysisRuleCriteriaOutputWithContext(context.Context) AnalyzerAnalysisRuleCriteriaOutput +} + +// The criteria for an analysis rule for an analyzer. +type AnalyzerAnalysisRuleCriteriaArgs struct { + // A list of AWS account IDs to apply to the analysis rule criteria. The accounts cannot include the organization analyzer owner account. Account IDs can only be applied to the analysis rule criteria for organization-level analyzers. + AccountIds pulumi.StringArrayInput `pulumi:"accountIds"` + // An array of key-value pairs to match for your resources. You can use the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + // + // For the tag key, you can specify a value that is 1 to 128 characters in length and cannot be prefixed with aws:. + // + // For the tag value, you can specify a value that is 0 to 256 characters in length. If the specified tag value is 0 characters, the rule is applied to all principals with the specified tag key. + ResourceTags AnalyzerTagArrayArrayInput `pulumi:"resourceTags"` +} + +func (AnalyzerAnalysisRuleCriteriaArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AnalyzerAnalysisRuleCriteria)(nil)).Elem() +} + +func (i AnalyzerAnalysisRuleCriteriaArgs) ToAnalyzerAnalysisRuleCriteriaOutput() AnalyzerAnalysisRuleCriteriaOutput { + return i.ToAnalyzerAnalysisRuleCriteriaOutputWithContext(context.Background()) +} + +func (i AnalyzerAnalysisRuleCriteriaArgs) ToAnalyzerAnalysisRuleCriteriaOutputWithContext(ctx context.Context) AnalyzerAnalysisRuleCriteriaOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyzerAnalysisRuleCriteriaOutput) +} + +// AnalyzerAnalysisRuleCriteriaArrayInput is an input type that accepts AnalyzerAnalysisRuleCriteriaArray and AnalyzerAnalysisRuleCriteriaArrayOutput values. +// You can construct a concrete instance of `AnalyzerAnalysisRuleCriteriaArrayInput` via: +// +// AnalyzerAnalysisRuleCriteriaArray{ AnalyzerAnalysisRuleCriteriaArgs{...} } +type AnalyzerAnalysisRuleCriteriaArrayInput interface { + pulumi.Input + + ToAnalyzerAnalysisRuleCriteriaArrayOutput() AnalyzerAnalysisRuleCriteriaArrayOutput + ToAnalyzerAnalysisRuleCriteriaArrayOutputWithContext(context.Context) AnalyzerAnalysisRuleCriteriaArrayOutput +} + +type AnalyzerAnalysisRuleCriteriaArray []AnalyzerAnalysisRuleCriteriaInput + +func (AnalyzerAnalysisRuleCriteriaArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AnalyzerAnalysisRuleCriteria)(nil)).Elem() +} + +func (i AnalyzerAnalysisRuleCriteriaArray) ToAnalyzerAnalysisRuleCriteriaArrayOutput() AnalyzerAnalysisRuleCriteriaArrayOutput { + return i.ToAnalyzerAnalysisRuleCriteriaArrayOutputWithContext(context.Background()) +} + +func (i AnalyzerAnalysisRuleCriteriaArray) ToAnalyzerAnalysisRuleCriteriaArrayOutputWithContext(ctx context.Context) AnalyzerAnalysisRuleCriteriaArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyzerAnalysisRuleCriteriaArrayOutput) +} + +// The criteria for an analysis rule for an analyzer. +type AnalyzerAnalysisRuleCriteriaOutput struct{ *pulumi.OutputState } + +func (AnalyzerAnalysisRuleCriteriaOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AnalyzerAnalysisRuleCriteria)(nil)).Elem() +} + +func (o AnalyzerAnalysisRuleCriteriaOutput) ToAnalyzerAnalysisRuleCriteriaOutput() AnalyzerAnalysisRuleCriteriaOutput { + return o +} + +func (o AnalyzerAnalysisRuleCriteriaOutput) ToAnalyzerAnalysisRuleCriteriaOutputWithContext(ctx context.Context) AnalyzerAnalysisRuleCriteriaOutput { + return o +} + +// A list of AWS account IDs to apply to the analysis rule criteria. The accounts cannot include the organization analyzer owner account. Account IDs can only be applied to the analysis rule criteria for organization-level analyzers. +func (o AnalyzerAnalysisRuleCriteriaOutput) AccountIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v AnalyzerAnalysisRuleCriteria) []string { return v.AccountIds }).(pulumi.StringArrayOutput) +} + +// An array of key-value pairs to match for your resources. You can use the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +// +// For the tag key, you can specify a value that is 1 to 128 characters in length and cannot be prefixed with aws:. +// +// For the tag value, you can specify a value that is 0 to 256 characters in length. If the specified tag value is 0 characters, the rule is applied to all principals with the specified tag key. +func (o AnalyzerAnalysisRuleCriteriaOutput) ResourceTags() AnalyzerTagArrayArrayOutput { + return o.ApplyT(func(v AnalyzerAnalysisRuleCriteria) [][]AnalyzerTag { return v.ResourceTags }).(AnalyzerTagArrayArrayOutput) +} + +type AnalyzerAnalysisRuleCriteriaArrayOutput struct{ *pulumi.OutputState } + +func (AnalyzerAnalysisRuleCriteriaArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AnalyzerAnalysisRuleCriteria)(nil)).Elem() +} + +func (o AnalyzerAnalysisRuleCriteriaArrayOutput) ToAnalyzerAnalysisRuleCriteriaArrayOutput() AnalyzerAnalysisRuleCriteriaArrayOutput { + return o +} + +func (o AnalyzerAnalysisRuleCriteriaArrayOutput) ToAnalyzerAnalysisRuleCriteriaArrayOutputWithContext(ctx context.Context) AnalyzerAnalysisRuleCriteriaArrayOutput { + return o +} + +func (o AnalyzerAnalysisRuleCriteriaArrayOutput) Index(i pulumi.IntInput) AnalyzerAnalysisRuleCriteriaOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AnalyzerAnalysisRuleCriteria { + return vs[0].([]AnalyzerAnalysisRuleCriteria)[vs[1].(int)] + }).(AnalyzerAnalysisRuleCriteriaOutput) +} + // An Access Analyzer archive rule. Archive rules automatically archive new findings that meet the criteria you define when you create the rule. type AnalyzerArchiveRule struct { // The criteria for the rule. @@ -124,7 +245,7 @@ func (o AnalyzerArchiveRuleArrayOutput) Index(i pulumi.IntInput) AnalyzerArchive // The configuration for the analyzer type AnalyzerConfigurationProperties struct { - // Specifies the configuration of an unused access analyzer for an AWS organization or account. External access analyzers do not support any configuration. + // Specifies the configuration of an unused access analyzer for an AWS organization or account. UnusedAccessConfiguration *AnalyzerUnusedAccessConfiguration `pulumi:"unusedAccessConfiguration"` } @@ -141,7 +262,7 @@ type AnalyzerConfigurationPropertiesInput interface { // The configuration for the analyzer type AnalyzerConfigurationPropertiesArgs struct { - // Specifies the configuration of an unused access analyzer for an AWS organization or account. External access analyzers do not support any configuration. + // Specifies the configuration of an unused access analyzer for an AWS organization or account. UnusedAccessConfiguration AnalyzerUnusedAccessConfigurationPtrInput `pulumi:"unusedAccessConfiguration"` } @@ -223,7 +344,7 @@ func (o AnalyzerConfigurationPropertiesOutput) ToAnalyzerConfigurationProperties }).(AnalyzerConfigurationPropertiesPtrOutput) } -// Specifies the configuration of an unused access analyzer for an AWS organization or account. External access analyzers do not support any configuration. +// Specifies the configuration of an unused access analyzer for an AWS organization or account. func (o AnalyzerConfigurationPropertiesOutput) UnusedAccessConfiguration() AnalyzerUnusedAccessConfigurationPtrOutput { return o.ApplyT(func(v AnalyzerConfigurationProperties) *AnalyzerUnusedAccessConfiguration { return v.UnusedAccessConfiguration @@ -254,7 +375,7 @@ func (o AnalyzerConfigurationPropertiesPtrOutput) Elem() AnalyzerConfigurationPr }).(AnalyzerConfigurationPropertiesOutput) } -// Specifies the configuration of an unused access analyzer for an AWS organization or account. External access analyzers do not support any configuration. +// Specifies the configuration of an unused access analyzer for an AWS organization or account. func (o AnalyzerConfigurationPropertiesPtrOutput) UnusedAccessConfiguration() AnalyzerUnusedAccessConfigurationPtrOutput { return o.ApplyT(func(v *AnalyzerConfigurationProperties) *AnalyzerUnusedAccessConfiguration { if v == nil { @@ -401,13 +522,116 @@ func (o AnalyzerFilterArrayOutput) Index(i pulumi.IntInput) AnalyzerFilterOutput type AnalyzerTag struct { // The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. Key string `pulumi:"key"` - // The value for the tag. You can specify a value that is 1 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. - Value string `pulumi:"value"` + // The value for the tag. You can specify a value that is 0 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + Value *string `pulumi:"value"` +} + +// AnalyzerTagInput is an input type that accepts AnalyzerTagArgs and AnalyzerTagOutput values. +// You can construct a concrete instance of `AnalyzerTagInput` via: +// +// AnalyzerTagArgs{...} +type AnalyzerTagInput interface { + pulumi.Input + + ToAnalyzerTagOutput() AnalyzerTagOutput + ToAnalyzerTagOutputWithContext(context.Context) AnalyzerTagOutput +} + +// A key-value pair to associate with a resource. +type AnalyzerTagArgs struct { + // The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + Key pulumi.StringInput `pulumi:"key"` + // The value for the tag. You can specify a value that is 0 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (AnalyzerTagArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AnalyzerTag)(nil)).Elem() +} + +func (i AnalyzerTagArgs) ToAnalyzerTagOutput() AnalyzerTagOutput { + return i.ToAnalyzerTagOutputWithContext(context.Background()) +} + +func (i AnalyzerTagArgs) ToAnalyzerTagOutputWithContext(ctx context.Context) AnalyzerTagOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyzerTagOutput) +} + +// AnalyzerTagArrayInput is an input type that accepts AnalyzerTagArray and AnalyzerTagArrayOutput values. +// You can construct a concrete instance of `AnalyzerTagArrayInput` via: +// +// AnalyzerTagArray{ AnalyzerTagArgs{...} } +type AnalyzerTagArrayInput interface { + pulumi.Input + + ToAnalyzerTagArrayOutput() AnalyzerTagArrayOutput + ToAnalyzerTagArrayOutputWithContext(context.Context) AnalyzerTagArrayOutput +} + +type AnalyzerTagArray []AnalyzerTagInput + +func (AnalyzerTagArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AnalyzerTag)(nil)).Elem() +} + +func (i AnalyzerTagArray) ToAnalyzerTagArrayOutput() AnalyzerTagArrayOutput { + return i.ToAnalyzerTagArrayOutputWithContext(context.Background()) +} + +func (i AnalyzerTagArray) ToAnalyzerTagArrayOutputWithContext(ctx context.Context) AnalyzerTagArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyzerTagArrayOutput) +} + +// A key-value pair to associate with a resource. +type AnalyzerTagOutput struct{ *pulumi.OutputState } + +func (AnalyzerTagOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AnalyzerTag)(nil)).Elem() +} + +func (o AnalyzerTagOutput) ToAnalyzerTagOutput() AnalyzerTagOutput { + return o +} + +func (o AnalyzerTagOutput) ToAnalyzerTagOutputWithContext(ctx context.Context) AnalyzerTagOutput { + return o +} + +// The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +func (o AnalyzerTagOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v AnalyzerTag) string { return v.Key }).(pulumi.StringOutput) +} + +// The value for the tag. You can specify a value that is 0 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +func (o AnalyzerTagOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v AnalyzerTag) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type AnalyzerTagArrayOutput struct{ *pulumi.OutputState } + +func (AnalyzerTagArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AnalyzerTag)(nil)).Elem() +} + +func (o AnalyzerTagArrayOutput) ToAnalyzerTagArrayOutput() AnalyzerTagArrayOutput { + return o +} + +func (o AnalyzerTagArrayOutput) ToAnalyzerTagArrayOutputWithContext(ctx context.Context) AnalyzerTagArrayOutput { + return o +} + +func (o AnalyzerTagArrayOutput) Index(i pulumi.IntInput) AnalyzerTagOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AnalyzerTag { + return vs[0].([]AnalyzerTag)[vs[1].(int)] + }).(AnalyzerTagOutput) } // The Configuration for Unused Access Analyzer type AnalyzerUnusedAccessConfiguration struct { - // The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 180 days. + // Contains information about rules for the analyzer. + AnalysisRule *AnalyzerUnusedAccessConfigurationAnalysisRuleProperties `pulumi:"analysisRule"` + // The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 365 days. UnusedAccessAge *int `pulumi:"unusedAccessAge"` } @@ -424,7 +648,9 @@ type AnalyzerUnusedAccessConfigurationInput interface { // The Configuration for Unused Access Analyzer type AnalyzerUnusedAccessConfigurationArgs struct { - // The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 180 days. + // Contains information about rules for the analyzer. + AnalysisRule AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrInput `pulumi:"analysisRule"` + // The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 365 days. UnusedAccessAge pulumi.IntPtrInput `pulumi:"unusedAccessAge"` } @@ -506,7 +732,14 @@ func (o AnalyzerUnusedAccessConfigurationOutput) ToAnalyzerUnusedAccessConfigura }).(AnalyzerUnusedAccessConfigurationPtrOutput) } -// The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 180 days. +// Contains information about rules for the analyzer. +func (o AnalyzerUnusedAccessConfigurationOutput) AnalysisRule() AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput { + return o.ApplyT(func(v AnalyzerUnusedAccessConfiguration) *AnalyzerUnusedAccessConfigurationAnalysisRuleProperties { + return v.AnalysisRule + }).(AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput) +} + +// The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 365 days. func (o AnalyzerUnusedAccessConfigurationOutput) UnusedAccessAge() pulumi.IntPtrOutput { return o.ApplyT(func(v AnalyzerUnusedAccessConfiguration) *int { return v.UnusedAccessAge }).(pulumi.IntPtrOutput) } @@ -535,7 +768,17 @@ func (o AnalyzerUnusedAccessConfigurationPtrOutput) Elem() AnalyzerUnusedAccessC }).(AnalyzerUnusedAccessConfigurationOutput) } -// The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 180 days. +// Contains information about rules for the analyzer. +func (o AnalyzerUnusedAccessConfigurationPtrOutput) AnalysisRule() AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput { + return o.ApplyT(func(v *AnalyzerUnusedAccessConfiguration) *AnalyzerUnusedAccessConfigurationAnalysisRuleProperties { + if v == nil { + return nil + } + return v.AnalysisRule + }).(AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput) +} + +// The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 365 days. func (o AnalyzerUnusedAccessConfigurationPtrOutput) UnusedAccessAge() pulumi.IntPtrOutput { return o.ApplyT(func(v *AnalyzerUnusedAccessConfiguration) *int { if v == nil { @@ -545,21 +788,222 @@ func (o AnalyzerUnusedAccessConfigurationPtrOutput) UnusedAccessAge() pulumi.Int }).(pulumi.IntPtrOutput) } +// Contains information about rules for the analyzer. +type AnalyzerUnusedAccessConfigurationAnalysisRuleProperties struct { + // A list of rules for the analyzer containing criteria to exclude from analysis. Entities that meet the rule criteria will not generate findings. + Exclusions []AnalyzerAnalysisRuleCriteria `pulumi:"exclusions"` +} + +// AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesInput is an input type that accepts AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs and AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutput values. +// You can construct a concrete instance of `AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesInput` via: +// +// AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs{...} +type AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesInput interface { + pulumi.Input + + ToAnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutput() AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutput + ToAnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutputWithContext(context.Context) AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutput +} + +// Contains information about rules for the analyzer. +type AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs struct { + // A list of rules for the analyzer containing criteria to exclude from analysis. Entities that meet the rule criteria will not generate findings. + Exclusions AnalyzerAnalysisRuleCriteriaArrayInput `pulumi:"exclusions"` +} + +func (AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AnalyzerUnusedAccessConfigurationAnalysisRuleProperties)(nil)).Elem() +} + +func (i AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs) ToAnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutput() AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutput { + return i.ToAnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutputWithContext(context.Background()) +} + +func (i AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs) ToAnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutputWithContext(ctx context.Context) AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutput) +} + +func (i AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs) ToAnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput() AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput { + return i.ToAnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutputWithContext(context.Background()) +} + +func (i AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs) ToAnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutputWithContext(ctx context.Context) AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutput).ToAnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutputWithContext(ctx) +} + +// AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrInput is an input type that accepts AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs, AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtr and AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput values. +// You can construct a concrete instance of `AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrInput` via: +// +// AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs{...} +// +// or: +// +// nil +type AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrInput interface { + pulumi.Input + + ToAnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput() AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput + ToAnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutputWithContext(context.Context) AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput +} + +type analyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrType AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs + +func AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtr(v *AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs) AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrInput { + return (*analyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrType)(v) +} + +func (*analyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AnalyzerUnusedAccessConfigurationAnalysisRuleProperties)(nil)).Elem() +} + +func (i *analyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrType) ToAnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput() AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput { + return i.ToAnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutputWithContext(context.Background()) +} + +func (i *analyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrType) ToAnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutputWithContext(ctx context.Context) AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput) +} + +// Contains information about rules for the analyzer. +type AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutput struct{ *pulumi.OutputState } + +func (AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AnalyzerUnusedAccessConfigurationAnalysisRuleProperties)(nil)).Elem() +} + +func (o AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutput) ToAnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutput() AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutput { + return o +} + +func (o AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutput) ToAnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutputWithContext(ctx context.Context) AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutput { + return o +} + +func (o AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutput) ToAnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput() AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput { + return o.ToAnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutputWithContext(context.Background()) +} + +func (o AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutput) ToAnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutputWithContext(ctx context.Context) AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AnalyzerUnusedAccessConfigurationAnalysisRuleProperties) *AnalyzerUnusedAccessConfigurationAnalysisRuleProperties { + return &v + }).(AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput) +} + +// A list of rules for the analyzer containing criteria to exclude from analysis. Entities that meet the rule criteria will not generate findings. +func (o AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutput) Exclusions() AnalyzerAnalysisRuleCriteriaArrayOutput { + return o.ApplyT(func(v AnalyzerUnusedAccessConfigurationAnalysisRuleProperties) []AnalyzerAnalysisRuleCriteria { + return v.Exclusions + }).(AnalyzerAnalysisRuleCriteriaArrayOutput) +} + +type AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput struct{ *pulumi.OutputState } + +func (AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AnalyzerUnusedAccessConfigurationAnalysisRuleProperties)(nil)).Elem() +} + +func (o AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput) ToAnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput() AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput { + return o +} + +func (o AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput) ToAnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutputWithContext(ctx context.Context) AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput { + return o +} + +func (o AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput) Elem() AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutput { + return o.ApplyT(func(v *AnalyzerUnusedAccessConfigurationAnalysisRuleProperties) AnalyzerUnusedAccessConfigurationAnalysisRuleProperties { + if v != nil { + return *v + } + var ret AnalyzerUnusedAccessConfigurationAnalysisRuleProperties + return ret + }).(AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutput) +} + +// A list of rules for the analyzer containing criteria to exclude from analysis. Entities that meet the rule criteria will not generate findings. +func (o AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput) Exclusions() AnalyzerAnalysisRuleCriteriaArrayOutput { + return o.ApplyT(func(v *AnalyzerUnusedAccessConfigurationAnalysisRuleProperties) []AnalyzerAnalysisRuleCriteria { + if v == nil { + return nil + } + return v.Exclusions + }).(AnalyzerAnalysisRuleCriteriaArrayOutput) +} + +type AnalyzerTagArrayArray []AnalyzerTagArrayInput + +func (AnalyzerTagArrayArray) ElementType() reflect.Type { + return reflect.TypeOf((*[][]AnalyzerTag)(nil)).Elem() +} + +func (i AnalyzerTagArrayArray) ToAnalyzerTagArrayArrayOutput() AnalyzerTagArrayArrayOutput { + return i.ToAnalyzerTagArrayArrayOutputWithContext(context.Background()) +} + +func (i AnalyzerTagArrayArray) ToAnalyzerTagArrayArrayOutputWithContext(ctx context.Context) AnalyzerTagArrayArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AnalyzerTagArrayArrayOutput) +} + +// AnalyzerTagArrayArrayInput is an input type that accepts AnalyzerTagArrayArray and AnalyzerTagArrayArrayOutput values. +// You can construct a concrete instance of `AnalyzerTagArrayArrayInput` via: +// +// AnalyzerTagArrayArray{ AnalyzerTagArray{ AnalyzerTagArgs{...} } } +type AnalyzerTagArrayArrayInput interface { + pulumi.Input + + ToAnalyzerTagArrayArrayOutput() AnalyzerTagArrayArrayOutput + ToAnalyzerTagArrayArrayOutputWithContext(context.Context) AnalyzerTagArrayArrayOutput +} + +type AnalyzerTagArrayArrayOutput struct{ *pulumi.OutputState } + +func (AnalyzerTagArrayArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[][]AnalyzerTag)(nil)).Elem() +} + +func (o AnalyzerTagArrayArrayOutput) ToAnalyzerTagArrayArrayOutput() AnalyzerTagArrayArrayOutput { + return o +} + +func (o AnalyzerTagArrayArrayOutput) ToAnalyzerTagArrayArrayOutputWithContext(ctx context.Context) AnalyzerTagArrayArrayOutput { + return o +} + +func (o AnalyzerTagArrayArrayOutput) Index(i pulumi.IntInput) AnalyzerTagArrayOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) []AnalyzerTag { + return vs[0].([][]AnalyzerTag)[vs[1].(int)] + }).(AnalyzerTagArrayOutput) +} + func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AnalyzerAnalysisRuleCriteriaInput)(nil)).Elem(), AnalyzerAnalysisRuleCriteriaArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AnalyzerAnalysisRuleCriteriaArrayInput)(nil)).Elem(), AnalyzerAnalysisRuleCriteriaArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AnalyzerArchiveRuleInput)(nil)).Elem(), AnalyzerArchiveRuleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AnalyzerArchiveRuleArrayInput)(nil)).Elem(), AnalyzerArchiveRuleArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AnalyzerConfigurationPropertiesInput)(nil)).Elem(), AnalyzerConfigurationPropertiesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AnalyzerConfigurationPropertiesPtrInput)(nil)).Elem(), AnalyzerConfigurationPropertiesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AnalyzerFilterInput)(nil)).Elem(), AnalyzerFilterArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AnalyzerFilterArrayInput)(nil)).Elem(), AnalyzerFilterArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AnalyzerTagInput)(nil)).Elem(), AnalyzerTagArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AnalyzerTagArrayInput)(nil)).Elem(), AnalyzerTagArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AnalyzerUnusedAccessConfigurationInput)(nil)).Elem(), AnalyzerUnusedAccessConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AnalyzerUnusedAccessConfigurationPtrInput)(nil)).Elem(), AnalyzerUnusedAccessConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesInput)(nil)).Elem(), AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrInput)(nil)).Elem(), AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AnalyzerTagArrayArrayInput)(nil)).Elem(), AnalyzerTagArrayArray{}) + pulumi.RegisterOutputType(AnalyzerAnalysisRuleCriteriaOutput{}) + pulumi.RegisterOutputType(AnalyzerAnalysisRuleCriteriaArrayOutput{}) pulumi.RegisterOutputType(AnalyzerArchiveRuleOutput{}) pulumi.RegisterOutputType(AnalyzerArchiveRuleArrayOutput{}) pulumi.RegisterOutputType(AnalyzerConfigurationPropertiesOutput{}) pulumi.RegisterOutputType(AnalyzerConfigurationPropertiesPtrOutput{}) pulumi.RegisterOutputType(AnalyzerFilterOutput{}) pulumi.RegisterOutputType(AnalyzerFilterArrayOutput{}) + pulumi.RegisterOutputType(AnalyzerTagOutput{}) + pulumi.RegisterOutputType(AnalyzerTagArrayOutput{}) pulumi.RegisterOutputType(AnalyzerUnusedAccessConfigurationOutput{}) pulumi.RegisterOutputType(AnalyzerUnusedAccessConfigurationPtrOutput{}) + pulumi.RegisterOutputType(AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesOutput{}) + pulumi.RegisterOutputType(AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesPtrOutput{}) + pulumi.RegisterOutputType(AnalyzerTagArrayArrayOutput{}) } diff --git a/sdk/go/aws/applicationautoscaling/getScalingPolicy.go b/sdk/go/aws/applicationautoscaling/getScalingPolicy.go index 1cd408f93f..81cf27c28d 100644 --- a/sdk/go/aws/applicationautoscaling/getScalingPolicy.go +++ b/sdk/go/aws/applicationautoscaling/getScalingPolicy.go @@ -61,7 +61,8 @@ type LookupScalingPolicyResult struct { // The following policy types are supported: // ``TargetTrackingScaling``—Not supported for Amazon EMR // ``StepScaling``—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune. - PolicyType *string `pulumi:"policyType"` + PolicyType *string `pulumi:"policyType"` + PredictiveScalingPolicyConfiguration *ScalingPolicyPredictiveScalingPolicyConfiguration `pulumi:"predictiveScalingPolicyConfiguration"` // A step scaling policy. StepScalingPolicyConfiguration *ScalingPolicyStepScalingPolicyConfiguration `pulumi:"stepScalingPolicyConfiguration"` // A target tracking scaling policy. @@ -149,6 +150,12 @@ func (o LookupScalingPolicyResultOutput) PolicyType() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupScalingPolicyResult) *string { return v.PolicyType }).(pulumi.StringPtrOutput) } +func (o LookupScalingPolicyResultOutput) PredictiveScalingPolicyConfiguration() ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput { + return o.ApplyT(func(v LookupScalingPolicyResult) *ScalingPolicyPredictiveScalingPolicyConfiguration { + return v.PredictiveScalingPolicyConfiguration + }).(ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput) +} + // A step scaling policy. func (o LookupScalingPolicyResultOutput) StepScalingPolicyConfiguration() ScalingPolicyStepScalingPolicyConfigurationPtrOutput { return o.ApplyT(func(v LookupScalingPolicyResult) *ScalingPolicyStepScalingPolicyConfiguration { diff --git a/sdk/go/aws/applicationautoscaling/pulumiTypes.go b/sdk/go/aws/applicationautoscaling/pulumiTypes.go index 96a374f999..a309642f6f 100644 --- a/sdk/go/aws/applicationautoscaling/pulumiTypes.go +++ b/sdk/go/aws/applicationautoscaling/pulumiTypes.go @@ -1108,6 +1108,1787 @@ func (o ScalingPolicyPredefinedMetricSpecificationPtrOutput) ResourceLabel() pul }).(pulumi.StringPtrOutput) } +type ScalingPolicyPredictiveScalingCustomizedCapacityMetric struct { + MetricDataQueries []ScalingPolicyPredictiveScalingMetricDataQuery `pulumi:"metricDataQueries"` +} + +// ScalingPolicyPredictiveScalingCustomizedCapacityMetricInput is an input type that accepts ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs and ScalingPolicyPredictiveScalingCustomizedCapacityMetricOutput values. +// You can construct a concrete instance of `ScalingPolicyPredictiveScalingCustomizedCapacityMetricInput` via: +// +// ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs{...} +type ScalingPolicyPredictiveScalingCustomizedCapacityMetricInput interface { + pulumi.Input + + ToScalingPolicyPredictiveScalingCustomizedCapacityMetricOutput() ScalingPolicyPredictiveScalingCustomizedCapacityMetricOutput + ToScalingPolicyPredictiveScalingCustomizedCapacityMetricOutputWithContext(context.Context) ScalingPolicyPredictiveScalingCustomizedCapacityMetricOutput +} + +type ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs struct { + MetricDataQueries ScalingPolicyPredictiveScalingMetricDataQueryArrayInput `pulumi:"metricDataQueries"` +} + +func (ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ScalingPolicyPredictiveScalingCustomizedCapacityMetric)(nil)).Elem() +} + +func (i ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs) ToScalingPolicyPredictiveScalingCustomizedCapacityMetricOutput() ScalingPolicyPredictiveScalingCustomizedCapacityMetricOutput { + return i.ToScalingPolicyPredictiveScalingCustomizedCapacityMetricOutputWithContext(context.Background()) +} + +func (i ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs) ToScalingPolicyPredictiveScalingCustomizedCapacityMetricOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingCustomizedCapacityMetricOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingCustomizedCapacityMetricOutput) +} + +func (i ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs) ToScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput() ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput { + return i.ToScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutputWithContext(context.Background()) +} + +func (i ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs) ToScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingCustomizedCapacityMetricOutput).ToScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutputWithContext(ctx) +} + +// ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrInput is an input type that accepts ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs, ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtr and ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput values. +// You can construct a concrete instance of `ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrInput` via: +// +// ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs{...} +// +// or: +// +// nil +type ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrInput interface { + pulumi.Input + + ToScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput() ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput + ToScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutputWithContext(context.Context) ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput +} + +type scalingPolicyPredictiveScalingCustomizedCapacityMetricPtrType ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs + +func ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtr(v *ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs) ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrInput { + return (*scalingPolicyPredictiveScalingCustomizedCapacityMetricPtrType)(v) +} + +func (*scalingPolicyPredictiveScalingCustomizedCapacityMetricPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ScalingPolicyPredictiveScalingCustomizedCapacityMetric)(nil)).Elem() +} + +func (i *scalingPolicyPredictiveScalingCustomizedCapacityMetricPtrType) ToScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput() ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput { + return i.ToScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutputWithContext(context.Background()) +} + +func (i *scalingPolicyPredictiveScalingCustomizedCapacityMetricPtrType) ToScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput) +} + +type ScalingPolicyPredictiveScalingCustomizedCapacityMetricOutput struct{ *pulumi.OutputState } + +func (ScalingPolicyPredictiveScalingCustomizedCapacityMetricOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ScalingPolicyPredictiveScalingCustomizedCapacityMetric)(nil)).Elem() +} + +func (o ScalingPolicyPredictiveScalingCustomizedCapacityMetricOutput) ToScalingPolicyPredictiveScalingCustomizedCapacityMetricOutput() ScalingPolicyPredictiveScalingCustomizedCapacityMetricOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingCustomizedCapacityMetricOutput) ToScalingPolicyPredictiveScalingCustomizedCapacityMetricOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingCustomizedCapacityMetricOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingCustomizedCapacityMetricOutput) ToScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput() ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput { + return o.ToScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutputWithContext(context.Background()) +} + +func (o ScalingPolicyPredictiveScalingCustomizedCapacityMetricOutput) ToScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ScalingPolicyPredictiveScalingCustomizedCapacityMetric) *ScalingPolicyPredictiveScalingCustomizedCapacityMetric { + return &v + }).(ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput) +} + +func (o ScalingPolicyPredictiveScalingCustomizedCapacityMetricOutput) MetricDataQueries() ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingCustomizedCapacityMetric) []ScalingPolicyPredictiveScalingMetricDataQuery { + return v.MetricDataQueries + }).(ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput) +} + +type ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput struct{ *pulumi.OutputState } + +func (ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ScalingPolicyPredictiveScalingCustomizedCapacityMetric)(nil)).Elem() +} + +func (o ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput) ToScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput() ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput) ToScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput) Elem() ScalingPolicyPredictiveScalingCustomizedCapacityMetricOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingCustomizedCapacityMetric) ScalingPolicyPredictiveScalingCustomizedCapacityMetric { + if v != nil { + return *v + } + var ret ScalingPolicyPredictiveScalingCustomizedCapacityMetric + return ret + }).(ScalingPolicyPredictiveScalingCustomizedCapacityMetricOutput) +} + +func (o ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput) MetricDataQueries() ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingCustomizedCapacityMetric) []ScalingPolicyPredictiveScalingMetricDataQuery { + if v == nil { + return nil + } + return v.MetricDataQueries + }).(ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput) +} + +type ScalingPolicyPredictiveScalingCustomizedLoadMetric struct { + MetricDataQueries []ScalingPolicyPredictiveScalingMetricDataQuery `pulumi:"metricDataQueries"` +} + +// ScalingPolicyPredictiveScalingCustomizedLoadMetricInput is an input type that accepts ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs and ScalingPolicyPredictiveScalingCustomizedLoadMetricOutput values. +// You can construct a concrete instance of `ScalingPolicyPredictiveScalingCustomizedLoadMetricInput` via: +// +// ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs{...} +type ScalingPolicyPredictiveScalingCustomizedLoadMetricInput interface { + pulumi.Input + + ToScalingPolicyPredictiveScalingCustomizedLoadMetricOutput() ScalingPolicyPredictiveScalingCustomizedLoadMetricOutput + ToScalingPolicyPredictiveScalingCustomizedLoadMetricOutputWithContext(context.Context) ScalingPolicyPredictiveScalingCustomizedLoadMetricOutput +} + +type ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs struct { + MetricDataQueries ScalingPolicyPredictiveScalingMetricDataQueryArrayInput `pulumi:"metricDataQueries"` +} + +func (ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ScalingPolicyPredictiveScalingCustomizedLoadMetric)(nil)).Elem() +} + +func (i ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs) ToScalingPolicyPredictiveScalingCustomizedLoadMetricOutput() ScalingPolicyPredictiveScalingCustomizedLoadMetricOutput { + return i.ToScalingPolicyPredictiveScalingCustomizedLoadMetricOutputWithContext(context.Background()) +} + +func (i ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs) ToScalingPolicyPredictiveScalingCustomizedLoadMetricOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingCustomizedLoadMetricOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingCustomizedLoadMetricOutput) +} + +func (i ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs) ToScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput() ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput { + return i.ToScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutputWithContext(context.Background()) +} + +func (i ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs) ToScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingCustomizedLoadMetricOutput).ToScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutputWithContext(ctx) +} + +// ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrInput is an input type that accepts ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs, ScalingPolicyPredictiveScalingCustomizedLoadMetricPtr and ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput values. +// You can construct a concrete instance of `ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrInput` via: +// +// ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs{...} +// +// or: +// +// nil +type ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrInput interface { + pulumi.Input + + ToScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput() ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput + ToScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutputWithContext(context.Context) ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput +} + +type scalingPolicyPredictiveScalingCustomizedLoadMetricPtrType ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs + +func ScalingPolicyPredictiveScalingCustomizedLoadMetricPtr(v *ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs) ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrInput { + return (*scalingPolicyPredictiveScalingCustomizedLoadMetricPtrType)(v) +} + +func (*scalingPolicyPredictiveScalingCustomizedLoadMetricPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ScalingPolicyPredictiveScalingCustomizedLoadMetric)(nil)).Elem() +} + +func (i *scalingPolicyPredictiveScalingCustomizedLoadMetricPtrType) ToScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput() ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput { + return i.ToScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutputWithContext(context.Background()) +} + +func (i *scalingPolicyPredictiveScalingCustomizedLoadMetricPtrType) ToScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput) +} + +type ScalingPolicyPredictiveScalingCustomizedLoadMetricOutput struct{ *pulumi.OutputState } + +func (ScalingPolicyPredictiveScalingCustomizedLoadMetricOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ScalingPolicyPredictiveScalingCustomizedLoadMetric)(nil)).Elem() +} + +func (o ScalingPolicyPredictiveScalingCustomizedLoadMetricOutput) ToScalingPolicyPredictiveScalingCustomizedLoadMetricOutput() ScalingPolicyPredictiveScalingCustomizedLoadMetricOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingCustomizedLoadMetricOutput) ToScalingPolicyPredictiveScalingCustomizedLoadMetricOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingCustomizedLoadMetricOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingCustomizedLoadMetricOutput) ToScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput() ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput { + return o.ToScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutputWithContext(context.Background()) +} + +func (o ScalingPolicyPredictiveScalingCustomizedLoadMetricOutput) ToScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ScalingPolicyPredictiveScalingCustomizedLoadMetric) *ScalingPolicyPredictiveScalingCustomizedLoadMetric { + return &v + }).(ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput) +} + +func (o ScalingPolicyPredictiveScalingCustomizedLoadMetricOutput) MetricDataQueries() ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingCustomizedLoadMetric) []ScalingPolicyPredictiveScalingMetricDataQuery { + return v.MetricDataQueries + }).(ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput) +} + +type ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput struct{ *pulumi.OutputState } + +func (ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ScalingPolicyPredictiveScalingCustomizedLoadMetric)(nil)).Elem() +} + +func (o ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput) ToScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput() ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput) ToScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput) Elem() ScalingPolicyPredictiveScalingCustomizedLoadMetricOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingCustomizedLoadMetric) ScalingPolicyPredictiveScalingCustomizedLoadMetric { + if v != nil { + return *v + } + var ret ScalingPolicyPredictiveScalingCustomizedLoadMetric + return ret + }).(ScalingPolicyPredictiveScalingCustomizedLoadMetricOutput) +} + +func (o ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput) MetricDataQueries() ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingCustomizedLoadMetric) []ScalingPolicyPredictiveScalingMetricDataQuery { + if v == nil { + return nil + } + return v.MetricDataQueries + }).(ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput) +} + +type ScalingPolicyPredictiveScalingCustomizedScalingMetric struct { + MetricDataQueries []ScalingPolicyPredictiveScalingMetricDataQuery `pulumi:"metricDataQueries"` +} + +// ScalingPolicyPredictiveScalingCustomizedScalingMetricInput is an input type that accepts ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs and ScalingPolicyPredictiveScalingCustomizedScalingMetricOutput values. +// You can construct a concrete instance of `ScalingPolicyPredictiveScalingCustomizedScalingMetricInput` via: +// +// ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs{...} +type ScalingPolicyPredictiveScalingCustomizedScalingMetricInput interface { + pulumi.Input + + ToScalingPolicyPredictiveScalingCustomizedScalingMetricOutput() ScalingPolicyPredictiveScalingCustomizedScalingMetricOutput + ToScalingPolicyPredictiveScalingCustomizedScalingMetricOutputWithContext(context.Context) ScalingPolicyPredictiveScalingCustomizedScalingMetricOutput +} + +type ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs struct { + MetricDataQueries ScalingPolicyPredictiveScalingMetricDataQueryArrayInput `pulumi:"metricDataQueries"` +} + +func (ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ScalingPolicyPredictiveScalingCustomizedScalingMetric)(nil)).Elem() +} + +func (i ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs) ToScalingPolicyPredictiveScalingCustomizedScalingMetricOutput() ScalingPolicyPredictiveScalingCustomizedScalingMetricOutput { + return i.ToScalingPolicyPredictiveScalingCustomizedScalingMetricOutputWithContext(context.Background()) +} + +func (i ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs) ToScalingPolicyPredictiveScalingCustomizedScalingMetricOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingCustomizedScalingMetricOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingCustomizedScalingMetricOutput) +} + +func (i ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs) ToScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput() ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput { + return i.ToScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutputWithContext(context.Background()) +} + +func (i ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs) ToScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingCustomizedScalingMetricOutput).ToScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutputWithContext(ctx) +} + +// ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrInput is an input type that accepts ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs, ScalingPolicyPredictiveScalingCustomizedScalingMetricPtr and ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput values. +// You can construct a concrete instance of `ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrInput` via: +// +// ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs{...} +// +// or: +// +// nil +type ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrInput interface { + pulumi.Input + + ToScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput() ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput + ToScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutputWithContext(context.Context) ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput +} + +type scalingPolicyPredictiveScalingCustomizedScalingMetricPtrType ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs + +func ScalingPolicyPredictiveScalingCustomizedScalingMetricPtr(v *ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs) ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrInput { + return (*scalingPolicyPredictiveScalingCustomizedScalingMetricPtrType)(v) +} + +func (*scalingPolicyPredictiveScalingCustomizedScalingMetricPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ScalingPolicyPredictiveScalingCustomizedScalingMetric)(nil)).Elem() +} + +func (i *scalingPolicyPredictiveScalingCustomizedScalingMetricPtrType) ToScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput() ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput { + return i.ToScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutputWithContext(context.Background()) +} + +func (i *scalingPolicyPredictiveScalingCustomizedScalingMetricPtrType) ToScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput) +} + +type ScalingPolicyPredictiveScalingCustomizedScalingMetricOutput struct{ *pulumi.OutputState } + +func (ScalingPolicyPredictiveScalingCustomizedScalingMetricOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ScalingPolicyPredictiveScalingCustomizedScalingMetric)(nil)).Elem() +} + +func (o ScalingPolicyPredictiveScalingCustomizedScalingMetricOutput) ToScalingPolicyPredictiveScalingCustomizedScalingMetricOutput() ScalingPolicyPredictiveScalingCustomizedScalingMetricOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingCustomizedScalingMetricOutput) ToScalingPolicyPredictiveScalingCustomizedScalingMetricOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingCustomizedScalingMetricOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingCustomizedScalingMetricOutput) ToScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput() ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput { + return o.ToScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutputWithContext(context.Background()) +} + +func (o ScalingPolicyPredictiveScalingCustomizedScalingMetricOutput) ToScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ScalingPolicyPredictiveScalingCustomizedScalingMetric) *ScalingPolicyPredictiveScalingCustomizedScalingMetric { + return &v + }).(ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput) +} + +func (o ScalingPolicyPredictiveScalingCustomizedScalingMetricOutput) MetricDataQueries() ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingCustomizedScalingMetric) []ScalingPolicyPredictiveScalingMetricDataQuery { + return v.MetricDataQueries + }).(ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput) +} + +type ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput struct{ *pulumi.OutputState } + +func (ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ScalingPolicyPredictiveScalingCustomizedScalingMetric)(nil)).Elem() +} + +func (o ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput) ToScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput() ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput) ToScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput) Elem() ScalingPolicyPredictiveScalingCustomizedScalingMetricOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingCustomizedScalingMetric) ScalingPolicyPredictiveScalingCustomizedScalingMetric { + if v != nil { + return *v + } + var ret ScalingPolicyPredictiveScalingCustomizedScalingMetric + return ret + }).(ScalingPolicyPredictiveScalingCustomizedScalingMetricOutput) +} + +func (o ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput) MetricDataQueries() ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingCustomizedScalingMetric) []ScalingPolicyPredictiveScalingMetricDataQuery { + if v == nil { + return nil + } + return v.MetricDataQueries + }).(ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput) +} + +type ScalingPolicyPredictiveScalingMetric struct { + // The dimensions for the metric. + Dimensions []ScalingPolicyPredictiveScalingMetricDimension `pulumi:"dimensions"` + // The name of the metric. + MetricName *string `pulumi:"metricName"` + // The namespace of the metric. + Namespace *string `pulumi:"namespace"` +} + +// ScalingPolicyPredictiveScalingMetricInput is an input type that accepts ScalingPolicyPredictiveScalingMetricArgs and ScalingPolicyPredictiveScalingMetricOutput values. +// You can construct a concrete instance of `ScalingPolicyPredictiveScalingMetricInput` via: +// +// ScalingPolicyPredictiveScalingMetricArgs{...} +type ScalingPolicyPredictiveScalingMetricInput interface { + pulumi.Input + + ToScalingPolicyPredictiveScalingMetricOutput() ScalingPolicyPredictiveScalingMetricOutput + ToScalingPolicyPredictiveScalingMetricOutputWithContext(context.Context) ScalingPolicyPredictiveScalingMetricOutput +} + +type ScalingPolicyPredictiveScalingMetricArgs struct { + // The dimensions for the metric. + Dimensions ScalingPolicyPredictiveScalingMetricDimensionArrayInput `pulumi:"dimensions"` + // The name of the metric. + MetricName pulumi.StringPtrInput `pulumi:"metricName"` + // The namespace of the metric. + Namespace pulumi.StringPtrInput `pulumi:"namespace"` +} + +func (ScalingPolicyPredictiveScalingMetricArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ScalingPolicyPredictiveScalingMetric)(nil)).Elem() +} + +func (i ScalingPolicyPredictiveScalingMetricArgs) ToScalingPolicyPredictiveScalingMetricOutput() ScalingPolicyPredictiveScalingMetricOutput { + return i.ToScalingPolicyPredictiveScalingMetricOutputWithContext(context.Background()) +} + +func (i ScalingPolicyPredictiveScalingMetricArgs) ToScalingPolicyPredictiveScalingMetricOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingMetricOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingMetricOutput) +} + +func (i ScalingPolicyPredictiveScalingMetricArgs) ToScalingPolicyPredictiveScalingMetricPtrOutput() ScalingPolicyPredictiveScalingMetricPtrOutput { + return i.ToScalingPolicyPredictiveScalingMetricPtrOutputWithContext(context.Background()) +} + +func (i ScalingPolicyPredictiveScalingMetricArgs) ToScalingPolicyPredictiveScalingMetricPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingMetricPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingMetricOutput).ToScalingPolicyPredictiveScalingMetricPtrOutputWithContext(ctx) +} + +// ScalingPolicyPredictiveScalingMetricPtrInput is an input type that accepts ScalingPolicyPredictiveScalingMetricArgs, ScalingPolicyPredictiveScalingMetricPtr and ScalingPolicyPredictiveScalingMetricPtrOutput values. +// You can construct a concrete instance of `ScalingPolicyPredictiveScalingMetricPtrInput` via: +// +// ScalingPolicyPredictiveScalingMetricArgs{...} +// +// or: +// +// nil +type ScalingPolicyPredictiveScalingMetricPtrInput interface { + pulumi.Input + + ToScalingPolicyPredictiveScalingMetricPtrOutput() ScalingPolicyPredictiveScalingMetricPtrOutput + ToScalingPolicyPredictiveScalingMetricPtrOutputWithContext(context.Context) ScalingPolicyPredictiveScalingMetricPtrOutput +} + +type scalingPolicyPredictiveScalingMetricPtrType ScalingPolicyPredictiveScalingMetricArgs + +func ScalingPolicyPredictiveScalingMetricPtr(v *ScalingPolicyPredictiveScalingMetricArgs) ScalingPolicyPredictiveScalingMetricPtrInput { + return (*scalingPolicyPredictiveScalingMetricPtrType)(v) +} + +func (*scalingPolicyPredictiveScalingMetricPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ScalingPolicyPredictiveScalingMetric)(nil)).Elem() +} + +func (i *scalingPolicyPredictiveScalingMetricPtrType) ToScalingPolicyPredictiveScalingMetricPtrOutput() ScalingPolicyPredictiveScalingMetricPtrOutput { + return i.ToScalingPolicyPredictiveScalingMetricPtrOutputWithContext(context.Background()) +} + +func (i *scalingPolicyPredictiveScalingMetricPtrType) ToScalingPolicyPredictiveScalingMetricPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingMetricPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingMetricPtrOutput) +} + +type ScalingPolicyPredictiveScalingMetricOutput struct{ *pulumi.OutputState } + +func (ScalingPolicyPredictiveScalingMetricOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ScalingPolicyPredictiveScalingMetric)(nil)).Elem() +} + +func (o ScalingPolicyPredictiveScalingMetricOutput) ToScalingPolicyPredictiveScalingMetricOutput() ScalingPolicyPredictiveScalingMetricOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingMetricOutput) ToScalingPolicyPredictiveScalingMetricOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingMetricOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingMetricOutput) ToScalingPolicyPredictiveScalingMetricPtrOutput() ScalingPolicyPredictiveScalingMetricPtrOutput { + return o.ToScalingPolicyPredictiveScalingMetricPtrOutputWithContext(context.Background()) +} + +func (o ScalingPolicyPredictiveScalingMetricOutput) ToScalingPolicyPredictiveScalingMetricPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingMetricPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ScalingPolicyPredictiveScalingMetric) *ScalingPolicyPredictiveScalingMetric { + return &v + }).(ScalingPolicyPredictiveScalingMetricPtrOutput) +} + +// The dimensions for the metric. +func (o ScalingPolicyPredictiveScalingMetricOutput) Dimensions() ScalingPolicyPredictiveScalingMetricDimensionArrayOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingMetric) []ScalingPolicyPredictiveScalingMetricDimension { + return v.Dimensions + }).(ScalingPolicyPredictiveScalingMetricDimensionArrayOutput) +} + +// The name of the metric. +func (o ScalingPolicyPredictiveScalingMetricOutput) MetricName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingMetric) *string { return v.MetricName }).(pulumi.StringPtrOutput) +} + +// The namespace of the metric. +func (o ScalingPolicyPredictiveScalingMetricOutput) Namespace() pulumi.StringPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingMetric) *string { return v.Namespace }).(pulumi.StringPtrOutput) +} + +type ScalingPolicyPredictiveScalingMetricPtrOutput struct{ *pulumi.OutputState } + +func (ScalingPolicyPredictiveScalingMetricPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ScalingPolicyPredictiveScalingMetric)(nil)).Elem() +} + +func (o ScalingPolicyPredictiveScalingMetricPtrOutput) ToScalingPolicyPredictiveScalingMetricPtrOutput() ScalingPolicyPredictiveScalingMetricPtrOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingMetricPtrOutput) ToScalingPolicyPredictiveScalingMetricPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingMetricPtrOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingMetricPtrOutput) Elem() ScalingPolicyPredictiveScalingMetricOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingMetric) ScalingPolicyPredictiveScalingMetric { + if v != nil { + return *v + } + var ret ScalingPolicyPredictiveScalingMetric + return ret + }).(ScalingPolicyPredictiveScalingMetricOutput) +} + +// The dimensions for the metric. +func (o ScalingPolicyPredictiveScalingMetricPtrOutput) Dimensions() ScalingPolicyPredictiveScalingMetricDimensionArrayOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingMetric) []ScalingPolicyPredictiveScalingMetricDimension { + if v == nil { + return nil + } + return v.Dimensions + }).(ScalingPolicyPredictiveScalingMetricDimensionArrayOutput) +} + +// The name of the metric. +func (o ScalingPolicyPredictiveScalingMetricPtrOutput) MetricName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingMetric) *string { + if v == nil { + return nil + } + return v.MetricName + }).(pulumi.StringPtrOutput) +} + +// The namespace of the metric. +func (o ScalingPolicyPredictiveScalingMetricPtrOutput) Namespace() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingMetric) *string { + if v == nil { + return nil + } + return v.Namespace + }).(pulumi.StringPtrOutput) +} + +type ScalingPolicyPredictiveScalingMetricDataQuery struct { + // The math expression to perform on the returned data, if this object is performing a math expression. + Expression *string `pulumi:"expression"` + // A short name that identifies the object's results in the response. + Id *string `pulumi:"id"` + // A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents. + Label *string `pulumi:"label"` + // Information about the metric data to return. + MetricStat *ScalingPolicyPredictiveScalingMetricStat `pulumi:"metricStat"` + // Indicates whether to return the timestamps and raw data values of this metric. + ReturnData *bool `pulumi:"returnData"` +} + +// ScalingPolicyPredictiveScalingMetricDataQueryInput is an input type that accepts ScalingPolicyPredictiveScalingMetricDataQueryArgs and ScalingPolicyPredictiveScalingMetricDataQueryOutput values. +// You can construct a concrete instance of `ScalingPolicyPredictiveScalingMetricDataQueryInput` via: +// +// ScalingPolicyPredictiveScalingMetricDataQueryArgs{...} +type ScalingPolicyPredictiveScalingMetricDataQueryInput interface { + pulumi.Input + + ToScalingPolicyPredictiveScalingMetricDataQueryOutput() ScalingPolicyPredictiveScalingMetricDataQueryOutput + ToScalingPolicyPredictiveScalingMetricDataQueryOutputWithContext(context.Context) ScalingPolicyPredictiveScalingMetricDataQueryOutput +} + +type ScalingPolicyPredictiveScalingMetricDataQueryArgs struct { + // The math expression to perform on the returned data, if this object is performing a math expression. + Expression pulumi.StringPtrInput `pulumi:"expression"` + // A short name that identifies the object's results in the response. + Id pulumi.StringPtrInput `pulumi:"id"` + // A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents. + Label pulumi.StringPtrInput `pulumi:"label"` + // Information about the metric data to return. + MetricStat ScalingPolicyPredictiveScalingMetricStatPtrInput `pulumi:"metricStat"` + // Indicates whether to return the timestamps and raw data values of this metric. + ReturnData pulumi.BoolPtrInput `pulumi:"returnData"` +} + +func (ScalingPolicyPredictiveScalingMetricDataQueryArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ScalingPolicyPredictiveScalingMetricDataQuery)(nil)).Elem() +} + +func (i ScalingPolicyPredictiveScalingMetricDataQueryArgs) ToScalingPolicyPredictiveScalingMetricDataQueryOutput() ScalingPolicyPredictiveScalingMetricDataQueryOutput { + return i.ToScalingPolicyPredictiveScalingMetricDataQueryOutputWithContext(context.Background()) +} + +func (i ScalingPolicyPredictiveScalingMetricDataQueryArgs) ToScalingPolicyPredictiveScalingMetricDataQueryOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingMetricDataQueryOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingMetricDataQueryOutput) +} + +// ScalingPolicyPredictiveScalingMetricDataQueryArrayInput is an input type that accepts ScalingPolicyPredictiveScalingMetricDataQueryArray and ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput values. +// You can construct a concrete instance of `ScalingPolicyPredictiveScalingMetricDataQueryArrayInput` via: +// +// ScalingPolicyPredictiveScalingMetricDataQueryArray{ ScalingPolicyPredictiveScalingMetricDataQueryArgs{...} } +type ScalingPolicyPredictiveScalingMetricDataQueryArrayInput interface { + pulumi.Input + + ToScalingPolicyPredictiveScalingMetricDataQueryArrayOutput() ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput + ToScalingPolicyPredictiveScalingMetricDataQueryArrayOutputWithContext(context.Context) ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput +} + +type ScalingPolicyPredictiveScalingMetricDataQueryArray []ScalingPolicyPredictiveScalingMetricDataQueryInput + +func (ScalingPolicyPredictiveScalingMetricDataQueryArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ScalingPolicyPredictiveScalingMetricDataQuery)(nil)).Elem() +} + +func (i ScalingPolicyPredictiveScalingMetricDataQueryArray) ToScalingPolicyPredictiveScalingMetricDataQueryArrayOutput() ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput { + return i.ToScalingPolicyPredictiveScalingMetricDataQueryArrayOutputWithContext(context.Background()) +} + +func (i ScalingPolicyPredictiveScalingMetricDataQueryArray) ToScalingPolicyPredictiveScalingMetricDataQueryArrayOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput) +} + +type ScalingPolicyPredictiveScalingMetricDataQueryOutput struct{ *pulumi.OutputState } + +func (ScalingPolicyPredictiveScalingMetricDataQueryOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ScalingPolicyPredictiveScalingMetricDataQuery)(nil)).Elem() +} + +func (o ScalingPolicyPredictiveScalingMetricDataQueryOutput) ToScalingPolicyPredictiveScalingMetricDataQueryOutput() ScalingPolicyPredictiveScalingMetricDataQueryOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingMetricDataQueryOutput) ToScalingPolicyPredictiveScalingMetricDataQueryOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingMetricDataQueryOutput { + return o +} + +// The math expression to perform on the returned data, if this object is performing a math expression. +func (o ScalingPolicyPredictiveScalingMetricDataQueryOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingMetricDataQuery) *string { return v.Expression }).(pulumi.StringPtrOutput) +} + +// A short name that identifies the object's results in the response. +func (o ScalingPolicyPredictiveScalingMetricDataQueryOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingMetricDataQuery) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents. +func (o ScalingPolicyPredictiveScalingMetricDataQueryOutput) Label() pulumi.StringPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingMetricDataQuery) *string { return v.Label }).(pulumi.StringPtrOutput) +} + +// Information about the metric data to return. +func (o ScalingPolicyPredictiveScalingMetricDataQueryOutput) MetricStat() ScalingPolicyPredictiveScalingMetricStatPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingMetricDataQuery) *ScalingPolicyPredictiveScalingMetricStat { + return v.MetricStat + }).(ScalingPolicyPredictiveScalingMetricStatPtrOutput) +} + +// Indicates whether to return the timestamps and raw data values of this metric. +func (o ScalingPolicyPredictiveScalingMetricDataQueryOutput) ReturnData() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingMetricDataQuery) *bool { return v.ReturnData }).(pulumi.BoolPtrOutput) +} + +type ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput struct{ *pulumi.OutputState } + +func (ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ScalingPolicyPredictiveScalingMetricDataQuery)(nil)).Elem() +} + +func (o ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput) ToScalingPolicyPredictiveScalingMetricDataQueryArrayOutput() ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput) ToScalingPolicyPredictiveScalingMetricDataQueryArrayOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput) Index(i pulumi.IntInput) ScalingPolicyPredictiveScalingMetricDataQueryOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ScalingPolicyPredictiveScalingMetricDataQuery { + return vs[0].([]ScalingPolicyPredictiveScalingMetricDataQuery)[vs[1].(int)] + }).(ScalingPolicyPredictiveScalingMetricDataQueryOutput) +} + +type ScalingPolicyPredictiveScalingMetricDimension struct { + // The name of the dimension. + Name *string `pulumi:"name"` + // The value of the dimension. + Value *string `pulumi:"value"` +} + +// ScalingPolicyPredictiveScalingMetricDimensionInput is an input type that accepts ScalingPolicyPredictiveScalingMetricDimensionArgs and ScalingPolicyPredictiveScalingMetricDimensionOutput values. +// You can construct a concrete instance of `ScalingPolicyPredictiveScalingMetricDimensionInput` via: +// +// ScalingPolicyPredictiveScalingMetricDimensionArgs{...} +type ScalingPolicyPredictiveScalingMetricDimensionInput interface { + pulumi.Input + + ToScalingPolicyPredictiveScalingMetricDimensionOutput() ScalingPolicyPredictiveScalingMetricDimensionOutput + ToScalingPolicyPredictiveScalingMetricDimensionOutputWithContext(context.Context) ScalingPolicyPredictiveScalingMetricDimensionOutput +} + +type ScalingPolicyPredictiveScalingMetricDimensionArgs struct { + // The name of the dimension. + Name pulumi.StringPtrInput `pulumi:"name"` + // The value of the dimension. + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (ScalingPolicyPredictiveScalingMetricDimensionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ScalingPolicyPredictiveScalingMetricDimension)(nil)).Elem() +} + +func (i ScalingPolicyPredictiveScalingMetricDimensionArgs) ToScalingPolicyPredictiveScalingMetricDimensionOutput() ScalingPolicyPredictiveScalingMetricDimensionOutput { + return i.ToScalingPolicyPredictiveScalingMetricDimensionOutputWithContext(context.Background()) +} + +func (i ScalingPolicyPredictiveScalingMetricDimensionArgs) ToScalingPolicyPredictiveScalingMetricDimensionOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingMetricDimensionOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingMetricDimensionOutput) +} + +// ScalingPolicyPredictiveScalingMetricDimensionArrayInput is an input type that accepts ScalingPolicyPredictiveScalingMetricDimensionArray and ScalingPolicyPredictiveScalingMetricDimensionArrayOutput values. +// You can construct a concrete instance of `ScalingPolicyPredictiveScalingMetricDimensionArrayInput` via: +// +// ScalingPolicyPredictiveScalingMetricDimensionArray{ ScalingPolicyPredictiveScalingMetricDimensionArgs{...} } +type ScalingPolicyPredictiveScalingMetricDimensionArrayInput interface { + pulumi.Input + + ToScalingPolicyPredictiveScalingMetricDimensionArrayOutput() ScalingPolicyPredictiveScalingMetricDimensionArrayOutput + ToScalingPolicyPredictiveScalingMetricDimensionArrayOutputWithContext(context.Context) ScalingPolicyPredictiveScalingMetricDimensionArrayOutput +} + +type ScalingPolicyPredictiveScalingMetricDimensionArray []ScalingPolicyPredictiveScalingMetricDimensionInput + +func (ScalingPolicyPredictiveScalingMetricDimensionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ScalingPolicyPredictiveScalingMetricDimension)(nil)).Elem() +} + +func (i ScalingPolicyPredictiveScalingMetricDimensionArray) ToScalingPolicyPredictiveScalingMetricDimensionArrayOutput() ScalingPolicyPredictiveScalingMetricDimensionArrayOutput { + return i.ToScalingPolicyPredictiveScalingMetricDimensionArrayOutputWithContext(context.Background()) +} + +func (i ScalingPolicyPredictiveScalingMetricDimensionArray) ToScalingPolicyPredictiveScalingMetricDimensionArrayOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingMetricDimensionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingMetricDimensionArrayOutput) +} + +type ScalingPolicyPredictiveScalingMetricDimensionOutput struct{ *pulumi.OutputState } + +func (ScalingPolicyPredictiveScalingMetricDimensionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ScalingPolicyPredictiveScalingMetricDimension)(nil)).Elem() +} + +func (o ScalingPolicyPredictiveScalingMetricDimensionOutput) ToScalingPolicyPredictiveScalingMetricDimensionOutput() ScalingPolicyPredictiveScalingMetricDimensionOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingMetricDimensionOutput) ToScalingPolicyPredictiveScalingMetricDimensionOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingMetricDimensionOutput { + return o +} + +// The name of the dimension. +func (o ScalingPolicyPredictiveScalingMetricDimensionOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingMetricDimension) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// The value of the dimension. +func (o ScalingPolicyPredictiveScalingMetricDimensionOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingMetricDimension) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type ScalingPolicyPredictiveScalingMetricDimensionArrayOutput struct{ *pulumi.OutputState } + +func (ScalingPolicyPredictiveScalingMetricDimensionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ScalingPolicyPredictiveScalingMetricDimension)(nil)).Elem() +} + +func (o ScalingPolicyPredictiveScalingMetricDimensionArrayOutput) ToScalingPolicyPredictiveScalingMetricDimensionArrayOutput() ScalingPolicyPredictiveScalingMetricDimensionArrayOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingMetricDimensionArrayOutput) ToScalingPolicyPredictiveScalingMetricDimensionArrayOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingMetricDimensionArrayOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingMetricDimensionArrayOutput) Index(i pulumi.IntInput) ScalingPolicyPredictiveScalingMetricDimensionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ScalingPolicyPredictiveScalingMetricDimension { + return vs[0].([]ScalingPolicyPredictiveScalingMetricDimension)[vs[1].(int)] + }).(ScalingPolicyPredictiveScalingMetricDimensionOutput) +} + +type ScalingPolicyPredictiveScalingMetricSpecification struct { + CustomizedCapacityMetricSpecification *ScalingPolicyPredictiveScalingCustomizedCapacityMetric `pulumi:"customizedCapacityMetricSpecification"` + CustomizedLoadMetricSpecification *ScalingPolicyPredictiveScalingCustomizedLoadMetric `pulumi:"customizedLoadMetricSpecification"` + CustomizedScalingMetricSpecification *ScalingPolicyPredictiveScalingCustomizedScalingMetric `pulumi:"customizedScalingMetricSpecification"` + PredefinedLoadMetricSpecification *ScalingPolicyPredictiveScalingPredefinedLoadMetric `pulumi:"predefinedLoadMetricSpecification"` + PredefinedMetricPairSpecification *ScalingPolicyPredictiveScalingPredefinedMetricPair `pulumi:"predefinedMetricPairSpecification"` + PredefinedScalingMetricSpecification *ScalingPolicyPredictiveScalingPredefinedScalingMetric `pulumi:"predefinedScalingMetricSpecification"` + TargetValue float64 `pulumi:"targetValue"` +} + +// ScalingPolicyPredictiveScalingMetricSpecificationInput is an input type that accepts ScalingPolicyPredictiveScalingMetricSpecificationArgs and ScalingPolicyPredictiveScalingMetricSpecificationOutput values. +// You can construct a concrete instance of `ScalingPolicyPredictiveScalingMetricSpecificationInput` via: +// +// ScalingPolicyPredictiveScalingMetricSpecificationArgs{...} +type ScalingPolicyPredictiveScalingMetricSpecificationInput interface { + pulumi.Input + + ToScalingPolicyPredictiveScalingMetricSpecificationOutput() ScalingPolicyPredictiveScalingMetricSpecificationOutput + ToScalingPolicyPredictiveScalingMetricSpecificationOutputWithContext(context.Context) ScalingPolicyPredictiveScalingMetricSpecificationOutput +} + +type ScalingPolicyPredictiveScalingMetricSpecificationArgs struct { + CustomizedCapacityMetricSpecification ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrInput `pulumi:"customizedCapacityMetricSpecification"` + CustomizedLoadMetricSpecification ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrInput `pulumi:"customizedLoadMetricSpecification"` + CustomizedScalingMetricSpecification ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrInput `pulumi:"customizedScalingMetricSpecification"` + PredefinedLoadMetricSpecification ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrInput `pulumi:"predefinedLoadMetricSpecification"` + PredefinedMetricPairSpecification ScalingPolicyPredictiveScalingPredefinedMetricPairPtrInput `pulumi:"predefinedMetricPairSpecification"` + PredefinedScalingMetricSpecification ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrInput `pulumi:"predefinedScalingMetricSpecification"` + TargetValue pulumi.Float64Input `pulumi:"targetValue"` +} + +func (ScalingPolicyPredictiveScalingMetricSpecificationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ScalingPolicyPredictiveScalingMetricSpecification)(nil)).Elem() +} + +func (i ScalingPolicyPredictiveScalingMetricSpecificationArgs) ToScalingPolicyPredictiveScalingMetricSpecificationOutput() ScalingPolicyPredictiveScalingMetricSpecificationOutput { + return i.ToScalingPolicyPredictiveScalingMetricSpecificationOutputWithContext(context.Background()) +} + +func (i ScalingPolicyPredictiveScalingMetricSpecificationArgs) ToScalingPolicyPredictiveScalingMetricSpecificationOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingMetricSpecificationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingMetricSpecificationOutput) +} + +// ScalingPolicyPredictiveScalingMetricSpecificationArrayInput is an input type that accepts ScalingPolicyPredictiveScalingMetricSpecificationArray and ScalingPolicyPredictiveScalingMetricSpecificationArrayOutput values. +// You can construct a concrete instance of `ScalingPolicyPredictiveScalingMetricSpecificationArrayInput` via: +// +// ScalingPolicyPredictiveScalingMetricSpecificationArray{ ScalingPolicyPredictiveScalingMetricSpecificationArgs{...} } +type ScalingPolicyPredictiveScalingMetricSpecificationArrayInput interface { + pulumi.Input + + ToScalingPolicyPredictiveScalingMetricSpecificationArrayOutput() ScalingPolicyPredictiveScalingMetricSpecificationArrayOutput + ToScalingPolicyPredictiveScalingMetricSpecificationArrayOutputWithContext(context.Context) ScalingPolicyPredictiveScalingMetricSpecificationArrayOutput +} + +type ScalingPolicyPredictiveScalingMetricSpecificationArray []ScalingPolicyPredictiveScalingMetricSpecificationInput + +func (ScalingPolicyPredictiveScalingMetricSpecificationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ScalingPolicyPredictiveScalingMetricSpecification)(nil)).Elem() +} + +func (i ScalingPolicyPredictiveScalingMetricSpecificationArray) ToScalingPolicyPredictiveScalingMetricSpecificationArrayOutput() ScalingPolicyPredictiveScalingMetricSpecificationArrayOutput { + return i.ToScalingPolicyPredictiveScalingMetricSpecificationArrayOutputWithContext(context.Background()) +} + +func (i ScalingPolicyPredictiveScalingMetricSpecificationArray) ToScalingPolicyPredictiveScalingMetricSpecificationArrayOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingMetricSpecificationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingMetricSpecificationArrayOutput) +} + +type ScalingPolicyPredictiveScalingMetricSpecificationOutput struct{ *pulumi.OutputState } + +func (ScalingPolicyPredictiveScalingMetricSpecificationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ScalingPolicyPredictiveScalingMetricSpecification)(nil)).Elem() +} + +func (o ScalingPolicyPredictiveScalingMetricSpecificationOutput) ToScalingPolicyPredictiveScalingMetricSpecificationOutput() ScalingPolicyPredictiveScalingMetricSpecificationOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingMetricSpecificationOutput) ToScalingPolicyPredictiveScalingMetricSpecificationOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingMetricSpecificationOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingMetricSpecificationOutput) CustomizedCapacityMetricSpecification() ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingMetricSpecification) *ScalingPolicyPredictiveScalingCustomizedCapacityMetric { + return v.CustomizedCapacityMetricSpecification + }).(ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput) +} + +func (o ScalingPolicyPredictiveScalingMetricSpecificationOutput) CustomizedLoadMetricSpecification() ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingMetricSpecification) *ScalingPolicyPredictiveScalingCustomizedLoadMetric { + return v.CustomizedLoadMetricSpecification + }).(ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput) +} + +func (o ScalingPolicyPredictiveScalingMetricSpecificationOutput) CustomizedScalingMetricSpecification() ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingMetricSpecification) *ScalingPolicyPredictiveScalingCustomizedScalingMetric { + return v.CustomizedScalingMetricSpecification + }).(ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput) +} + +func (o ScalingPolicyPredictiveScalingMetricSpecificationOutput) PredefinedLoadMetricSpecification() ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingMetricSpecification) *ScalingPolicyPredictiveScalingPredefinedLoadMetric { + return v.PredefinedLoadMetricSpecification + }).(ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput) +} + +func (o ScalingPolicyPredictiveScalingMetricSpecificationOutput) PredefinedMetricPairSpecification() ScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingMetricSpecification) *ScalingPolicyPredictiveScalingPredefinedMetricPair { + return v.PredefinedMetricPairSpecification + }).(ScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput) +} + +func (o ScalingPolicyPredictiveScalingMetricSpecificationOutput) PredefinedScalingMetricSpecification() ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingMetricSpecification) *ScalingPolicyPredictiveScalingPredefinedScalingMetric { + return v.PredefinedScalingMetricSpecification + }).(ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput) +} + +func (o ScalingPolicyPredictiveScalingMetricSpecificationOutput) TargetValue() pulumi.Float64Output { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingMetricSpecification) float64 { return v.TargetValue }).(pulumi.Float64Output) +} + +type ScalingPolicyPredictiveScalingMetricSpecificationArrayOutput struct{ *pulumi.OutputState } + +func (ScalingPolicyPredictiveScalingMetricSpecificationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ScalingPolicyPredictiveScalingMetricSpecification)(nil)).Elem() +} + +func (o ScalingPolicyPredictiveScalingMetricSpecificationArrayOutput) ToScalingPolicyPredictiveScalingMetricSpecificationArrayOutput() ScalingPolicyPredictiveScalingMetricSpecificationArrayOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingMetricSpecificationArrayOutput) ToScalingPolicyPredictiveScalingMetricSpecificationArrayOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingMetricSpecificationArrayOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingMetricSpecificationArrayOutput) Index(i pulumi.IntInput) ScalingPolicyPredictiveScalingMetricSpecificationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ScalingPolicyPredictiveScalingMetricSpecification { + return vs[0].([]ScalingPolicyPredictiveScalingMetricSpecification)[vs[1].(int)] + }).(ScalingPolicyPredictiveScalingMetricSpecificationOutput) +} + +type ScalingPolicyPredictiveScalingMetricStat struct { + // The CloudWatch metric to return, including the metric name, namespace, and dimensions. + Metric *ScalingPolicyPredictiveScalingMetric `pulumi:"metric"` + // The statistic to return. It can include any CloudWatch statistic or extended statistic. + Stat *string `pulumi:"stat"` + // The unit to use for the returned data points. + Unit *string `pulumi:"unit"` +} + +// ScalingPolicyPredictiveScalingMetricStatInput is an input type that accepts ScalingPolicyPredictiveScalingMetricStatArgs and ScalingPolicyPredictiveScalingMetricStatOutput values. +// You can construct a concrete instance of `ScalingPolicyPredictiveScalingMetricStatInput` via: +// +// ScalingPolicyPredictiveScalingMetricStatArgs{...} +type ScalingPolicyPredictiveScalingMetricStatInput interface { + pulumi.Input + + ToScalingPolicyPredictiveScalingMetricStatOutput() ScalingPolicyPredictiveScalingMetricStatOutput + ToScalingPolicyPredictiveScalingMetricStatOutputWithContext(context.Context) ScalingPolicyPredictiveScalingMetricStatOutput +} + +type ScalingPolicyPredictiveScalingMetricStatArgs struct { + // The CloudWatch metric to return, including the metric name, namespace, and dimensions. + Metric ScalingPolicyPredictiveScalingMetricPtrInput `pulumi:"metric"` + // The statistic to return. It can include any CloudWatch statistic or extended statistic. + Stat pulumi.StringPtrInput `pulumi:"stat"` + // The unit to use for the returned data points. + Unit pulumi.StringPtrInput `pulumi:"unit"` +} + +func (ScalingPolicyPredictiveScalingMetricStatArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ScalingPolicyPredictiveScalingMetricStat)(nil)).Elem() +} + +func (i ScalingPolicyPredictiveScalingMetricStatArgs) ToScalingPolicyPredictiveScalingMetricStatOutput() ScalingPolicyPredictiveScalingMetricStatOutput { + return i.ToScalingPolicyPredictiveScalingMetricStatOutputWithContext(context.Background()) +} + +func (i ScalingPolicyPredictiveScalingMetricStatArgs) ToScalingPolicyPredictiveScalingMetricStatOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingMetricStatOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingMetricStatOutput) +} + +func (i ScalingPolicyPredictiveScalingMetricStatArgs) ToScalingPolicyPredictiveScalingMetricStatPtrOutput() ScalingPolicyPredictiveScalingMetricStatPtrOutput { + return i.ToScalingPolicyPredictiveScalingMetricStatPtrOutputWithContext(context.Background()) +} + +func (i ScalingPolicyPredictiveScalingMetricStatArgs) ToScalingPolicyPredictiveScalingMetricStatPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingMetricStatPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingMetricStatOutput).ToScalingPolicyPredictiveScalingMetricStatPtrOutputWithContext(ctx) +} + +// ScalingPolicyPredictiveScalingMetricStatPtrInput is an input type that accepts ScalingPolicyPredictiveScalingMetricStatArgs, ScalingPolicyPredictiveScalingMetricStatPtr and ScalingPolicyPredictiveScalingMetricStatPtrOutput values. +// You can construct a concrete instance of `ScalingPolicyPredictiveScalingMetricStatPtrInput` via: +// +// ScalingPolicyPredictiveScalingMetricStatArgs{...} +// +// or: +// +// nil +type ScalingPolicyPredictiveScalingMetricStatPtrInput interface { + pulumi.Input + + ToScalingPolicyPredictiveScalingMetricStatPtrOutput() ScalingPolicyPredictiveScalingMetricStatPtrOutput + ToScalingPolicyPredictiveScalingMetricStatPtrOutputWithContext(context.Context) ScalingPolicyPredictiveScalingMetricStatPtrOutput +} + +type scalingPolicyPredictiveScalingMetricStatPtrType ScalingPolicyPredictiveScalingMetricStatArgs + +func ScalingPolicyPredictiveScalingMetricStatPtr(v *ScalingPolicyPredictiveScalingMetricStatArgs) ScalingPolicyPredictiveScalingMetricStatPtrInput { + return (*scalingPolicyPredictiveScalingMetricStatPtrType)(v) +} + +func (*scalingPolicyPredictiveScalingMetricStatPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ScalingPolicyPredictiveScalingMetricStat)(nil)).Elem() +} + +func (i *scalingPolicyPredictiveScalingMetricStatPtrType) ToScalingPolicyPredictiveScalingMetricStatPtrOutput() ScalingPolicyPredictiveScalingMetricStatPtrOutput { + return i.ToScalingPolicyPredictiveScalingMetricStatPtrOutputWithContext(context.Background()) +} + +func (i *scalingPolicyPredictiveScalingMetricStatPtrType) ToScalingPolicyPredictiveScalingMetricStatPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingMetricStatPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingMetricStatPtrOutput) +} + +type ScalingPolicyPredictiveScalingMetricStatOutput struct{ *pulumi.OutputState } + +func (ScalingPolicyPredictiveScalingMetricStatOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ScalingPolicyPredictiveScalingMetricStat)(nil)).Elem() +} + +func (o ScalingPolicyPredictiveScalingMetricStatOutput) ToScalingPolicyPredictiveScalingMetricStatOutput() ScalingPolicyPredictiveScalingMetricStatOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingMetricStatOutput) ToScalingPolicyPredictiveScalingMetricStatOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingMetricStatOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingMetricStatOutput) ToScalingPolicyPredictiveScalingMetricStatPtrOutput() ScalingPolicyPredictiveScalingMetricStatPtrOutput { + return o.ToScalingPolicyPredictiveScalingMetricStatPtrOutputWithContext(context.Background()) +} + +func (o ScalingPolicyPredictiveScalingMetricStatOutput) ToScalingPolicyPredictiveScalingMetricStatPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingMetricStatPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ScalingPolicyPredictiveScalingMetricStat) *ScalingPolicyPredictiveScalingMetricStat { + return &v + }).(ScalingPolicyPredictiveScalingMetricStatPtrOutput) +} + +// The CloudWatch metric to return, including the metric name, namespace, and dimensions. +func (o ScalingPolicyPredictiveScalingMetricStatOutput) Metric() ScalingPolicyPredictiveScalingMetricPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingMetricStat) *ScalingPolicyPredictiveScalingMetric { + return v.Metric + }).(ScalingPolicyPredictiveScalingMetricPtrOutput) +} + +// The statistic to return. It can include any CloudWatch statistic or extended statistic. +func (o ScalingPolicyPredictiveScalingMetricStatOutput) Stat() pulumi.StringPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingMetricStat) *string { return v.Stat }).(pulumi.StringPtrOutput) +} + +// The unit to use for the returned data points. +func (o ScalingPolicyPredictiveScalingMetricStatOutput) Unit() pulumi.StringPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingMetricStat) *string { return v.Unit }).(pulumi.StringPtrOutput) +} + +type ScalingPolicyPredictiveScalingMetricStatPtrOutput struct{ *pulumi.OutputState } + +func (ScalingPolicyPredictiveScalingMetricStatPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ScalingPolicyPredictiveScalingMetricStat)(nil)).Elem() +} + +func (o ScalingPolicyPredictiveScalingMetricStatPtrOutput) ToScalingPolicyPredictiveScalingMetricStatPtrOutput() ScalingPolicyPredictiveScalingMetricStatPtrOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingMetricStatPtrOutput) ToScalingPolicyPredictiveScalingMetricStatPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingMetricStatPtrOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingMetricStatPtrOutput) Elem() ScalingPolicyPredictiveScalingMetricStatOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingMetricStat) ScalingPolicyPredictiveScalingMetricStat { + if v != nil { + return *v + } + var ret ScalingPolicyPredictiveScalingMetricStat + return ret + }).(ScalingPolicyPredictiveScalingMetricStatOutput) +} + +// The CloudWatch metric to return, including the metric name, namespace, and dimensions. +func (o ScalingPolicyPredictiveScalingMetricStatPtrOutput) Metric() ScalingPolicyPredictiveScalingMetricPtrOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingMetricStat) *ScalingPolicyPredictiveScalingMetric { + if v == nil { + return nil + } + return v.Metric + }).(ScalingPolicyPredictiveScalingMetricPtrOutput) +} + +// The statistic to return. It can include any CloudWatch statistic or extended statistic. +func (o ScalingPolicyPredictiveScalingMetricStatPtrOutput) Stat() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingMetricStat) *string { + if v == nil { + return nil + } + return v.Stat + }).(pulumi.StringPtrOutput) +} + +// The unit to use for the returned data points. +func (o ScalingPolicyPredictiveScalingMetricStatPtrOutput) Unit() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingMetricStat) *string { + if v == nil { + return nil + } + return v.Unit + }).(pulumi.StringPtrOutput) +} + +type ScalingPolicyPredictiveScalingPolicyConfiguration struct { + MaxCapacityBreachBehavior *string `pulumi:"maxCapacityBreachBehavior"` + MaxCapacityBuffer *int `pulumi:"maxCapacityBuffer"` + MetricSpecifications []ScalingPolicyPredictiveScalingMetricSpecification `pulumi:"metricSpecifications"` + Mode *string `pulumi:"mode"` + SchedulingBufferTime *int `pulumi:"schedulingBufferTime"` +} + +// ScalingPolicyPredictiveScalingPolicyConfigurationInput is an input type that accepts ScalingPolicyPredictiveScalingPolicyConfigurationArgs and ScalingPolicyPredictiveScalingPolicyConfigurationOutput values. +// You can construct a concrete instance of `ScalingPolicyPredictiveScalingPolicyConfigurationInput` via: +// +// ScalingPolicyPredictiveScalingPolicyConfigurationArgs{...} +type ScalingPolicyPredictiveScalingPolicyConfigurationInput interface { + pulumi.Input + + ToScalingPolicyPredictiveScalingPolicyConfigurationOutput() ScalingPolicyPredictiveScalingPolicyConfigurationOutput + ToScalingPolicyPredictiveScalingPolicyConfigurationOutputWithContext(context.Context) ScalingPolicyPredictiveScalingPolicyConfigurationOutput +} + +type ScalingPolicyPredictiveScalingPolicyConfigurationArgs struct { + MaxCapacityBreachBehavior pulumi.StringPtrInput `pulumi:"maxCapacityBreachBehavior"` + MaxCapacityBuffer pulumi.IntPtrInput `pulumi:"maxCapacityBuffer"` + MetricSpecifications ScalingPolicyPredictiveScalingMetricSpecificationArrayInput `pulumi:"metricSpecifications"` + Mode pulumi.StringPtrInput `pulumi:"mode"` + SchedulingBufferTime pulumi.IntPtrInput `pulumi:"schedulingBufferTime"` +} + +func (ScalingPolicyPredictiveScalingPolicyConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ScalingPolicyPredictiveScalingPolicyConfiguration)(nil)).Elem() +} + +func (i ScalingPolicyPredictiveScalingPolicyConfigurationArgs) ToScalingPolicyPredictiveScalingPolicyConfigurationOutput() ScalingPolicyPredictiveScalingPolicyConfigurationOutput { + return i.ToScalingPolicyPredictiveScalingPolicyConfigurationOutputWithContext(context.Background()) +} + +func (i ScalingPolicyPredictiveScalingPolicyConfigurationArgs) ToScalingPolicyPredictiveScalingPolicyConfigurationOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingPolicyConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingPolicyConfigurationOutput) +} + +func (i ScalingPolicyPredictiveScalingPolicyConfigurationArgs) ToScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput() ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput { + return i.ToScalingPolicyPredictiveScalingPolicyConfigurationPtrOutputWithContext(context.Background()) +} + +func (i ScalingPolicyPredictiveScalingPolicyConfigurationArgs) ToScalingPolicyPredictiveScalingPolicyConfigurationPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingPolicyConfigurationOutput).ToScalingPolicyPredictiveScalingPolicyConfigurationPtrOutputWithContext(ctx) +} + +// ScalingPolicyPredictiveScalingPolicyConfigurationPtrInput is an input type that accepts ScalingPolicyPredictiveScalingPolicyConfigurationArgs, ScalingPolicyPredictiveScalingPolicyConfigurationPtr and ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput values. +// You can construct a concrete instance of `ScalingPolicyPredictiveScalingPolicyConfigurationPtrInput` via: +// +// ScalingPolicyPredictiveScalingPolicyConfigurationArgs{...} +// +// or: +// +// nil +type ScalingPolicyPredictiveScalingPolicyConfigurationPtrInput interface { + pulumi.Input + + ToScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput() ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput + ToScalingPolicyPredictiveScalingPolicyConfigurationPtrOutputWithContext(context.Context) ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput +} + +type scalingPolicyPredictiveScalingPolicyConfigurationPtrType ScalingPolicyPredictiveScalingPolicyConfigurationArgs + +func ScalingPolicyPredictiveScalingPolicyConfigurationPtr(v *ScalingPolicyPredictiveScalingPolicyConfigurationArgs) ScalingPolicyPredictiveScalingPolicyConfigurationPtrInput { + return (*scalingPolicyPredictiveScalingPolicyConfigurationPtrType)(v) +} + +func (*scalingPolicyPredictiveScalingPolicyConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ScalingPolicyPredictiveScalingPolicyConfiguration)(nil)).Elem() +} + +func (i *scalingPolicyPredictiveScalingPolicyConfigurationPtrType) ToScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput() ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput { + return i.ToScalingPolicyPredictiveScalingPolicyConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *scalingPolicyPredictiveScalingPolicyConfigurationPtrType) ToScalingPolicyPredictiveScalingPolicyConfigurationPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput) +} + +type ScalingPolicyPredictiveScalingPolicyConfigurationOutput struct{ *pulumi.OutputState } + +func (ScalingPolicyPredictiveScalingPolicyConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ScalingPolicyPredictiveScalingPolicyConfiguration)(nil)).Elem() +} + +func (o ScalingPolicyPredictiveScalingPolicyConfigurationOutput) ToScalingPolicyPredictiveScalingPolicyConfigurationOutput() ScalingPolicyPredictiveScalingPolicyConfigurationOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingPolicyConfigurationOutput) ToScalingPolicyPredictiveScalingPolicyConfigurationOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingPolicyConfigurationOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingPolicyConfigurationOutput) ToScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput() ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput { + return o.ToScalingPolicyPredictiveScalingPolicyConfigurationPtrOutputWithContext(context.Background()) +} + +func (o ScalingPolicyPredictiveScalingPolicyConfigurationOutput) ToScalingPolicyPredictiveScalingPolicyConfigurationPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ScalingPolicyPredictiveScalingPolicyConfiguration) *ScalingPolicyPredictiveScalingPolicyConfiguration { + return &v + }).(ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput) +} + +func (o ScalingPolicyPredictiveScalingPolicyConfigurationOutput) MaxCapacityBreachBehavior() pulumi.StringPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingPolicyConfiguration) *string { return v.MaxCapacityBreachBehavior }).(pulumi.StringPtrOutput) +} + +func (o ScalingPolicyPredictiveScalingPolicyConfigurationOutput) MaxCapacityBuffer() pulumi.IntPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingPolicyConfiguration) *int { return v.MaxCapacityBuffer }).(pulumi.IntPtrOutput) +} + +func (o ScalingPolicyPredictiveScalingPolicyConfigurationOutput) MetricSpecifications() ScalingPolicyPredictiveScalingMetricSpecificationArrayOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingPolicyConfiguration) []ScalingPolicyPredictiveScalingMetricSpecification { + return v.MetricSpecifications + }).(ScalingPolicyPredictiveScalingMetricSpecificationArrayOutput) +} + +func (o ScalingPolicyPredictiveScalingPolicyConfigurationOutput) Mode() pulumi.StringPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingPolicyConfiguration) *string { return v.Mode }).(pulumi.StringPtrOutput) +} + +func (o ScalingPolicyPredictiveScalingPolicyConfigurationOutput) SchedulingBufferTime() pulumi.IntPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingPolicyConfiguration) *int { return v.SchedulingBufferTime }).(pulumi.IntPtrOutput) +} + +type ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ScalingPolicyPredictiveScalingPolicyConfiguration)(nil)).Elem() +} + +func (o ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput) ToScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput() ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput) ToScalingPolicyPredictiveScalingPolicyConfigurationPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput) Elem() ScalingPolicyPredictiveScalingPolicyConfigurationOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingPolicyConfiguration) ScalingPolicyPredictiveScalingPolicyConfiguration { + if v != nil { + return *v + } + var ret ScalingPolicyPredictiveScalingPolicyConfiguration + return ret + }).(ScalingPolicyPredictiveScalingPolicyConfigurationOutput) +} + +func (o ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput) MaxCapacityBreachBehavior() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingPolicyConfiguration) *string { + if v == nil { + return nil + } + return v.MaxCapacityBreachBehavior + }).(pulumi.StringPtrOutput) +} + +func (o ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput) MaxCapacityBuffer() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingPolicyConfiguration) *int { + if v == nil { + return nil + } + return v.MaxCapacityBuffer + }).(pulumi.IntPtrOutput) +} + +func (o ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput) MetricSpecifications() ScalingPolicyPredictiveScalingMetricSpecificationArrayOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingPolicyConfiguration) []ScalingPolicyPredictiveScalingMetricSpecification { + if v == nil { + return nil + } + return v.MetricSpecifications + }).(ScalingPolicyPredictiveScalingMetricSpecificationArrayOutput) +} + +func (o ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput) Mode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingPolicyConfiguration) *string { + if v == nil { + return nil + } + return v.Mode + }).(pulumi.StringPtrOutput) +} + +func (o ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput) SchedulingBufferTime() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingPolicyConfiguration) *int { + if v == nil { + return nil + } + return v.SchedulingBufferTime + }).(pulumi.IntPtrOutput) +} + +type ScalingPolicyPredictiveScalingPredefinedLoadMetric struct { + PredefinedMetricType string `pulumi:"predefinedMetricType"` + ResourceLabel *string `pulumi:"resourceLabel"` +} + +// ScalingPolicyPredictiveScalingPredefinedLoadMetricInput is an input type that accepts ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs and ScalingPolicyPredictiveScalingPredefinedLoadMetricOutput values. +// You can construct a concrete instance of `ScalingPolicyPredictiveScalingPredefinedLoadMetricInput` via: +// +// ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs{...} +type ScalingPolicyPredictiveScalingPredefinedLoadMetricInput interface { + pulumi.Input + + ToScalingPolicyPredictiveScalingPredefinedLoadMetricOutput() ScalingPolicyPredictiveScalingPredefinedLoadMetricOutput + ToScalingPolicyPredictiveScalingPredefinedLoadMetricOutputWithContext(context.Context) ScalingPolicyPredictiveScalingPredefinedLoadMetricOutput +} + +type ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs struct { + PredefinedMetricType pulumi.StringInput `pulumi:"predefinedMetricType"` + ResourceLabel pulumi.StringPtrInput `pulumi:"resourceLabel"` +} + +func (ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ScalingPolicyPredictiveScalingPredefinedLoadMetric)(nil)).Elem() +} + +func (i ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs) ToScalingPolicyPredictiveScalingPredefinedLoadMetricOutput() ScalingPolicyPredictiveScalingPredefinedLoadMetricOutput { + return i.ToScalingPolicyPredictiveScalingPredefinedLoadMetricOutputWithContext(context.Background()) +} + +func (i ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs) ToScalingPolicyPredictiveScalingPredefinedLoadMetricOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingPredefinedLoadMetricOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingPredefinedLoadMetricOutput) +} + +func (i ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs) ToScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput() ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput { + return i.ToScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutputWithContext(context.Background()) +} + +func (i ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs) ToScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingPredefinedLoadMetricOutput).ToScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutputWithContext(ctx) +} + +// ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrInput is an input type that accepts ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs, ScalingPolicyPredictiveScalingPredefinedLoadMetricPtr and ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput values. +// You can construct a concrete instance of `ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrInput` via: +// +// ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs{...} +// +// or: +// +// nil +type ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrInput interface { + pulumi.Input + + ToScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput() ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput + ToScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutputWithContext(context.Context) ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput +} + +type scalingPolicyPredictiveScalingPredefinedLoadMetricPtrType ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs + +func ScalingPolicyPredictiveScalingPredefinedLoadMetricPtr(v *ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs) ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrInput { + return (*scalingPolicyPredictiveScalingPredefinedLoadMetricPtrType)(v) +} + +func (*scalingPolicyPredictiveScalingPredefinedLoadMetricPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ScalingPolicyPredictiveScalingPredefinedLoadMetric)(nil)).Elem() +} + +func (i *scalingPolicyPredictiveScalingPredefinedLoadMetricPtrType) ToScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput() ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput { + return i.ToScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutputWithContext(context.Background()) +} + +func (i *scalingPolicyPredictiveScalingPredefinedLoadMetricPtrType) ToScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput) +} + +type ScalingPolicyPredictiveScalingPredefinedLoadMetricOutput struct{ *pulumi.OutputState } + +func (ScalingPolicyPredictiveScalingPredefinedLoadMetricOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ScalingPolicyPredictiveScalingPredefinedLoadMetric)(nil)).Elem() +} + +func (o ScalingPolicyPredictiveScalingPredefinedLoadMetricOutput) ToScalingPolicyPredictiveScalingPredefinedLoadMetricOutput() ScalingPolicyPredictiveScalingPredefinedLoadMetricOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingPredefinedLoadMetricOutput) ToScalingPolicyPredictiveScalingPredefinedLoadMetricOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingPredefinedLoadMetricOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingPredefinedLoadMetricOutput) ToScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput() ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput { + return o.ToScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutputWithContext(context.Background()) +} + +func (o ScalingPolicyPredictiveScalingPredefinedLoadMetricOutput) ToScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ScalingPolicyPredictiveScalingPredefinedLoadMetric) *ScalingPolicyPredictiveScalingPredefinedLoadMetric { + return &v + }).(ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput) +} + +func (o ScalingPolicyPredictiveScalingPredefinedLoadMetricOutput) PredefinedMetricType() pulumi.StringOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingPredefinedLoadMetric) string { return v.PredefinedMetricType }).(pulumi.StringOutput) +} + +func (o ScalingPolicyPredictiveScalingPredefinedLoadMetricOutput) ResourceLabel() pulumi.StringPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingPredefinedLoadMetric) *string { return v.ResourceLabel }).(pulumi.StringPtrOutput) +} + +type ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput struct{ *pulumi.OutputState } + +func (ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ScalingPolicyPredictiveScalingPredefinedLoadMetric)(nil)).Elem() +} + +func (o ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput) ToScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput() ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput) ToScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput) Elem() ScalingPolicyPredictiveScalingPredefinedLoadMetricOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingPredefinedLoadMetric) ScalingPolicyPredictiveScalingPredefinedLoadMetric { + if v != nil { + return *v + } + var ret ScalingPolicyPredictiveScalingPredefinedLoadMetric + return ret + }).(ScalingPolicyPredictiveScalingPredefinedLoadMetricOutput) +} + +func (o ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput) PredefinedMetricType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingPredefinedLoadMetric) *string { + if v == nil { + return nil + } + return &v.PredefinedMetricType + }).(pulumi.StringPtrOutput) +} + +func (o ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput) ResourceLabel() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingPredefinedLoadMetric) *string { + if v == nil { + return nil + } + return v.ResourceLabel + }).(pulumi.StringPtrOutput) +} + +type ScalingPolicyPredictiveScalingPredefinedMetricPair struct { + PredefinedMetricType string `pulumi:"predefinedMetricType"` + ResourceLabel *string `pulumi:"resourceLabel"` +} + +// ScalingPolicyPredictiveScalingPredefinedMetricPairInput is an input type that accepts ScalingPolicyPredictiveScalingPredefinedMetricPairArgs and ScalingPolicyPredictiveScalingPredefinedMetricPairOutput values. +// You can construct a concrete instance of `ScalingPolicyPredictiveScalingPredefinedMetricPairInput` via: +// +// ScalingPolicyPredictiveScalingPredefinedMetricPairArgs{...} +type ScalingPolicyPredictiveScalingPredefinedMetricPairInput interface { + pulumi.Input + + ToScalingPolicyPredictiveScalingPredefinedMetricPairOutput() ScalingPolicyPredictiveScalingPredefinedMetricPairOutput + ToScalingPolicyPredictiveScalingPredefinedMetricPairOutputWithContext(context.Context) ScalingPolicyPredictiveScalingPredefinedMetricPairOutput +} + +type ScalingPolicyPredictiveScalingPredefinedMetricPairArgs struct { + PredefinedMetricType pulumi.StringInput `pulumi:"predefinedMetricType"` + ResourceLabel pulumi.StringPtrInput `pulumi:"resourceLabel"` +} + +func (ScalingPolicyPredictiveScalingPredefinedMetricPairArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ScalingPolicyPredictiveScalingPredefinedMetricPair)(nil)).Elem() +} + +func (i ScalingPolicyPredictiveScalingPredefinedMetricPairArgs) ToScalingPolicyPredictiveScalingPredefinedMetricPairOutput() ScalingPolicyPredictiveScalingPredefinedMetricPairOutput { + return i.ToScalingPolicyPredictiveScalingPredefinedMetricPairOutputWithContext(context.Background()) +} + +func (i ScalingPolicyPredictiveScalingPredefinedMetricPairArgs) ToScalingPolicyPredictiveScalingPredefinedMetricPairOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingPredefinedMetricPairOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingPredefinedMetricPairOutput) +} + +func (i ScalingPolicyPredictiveScalingPredefinedMetricPairArgs) ToScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput() ScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput { + return i.ToScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutputWithContext(context.Background()) +} + +func (i ScalingPolicyPredictiveScalingPredefinedMetricPairArgs) ToScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingPredefinedMetricPairOutput).ToScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutputWithContext(ctx) +} + +// ScalingPolicyPredictiveScalingPredefinedMetricPairPtrInput is an input type that accepts ScalingPolicyPredictiveScalingPredefinedMetricPairArgs, ScalingPolicyPredictiveScalingPredefinedMetricPairPtr and ScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput values. +// You can construct a concrete instance of `ScalingPolicyPredictiveScalingPredefinedMetricPairPtrInput` via: +// +// ScalingPolicyPredictiveScalingPredefinedMetricPairArgs{...} +// +// or: +// +// nil +type ScalingPolicyPredictiveScalingPredefinedMetricPairPtrInput interface { + pulumi.Input + + ToScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput() ScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput + ToScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutputWithContext(context.Context) ScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput +} + +type scalingPolicyPredictiveScalingPredefinedMetricPairPtrType ScalingPolicyPredictiveScalingPredefinedMetricPairArgs + +func ScalingPolicyPredictiveScalingPredefinedMetricPairPtr(v *ScalingPolicyPredictiveScalingPredefinedMetricPairArgs) ScalingPolicyPredictiveScalingPredefinedMetricPairPtrInput { + return (*scalingPolicyPredictiveScalingPredefinedMetricPairPtrType)(v) +} + +func (*scalingPolicyPredictiveScalingPredefinedMetricPairPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ScalingPolicyPredictiveScalingPredefinedMetricPair)(nil)).Elem() +} + +func (i *scalingPolicyPredictiveScalingPredefinedMetricPairPtrType) ToScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput() ScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput { + return i.ToScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutputWithContext(context.Background()) +} + +func (i *scalingPolicyPredictiveScalingPredefinedMetricPairPtrType) ToScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput) +} + +type ScalingPolicyPredictiveScalingPredefinedMetricPairOutput struct{ *pulumi.OutputState } + +func (ScalingPolicyPredictiveScalingPredefinedMetricPairOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ScalingPolicyPredictiveScalingPredefinedMetricPair)(nil)).Elem() +} + +func (o ScalingPolicyPredictiveScalingPredefinedMetricPairOutput) ToScalingPolicyPredictiveScalingPredefinedMetricPairOutput() ScalingPolicyPredictiveScalingPredefinedMetricPairOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingPredefinedMetricPairOutput) ToScalingPolicyPredictiveScalingPredefinedMetricPairOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingPredefinedMetricPairOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingPredefinedMetricPairOutput) ToScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput() ScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput { + return o.ToScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutputWithContext(context.Background()) +} + +func (o ScalingPolicyPredictiveScalingPredefinedMetricPairOutput) ToScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ScalingPolicyPredictiveScalingPredefinedMetricPair) *ScalingPolicyPredictiveScalingPredefinedMetricPair { + return &v + }).(ScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput) +} + +func (o ScalingPolicyPredictiveScalingPredefinedMetricPairOutput) PredefinedMetricType() pulumi.StringOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingPredefinedMetricPair) string { return v.PredefinedMetricType }).(pulumi.StringOutput) +} + +func (o ScalingPolicyPredictiveScalingPredefinedMetricPairOutput) ResourceLabel() pulumi.StringPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingPredefinedMetricPair) *string { return v.ResourceLabel }).(pulumi.StringPtrOutput) +} + +type ScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput struct{ *pulumi.OutputState } + +func (ScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ScalingPolicyPredictiveScalingPredefinedMetricPair)(nil)).Elem() +} + +func (o ScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput) ToScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput() ScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput) ToScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput) Elem() ScalingPolicyPredictiveScalingPredefinedMetricPairOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingPredefinedMetricPair) ScalingPolicyPredictiveScalingPredefinedMetricPair { + if v != nil { + return *v + } + var ret ScalingPolicyPredictiveScalingPredefinedMetricPair + return ret + }).(ScalingPolicyPredictiveScalingPredefinedMetricPairOutput) +} + +func (o ScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput) PredefinedMetricType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingPredefinedMetricPair) *string { + if v == nil { + return nil + } + return &v.PredefinedMetricType + }).(pulumi.StringPtrOutput) +} + +func (o ScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput) ResourceLabel() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingPredefinedMetricPair) *string { + if v == nil { + return nil + } + return v.ResourceLabel + }).(pulumi.StringPtrOutput) +} + +type ScalingPolicyPredictiveScalingPredefinedScalingMetric struct { + PredefinedMetricType string `pulumi:"predefinedMetricType"` + ResourceLabel *string `pulumi:"resourceLabel"` +} + +// ScalingPolicyPredictiveScalingPredefinedScalingMetricInput is an input type that accepts ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs and ScalingPolicyPredictiveScalingPredefinedScalingMetricOutput values. +// You can construct a concrete instance of `ScalingPolicyPredictiveScalingPredefinedScalingMetricInput` via: +// +// ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs{...} +type ScalingPolicyPredictiveScalingPredefinedScalingMetricInput interface { + pulumi.Input + + ToScalingPolicyPredictiveScalingPredefinedScalingMetricOutput() ScalingPolicyPredictiveScalingPredefinedScalingMetricOutput + ToScalingPolicyPredictiveScalingPredefinedScalingMetricOutputWithContext(context.Context) ScalingPolicyPredictiveScalingPredefinedScalingMetricOutput +} + +type ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs struct { + PredefinedMetricType pulumi.StringInput `pulumi:"predefinedMetricType"` + ResourceLabel pulumi.StringPtrInput `pulumi:"resourceLabel"` +} + +func (ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ScalingPolicyPredictiveScalingPredefinedScalingMetric)(nil)).Elem() +} + +func (i ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs) ToScalingPolicyPredictiveScalingPredefinedScalingMetricOutput() ScalingPolicyPredictiveScalingPredefinedScalingMetricOutput { + return i.ToScalingPolicyPredictiveScalingPredefinedScalingMetricOutputWithContext(context.Background()) +} + +func (i ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs) ToScalingPolicyPredictiveScalingPredefinedScalingMetricOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingPredefinedScalingMetricOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingPredefinedScalingMetricOutput) +} + +func (i ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs) ToScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput() ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput { + return i.ToScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutputWithContext(context.Background()) +} + +func (i ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs) ToScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingPredefinedScalingMetricOutput).ToScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutputWithContext(ctx) +} + +// ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrInput is an input type that accepts ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs, ScalingPolicyPredictiveScalingPredefinedScalingMetricPtr and ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput values. +// You can construct a concrete instance of `ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrInput` via: +// +// ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs{...} +// +// or: +// +// nil +type ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrInput interface { + pulumi.Input + + ToScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput() ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput + ToScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutputWithContext(context.Context) ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput +} + +type scalingPolicyPredictiveScalingPredefinedScalingMetricPtrType ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs + +func ScalingPolicyPredictiveScalingPredefinedScalingMetricPtr(v *ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs) ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrInput { + return (*scalingPolicyPredictiveScalingPredefinedScalingMetricPtrType)(v) +} + +func (*scalingPolicyPredictiveScalingPredefinedScalingMetricPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ScalingPolicyPredictiveScalingPredefinedScalingMetric)(nil)).Elem() +} + +func (i *scalingPolicyPredictiveScalingPredefinedScalingMetricPtrType) ToScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput() ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput { + return i.ToScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutputWithContext(context.Background()) +} + +func (i *scalingPolicyPredictiveScalingPredefinedScalingMetricPtrType) ToScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput) +} + +type ScalingPolicyPredictiveScalingPredefinedScalingMetricOutput struct{ *pulumi.OutputState } + +func (ScalingPolicyPredictiveScalingPredefinedScalingMetricOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ScalingPolicyPredictiveScalingPredefinedScalingMetric)(nil)).Elem() +} + +func (o ScalingPolicyPredictiveScalingPredefinedScalingMetricOutput) ToScalingPolicyPredictiveScalingPredefinedScalingMetricOutput() ScalingPolicyPredictiveScalingPredefinedScalingMetricOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingPredefinedScalingMetricOutput) ToScalingPolicyPredictiveScalingPredefinedScalingMetricOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingPredefinedScalingMetricOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingPredefinedScalingMetricOutput) ToScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput() ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput { + return o.ToScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutputWithContext(context.Background()) +} + +func (o ScalingPolicyPredictiveScalingPredefinedScalingMetricOutput) ToScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ScalingPolicyPredictiveScalingPredefinedScalingMetric) *ScalingPolicyPredictiveScalingPredefinedScalingMetric { + return &v + }).(ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput) +} + +func (o ScalingPolicyPredictiveScalingPredefinedScalingMetricOutput) PredefinedMetricType() pulumi.StringOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingPredefinedScalingMetric) string { return v.PredefinedMetricType }).(pulumi.StringOutput) +} + +func (o ScalingPolicyPredictiveScalingPredefinedScalingMetricOutput) ResourceLabel() pulumi.StringPtrOutput { + return o.ApplyT(func(v ScalingPolicyPredictiveScalingPredefinedScalingMetric) *string { return v.ResourceLabel }).(pulumi.StringPtrOutput) +} + +type ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput struct{ *pulumi.OutputState } + +func (ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ScalingPolicyPredictiveScalingPredefinedScalingMetric)(nil)).Elem() +} + +func (o ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput) ToScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput() ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput) ToScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutputWithContext(ctx context.Context) ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput { + return o +} + +func (o ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput) Elem() ScalingPolicyPredictiveScalingPredefinedScalingMetricOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingPredefinedScalingMetric) ScalingPolicyPredictiveScalingPredefinedScalingMetric { + if v != nil { + return *v + } + var ret ScalingPolicyPredictiveScalingPredefinedScalingMetric + return ret + }).(ScalingPolicyPredictiveScalingPredefinedScalingMetricOutput) +} + +func (o ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput) PredefinedMetricType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingPredefinedScalingMetric) *string { + if v == nil { + return nil + } + return &v.PredefinedMetricType + }).(pulumi.StringPtrOutput) +} + +func (o ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput) ResourceLabel() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ScalingPolicyPredictiveScalingPredefinedScalingMetric) *string { + if v == nil { + return nil + } + return v.ResourceLabel + }).(pulumi.StringPtrOutput) +} + // “StepAdjustment“ specifies a step adjustment for the “StepAdjustments“ property of the [AWS::ApplicationAutoScaling::ScalingPolicy StepScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html) property type. // // For the following examples, suppose that you have an alarm with a breach threshold of 50: @@ -2402,6 +4183,30 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyMetricDimensionArrayInput)(nil)).Elem(), ScalingPolicyMetricDimensionArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredefinedMetricSpecificationInput)(nil)).Elem(), ScalingPolicyPredefinedMetricSpecificationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredefinedMetricSpecificationPtrInput)(nil)).Elem(), ScalingPolicyPredefinedMetricSpecificationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredictiveScalingCustomizedCapacityMetricInput)(nil)).Elem(), ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrInput)(nil)).Elem(), ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredictiveScalingCustomizedLoadMetricInput)(nil)).Elem(), ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrInput)(nil)).Elem(), ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredictiveScalingCustomizedScalingMetricInput)(nil)).Elem(), ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrInput)(nil)).Elem(), ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredictiveScalingMetricInput)(nil)).Elem(), ScalingPolicyPredictiveScalingMetricArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredictiveScalingMetricPtrInput)(nil)).Elem(), ScalingPolicyPredictiveScalingMetricArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredictiveScalingMetricDataQueryInput)(nil)).Elem(), ScalingPolicyPredictiveScalingMetricDataQueryArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredictiveScalingMetricDataQueryArrayInput)(nil)).Elem(), ScalingPolicyPredictiveScalingMetricDataQueryArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredictiveScalingMetricDimensionInput)(nil)).Elem(), ScalingPolicyPredictiveScalingMetricDimensionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredictiveScalingMetricDimensionArrayInput)(nil)).Elem(), ScalingPolicyPredictiveScalingMetricDimensionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredictiveScalingMetricSpecificationInput)(nil)).Elem(), ScalingPolicyPredictiveScalingMetricSpecificationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredictiveScalingMetricSpecificationArrayInput)(nil)).Elem(), ScalingPolicyPredictiveScalingMetricSpecificationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredictiveScalingMetricStatInput)(nil)).Elem(), ScalingPolicyPredictiveScalingMetricStatArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredictiveScalingMetricStatPtrInput)(nil)).Elem(), ScalingPolicyPredictiveScalingMetricStatArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredictiveScalingPolicyConfigurationInput)(nil)).Elem(), ScalingPolicyPredictiveScalingPolicyConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredictiveScalingPolicyConfigurationPtrInput)(nil)).Elem(), ScalingPolicyPredictiveScalingPolicyConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredictiveScalingPredefinedLoadMetricInput)(nil)).Elem(), ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrInput)(nil)).Elem(), ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredictiveScalingPredefinedMetricPairInput)(nil)).Elem(), ScalingPolicyPredictiveScalingPredefinedMetricPairArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredictiveScalingPredefinedMetricPairPtrInput)(nil)).Elem(), ScalingPolicyPredictiveScalingPredefinedMetricPairArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredictiveScalingPredefinedScalingMetricInput)(nil)).Elem(), ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrInput)(nil)).Elem(), ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyStepAdjustmentInput)(nil)).Elem(), ScalingPolicyStepAdjustmentArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyStepAdjustmentArrayInput)(nil)).Elem(), ScalingPolicyStepAdjustmentArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ScalingPolicyStepScalingPolicyConfigurationInput)(nil)).Elem(), ScalingPolicyStepScalingPolicyConfigurationArgs{}) @@ -2428,6 +4233,30 @@ func init() { pulumi.RegisterOutputType(ScalingPolicyMetricDimensionArrayOutput{}) pulumi.RegisterOutputType(ScalingPolicyPredefinedMetricSpecificationOutput{}) pulumi.RegisterOutputType(ScalingPolicyPredefinedMetricSpecificationPtrOutput{}) + pulumi.RegisterOutputType(ScalingPolicyPredictiveScalingCustomizedCapacityMetricOutput{}) + pulumi.RegisterOutputType(ScalingPolicyPredictiveScalingCustomizedCapacityMetricPtrOutput{}) + pulumi.RegisterOutputType(ScalingPolicyPredictiveScalingCustomizedLoadMetricOutput{}) + pulumi.RegisterOutputType(ScalingPolicyPredictiveScalingCustomizedLoadMetricPtrOutput{}) + pulumi.RegisterOutputType(ScalingPolicyPredictiveScalingCustomizedScalingMetricOutput{}) + pulumi.RegisterOutputType(ScalingPolicyPredictiveScalingCustomizedScalingMetricPtrOutput{}) + pulumi.RegisterOutputType(ScalingPolicyPredictiveScalingMetricOutput{}) + pulumi.RegisterOutputType(ScalingPolicyPredictiveScalingMetricPtrOutput{}) + pulumi.RegisterOutputType(ScalingPolicyPredictiveScalingMetricDataQueryOutput{}) + pulumi.RegisterOutputType(ScalingPolicyPredictiveScalingMetricDataQueryArrayOutput{}) + pulumi.RegisterOutputType(ScalingPolicyPredictiveScalingMetricDimensionOutput{}) + pulumi.RegisterOutputType(ScalingPolicyPredictiveScalingMetricDimensionArrayOutput{}) + pulumi.RegisterOutputType(ScalingPolicyPredictiveScalingMetricSpecificationOutput{}) + pulumi.RegisterOutputType(ScalingPolicyPredictiveScalingMetricSpecificationArrayOutput{}) + pulumi.RegisterOutputType(ScalingPolicyPredictiveScalingMetricStatOutput{}) + pulumi.RegisterOutputType(ScalingPolicyPredictiveScalingMetricStatPtrOutput{}) + pulumi.RegisterOutputType(ScalingPolicyPredictiveScalingPolicyConfigurationOutput{}) + pulumi.RegisterOutputType(ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput{}) + pulumi.RegisterOutputType(ScalingPolicyPredictiveScalingPredefinedLoadMetricOutput{}) + pulumi.RegisterOutputType(ScalingPolicyPredictiveScalingPredefinedLoadMetricPtrOutput{}) + pulumi.RegisterOutputType(ScalingPolicyPredictiveScalingPredefinedMetricPairOutput{}) + pulumi.RegisterOutputType(ScalingPolicyPredictiveScalingPredefinedMetricPairPtrOutput{}) + pulumi.RegisterOutputType(ScalingPolicyPredictiveScalingPredefinedScalingMetricOutput{}) + pulumi.RegisterOutputType(ScalingPolicyPredictiveScalingPredefinedScalingMetricPtrOutput{}) pulumi.RegisterOutputType(ScalingPolicyStepAdjustmentOutput{}) pulumi.RegisterOutputType(ScalingPolicyStepAdjustmentArrayOutput{}) pulumi.RegisterOutputType(ScalingPolicyStepScalingPolicyConfigurationOutput{}) diff --git a/sdk/go/aws/applicationautoscaling/scalingPolicy.go b/sdk/go/aws/applicationautoscaling/scalingPolicy.go index 10c99c9708..bb3dd86391 100644 --- a/sdk/go/aws/applicationautoscaling/scalingPolicy.go +++ b/sdk/go/aws/applicationautoscaling/scalingPolicy.go @@ -27,7 +27,8 @@ type ScalingPolicy struct { // The following policy types are supported: // ``TargetTrackingScaling``—Not supported for Amazon EMR // ``StepScaling``—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune. - PolicyType pulumi.StringOutput `pulumi:"policyType"` + PolicyType pulumi.StringOutput `pulumi:"policyType"` + PredictiveScalingPolicyConfiguration ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput `pulumi:"predictiveScalingPolicyConfiguration"` // The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. // + ECS service - The resource type is ``service`` and the unique identifier is the cluster name and service name. Example: ``service/my-cluster/my-service``. // + Spot Fleet - The resource type is ``spot-fleet-request`` and the unique identifier is the Spot Fleet request ID. Example: ``spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE``. @@ -143,7 +144,8 @@ type scalingPolicyArgs struct { // The following policy types are supported: // ``TargetTrackingScaling``—Not supported for Amazon EMR // ``StepScaling``—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune. - PolicyType string `pulumi:"policyType"` + PolicyType string `pulumi:"policyType"` + PredictiveScalingPolicyConfiguration *ScalingPolicyPredictiveScalingPolicyConfiguration `pulumi:"predictiveScalingPolicyConfiguration"` // The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. // + ECS service - The resource type is ``service`` and the unique identifier is the cluster name and service name. Example: ``service/my-cluster/my-service``. // + Spot Fleet - The resource type is ``spot-fleet-request`` and the unique identifier is the Spot Fleet request ID. Example: ``spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE``. @@ -210,7 +212,8 @@ type ScalingPolicyArgs struct { // The following policy types are supported: // ``TargetTrackingScaling``—Not supported for Amazon EMR // ``StepScaling``—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune. - PolicyType pulumi.StringInput + PolicyType pulumi.StringInput + PredictiveScalingPolicyConfiguration ScalingPolicyPredictiveScalingPolicyConfigurationPtrInput // The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. // + ECS service - The resource type is ``service`` and the unique identifier is the cluster name and service name. Example: ``service/my-cluster/my-service``. // + Spot Fleet - The resource type is ``spot-fleet-request`` and the unique identifier is the Spot Fleet request ID. Example: ``spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE``. @@ -326,6 +329,12 @@ func (o ScalingPolicyOutput) PolicyType() pulumi.StringOutput { return o.ApplyT(func(v *ScalingPolicy) pulumi.StringOutput { return v.PolicyType }).(pulumi.StringOutput) } +func (o ScalingPolicyOutput) PredictiveScalingPolicyConfiguration() ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput { + return o.ApplyT(func(v *ScalingPolicy) ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput { + return v.PredictiveScalingPolicyConfiguration + }).(ScalingPolicyPredictiveScalingPolicyConfigurationPtrOutput) +} + // The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. // - ECS service - The resource type is “service“ and the unique identifier is the cluster name and service name. Example: “service/my-cluster/my-service“. // - Spot Fleet - The resource type is “spot-fleet-request“ and the unique identifier is the Spot Fleet request ID. Example: “spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE“. diff --git a/sdk/go/aws/applicationsignals/getServiceLevelObjective.go b/sdk/go/aws/applicationsignals/getServiceLevelObjective.go index ceb1530a35..7596aaeebb 100644 --- a/sdk/go/aws/applicationsignals/getServiceLevelObjective.go +++ b/sdk/go/aws/applicationsignals/getServiceLevelObjective.go @@ -30,7 +30,8 @@ type LookupServiceLevelObjectiveArgs struct { type LookupServiceLevelObjectiveResult struct { // The ARN of this SLO. - Arn *string `pulumi:"arn"` + Arn *string `pulumi:"arn"` + BurnRateConfigurations []ServiceLevelObjectiveBurnRateConfiguration `pulumi:"burnRateConfigurations"` // Epoch time in seconds of the time that this SLO was created CreatedTime *int `pulumi:"createdTime"` // An optional description for this SLO. Default is 'No description' @@ -98,6 +99,12 @@ func (o LookupServiceLevelObjectiveResultOutput) Arn() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupServiceLevelObjectiveResult) *string { return v.Arn }).(pulumi.StringPtrOutput) } +func (o LookupServiceLevelObjectiveResultOutput) BurnRateConfigurations() ServiceLevelObjectiveBurnRateConfigurationArrayOutput { + return o.ApplyT(func(v LookupServiceLevelObjectiveResult) []ServiceLevelObjectiveBurnRateConfiguration { + return v.BurnRateConfigurations + }).(ServiceLevelObjectiveBurnRateConfigurationArrayOutput) +} + // Epoch time in seconds of the time that this SLO was created func (o LookupServiceLevelObjectiveResultOutput) CreatedTime() pulumi.IntPtrOutput { return o.ApplyT(func(v LookupServiceLevelObjectiveResult) *int { return v.CreatedTime }).(pulumi.IntPtrOutput) diff --git a/sdk/go/aws/applicationsignals/pulumiTypes.go b/sdk/go/aws/applicationsignals/pulumiTypes.go index 8a15992be0..b306eb0b78 100644 --- a/sdk/go/aws/applicationsignals/pulumiTypes.go +++ b/sdk/go/aws/applicationsignals/pulumiTypes.go @@ -13,6 +13,112 @@ import ( var _ = internal.GetEnvOrDefault +// This object defines the length of the look-back window used to calculate one burn rate metric for this SLO. The burn rate measures how fast the service is consuming the error budget, relative to the attainment goal of the SLO. A burn rate of exactly 1 indicates that the SLO goal will be met exactly. +// For example, if you specify 60 as the number of minutes in the look-back window, the burn rate is calculated as the following: +// burn rate = error rate over the look-back window / (1 - attainment goal percentage) +type ServiceLevelObjectiveBurnRateConfiguration struct { + // The number of minutes to use as the look-back window. + LookBackWindowMinutes int `pulumi:"lookBackWindowMinutes"` +} + +// ServiceLevelObjectiveBurnRateConfigurationInput is an input type that accepts ServiceLevelObjectiveBurnRateConfigurationArgs and ServiceLevelObjectiveBurnRateConfigurationOutput values. +// You can construct a concrete instance of `ServiceLevelObjectiveBurnRateConfigurationInput` via: +// +// ServiceLevelObjectiveBurnRateConfigurationArgs{...} +type ServiceLevelObjectiveBurnRateConfigurationInput interface { + pulumi.Input + + ToServiceLevelObjectiveBurnRateConfigurationOutput() ServiceLevelObjectiveBurnRateConfigurationOutput + ToServiceLevelObjectiveBurnRateConfigurationOutputWithContext(context.Context) ServiceLevelObjectiveBurnRateConfigurationOutput +} + +// This object defines the length of the look-back window used to calculate one burn rate metric for this SLO. The burn rate measures how fast the service is consuming the error budget, relative to the attainment goal of the SLO. A burn rate of exactly 1 indicates that the SLO goal will be met exactly. +// For example, if you specify 60 as the number of minutes in the look-back window, the burn rate is calculated as the following: +// burn rate = error rate over the look-back window / (1 - attainment goal percentage) +type ServiceLevelObjectiveBurnRateConfigurationArgs struct { + // The number of minutes to use as the look-back window. + LookBackWindowMinutes pulumi.IntInput `pulumi:"lookBackWindowMinutes"` +} + +func (ServiceLevelObjectiveBurnRateConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceLevelObjectiveBurnRateConfiguration)(nil)).Elem() +} + +func (i ServiceLevelObjectiveBurnRateConfigurationArgs) ToServiceLevelObjectiveBurnRateConfigurationOutput() ServiceLevelObjectiveBurnRateConfigurationOutput { + return i.ToServiceLevelObjectiveBurnRateConfigurationOutputWithContext(context.Background()) +} + +func (i ServiceLevelObjectiveBurnRateConfigurationArgs) ToServiceLevelObjectiveBurnRateConfigurationOutputWithContext(ctx context.Context) ServiceLevelObjectiveBurnRateConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceLevelObjectiveBurnRateConfigurationOutput) +} + +// ServiceLevelObjectiveBurnRateConfigurationArrayInput is an input type that accepts ServiceLevelObjectiveBurnRateConfigurationArray and ServiceLevelObjectiveBurnRateConfigurationArrayOutput values. +// You can construct a concrete instance of `ServiceLevelObjectiveBurnRateConfigurationArrayInput` via: +// +// ServiceLevelObjectiveBurnRateConfigurationArray{ ServiceLevelObjectiveBurnRateConfigurationArgs{...} } +type ServiceLevelObjectiveBurnRateConfigurationArrayInput interface { + pulumi.Input + + ToServiceLevelObjectiveBurnRateConfigurationArrayOutput() ServiceLevelObjectiveBurnRateConfigurationArrayOutput + ToServiceLevelObjectiveBurnRateConfigurationArrayOutputWithContext(context.Context) ServiceLevelObjectiveBurnRateConfigurationArrayOutput +} + +type ServiceLevelObjectiveBurnRateConfigurationArray []ServiceLevelObjectiveBurnRateConfigurationInput + +func (ServiceLevelObjectiveBurnRateConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceLevelObjectiveBurnRateConfiguration)(nil)).Elem() +} + +func (i ServiceLevelObjectiveBurnRateConfigurationArray) ToServiceLevelObjectiveBurnRateConfigurationArrayOutput() ServiceLevelObjectiveBurnRateConfigurationArrayOutput { + return i.ToServiceLevelObjectiveBurnRateConfigurationArrayOutputWithContext(context.Background()) +} + +func (i ServiceLevelObjectiveBurnRateConfigurationArray) ToServiceLevelObjectiveBurnRateConfigurationArrayOutputWithContext(ctx context.Context) ServiceLevelObjectiveBurnRateConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceLevelObjectiveBurnRateConfigurationArrayOutput) +} + +// This object defines the length of the look-back window used to calculate one burn rate metric for this SLO. The burn rate measures how fast the service is consuming the error budget, relative to the attainment goal of the SLO. A burn rate of exactly 1 indicates that the SLO goal will be met exactly. +// For example, if you specify 60 as the number of minutes in the look-back window, the burn rate is calculated as the following: +// burn rate = error rate over the look-back window / (1 - attainment goal percentage) +type ServiceLevelObjectiveBurnRateConfigurationOutput struct{ *pulumi.OutputState } + +func (ServiceLevelObjectiveBurnRateConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceLevelObjectiveBurnRateConfiguration)(nil)).Elem() +} + +func (o ServiceLevelObjectiveBurnRateConfigurationOutput) ToServiceLevelObjectiveBurnRateConfigurationOutput() ServiceLevelObjectiveBurnRateConfigurationOutput { + return o +} + +func (o ServiceLevelObjectiveBurnRateConfigurationOutput) ToServiceLevelObjectiveBurnRateConfigurationOutputWithContext(ctx context.Context) ServiceLevelObjectiveBurnRateConfigurationOutput { + return o +} + +// The number of minutes to use as the look-back window. +func (o ServiceLevelObjectiveBurnRateConfigurationOutput) LookBackWindowMinutes() pulumi.IntOutput { + return o.ApplyT(func(v ServiceLevelObjectiveBurnRateConfiguration) int { return v.LookBackWindowMinutes }).(pulumi.IntOutput) +} + +type ServiceLevelObjectiveBurnRateConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (ServiceLevelObjectiveBurnRateConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceLevelObjectiveBurnRateConfiguration)(nil)).Elem() +} + +func (o ServiceLevelObjectiveBurnRateConfigurationArrayOutput) ToServiceLevelObjectiveBurnRateConfigurationArrayOutput() ServiceLevelObjectiveBurnRateConfigurationArrayOutput { + return o +} + +func (o ServiceLevelObjectiveBurnRateConfigurationArrayOutput) ToServiceLevelObjectiveBurnRateConfigurationArrayOutputWithContext(ctx context.Context) ServiceLevelObjectiveBurnRateConfigurationArrayOutput { + return o +} + +func (o ServiceLevelObjectiveBurnRateConfigurationArrayOutput) Index(i pulumi.IntInput) ServiceLevelObjectiveBurnRateConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceLevelObjectiveBurnRateConfiguration { + return vs[0].([]ServiceLevelObjectiveBurnRateConfiguration)[vs[1].(int)] + }).(ServiceLevelObjectiveBurnRateConfigurationOutput) +} + // If the interval for this service level objective is a calendar interval, this structure contains the interval specifications. type ServiceLevelObjectiveCalendarInterval struct { // Specifies the duration of each calendar interval. For example, if `Duration` is `1` and `DurationUnit` is `MONTH` , each interval is one month, aligned with the calendar. @@ -2375,6 +2481,8 @@ type ServiceLevelObjectiveTag struct { } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ServiceLevelObjectiveBurnRateConfigurationInput)(nil)).Elem(), ServiceLevelObjectiveBurnRateConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceLevelObjectiveBurnRateConfigurationArrayInput)(nil)).Elem(), ServiceLevelObjectiveBurnRateConfigurationArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ServiceLevelObjectiveCalendarIntervalInput)(nil)).Elem(), ServiceLevelObjectiveCalendarIntervalArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServiceLevelObjectiveCalendarIntervalPtrInput)(nil)).Elem(), ServiceLevelObjectiveCalendarIntervalArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServiceLevelObjectiveDimensionInput)(nil)).Elem(), ServiceLevelObjectiveDimensionArgs{}) @@ -2401,6 +2509,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ServiceLevelObjectiveSliPtrInput)(nil)).Elem(), ServiceLevelObjectiveSliArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServiceLevelObjectiveSliMetricInput)(nil)).Elem(), ServiceLevelObjectiveSliMetricArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServiceLevelObjectiveSliMetricPtrInput)(nil)).Elem(), ServiceLevelObjectiveSliMetricArgs{}) + pulumi.RegisterOutputType(ServiceLevelObjectiveBurnRateConfigurationOutput{}) + pulumi.RegisterOutputType(ServiceLevelObjectiveBurnRateConfigurationArrayOutput{}) pulumi.RegisterOutputType(ServiceLevelObjectiveCalendarIntervalOutput{}) pulumi.RegisterOutputType(ServiceLevelObjectiveCalendarIntervalPtrOutput{}) pulumi.RegisterOutputType(ServiceLevelObjectiveDimensionOutput{}) diff --git a/sdk/go/aws/applicationsignals/serviceLevelObjective.go b/sdk/go/aws/applicationsignals/serviceLevelObjective.go index a95041b198..4938613aa0 100644 --- a/sdk/go/aws/applicationsignals/serviceLevelObjective.go +++ b/sdk/go/aws/applicationsignals/serviceLevelObjective.go @@ -17,7 +17,8 @@ type ServiceLevelObjective struct { pulumi.CustomResourceState // The ARN of this SLO. - Arn pulumi.StringOutput `pulumi:"arn"` + Arn pulumi.StringOutput `pulumi:"arn"` + BurnRateConfigurations ServiceLevelObjectiveBurnRateConfigurationArrayOutput `pulumi:"burnRateConfigurations"` // Epoch time in seconds of the time that this SLO was created CreatedTime pulumi.IntOutput `pulumi:"createdTime"` // An optional description for this SLO. Default is 'No description' @@ -84,6 +85,7 @@ func (ServiceLevelObjectiveState) ElementType() reflect.Type { } type serviceLevelObjectiveArgs struct { + BurnRateConfigurations []ServiceLevelObjectiveBurnRateConfiguration `pulumi:"burnRateConfigurations"` // An optional description for this SLO. Default is 'No description' Description *string `pulumi:"description"` // This structure contains the attributes that determine the goal of an SLO. This includes the time period for evaluation and the attainment threshold. @@ -102,6 +104,7 @@ type serviceLevelObjectiveArgs struct { // The set of arguments for constructing a ServiceLevelObjective resource. type ServiceLevelObjectiveArgs struct { + BurnRateConfigurations ServiceLevelObjectiveBurnRateConfigurationArrayInput // An optional description for this SLO. Default is 'No description' Description pulumi.StringPtrInput // This structure contains the attributes that determine the goal of an SLO. This includes the time period for evaluation and the attainment threshold. @@ -160,6 +163,12 @@ func (o ServiceLevelObjectiveOutput) Arn() pulumi.StringOutput { return o.ApplyT(func(v *ServiceLevelObjective) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) } +func (o ServiceLevelObjectiveOutput) BurnRateConfigurations() ServiceLevelObjectiveBurnRateConfigurationArrayOutput { + return o.ApplyT(func(v *ServiceLevelObjective) ServiceLevelObjectiveBurnRateConfigurationArrayOutput { + return v.BurnRateConfigurations + }).(ServiceLevelObjectiveBurnRateConfigurationArrayOutput) +} + // Epoch time in seconds of the time that this SLO was created func (o ServiceLevelObjectiveOutput) CreatedTime() pulumi.IntOutput { return o.ApplyT(func(v *ServiceLevelObjective) pulumi.IntOutput { return v.CreatedTime }).(pulumi.IntOutput) diff --git a/sdk/go/aws/autoscaling/autoScalingGroup.go b/sdk/go/aws/autoscaling/autoScalingGroup.go index 836775ff28..0077c2ff64 100644 --- a/sdk/go/aws/autoscaling/autoScalingGroup.go +++ b/sdk/go/aws/autoscaling/autoScalingGroup.go @@ -25,7 +25,8 @@ type AutoScalingGroup struct { // You cannot use a colon (:) in the name. AutoScalingGroupName pulumi.StringPtrOutput `pulumi:"autoScalingGroupName"` // The instance capacity distribution across Availability Zones. - AvailabilityZoneDistribution AutoScalingGroupAvailabilityZoneDistributionPtrOutput `pulumi:"availabilityZoneDistribution"` + AvailabilityZoneDistribution AutoScalingGroupAvailabilityZoneDistributionPtrOutput `pulumi:"availabilityZoneDistribution"` + AvailabilityZoneImpairmentPolicy AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput `pulumi:"availabilityZoneImpairmentPolicy"` // A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the ``VPCZoneIdentifier`` property, or for attaching a network interface when an existing network interface ID is specified in a launch template. AvailabilityZones pulumi.StringArrayOutput `pulumi:"availabilityZones"` // Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see [Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) in the in the *Amazon EC2 Auto Scaling User Guide*. @@ -93,7 +94,8 @@ type AutoScalingGroup struct { // A *cluster* placement group is a logical grouping of instances within a single Availability Zone. You cannot specify multiple Availability Zones and a cluster placement group. PlacementGroup pulumi.StringPtrOutput `pulumi:"placementGroup"` // The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other AWS service on your behalf. By default, Amazon EC2 Auto Scaling uses a service-linked role named ``AWSServiceRoleForAutoScaling``, which it creates if it does not exist. For more information, see [Service-linked roles](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html) in the *Amazon EC2 Auto Scaling User Guide*. - ServiceLinkedRoleArn pulumi.StringPtrOutput `pulumi:"serviceLinkedRoleArn"` + ServiceLinkedRoleArn pulumi.StringPtrOutput `pulumi:"serviceLinkedRoleArn"` + SkipZonalShiftValidation pulumi.BoolPtrOutput `pulumi:"skipZonalShiftValidation"` // One or more tags. You can tag your Auto Scaling group and propagate the tags to the Amazon EC2 instances it launches. Tags are not propagated to Amazon EBS volumes. To add tags to Amazon EBS volumes, specify the tags in a launch template but use caution. If the launch template specifies an instance tag with a key that is also specified for the Auto Scaling group, Amazon EC2 Auto Scaling overrides the value of that instance tag with the value specified by the Auto Scaling group. For more information, see [Tag Auto Scaling groups and instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-tagging.html) in the *Amazon EC2 Auto Scaling User Guide*. Tags AutoScalingGroupTagPropertyArrayOutput `pulumi:"tags"` // The Amazon Resource Names (ARN) of the Elastic Load Balancing target groups to associate with the Auto Scaling group. Instances are registered as targets with the target groups. The target groups receive incoming traffic and route requests to one or more registered targets. For more information, see [Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html) in the *Amazon EC2 Auto Scaling User Guide*. @@ -166,7 +168,8 @@ type autoScalingGroupArgs struct { // You cannot use a colon (:) in the name. AutoScalingGroupName *string `pulumi:"autoScalingGroupName"` // The instance capacity distribution across Availability Zones. - AvailabilityZoneDistribution *AutoScalingGroupAvailabilityZoneDistribution `pulumi:"availabilityZoneDistribution"` + AvailabilityZoneDistribution *AutoScalingGroupAvailabilityZoneDistribution `pulumi:"availabilityZoneDistribution"` + AvailabilityZoneImpairmentPolicy *AutoScalingGroupAvailabilityZoneImpairmentPolicy `pulumi:"availabilityZoneImpairmentPolicy"` // A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the ``VPCZoneIdentifier`` property, or for attaching a network interface when an existing network interface ID is specified in a launch template. AvailabilityZones []string `pulumi:"availabilityZones"` // Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see [Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) in the in the *Amazon EC2 Auto Scaling User Guide*. @@ -234,7 +237,8 @@ type autoScalingGroupArgs struct { // A *cluster* placement group is a logical grouping of instances within a single Availability Zone. You cannot specify multiple Availability Zones and a cluster placement group. PlacementGroup *string `pulumi:"placementGroup"` // The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other AWS service on your behalf. By default, Amazon EC2 Auto Scaling uses a service-linked role named ``AWSServiceRoleForAutoScaling``, which it creates if it does not exist. For more information, see [Service-linked roles](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html) in the *Amazon EC2 Auto Scaling User Guide*. - ServiceLinkedRoleArn *string `pulumi:"serviceLinkedRoleArn"` + ServiceLinkedRoleArn *string `pulumi:"serviceLinkedRoleArn"` + SkipZonalShiftValidation *bool `pulumi:"skipZonalShiftValidation"` // One or more tags. You can tag your Auto Scaling group and propagate the tags to the Amazon EC2 instances it launches. Tags are not propagated to Amazon EBS volumes. To add tags to Amazon EBS volumes, specify the tags in a launch template but use caution. If the launch template specifies an instance tag with a key that is also specified for the Auto Scaling group, Amazon EC2 Auto Scaling overrides the value of that instance tag with the value specified by the Auto Scaling group. For more information, see [Tag Auto Scaling groups and instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-tagging.html) in the *Amazon EC2 Auto Scaling User Guide*. Tags []AutoScalingGroupTagProperty `pulumi:"tags"` // The Amazon Resource Names (ARN) of the Elastic Load Balancing target groups to associate with the Auto Scaling group. Instances are registered as targets with the target groups. The target groups receive incoming traffic and route requests to one or more registered targets. For more information, see [Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html) in the *Amazon EC2 Auto Scaling User Guide*. @@ -258,7 +262,8 @@ type AutoScalingGroupArgs struct { // You cannot use a colon (:) in the name. AutoScalingGroupName pulumi.StringPtrInput // The instance capacity distribution across Availability Zones. - AvailabilityZoneDistribution AutoScalingGroupAvailabilityZoneDistributionPtrInput + AvailabilityZoneDistribution AutoScalingGroupAvailabilityZoneDistributionPtrInput + AvailabilityZoneImpairmentPolicy AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrInput // A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the ``VPCZoneIdentifier`` property, or for attaching a network interface when an existing network interface ID is specified in a launch template. AvailabilityZones pulumi.StringArrayInput // Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see [Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) in the in the *Amazon EC2 Auto Scaling User Guide*. @@ -326,7 +331,8 @@ type AutoScalingGroupArgs struct { // A *cluster* placement group is a logical grouping of instances within a single Availability Zone. You cannot specify multiple Availability Zones and a cluster placement group. PlacementGroup pulumi.StringPtrInput // The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other AWS service on your behalf. By default, Amazon EC2 Auto Scaling uses a service-linked role named ``AWSServiceRoleForAutoScaling``, which it creates if it does not exist. For more information, see [Service-linked roles](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html) in the *Amazon EC2 Auto Scaling User Guide*. - ServiceLinkedRoleArn pulumi.StringPtrInput + ServiceLinkedRoleArn pulumi.StringPtrInput + SkipZonalShiftValidation pulumi.BoolPtrInput // One or more tags. You can tag your Auto Scaling group and propagate the tags to the Amazon EC2 instances it launches. Tags are not propagated to Amazon EBS volumes. To add tags to Amazon EBS volumes, specify the tags in a launch template but use caution. If the launch template specifies an instance tag with a key that is also specified for the Auto Scaling group, Amazon EC2 Auto Scaling overrides the value of that instance tag with the value specified by the Auto Scaling group. For more information, see [Tag Auto Scaling groups and instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-tagging.html) in the *Amazon EC2 Auto Scaling User Guide*. Tags AutoScalingGroupTagPropertyArrayInput // The Amazon Resource Names (ARN) of the Elastic Load Balancing target groups to associate with the Auto Scaling group. Instances are registered as targets with the target groups. The target groups receive incoming traffic and route requests to one or more registered targets. For more information, see [Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html) in the *Amazon EC2 Auto Scaling User Guide*. @@ -395,6 +401,12 @@ func (o AutoScalingGroupOutput) AvailabilityZoneDistribution() AutoScalingGroupA }).(AutoScalingGroupAvailabilityZoneDistributionPtrOutput) } +func (o AutoScalingGroupOutput) AvailabilityZoneImpairmentPolicy() AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput { + return o.ApplyT(func(v *AutoScalingGroup) AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput { + return v.AvailabilityZoneImpairmentPolicy + }).(AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput) +} + // A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the “VPCZoneIdentifier“ property, or for attaching a network interface when an existing network interface ID is specified in a launch template. func (o AutoScalingGroupOutput) AvailabilityZones() pulumi.StringArrayOutput { return o.ApplyT(func(v *AutoScalingGroup) pulumi.StringArrayOutput { return v.AvailabilityZones }).(pulumi.StringArrayOutput) @@ -560,6 +572,10 @@ func (o AutoScalingGroupOutput) ServiceLinkedRoleArn() pulumi.StringPtrOutput { return o.ApplyT(func(v *AutoScalingGroup) pulumi.StringPtrOutput { return v.ServiceLinkedRoleArn }).(pulumi.StringPtrOutput) } +func (o AutoScalingGroupOutput) SkipZonalShiftValidation() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AutoScalingGroup) pulumi.BoolPtrOutput { return v.SkipZonalShiftValidation }).(pulumi.BoolPtrOutput) +} + // One or more tags. You can tag your Auto Scaling group and propagate the tags to the Amazon EC2 instances it launches. Tags are not propagated to Amazon EBS volumes. To add tags to Amazon EBS volumes, specify the tags in a launch template but use caution. If the launch template specifies an instance tag with a key that is also specified for the Auto Scaling group, Amazon EC2 Auto Scaling overrides the value of that instance tag with the value specified by the Auto Scaling group. For more information, see [Tag Auto Scaling groups and instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-tagging.html) in the *Amazon EC2 Auto Scaling User Guide*. func (o AutoScalingGroupOutput) Tags() AutoScalingGroupTagPropertyArrayOutput { return o.ApplyT(func(v *AutoScalingGroup) AutoScalingGroupTagPropertyArrayOutput { return v.Tags }).(AutoScalingGroupTagPropertyArrayOutput) diff --git a/sdk/go/aws/autoscaling/getAutoScalingGroup.go b/sdk/go/aws/autoscaling/getAutoScalingGroup.go index d16943f6a7..6863ce0f5b 100644 --- a/sdk/go/aws/autoscaling/getAutoScalingGroup.go +++ b/sdk/go/aws/autoscaling/getAutoScalingGroup.go @@ -35,7 +35,8 @@ type LookupAutoScalingGroupArgs struct { type LookupAutoScalingGroupResult struct { // The instance capacity distribution across Availability Zones. - AvailabilityZoneDistribution *AutoScalingGroupAvailabilityZoneDistribution `pulumi:"availabilityZoneDistribution"` + AvailabilityZoneDistribution *AutoScalingGroupAvailabilityZoneDistribution `pulumi:"availabilityZoneDistribution"` + AvailabilityZoneImpairmentPolicy *AutoScalingGroupAvailabilityZoneImpairmentPolicy `pulumi:"availabilityZoneImpairmentPolicy"` // A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the ``VPCZoneIdentifier`` property, or for attaching a network interface when an existing network interface ID is specified in a launch template. AvailabilityZones []string `pulumi:"availabilityZones"` // Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see [Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) in the in the *Amazon EC2 Auto Scaling User Guide*. @@ -168,6 +169,12 @@ func (o LookupAutoScalingGroupResultOutput) AvailabilityZoneDistribution() AutoS }).(AutoScalingGroupAvailabilityZoneDistributionPtrOutput) } +func (o LookupAutoScalingGroupResultOutput) AvailabilityZoneImpairmentPolicy() AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput { + return o.ApplyT(func(v LookupAutoScalingGroupResult) *AutoScalingGroupAvailabilityZoneImpairmentPolicy { + return v.AvailabilityZoneImpairmentPolicy + }).(AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput) +} + // A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the “VPCZoneIdentifier“ property, or for attaching a network interface when an existing network interface ID is specified in a launch template. func (o LookupAutoScalingGroupResultOutput) AvailabilityZones() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupAutoScalingGroupResult) []string { return v.AvailabilityZones }).(pulumi.StringArrayOutput) diff --git a/sdk/go/aws/autoscaling/pulumiEnums.go b/sdk/go/aws/autoscaling/pulumiEnums.go index fe825e52f9..16f6a3322d 100644 --- a/sdk/go/aws/autoscaling/pulumiEnums.go +++ b/sdk/go/aws/autoscaling/pulumiEnums.go @@ -179,9 +179,178 @@ func (in *autoScalingGroupAvailabilityZoneDistributionCapacityDistributionStrate return pulumi.ToOutputWithContext(ctx, in).(AutoScalingGroupAvailabilityZoneDistributionCapacityDistributionStrategyPtrOutput) } +type AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior string + +const ( + AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorIgnoreUnhealthy = AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior("IgnoreUnhealthy") + AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorReplaceUnhealthy = AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior("ReplaceUnhealthy") +) + +func (AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior) ElementType() reflect.Type { + return reflect.TypeOf((*AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior)(nil)).Elem() +} + +func (e AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior) ToAutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput() AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput { + return pulumi.ToOutput(e).(AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput) +} + +func (e AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior) ToAutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutputWithContext(ctx context.Context) AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput { + return pulumi.ToOutputWithContext(ctx, e).(AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput) +} + +func (e AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior) ToAutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput() AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput { + return e.ToAutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutputWithContext(context.Background()) +} + +func (e AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior) ToAutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutputWithContext(ctx context.Context) AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput { + return AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior(e).ToAutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutputWithContext(ctx).ToAutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutputWithContext(ctx) +} + +func (e AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput struct{ *pulumi.OutputState } + +func (AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior)(nil)).Elem() +} + +func (o AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput) ToAutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput() AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput { + return o +} + +func (o AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput) ToAutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutputWithContext(ctx context.Context) AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput { + return o +} + +func (o AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput) ToAutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput() AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput { + return o.ToAutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutputWithContext(context.Background()) +} + +func (o AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput) ToAutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutputWithContext(ctx context.Context) AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior) *AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior { + return &v + }).(AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput) +} + +func (o AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput struct{ *pulumi.OutputState } + +func (AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior)(nil)).Elem() +} + +func (o AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput) ToAutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput() AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput { + return o +} + +func (o AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput) ToAutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutputWithContext(ctx context.Context) AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput { + return o +} + +func (o AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput) Elem() AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput { + return o.ApplyT(func(v *AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior) AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior { + if v != nil { + return *v + } + var ret AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior + return ret + }).(AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput) +} + +func (o AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorInput is an input type that accepts values of the AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior enum +// A concrete instance of `AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorInput` can be one of the following: +// +// AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorIgnoreUnhealthy +// AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorReplaceUnhealthy +type AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorInput interface { + pulumi.Input + + ToAutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput() AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput + ToAutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutputWithContext(context.Context) AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput +} + +var autoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrType = reflect.TypeOf((**AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior)(nil)).Elem() + +type AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrInput interface { + pulumi.Input + + ToAutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput() AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput + ToAutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutputWithContext(context.Context) AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput +} + +type autoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtr string + +func AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtr(v string) AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrInput { + return (*autoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtr)(&v) +} + +func (*autoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtr) ElementType() reflect.Type { + return autoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrType +} + +func (in *autoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtr) ToAutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput() AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput { + return pulumi.ToOutput(in).(AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput) +} + +func (in *autoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtr) ToAutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutputWithContext(ctx context.Context) AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupAvailabilityZoneDistributionCapacityDistributionStrategyInput)(nil)).Elem(), AutoScalingGroupAvailabilityZoneDistributionCapacityDistributionStrategy("balanced-best-effort")) pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupAvailabilityZoneDistributionCapacityDistributionStrategyPtrInput)(nil)).Elem(), AutoScalingGroupAvailabilityZoneDistributionCapacityDistributionStrategy("balanced-best-effort")) + pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorInput)(nil)).Elem(), AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior("IgnoreUnhealthy")) + pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrInput)(nil)).Elem(), AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior("IgnoreUnhealthy")) pulumi.RegisterOutputType(AutoScalingGroupAvailabilityZoneDistributionCapacityDistributionStrategyOutput{}) pulumi.RegisterOutputType(AutoScalingGroupAvailabilityZoneDistributionCapacityDistributionStrategyPtrOutput{}) + pulumi.RegisterOutputType(AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput{}) + pulumi.RegisterOutputType(AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput{}) } diff --git a/sdk/go/aws/autoscaling/pulumiTypes.go b/sdk/go/aws/autoscaling/pulumiTypes.go index 95ea37b6c8..4269a8a94e 100644 --- a/sdk/go/aws/autoscaling/pulumiTypes.go +++ b/sdk/go/aws/autoscaling/pulumiTypes.go @@ -482,6 +482,156 @@ func (o AutoScalingGroupAvailabilityZoneDistributionPtrOutput) CapacityDistribut }).(AutoScalingGroupAvailabilityZoneDistributionCapacityDistributionStrategyPtrOutput) } +type AutoScalingGroupAvailabilityZoneImpairmentPolicy struct { + ImpairedZoneHealthCheckBehavior AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior `pulumi:"impairedZoneHealthCheckBehavior"` + ZonalShiftEnabled bool `pulumi:"zonalShiftEnabled"` +} + +// AutoScalingGroupAvailabilityZoneImpairmentPolicyInput is an input type that accepts AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs and AutoScalingGroupAvailabilityZoneImpairmentPolicyOutput values. +// You can construct a concrete instance of `AutoScalingGroupAvailabilityZoneImpairmentPolicyInput` via: +// +// AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs{...} +type AutoScalingGroupAvailabilityZoneImpairmentPolicyInput interface { + pulumi.Input + + ToAutoScalingGroupAvailabilityZoneImpairmentPolicyOutput() AutoScalingGroupAvailabilityZoneImpairmentPolicyOutput + ToAutoScalingGroupAvailabilityZoneImpairmentPolicyOutputWithContext(context.Context) AutoScalingGroupAvailabilityZoneImpairmentPolicyOutput +} + +type AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs struct { + ImpairedZoneHealthCheckBehavior AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorInput `pulumi:"impairedZoneHealthCheckBehavior"` + ZonalShiftEnabled pulumi.BoolInput `pulumi:"zonalShiftEnabled"` +} + +func (AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AutoScalingGroupAvailabilityZoneImpairmentPolicy)(nil)).Elem() +} + +func (i AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs) ToAutoScalingGroupAvailabilityZoneImpairmentPolicyOutput() AutoScalingGroupAvailabilityZoneImpairmentPolicyOutput { + return i.ToAutoScalingGroupAvailabilityZoneImpairmentPolicyOutputWithContext(context.Background()) +} + +func (i AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs) ToAutoScalingGroupAvailabilityZoneImpairmentPolicyOutputWithContext(ctx context.Context) AutoScalingGroupAvailabilityZoneImpairmentPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(AutoScalingGroupAvailabilityZoneImpairmentPolicyOutput) +} + +func (i AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs) ToAutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput() AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput { + return i.ToAutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutputWithContext(context.Background()) +} + +func (i AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs) ToAutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutputWithContext(ctx context.Context) AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AutoScalingGroupAvailabilityZoneImpairmentPolicyOutput).ToAutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutputWithContext(ctx) +} + +// AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrInput is an input type that accepts AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs, AutoScalingGroupAvailabilityZoneImpairmentPolicyPtr and AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput values. +// You can construct a concrete instance of `AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrInput` via: +// +// AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs{...} +// +// or: +// +// nil +type AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrInput interface { + pulumi.Input + + ToAutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput() AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput + ToAutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutputWithContext(context.Context) AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput +} + +type autoScalingGroupAvailabilityZoneImpairmentPolicyPtrType AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs + +func AutoScalingGroupAvailabilityZoneImpairmentPolicyPtr(v *AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs) AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrInput { + return (*autoScalingGroupAvailabilityZoneImpairmentPolicyPtrType)(v) +} + +func (*autoScalingGroupAvailabilityZoneImpairmentPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AutoScalingGroupAvailabilityZoneImpairmentPolicy)(nil)).Elem() +} + +func (i *autoScalingGroupAvailabilityZoneImpairmentPolicyPtrType) ToAutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput() AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput { + return i.ToAutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutputWithContext(context.Background()) +} + +func (i *autoScalingGroupAvailabilityZoneImpairmentPolicyPtrType) ToAutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutputWithContext(ctx context.Context) AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput) +} + +type AutoScalingGroupAvailabilityZoneImpairmentPolicyOutput struct{ *pulumi.OutputState } + +func (AutoScalingGroupAvailabilityZoneImpairmentPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AutoScalingGroupAvailabilityZoneImpairmentPolicy)(nil)).Elem() +} + +func (o AutoScalingGroupAvailabilityZoneImpairmentPolicyOutput) ToAutoScalingGroupAvailabilityZoneImpairmentPolicyOutput() AutoScalingGroupAvailabilityZoneImpairmentPolicyOutput { + return o +} + +func (o AutoScalingGroupAvailabilityZoneImpairmentPolicyOutput) ToAutoScalingGroupAvailabilityZoneImpairmentPolicyOutputWithContext(ctx context.Context) AutoScalingGroupAvailabilityZoneImpairmentPolicyOutput { + return o +} + +func (o AutoScalingGroupAvailabilityZoneImpairmentPolicyOutput) ToAutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput() AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput { + return o.ToAutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutputWithContext(context.Background()) +} + +func (o AutoScalingGroupAvailabilityZoneImpairmentPolicyOutput) ToAutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutputWithContext(ctx context.Context) AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AutoScalingGroupAvailabilityZoneImpairmentPolicy) *AutoScalingGroupAvailabilityZoneImpairmentPolicy { + return &v + }).(AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput) +} + +func (o AutoScalingGroupAvailabilityZoneImpairmentPolicyOutput) ImpairedZoneHealthCheckBehavior() AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput { + return o.ApplyT(func(v AutoScalingGroupAvailabilityZoneImpairmentPolicy) AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior { + return v.ImpairedZoneHealthCheckBehavior + }).(AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorOutput) +} + +func (o AutoScalingGroupAvailabilityZoneImpairmentPolicyOutput) ZonalShiftEnabled() pulumi.BoolOutput { + return o.ApplyT(func(v AutoScalingGroupAvailabilityZoneImpairmentPolicy) bool { return v.ZonalShiftEnabled }).(pulumi.BoolOutput) +} + +type AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput struct{ *pulumi.OutputState } + +func (AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AutoScalingGroupAvailabilityZoneImpairmentPolicy)(nil)).Elem() +} + +func (o AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput) ToAutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput() AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput { + return o +} + +func (o AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput) ToAutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutputWithContext(ctx context.Context) AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput { + return o +} + +func (o AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput) Elem() AutoScalingGroupAvailabilityZoneImpairmentPolicyOutput { + return o.ApplyT(func(v *AutoScalingGroupAvailabilityZoneImpairmentPolicy) AutoScalingGroupAvailabilityZoneImpairmentPolicy { + if v != nil { + return *v + } + var ret AutoScalingGroupAvailabilityZoneImpairmentPolicy + return ret + }).(AutoScalingGroupAvailabilityZoneImpairmentPolicyOutput) +} + +func (o AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput) ImpairedZoneHealthCheckBehavior() AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput { + return o.ApplyT(func(v *AutoScalingGroupAvailabilityZoneImpairmentPolicy) *AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior { + if v == nil { + return nil + } + return &v.ImpairedZoneHealthCheckBehavior + }).(AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehaviorPtrOutput) +} + +func (o AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput) ZonalShiftEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *AutoScalingGroupAvailabilityZoneImpairmentPolicy) *bool { + if v == nil { + return nil + } + return &v.ZonalShiftEnabled + }).(pulumi.BoolPtrOutput) +} + // “BaselineEbsBandwidthMbpsRequest“ is a property of the “InstanceRequirements“ property of the [AWS::AutoScaling::AutoScalingGroup LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplateoverrides.html) property type that describes the minimum and maximum baseline bandwidth performance for an instance type, in Mbps. type AutoScalingGroupBaselineEbsBandwidthMbpsRequest struct { // The maximum value in Mbps. @@ -641,6 +791,276 @@ func (o AutoScalingGroupBaselineEbsBandwidthMbpsRequestPtrOutput) Min() pulumi.I }).(pulumi.IntPtrOutput) } +type AutoScalingGroupBaselinePerformanceFactorsRequest struct { + Cpu *AutoScalingGroupCpuPerformanceFactorRequest `pulumi:"cpu"` +} + +// AutoScalingGroupBaselinePerformanceFactorsRequestInput is an input type that accepts AutoScalingGroupBaselinePerformanceFactorsRequestArgs and AutoScalingGroupBaselinePerformanceFactorsRequestOutput values. +// You can construct a concrete instance of `AutoScalingGroupBaselinePerformanceFactorsRequestInput` via: +// +// AutoScalingGroupBaselinePerformanceFactorsRequestArgs{...} +type AutoScalingGroupBaselinePerformanceFactorsRequestInput interface { + pulumi.Input + + ToAutoScalingGroupBaselinePerformanceFactorsRequestOutput() AutoScalingGroupBaselinePerformanceFactorsRequestOutput + ToAutoScalingGroupBaselinePerformanceFactorsRequestOutputWithContext(context.Context) AutoScalingGroupBaselinePerformanceFactorsRequestOutput +} + +type AutoScalingGroupBaselinePerformanceFactorsRequestArgs struct { + Cpu AutoScalingGroupCpuPerformanceFactorRequestPtrInput `pulumi:"cpu"` +} + +func (AutoScalingGroupBaselinePerformanceFactorsRequestArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AutoScalingGroupBaselinePerformanceFactorsRequest)(nil)).Elem() +} + +func (i AutoScalingGroupBaselinePerformanceFactorsRequestArgs) ToAutoScalingGroupBaselinePerformanceFactorsRequestOutput() AutoScalingGroupBaselinePerformanceFactorsRequestOutput { + return i.ToAutoScalingGroupBaselinePerformanceFactorsRequestOutputWithContext(context.Background()) +} + +func (i AutoScalingGroupBaselinePerformanceFactorsRequestArgs) ToAutoScalingGroupBaselinePerformanceFactorsRequestOutputWithContext(ctx context.Context) AutoScalingGroupBaselinePerformanceFactorsRequestOutput { + return pulumi.ToOutputWithContext(ctx, i).(AutoScalingGroupBaselinePerformanceFactorsRequestOutput) +} + +func (i AutoScalingGroupBaselinePerformanceFactorsRequestArgs) ToAutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput() AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput { + return i.ToAutoScalingGroupBaselinePerformanceFactorsRequestPtrOutputWithContext(context.Background()) +} + +func (i AutoScalingGroupBaselinePerformanceFactorsRequestArgs) ToAutoScalingGroupBaselinePerformanceFactorsRequestPtrOutputWithContext(ctx context.Context) AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AutoScalingGroupBaselinePerformanceFactorsRequestOutput).ToAutoScalingGroupBaselinePerformanceFactorsRequestPtrOutputWithContext(ctx) +} + +// AutoScalingGroupBaselinePerformanceFactorsRequestPtrInput is an input type that accepts AutoScalingGroupBaselinePerformanceFactorsRequestArgs, AutoScalingGroupBaselinePerformanceFactorsRequestPtr and AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput values. +// You can construct a concrete instance of `AutoScalingGroupBaselinePerformanceFactorsRequestPtrInput` via: +// +// AutoScalingGroupBaselinePerformanceFactorsRequestArgs{...} +// +// or: +// +// nil +type AutoScalingGroupBaselinePerformanceFactorsRequestPtrInput interface { + pulumi.Input + + ToAutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput() AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput + ToAutoScalingGroupBaselinePerformanceFactorsRequestPtrOutputWithContext(context.Context) AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput +} + +type autoScalingGroupBaselinePerformanceFactorsRequestPtrType AutoScalingGroupBaselinePerformanceFactorsRequestArgs + +func AutoScalingGroupBaselinePerformanceFactorsRequestPtr(v *AutoScalingGroupBaselinePerformanceFactorsRequestArgs) AutoScalingGroupBaselinePerformanceFactorsRequestPtrInput { + return (*autoScalingGroupBaselinePerformanceFactorsRequestPtrType)(v) +} + +func (*autoScalingGroupBaselinePerformanceFactorsRequestPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AutoScalingGroupBaselinePerformanceFactorsRequest)(nil)).Elem() +} + +func (i *autoScalingGroupBaselinePerformanceFactorsRequestPtrType) ToAutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput() AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput { + return i.ToAutoScalingGroupBaselinePerformanceFactorsRequestPtrOutputWithContext(context.Background()) +} + +func (i *autoScalingGroupBaselinePerformanceFactorsRequestPtrType) ToAutoScalingGroupBaselinePerformanceFactorsRequestPtrOutputWithContext(ctx context.Context) AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput) +} + +type AutoScalingGroupBaselinePerformanceFactorsRequestOutput struct{ *pulumi.OutputState } + +func (AutoScalingGroupBaselinePerformanceFactorsRequestOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AutoScalingGroupBaselinePerformanceFactorsRequest)(nil)).Elem() +} + +func (o AutoScalingGroupBaselinePerformanceFactorsRequestOutput) ToAutoScalingGroupBaselinePerformanceFactorsRequestOutput() AutoScalingGroupBaselinePerformanceFactorsRequestOutput { + return o +} + +func (o AutoScalingGroupBaselinePerformanceFactorsRequestOutput) ToAutoScalingGroupBaselinePerformanceFactorsRequestOutputWithContext(ctx context.Context) AutoScalingGroupBaselinePerformanceFactorsRequestOutput { + return o +} + +func (o AutoScalingGroupBaselinePerformanceFactorsRequestOutput) ToAutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput() AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput { + return o.ToAutoScalingGroupBaselinePerformanceFactorsRequestPtrOutputWithContext(context.Background()) +} + +func (o AutoScalingGroupBaselinePerformanceFactorsRequestOutput) ToAutoScalingGroupBaselinePerformanceFactorsRequestPtrOutputWithContext(ctx context.Context) AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AutoScalingGroupBaselinePerformanceFactorsRequest) *AutoScalingGroupBaselinePerformanceFactorsRequest { + return &v + }).(AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput) +} + +func (o AutoScalingGroupBaselinePerformanceFactorsRequestOutput) Cpu() AutoScalingGroupCpuPerformanceFactorRequestPtrOutput { + return o.ApplyT(func(v AutoScalingGroupBaselinePerformanceFactorsRequest) *AutoScalingGroupCpuPerformanceFactorRequest { + return v.Cpu + }).(AutoScalingGroupCpuPerformanceFactorRequestPtrOutput) +} + +type AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput struct{ *pulumi.OutputState } + +func (AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AutoScalingGroupBaselinePerformanceFactorsRequest)(nil)).Elem() +} + +func (o AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput) ToAutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput() AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput { + return o +} + +func (o AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput) ToAutoScalingGroupBaselinePerformanceFactorsRequestPtrOutputWithContext(ctx context.Context) AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput { + return o +} + +func (o AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput) Elem() AutoScalingGroupBaselinePerformanceFactorsRequestOutput { + return o.ApplyT(func(v *AutoScalingGroupBaselinePerformanceFactorsRequest) AutoScalingGroupBaselinePerformanceFactorsRequest { + if v != nil { + return *v + } + var ret AutoScalingGroupBaselinePerformanceFactorsRequest + return ret + }).(AutoScalingGroupBaselinePerformanceFactorsRequestOutput) +} + +func (o AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput) Cpu() AutoScalingGroupCpuPerformanceFactorRequestPtrOutput { + return o.ApplyT(func(v *AutoScalingGroupBaselinePerformanceFactorsRequest) *AutoScalingGroupCpuPerformanceFactorRequest { + if v == nil { + return nil + } + return v.Cpu + }).(AutoScalingGroupCpuPerformanceFactorRequestPtrOutput) +} + +type AutoScalingGroupCpuPerformanceFactorRequest struct { + References []AutoScalingGroupPerformanceFactorReferenceRequest `pulumi:"references"` +} + +// AutoScalingGroupCpuPerformanceFactorRequestInput is an input type that accepts AutoScalingGroupCpuPerformanceFactorRequestArgs and AutoScalingGroupCpuPerformanceFactorRequestOutput values. +// You can construct a concrete instance of `AutoScalingGroupCpuPerformanceFactorRequestInput` via: +// +// AutoScalingGroupCpuPerformanceFactorRequestArgs{...} +type AutoScalingGroupCpuPerformanceFactorRequestInput interface { + pulumi.Input + + ToAutoScalingGroupCpuPerformanceFactorRequestOutput() AutoScalingGroupCpuPerformanceFactorRequestOutput + ToAutoScalingGroupCpuPerformanceFactorRequestOutputWithContext(context.Context) AutoScalingGroupCpuPerformanceFactorRequestOutput +} + +type AutoScalingGroupCpuPerformanceFactorRequestArgs struct { + References AutoScalingGroupPerformanceFactorReferenceRequestArrayInput `pulumi:"references"` +} + +func (AutoScalingGroupCpuPerformanceFactorRequestArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AutoScalingGroupCpuPerformanceFactorRequest)(nil)).Elem() +} + +func (i AutoScalingGroupCpuPerformanceFactorRequestArgs) ToAutoScalingGroupCpuPerformanceFactorRequestOutput() AutoScalingGroupCpuPerformanceFactorRequestOutput { + return i.ToAutoScalingGroupCpuPerformanceFactorRequestOutputWithContext(context.Background()) +} + +func (i AutoScalingGroupCpuPerformanceFactorRequestArgs) ToAutoScalingGroupCpuPerformanceFactorRequestOutputWithContext(ctx context.Context) AutoScalingGroupCpuPerformanceFactorRequestOutput { + return pulumi.ToOutputWithContext(ctx, i).(AutoScalingGroupCpuPerformanceFactorRequestOutput) +} + +func (i AutoScalingGroupCpuPerformanceFactorRequestArgs) ToAutoScalingGroupCpuPerformanceFactorRequestPtrOutput() AutoScalingGroupCpuPerformanceFactorRequestPtrOutput { + return i.ToAutoScalingGroupCpuPerformanceFactorRequestPtrOutputWithContext(context.Background()) +} + +func (i AutoScalingGroupCpuPerformanceFactorRequestArgs) ToAutoScalingGroupCpuPerformanceFactorRequestPtrOutputWithContext(ctx context.Context) AutoScalingGroupCpuPerformanceFactorRequestPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AutoScalingGroupCpuPerformanceFactorRequestOutput).ToAutoScalingGroupCpuPerformanceFactorRequestPtrOutputWithContext(ctx) +} + +// AutoScalingGroupCpuPerformanceFactorRequestPtrInput is an input type that accepts AutoScalingGroupCpuPerformanceFactorRequestArgs, AutoScalingGroupCpuPerformanceFactorRequestPtr and AutoScalingGroupCpuPerformanceFactorRequestPtrOutput values. +// You can construct a concrete instance of `AutoScalingGroupCpuPerformanceFactorRequestPtrInput` via: +// +// AutoScalingGroupCpuPerformanceFactorRequestArgs{...} +// +// or: +// +// nil +type AutoScalingGroupCpuPerformanceFactorRequestPtrInput interface { + pulumi.Input + + ToAutoScalingGroupCpuPerformanceFactorRequestPtrOutput() AutoScalingGroupCpuPerformanceFactorRequestPtrOutput + ToAutoScalingGroupCpuPerformanceFactorRequestPtrOutputWithContext(context.Context) AutoScalingGroupCpuPerformanceFactorRequestPtrOutput +} + +type autoScalingGroupCpuPerformanceFactorRequestPtrType AutoScalingGroupCpuPerformanceFactorRequestArgs + +func AutoScalingGroupCpuPerformanceFactorRequestPtr(v *AutoScalingGroupCpuPerformanceFactorRequestArgs) AutoScalingGroupCpuPerformanceFactorRequestPtrInput { + return (*autoScalingGroupCpuPerformanceFactorRequestPtrType)(v) +} + +func (*autoScalingGroupCpuPerformanceFactorRequestPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AutoScalingGroupCpuPerformanceFactorRequest)(nil)).Elem() +} + +func (i *autoScalingGroupCpuPerformanceFactorRequestPtrType) ToAutoScalingGroupCpuPerformanceFactorRequestPtrOutput() AutoScalingGroupCpuPerformanceFactorRequestPtrOutput { + return i.ToAutoScalingGroupCpuPerformanceFactorRequestPtrOutputWithContext(context.Background()) +} + +func (i *autoScalingGroupCpuPerformanceFactorRequestPtrType) ToAutoScalingGroupCpuPerformanceFactorRequestPtrOutputWithContext(ctx context.Context) AutoScalingGroupCpuPerformanceFactorRequestPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AutoScalingGroupCpuPerformanceFactorRequestPtrOutput) +} + +type AutoScalingGroupCpuPerformanceFactorRequestOutput struct{ *pulumi.OutputState } + +func (AutoScalingGroupCpuPerformanceFactorRequestOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AutoScalingGroupCpuPerformanceFactorRequest)(nil)).Elem() +} + +func (o AutoScalingGroupCpuPerformanceFactorRequestOutput) ToAutoScalingGroupCpuPerformanceFactorRequestOutput() AutoScalingGroupCpuPerformanceFactorRequestOutput { + return o +} + +func (o AutoScalingGroupCpuPerformanceFactorRequestOutput) ToAutoScalingGroupCpuPerformanceFactorRequestOutputWithContext(ctx context.Context) AutoScalingGroupCpuPerformanceFactorRequestOutput { + return o +} + +func (o AutoScalingGroupCpuPerformanceFactorRequestOutput) ToAutoScalingGroupCpuPerformanceFactorRequestPtrOutput() AutoScalingGroupCpuPerformanceFactorRequestPtrOutput { + return o.ToAutoScalingGroupCpuPerformanceFactorRequestPtrOutputWithContext(context.Background()) +} + +func (o AutoScalingGroupCpuPerformanceFactorRequestOutput) ToAutoScalingGroupCpuPerformanceFactorRequestPtrOutputWithContext(ctx context.Context) AutoScalingGroupCpuPerformanceFactorRequestPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AutoScalingGroupCpuPerformanceFactorRequest) *AutoScalingGroupCpuPerformanceFactorRequest { + return &v + }).(AutoScalingGroupCpuPerformanceFactorRequestPtrOutput) +} + +func (o AutoScalingGroupCpuPerformanceFactorRequestOutput) References() AutoScalingGroupPerformanceFactorReferenceRequestArrayOutput { + return o.ApplyT(func(v AutoScalingGroupCpuPerformanceFactorRequest) []AutoScalingGroupPerformanceFactorReferenceRequest { + return v.References + }).(AutoScalingGroupPerformanceFactorReferenceRequestArrayOutput) +} + +type AutoScalingGroupCpuPerformanceFactorRequestPtrOutput struct{ *pulumi.OutputState } + +func (AutoScalingGroupCpuPerformanceFactorRequestPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AutoScalingGroupCpuPerformanceFactorRequest)(nil)).Elem() +} + +func (o AutoScalingGroupCpuPerformanceFactorRequestPtrOutput) ToAutoScalingGroupCpuPerformanceFactorRequestPtrOutput() AutoScalingGroupCpuPerformanceFactorRequestPtrOutput { + return o +} + +func (o AutoScalingGroupCpuPerformanceFactorRequestPtrOutput) ToAutoScalingGroupCpuPerformanceFactorRequestPtrOutputWithContext(ctx context.Context) AutoScalingGroupCpuPerformanceFactorRequestPtrOutput { + return o +} + +func (o AutoScalingGroupCpuPerformanceFactorRequestPtrOutput) Elem() AutoScalingGroupCpuPerformanceFactorRequestOutput { + return o.ApplyT(func(v *AutoScalingGroupCpuPerformanceFactorRequest) AutoScalingGroupCpuPerformanceFactorRequest { + if v != nil { + return *v + } + var ret AutoScalingGroupCpuPerformanceFactorRequest + return ret + }).(AutoScalingGroupCpuPerformanceFactorRequestOutput) +} + +func (o AutoScalingGroupCpuPerformanceFactorRequestPtrOutput) References() AutoScalingGroupPerformanceFactorReferenceRequestArrayOutput { + return o.ApplyT(func(v *AutoScalingGroupCpuPerformanceFactorRequest) []AutoScalingGroupPerformanceFactorReferenceRequest { + if v == nil { + return nil + } + return v.References + }).(AutoScalingGroupPerformanceFactorReferenceRequestArrayOutput) +} + // “InstanceMaintenancePolicy“ is a property of the [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) resource. // // For more information, see [Instance maintenance policies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-maintenance-policy.html) in the *Amazon EC2 Auto Scaling User Guide*. @@ -868,7 +1288,8 @@ type AutoScalingGroupInstanceRequirements struct { BareMetal *string `pulumi:"bareMetal"` // The minimum and maximum baseline bandwidth performance for an instance type, in Mbps. For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide for Linux Instances*. // Default: No minimum or maximum limits - BaselineEbsBandwidthMbps *AutoScalingGroupBaselineEbsBandwidthMbpsRequest `pulumi:"baselineEbsBandwidthMbps"` + BaselineEbsBandwidthMbps *AutoScalingGroupBaselineEbsBandwidthMbpsRequest `pulumi:"baselineEbsBandwidthMbps"` + BaselinePerformanceFactors *AutoScalingGroupBaselinePerformanceFactorsRequest `pulumi:"baselinePerformanceFactors"` // Indicates whether burstable performance instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide for Linux Instances*. // Default: ``excluded`` BurstablePerformance *string `pulumi:"burstablePerformance"` @@ -1004,7 +1425,8 @@ type AutoScalingGroupInstanceRequirementsArgs struct { BareMetal pulumi.StringPtrInput `pulumi:"bareMetal"` // The minimum and maximum baseline bandwidth performance for an instance type, in Mbps. For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide for Linux Instances*. // Default: No minimum or maximum limits - BaselineEbsBandwidthMbps AutoScalingGroupBaselineEbsBandwidthMbpsRequestPtrInput `pulumi:"baselineEbsBandwidthMbps"` + BaselineEbsBandwidthMbps AutoScalingGroupBaselineEbsBandwidthMbpsRequestPtrInput `pulumi:"baselineEbsBandwidthMbps"` + BaselinePerformanceFactors AutoScalingGroupBaselinePerformanceFactorsRequestPtrInput `pulumi:"baselinePerformanceFactors"` // Indicates whether burstable performance instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide for Linux Instances*. // Default: ``excluded`` BurstablePerformance pulumi.StringPtrInput `pulumi:"burstablePerformance"` @@ -1255,6 +1677,12 @@ func (o AutoScalingGroupInstanceRequirementsOutput) BaselineEbsBandwidthMbps() A }).(AutoScalingGroupBaselineEbsBandwidthMbpsRequestPtrOutput) } +func (o AutoScalingGroupInstanceRequirementsOutput) BaselinePerformanceFactors() AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput { + return o.ApplyT(func(v AutoScalingGroupInstanceRequirements) *AutoScalingGroupBaselinePerformanceFactorsRequest { + return v.BaselinePerformanceFactors + }).(AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput) +} + // Indicates whether burstable performance instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide for Linux Instances*. // // Default: ``excluded`` @@ -1549,6 +1977,15 @@ func (o AutoScalingGroupInstanceRequirementsPtrOutput) BaselineEbsBandwidthMbps( }).(AutoScalingGroupBaselineEbsBandwidthMbpsRequestPtrOutput) } +func (o AutoScalingGroupInstanceRequirementsPtrOutput) BaselinePerformanceFactors() AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput { + return o.ApplyT(func(v *AutoScalingGroupInstanceRequirements) *AutoScalingGroupBaselinePerformanceFactorsRequest { + if v == nil { + return nil + } + return v.BaselinePerformanceFactors + }).(AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput) +} + // Indicates whether burstable performance instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide for Linux Instances*. // // Default: ``excluded`` @@ -4064,6 +4501,100 @@ func (o AutoScalingGroupNotificationConfigurationArrayOutput) Index(i pulumi.Int }).(AutoScalingGroupNotificationConfigurationOutput) } +type AutoScalingGroupPerformanceFactorReferenceRequest struct { + InstanceFamily *string `pulumi:"instanceFamily"` +} + +// AutoScalingGroupPerformanceFactorReferenceRequestInput is an input type that accepts AutoScalingGroupPerformanceFactorReferenceRequestArgs and AutoScalingGroupPerformanceFactorReferenceRequestOutput values. +// You can construct a concrete instance of `AutoScalingGroupPerformanceFactorReferenceRequestInput` via: +// +// AutoScalingGroupPerformanceFactorReferenceRequestArgs{...} +type AutoScalingGroupPerformanceFactorReferenceRequestInput interface { + pulumi.Input + + ToAutoScalingGroupPerformanceFactorReferenceRequestOutput() AutoScalingGroupPerformanceFactorReferenceRequestOutput + ToAutoScalingGroupPerformanceFactorReferenceRequestOutputWithContext(context.Context) AutoScalingGroupPerformanceFactorReferenceRequestOutput +} + +type AutoScalingGroupPerformanceFactorReferenceRequestArgs struct { + InstanceFamily pulumi.StringPtrInput `pulumi:"instanceFamily"` +} + +func (AutoScalingGroupPerformanceFactorReferenceRequestArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AutoScalingGroupPerformanceFactorReferenceRequest)(nil)).Elem() +} + +func (i AutoScalingGroupPerformanceFactorReferenceRequestArgs) ToAutoScalingGroupPerformanceFactorReferenceRequestOutput() AutoScalingGroupPerformanceFactorReferenceRequestOutput { + return i.ToAutoScalingGroupPerformanceFactorReferenceRequestOutputWithContext(context.Background()) +} + +func (i AutoScalingGroupPerformanceFactorReferenceRequestArgs) ToAutoScalingGroupPerformanceFactorReferenceRequestOutputWithContext(ctx context.Context) AutoScalingGroupPerformanceFactorReferenceRequestOutput { + return pulumi.ToOutputWithContext(ctx, i).(AutoScalingGroupPerformanceFactorReferenceRequestOutput) +} + +// AutoScalingGroupPerformanceFactorReferenceRequestArrayInput is an input type that accepts AutoScalingGroupPerformanceFactorReferenceRequestArray and AutoScalingGroupPerformanceFactorReferenceRequestArrayOutput values. +// You can construct a concrete instance of `AutoScalingGroupPerformanceFactorReferenceRequestArrayInput` via: +// +// AutoScalingGroupPerformanceFactorReferenceRequestArray{ AutoScalingGroupPerformanceFactorReferenceRequestArgs{...} } +type AutoScalingGroupPerformanceFactorReferenceRequestArrayInput interface { + pulumi.Input + + ToAutoScalingGroupPerformanceFactorReferenceRequestArrayOutput() AutoScalingGroupPerformanceFactorReferenceRequestArrayOutput + ToAutoScalingGroupPerformanceFactorReferenceRequestArrayOutputWithContext(context.Context) AutoScalingGroupPerformanceFactorReferenceRequestArrayOutput +} + +type AutoScalingGroupPerformanceFactorReferenceRequestArray []AutoScalingGroupPerformanceFactorReferenceRequestInput + +func (AutoScalingGroupPerformanceFactorReferenceRequestArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AutoScalingGroupPerformanceFactorReferenceRequest)(nil)).Elem() +} + +func (i AutoScalingGroupPerformanceFactorReferenceRequestArray) ToAutoScalingGroupPerformanceFactorReferenceRequestArrayOutput() AutoScalingGroupPerformanceFactorReferenceRequestArrayOutput { + return i.ToAutoScalingGroupPerformanceFactorReferenceRequestArrayOutputWithContext(context.Background()) +} + +func (i AutoScalingGroupPerformanceFactorReferenceRequestArray) ToAutoScalingGroupPerformanceFactorReferenceRequestArrayOutputWithContext(ctx context.Context) AutoScalingGroupPerformanceFactorReferenceRequestArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AutoScalingGroupPerformanceFactorReferenceRequestArrayOutput) +} + +type AutoScalingGroupPerformanceFactorReferenceRequestOutput struct{ *pulumi.OutputState } + +func (AutoScalingGroupPerformanceFactorReferenceRequestOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AutoScalingGroupPerformanceFactorReferenceRequest)(nil)).Elem() +} + +func (o AutoScalingGroupPerformanceFactorReferenceRequestOutput) ToAutoScalingGroupPerformanceFactorReferenceRequestOutput() AutoScalingGroupPerformanceFactorReferenceRequestOutput { + return o +} + +func (o AutoScalingGroupPerformanceFactorReferenceRequestOutput) ToAutoScalingGroupPerformanceFactorReferenceRequestOutputWithContext(ctx context.Context) AutoScalingGroupPerformanceFactorReferenceRequestOutput { + return o +} + +func (o AutoScalingGroupPerformanceFactorReferenceRequestOutput) InstanceFamily() pulumi.StringPtrOutput { + return o.ApplyT(func(v AutoScalingGroupPerformanceFactorReferenceRequest) *string { return v.InstanceFamily }).(pulumi.StringPtrOutput) +} + +type AutoScalingGroupPerformanceFactorReferenceRequestArrayOutput struct{ *pulumi.OutputState } + +func (AutoScalingGroupPerformanceFactorReferenceRequestArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AutoScalingGroupPerformanceFactorReferenceRequest)(nil)).Elem() +} + +func (o AutoScalingGroupPerformanceFactorReferenceRequestArrayOutput) ToAutoScalingGroupPerformanceFactorReferenceRequestArrayOutput() AutoScalingGroupPerformanceFactorReferenceRequestArrayOutput { + return o +} + +func (o AutoScalingGroupPerformanceFactorReferenceRequestArrayOutput) ToAutoScalingGroupPerformanceFactorReferenceRequestArrayOutputWithContext(ctx context.Context) AutoScalingGroupPerformanceFactorReferenceRequestArrayOutput { + return o +} + +func (o AutoScalingGroupPerformanceFactorReferenceRequestArrayOutput) Index(i pulumi.IntInput) AutoScalingGroupPerformanceFactorReferenceRequestOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AutoScalingGroupPerformanceFactorReferenceRequest { + return vs[0].([]AutoScalingGroupPerformanceFactorReferenceRequest)[vs[1].(int)] + }).(AutoScalingGroupPerformanceFactorReferenceRequestOutput) +} + // A structure that specifies a tag for the “Tags“ property of [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) resource. // // For more information, see [Tag Auto Scaling groups and instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html) in the *Amazon EC2 Auto Scaling User Guide*. You can find a sample template snippet in the [Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html#aws-resource-autoscaling-autoscalinggroup--examples) section of the ``AWS::AutoScaling::AutoScalingGroup`` resource. @@ -8595,8 +9126,14 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupAcceleratorTotalMemoryMiBRequestPtrInput)(nil)).Elem(), AutoScalingGroupAcceleratorTotalMemoryMiBRequestArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupAvailabilityZoneDistributionInput)(nil)).Elem(), AutoScalingGroupAvailabilityZoneDistributionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupAvailabilityZoneDistributionPtrInput)(nil)).Elem(), AutoScalingGroupAvailabilityZoneDistributionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupAvailabilityZoneImpairmentPolicyInput)(nil)).Elem(), AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrInput)(nil)).Elem(), AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupBaselineEbsBandwidthMbpsRequestInput)(nil)).Elem(), AutoScalingGroupBaselineEbsBandwidthMbpsRequestArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupBaselineEbsBandwidthMbpsRequestPtrInput)(nil)).Elem(), AutoScalingGroupBaselineEbsBandwidthMbpsRequestArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupBaselinePerformanceFactorsRequestInput)(nil)).Elem(), AutoScalingGroupBaselinePerformanceFactorsRequestArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupBaselinePerformanceFactorsRequestPtrInput)(nil)).Elem(), AutoScalingGroupBaselinePerformanceFactorsRequestArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupCpuPerformanceFactorRequestInput)(nil)).Elem(), AutoScalingGroupCpuPerformanceFactorRequestArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupCpuPerformanceFactorRequestPtrInput)(nil)).Elem(), AutoScalingGroupCpuPerformanceFactorRequestArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupInstanceMaintenancePolicyInput)(nil)).Elem(), AutoScalingGroupInstanceMaintenancePolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupInstanceMaintenancePolicyPtrInput)(nil)).Elem(), AutoScalingGroupInstanceMaintenancePolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupInstanceRequirementsInput)(nil)).Elem(), AutoScalingGroupInstanceRequirementsArgs{}) @@ -8626,6 +9163,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupNotificationConfigurationInput)(nil)).Elem(), AutoScalingGroupNotificationConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupNotificationConfigurationPtrInput)(nil)).Elem(), AutoScalingGroupNotificationConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupNotificationConfigurationArrayInput)(nil)).Elem(), AutoScalingGroupNotificationConfigurationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupPerformanceFactorReferenceRequestInput)(nil)).Elem(), AutoScalingGroupPerformanceFactorReferenceRequestArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupPerformanceFactorReferenceRequestArrayInput)(nil)).Elem(), AutoScalingGroupPerformanceFactorReferenceRequestArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupTagPropertyInput)(nil)).Elem(), AutoScalingGroupTagPropertyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupTagPropertyArrayInput)(nil)).Elem(), AutoScalingGroupTagPropertyArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AutoScalingGroupTotalLocalStorageGbRequestInput)(nil)).Elem(), AutoScalingGroupTotalLocalStorageGbRequestArgs{}) @@ -8684,8 +9223,14 @@ func init() { pulumi.RegisterOutputType(AutoScalingGroupAcceleratorTotalMemoryMiBRequestPtrOutput{}) pulumi.RegisterOutputType(AutoScalingGroupAvailabilityZoneDistributionOutput{}) pulumi.RegisterOutputType(AutoScalingGroupAvailabilityZoneDistributionPtrOutput{}) + pulumi.RegisterOutputType(AutoScalingGroupAvailabilityZoneImpairmentPolicyOutput{}) + pulumi.RegisterOutputType(AutoScalingGroupAvailabilityZoneImpairmentPolicyPtrOutput{}) pulumi.RegisterOutputType(AutoScalingGroupBaselineEbsBandwidthMbpsRequestOutput{}) pulumi.RegisterOutputType(AutoScalingGroupBaselineEbsBandwidthMbpsRequestPtrOutput{}) + pulumi.RegisterOutputType(AutoScalingGroupBaselinePerformanceFactorsRequestOutput{}) + pulumi.RegisterOutputType(AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput{}) + pulumi.RegisterOutputType(AutoScalingGroupCpuPerformanceFactorRequestOutput{}) + pulumi.RegisterOutputType(AutoScalingGroupCpuPerformanceFactorRequestPtrOutput{}) pulumi.RegisterOutputType(AutoScalingGroupInstanceMaintenancePolicyOutput{}) pulumi.RegisterOutputType(AutoScalingGroupInstanceMaintenancePolicyPtrOutput{}) pulumi.RegisterOutputType(AutoScalingGroupInstanceRequirementsOutput{}) @@ -8715,6 +9260,8 @@ func init() { pulumi.RegisterOutputType(AutoScalingGroupNotificationConfigurationOutput{}) pulumi.RegisterOutputType(AutoScalingGroupNotificationConfigurationPtrOutput{}) pulumi.RegisterOutputType(AutoScalingGroupNotificationConfigurationArrayOutput{}) + pulumi.RegisterOutputType(AutoScalingGroupPerformanceFactorReferenceRequestOutput{}) + pulumi.RegisterOutputType(AutoScalingGroupPerformanceFactorReferenceRequestArrayOutput{}) pulumi.RegisterOutputType(AutoScalingGroupTagPropertyOutput{}) pulumi.RegisterOutputType(AutoScalingGroupTagPropertyArrayOutput{}) pulumi.RegisterOutputType(AutoScalingGroupTotalLocalStorageGbRequestOutput{}) diff --git a/sdk/go/aws/batch/pulumiTypes.go b/sdk/go/aws/batch/pulumiTypes.go index b5c27c0e9d..c198b2e217 100644 --- a/sdk/go/aws/batch/pulumiTypes.go +++ b/sdk/go/aws/batch/pulumiTypes.go @@ -1097,15 +1097,22 @@ type ComputeEnvironmentLaunchTemplateSpecification struct { // The ID of the launch template. LaunchTemplateId *string `pulumi:"launchTemplateId"` // The name of the launch template. - LaunchTemplateName *string `pulumi:"launchTemplateName"` - Overrides []ComputeEnvironmentLaunchTemplateSpecificationOverride `pulumi:"overrides"` - // The version number of the launch template, `$Latest` , or `$Default` . + LaunchTemplateName *string `pulumi:"launchTemplateName"` + // A launch template to use in place of the default launch template. You must specify either the launch template ID or launch template name in the request, but not both. // - // If the value is `$Latest` , the latest version of the launch template is used. If the value is `$Default` , the default version of the launch template is used. + // You can specify up to ten (10) launch template overrides that are associated to unique instance types or families for each compute environment. // - // > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Latest` or `$Default` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + // > To unset all override templates for a compute environment, you can pass an empty array to the [UpdateComputeEnvironment.overrides](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) parameter, or not include the `overrides` parameter when submitting the `UpdateComputeEnvironment` API operation. + Overrides []ComputeEnvironmentLaunchTemplateSpecificationOverride `pulumi:"overrides"` + // The version number of the launch template, `$Default` , or `$Latest` . // - // Default: `$Default` . + // If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. + // + // > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + // + // Default: `$Default` + // + // Latest: `$Latest` Version *string `pulumi:"version"` } @@ -1124,15 +1131,22 @@ type ComputeEnvironmentLaunchTemplateSpecificationArgs struct { // The ID of the launch template. LaunchTemplateId pulumi.StringPtrInput `pulumi:"launchTemplateId"` // The name of the launch template. - LaunchTemplateName pulumi.StringPtrInput `pulumi:"launchTemplateName"` - Overrides ComputeEnvironmentLaunchTemplateSpecificationOverrideArrayInput `pulumi:"overrides"` - // The version number of the launch template, `$Latest` , or `$Default` . + LaunchTemplateName pulumi.StringPtrInput `pulumi:"launchTemplateName"` + // A launch template to use in place of the default launch template. You must specify either the launch template ID or launch template name in the request, but not both. + // + // You can specify up to ten (10) launch template overrides that are associated to unique instance types or families for each compute environment. // - // If the value is `$Latest` , the latest version of the launch template is used. If the value is `$Default` , the default version of the launch template is used. + // > To unset all override templates for a compute environment, you can pass an empty array to the [UpdateComputeEnvironment.overrides](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) parameter, or not include the `overrides` parameter when submitting the `UpdateComputeEnvironment` API operation. + Overrides ComputeEnvironmentLaunchTemplateSpecificationOverrideArrayInput `pulumi:"overrides"` + // The version number of the launch template, `$Default` , or `$Latest` . // - // > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Latest` or `$Default` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + // If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. // - // Default: `$Default` . + // > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + // + // Default: `$Default` + // + // Latest: `$Latest` Version pulumi.StringPtrInput `pulumi:"version"` } @@ -1223,19 +1237,26 @@ func (o ComputeEnvironmentLaunchTemplateSpecificationOutput) LaunchTemplateName( return o.ApplyT(func(v ComputeEnvironmentLaunchTemplateSpecification) *string { return v.LaunchTemplateName }).(pulumi.StringPtrOutput) } +// A launch template to use in place of the default launch template. You must specify either the launch template ID or launch template name in the request, but not both. +// +// You can specify up to ten (10) launch template overrides that are associated to unique instance types or families for each compute environment. +// +// > To unset all override templates for a compute environment, you can pass an empty array to the [UpdateComputeEnvironment.overrides](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) parameter, or not include the `overrides` parameter when submitting the `UpdateComputeEnvironment` API operation. func (o ComputeEnvironmentLaunchTemplateSpecificationOutput) Overrides() ComputeEnvironmentLaunchTemplateSpecificationOverrideArrayOutput { return o.ApplyT(func(v ComputeEnvironmentLaunchTemplateSpecification) []ComputeEnvironmentLaunchTemplateSpecificationOverride { return v.Overrides }).(ComputeEnvironmentLaunchTemplateSpecificationOverrideArrayOutput) } -// The version number of the launch template, `$Latest` , or `$Default` . +// The version number of the launch template, `$Default` , or `$Latest` . +// +// If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. // -// If the value is `$Latest` , the latest version of the launch template is used. If the value is `$Default` , the default version of the launch template is used. +// > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . // -// > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Latest` or `$Default` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . +// Default: `$Default` // -// Default: `$Default` . +// Latest: `$Latest` func (o ComputeEnvironmentLaunchTemplateSpecificationOutput) Version() pulumi.StringPtrOutput { return o.ApplyT(func(v ComputeEnvironmentLaunchTemplateSpecification) *string { return v.Version }).(pulumi.StringPtrOutput) } @@ -1284,6 +1305,11 @@ func (o ComputeEnvironmentLaunchTemplateSpecificationPtrOutput) LaunchTemplateNa }).(pulumi.StringPtrOutput) } +// A launch template to use in place of the default launch template. You must specify either the launch template ID or launch template name in the request, but not both. +// +// You can specify up to ten (10) launch template overrides that are associated to unique instance types or families for each compute environment. +// +// > To unset all override templates for a compute environment, you can pass an empty array to the [UpdateComputeEnvironment.overrides](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) parameter, or not include the `overrides` parameter when submitting the `UpdateComputeEnvironment` API operation. func (o ComputeEnvironmentLaunchTemplateSpecificationPtrOutput) Overrides() ComputeEnvironmentLaunchTemplateSpecificationOverrideArrayOutput { return o.ApplyT(func(v *ComputeEnvironmentLaunchTemplateSpecification) []ComputeEnvironmentLaunchTemplateSpecificationOverride { if v == nil { @@ -1293,13 +1319,15 @@ func (o ComputeEnvironmentLaunchTemplateSpecificationPtrOutput) Overrides() Comp }).(ComputeEnvironmentLaunchTemplateSpecificationOverrideArrayOutput) } -// The version number of the launch template, `$Latest` , or `$Default` . +// The version number of the launch template, `$Default` , or `$Latest` . +// +// If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. // -// If the value is `$Latest` , the latest version of the launch template is used. If the value is `$Default` , the default version of the launch template is used. +// > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . // -// > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Latest` or `$Default` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . +// Default: `$Default` // -// Default: `$Default` . +// Latest: `$Latest` func (o ComputeEnvironmentLaunchTemplateSpecificationPtrOutput) Version() pulumi.StringPtrOutput { return o.ApplyT(func(v *ComputeEnvironmentLaunchTemplateSpecification) *string { if v == nil { @@ -1310,10 +1338,35 @@ func (o ComputeEnvironmentLaunchTemplateSpecificationPtrOutput) Version() pulumi } type ComputeEnvironmentLaunchTemplateSpecificationOverride struct { - LaunchTemplateId *string `pulumi:"launchTemplateId"` - LaunchTemplateName *string `pulumi:"launchTemplateName"` + // The ID of the launch template. + // + // *Note:* If you specify the `launchTemplateId` you can't specify the `launchTemplateName` as well. + LaunchTemplateId *string `pulumi:"launchTemplateId"` + // The name of the launch template. + // + // *Note:* If you specify the `launchTemplateName` you can't specify the `launchTemplateId` as well. + LaunchTemplateName *string `pulumi:"launchTemplateName"` + // The instance type or family that this this override launch template should be applied to. + // + // This parameter is required when defining a launch template override. + // + // Information included in this parameter must meet the following requirements: + // + // - Must be a valid Amazon EC2 instance type or family. + // - `optimal` isn't allowed. + // - `targetInstanceTypes` can target only instance types and families that are included within the [`ComputeResource.instanceTypes`](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes) set. `targetInstanceTypes` doesn't need to include all of the instances from the `instanceType` set, but at least a subset. For example, if `ComputeResource.instanceTypes` includes `[m5, g5]` , `targetInstanceTypes` can include `[m5.2xlarge]` and `[m5.large]` but not `[c5.large]` . + // - `targetInstanceTypes` included within the same launch template override or across launch template overrides can't overlap for the same compute environment. For example, you can't define one launch template override to target an instance family and another define an instance type within this same family. TargetInstanceTypes []string `pulumi:"targetInstanceTypes"` - Version *string `pulumi:"version"` + // The version number of the launch template, `$Default` , or `$Latest` . + // + // If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. + // + // > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + // + // Default: `$Default` + // + // Latest: `$Latest` + Version *string `pulumi:"version"` } // ComputeEnvironmentLaunchTemplateSpecificationOverrideInput is an input type that accepts ComputeEnvironmentLaunchTemplateSpecificationOverrideArgs and ComputeEnvironmentLaunchTemplateSpecificationOverrideOutput values. @@ -1328,10 +1381,35 @@ type ComputeEnvironmentLaunchTemplateSpecificationOverrideInput interface { } type ComputeEnvironmentLaunchTemplateSpecificationOverrideArgs struct { - LaunchTemplateId pulumi.StringPtrInput `pulumi:"launchTemplateId"` - LaunchTemplateName pulumi.StringPtrInput `pulumi:"launchTemplateName"` + // The ID of the launch template. + // + // *Note:* If you specify the `launchTemplateId` you can't specify the `launchTemplateName` as well. + LaunchTemplateId pulumi.StringPtrInput `pulumi:"launchTemplateId"` + // The name of the launch template. + // + // *Note:* If you specify the `launchTemplateName` you can't specify the `launchTemplateId` as well. + LaunchTemplateName pulumi.StringPtrInput `pulumi:"launchTemplateName"` + // The instance type or family that this this override launch template should be applied to. + // + // This parameter is required when defining a launch template override. + // + // Information included in this parameter must meet the following requirements: + // + // - Must be a valid Amazon EC2 instance type or family. + // - `optimal` isn't allowed. + // - `targetInstanceTypes` can target only instance types and families that are included within the [`ComputeResource.instanceTypes`](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes) set. `targetInstanceTypes` doesn't need to include all of the instances from the `instanceType` set, but at least a subset. For example, if `ComputeResource.instanceTypes` includes `[m5, g5]` , `targetInstanceTypes` can include `[m5.2xlarge]` and `[m5.large]` but not `[c5.large]` . + // - `targetInstanceTypes` included within the same launch template override or across launch template overrides can't overlap for the same compute environment. For example, you can't define one launch template override to target an instance family and another define an instance type within this same family. TargetInstanceTypes pulumi.StringArrayInput `pulumi:"targetInstanceTypes"` - Version pulumi.StringPtrInput `pulumi:"version"` + // The version number of the launch template, `$Default` , or `$Latest` . + // + // If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. + // + // > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + // + // Default: `$Default` + // + // Latest: `$Latest` + Version pulumi.StringPtrInput `pulumi:"version"` } func (ComputeEnvironmentLaunchTemplateSpecificationOverrideArgs) ElementType() reflect.Type { @@ -1385,18 +1463,43 @@ func (o ComputeEnvironmentLaunchTemplateSpecificationOverrideOutput) ToComputeEn return o } +// The ID of the launch template. +// +// *Note:* If you specify the `launchTemplateId` you can't specify the `launchTemplateName` as well. func (o ComputeEnvironmentLaunchTemplateSpecificationOverrideOutput) LaunchTemplateId() pulumi.StringPtrOutput { return o.ApplyT(func(v ComputeEnvironmentLaunchTemplateSpecificationOverride) *string { return v.LaunchTemplateId }).(pulumi.StringPtrOutput) } +// The name of the launch template. +// +// *Note:* If you specify the `launchTemplateName` you can't specify the `launchTemplateId` as well. func (o ComputeEnvironmentLaunchTemplateSpecificationOverrideOutput) LaunchTemplateName() pulumi.StringPtrOutput { return o.ApplyT(func(v ComputeEnvironmentLaunchTemplateSpecificationOverride) *string { return v.LaunchTemplateName }).(pulumi.StringPtrOutput) } +// The instance type or family that this this override launch template should be applied to. +// +// This parameter is required when defining a launch template override. +// +// Information included in this parameter must meet the following requirements: +// +// - Must be a valid Amazon EC2 instance type or family. +// - `optimal` isn't allowed. +// - `targetInstanceTypes` can target only instance types and families that are included within the [`ComputeResource.instanceTypes`](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes) set. `targetInstanceTypes` doesn't need to include all of the instances from the `instanceType` set, but at least a subset. For example, if `ComputeResource.instanceTypes` includes `[m5, g5]` , `targetInstanceTypes` can include `[m5.2xlarge]` and `[m5.large]` but not `[c5.large]` . +// - `targetInstanceTypes` included within the same launch template override or across launch template overrides can't overlap for the same compute environment. For example, you can't define one launch template override to target an instance family and another define an instance type within this same family. func (o ComputeEnvironmentLaunchTemplateSpecificationOverrideOutput) TargetInstanceTypes() pulumi.StringArrayOutput { return o.ApplyT(func(v ComputeEnvironmentLaunchTemplateSpecificationOverride) []string { return v.TargetInstanceTypes }).(pulumi.StringArrayOutput) } +// The version number of the launch template, `$Default` , or `$Latest` . +// +// If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. +// +// > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . +// +// Default: `$Default` +// +// Latest: `$Latest` func (o ComputeEnvironmentLaunchTemplateSpecificationOverrideOutput) Version() pulumi.StringPtrOutput { return o.ApplyT(func(v ComputeEnvironmentLaunchTemplateSpecificationOverride) *string { return v.Version }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/cloudformation/getTypeActivation.go b/sdk/go/aws/cloudformation/getTypeActivation.go index bc0b01a685..f26cf920b9 100644 --- a/sdk/go/aws/cloudformation/getTypeActivation.go +++ b/sdk/go/aws/cloudformation/getTypeActivation.go @@ -30,16 +30,12 @@ type LookupTypeActivationArgs struct { type LookupTypeActivationResult struct { // The Amazon Resource Name (ARN) of the extension. Arn *string `pulumi:"arn"` - // The Amazon Resource Number (ARN) assigned to the public extension upon publication - PublicTypeArn *string `pulumi:"publicTypeArn"` - // The publisher id assigned by CloudFormation for publishing in this region. - PublisherId *string `pulumi:"publisherId"` - // The name of the type being registered. - // - // We recommend that type names adhere to the following pattern: company_or_organization::service::type. - TypeName *string `pulumi:"typeName"` - // An alias to assign to the public extension in this account and region. If you specify an alias for the extension, you must then use the alias to refer to the extension in your templates. - TypeNameAlias *string `pulumi:"typeNameAlias"` + // Whether to automatically update the extension in this account and region when a new minor version is published by the extension publisher. Major versions released by the publisher must be manually updated. + AutoUpdate *bool `pulumi:"autoUpdate"` + // The Major Version of the type you want to enable + MajorVersion *string `pulumi:"majorVersion"` + // Manually updates a previously-enabled type to a new major or minor version, if available. You can also use this parameter to update the value of AutoUpdateEnabled + VersionBump *TypeActivationVersionBump `pulumi:"versionBump"` } func LookupTypeActivationOutput(ctx *pulumi.Context, args LookupTypeActivationOutputArgs, opts ...pulumi.InvokeOption) LookupTypeActivationResultOutput { @@ -89,26 +85,19 @@ func (o LookupTypeActivationResultOutput) Arn() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupTypeActivationResult) *string { return v.Arn }).(pulumi.StringPtrOutput) } -// The Amazon Resource Number (ARN) assigned to the public extension upon publication -func (o LookupTypeActivationResultOutput) PublicTypeArn() pulumi.StringPtrOutput { - return o.ApplyT(func(v LookupTypeActivationResult) *string { return v.PublicTypeArn }).(pulumi.StringPtrOutput) +// Whether to automatically update the extension in this account and region when a new minor version is published by the extension publisher. Major versions released by the publisher must be manually updated. +func (o LookupTypeActivationResultOutput) AutoUpdate() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupTypeActivationResult) *bool { return v.AutoUpdate }).(pulumi.BoolPtrOutput) } -// The publisher id assigned by CloudFormation for publishing in this region. -func (o LookupTypeActivationResultOutput) PublisherId() pulumi.StringPtrOutput { - return o.ApplyT(func(v LookupTypeActivationResult) *string { return v.PublisherId }).(pulumi.StringPtrOutput) +// The Major Version of the type you want to enable +func (o LookupTypeActivationResultOutput) MajorVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupTypeActivationResult) *string { return v.MajorVersion }).(pulumi.StringPtrOutput) } -// The name of the type being registered. -// -// We recommend that type names adhere to the following pattern: company_or_organization::service::type. -func (o LookupTypeActivationResultOutput) TypeName() pulumi.StringPtrOutput { - return o.ApplyT(func(v LookupTypeActivationResult) *string { return v.TypeName }).(pulumi.StringPtrOutput) -} - -// An alias to assign to the public extension in this account and region. If you specify an alias for the extension, you must then use the alias to refer to the extension in your templates. -func (o LookupTypeActivationResultOutput) TypeNameAlias() pulumi.StringPtrOutput { - return o.ApplyT(func(v LookupTypeActivationResult) *string { return v.TypeNameAlias }).(pulumi.StringPtrOutput) +// Manually updates a previously-enabled type to a new major or minor version, if available. You can also use this parameter to update the value of AutoUpdateEnabled +func (o LookupTypeActivationResultOutput) VersionBump() TypeActivationVersionBumpPtrOutput { + return o.ApplyT(func(v LookupTypeActivationResult) *TypeActivationVersionBump { return v.VersionBump }).(TypeActivationVersionBumpPtrOutput) } func init() { diff --git a/sdk/go/aws/cloudformation/typeActivation.go b/sdk/go/aws/cloudformation/typeActivation.go index edb9c63af5..5d8a3e2bc7 100644 --- a/sdk/go/aws/cloudformation/typeActivation.go +++ b/sdk/go/aws/cloudformation/typeActivation.go @@ -49,7 +49,13 @@ func NewTypeActivation(ctx *pulumi.Context, } replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "executionRoleArn", "loggingConfig", + "publicTypeArn", + "publisherId", + "type", + "typeName", + "typeNameAlias", }) opts = append(opts, replaceOnChanges) opts = internal.PkgResourceDefaultOpts(opts) diff --git a/sdk/go/aws/connectcampaignsv2/campaign.go b/sdk/go/aws/connectcampaignsv2/campaign.go new file mode 100644 index 0000000000..5e9d709aa9 --- /dev/null +++ b/sdk/go/aws/connectcampaignsv2/campaign.go @@ -0,0 +1,192 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package connectcampaignsv2 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Definition of AWS::ConnectCampaignsV2::Campaign Resource Type +type Campaign struct { + pulumi.CustomResourceState + + // Amazon Connect Campaign Arn + Arn pulumi.StringOutput `pulumi:"arn"` + ChannelSubtypeConfig CampaignChannelSubtypeConfigOutput `pulumi:"channelSubtypeConfig"` + CommunicationLimitsOverride CampaignCommunicationLimitsConfigPtrOutput `pulumi:"communicationLimitsOverride"` + CommunicationTimeConfig CampaignCommunicationTimeConfigPtrOutput `pulumi:"communicationTimeConfig"` + ConnectCampaignFlowArn pulumi.StringPtrOutput `pulumi:"connectCampaignFlowArn"` + ConnectInstanceId pulumi.StringOutput `pulumi:"connectInstanceId"` + Name pulumi.StringOutput `pulumi:"name"` + Schedule CampaignSchedulePtrOutput `pulumi:"schedule"` + Source CampaignSourcePtrOutput `pulumi:"source"` + // One or more tags. + Tags aws.TagArrayOutput `pulumi:"tags"` +} + +// NewCampaign registers a new resource with the given unique name, arguments, and options. +func NewCampaign(ctx *pulumi.Context, + name string, args *CampaignArgs, opts ...pulumi.ResourceOption) (*Campaign, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ChannelSubtypeConfig == nil { + return nil, errors.New("invalid value for required argument 'ChannelSubtypeConfig'") + } + if args.ConnectInstanceId == nil { + return nil, errors.New("invalid value for required argument 'ConnectInstanceId'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "connectInstanceId", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource Campaign + err := ctx.RegisterResource("aws-native:connectcampaignsv2:Campaign", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetCampaign gets an existing Campaign resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetCampaign(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *CampaignState, opts ...pulumi.ResourceOption) (*Campaign, error) { + var resource Campaign + err := ctx.ReadResource("aws-native:connectcampaignsv2:Campaign", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Campaign resources. +type campaignState struct { +} + +type CampaignState struct { +} + +func (CampaignState) ElementType() reflect.Type { + return reflect.TypeOf((*campaignState)(nil)).Elem() +} + +type campaignArgs struct { + ChannelSubtypeConfig CampaignChannelSubtypeConfig `pulumi:"channelSubtypeConfig"` + CommunicationLimitsOverride *CampaignCommunicationLimitsConfig `pulumi:"communicationLimitsOverride"` + CommunicationTimeConfig *CampaignCommunicationTimeConfig `pulumi:"communicationTimeConfig"` + ConnectCampaignFlowArn *string `pulumi:"connectCampaignFlowArn"` + ConnectInstanceId string `pulumi:"connectInstanceId"` + Name *string `pulumi:"name"` + Schedule *CampaignSchedule `pulumi:"schedule"` + Source *CampaignSource `pulumi:"source"` + // One or more tags. + Tags []aws.Tag `pulumi:"tags"` +} + +// The set of arguments for constructing a Campaign resource. +type CampaignArgs struct { + ChannelSubtypeConfig CampaignChannelSubtypeConfigInput + CommunicationLimitsOverride CampaignCommunicationLimitsConfigPtrInput + CommunicationTimeConfig CampaignCommunicationTimeConfigPtrInput + ConnectCampaignFlowArn pulumi.StringPtrInput + ConnectInstanceId pulumi.StringInput + Name pulumi.StringPtrInput + Schedule CampaignSchedulePtrInput + Source CampaignSourcePtrInput + // One or more tags. + Tags aws.TagArrayInput +} + +func (CampaignArgs) ElementType() reflect.Type { + return reflect.TypeOf((*campaignArgs)(nil)).Elem() +} + +type CampaignInput interface { + pulumi.Input + + ToCampaignOutput() CampaignOutput + ToCampaignOutputWithContext(ctx context.Context) CampaignOutput +} + +func (*Campaign) ElementType() reflect.Type { + return reflect.TypeOf((**Campaign)(nil)).Elem() +} + +func (i *Campaign) ToCampaignOutput() CampaignOutput { + return i.ToCampaignOutputWithContext(context.Background()) +} + +func (i *Campaign) ToCampaignOutputWithContext(ctx context.Context) CampaignOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignOutput) +} + +type CampaignOutput struct{ *pulumi.OutputState } + +func (CampaignOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Campaign)(nil)).Elem() +} + +func (o CampaignOutput) ToCampaignOutput() CampaignOutput { + return o +} + +func (o CampaignOutput) ToCampaignOutputWithContext(ctx context.Context) CampaignOutput { + return o +} + +// Amazon Connect Campaign Arn +func (o CampaignOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *Campaign) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +func (o CampaignOutput) ChannelSubtypeConfig() CampaignChannelSubtypeConfigOutput { + return o.ApplyT(func(v *Campaign) CampaignChannelSubtypeConfigOutput { return v.ChannelSubtypeConfig }).(CampaignChannelSubtypeConfigOutput) +} + +func (o CampaignOutput) CommunicationLimitsOverride() CampaignCommunicationLimitsConfigPtrOutput { + return o.ApplyT(func(v *Campaign) CampaignCommunicationLimitsConfigPtrOutput { return v.CommunicationLimitsOverride }).(CampaignCommunicationLimitsConfigPtrOutput) +} + +func (o CampaignOutput) CommunicationTimeConfig() CampaignCommunicationTimeConfigPtrOutput { + return o.ApplyT(func(v *Campaign) CampaignCommunicationTimeConfigPtrOutput { return v.CommunicationTimeConfig }).(CampaignCommunicationTimeConfigPtrOutput) +} + +func (o CampaignOutput) ConnectCampaignFlowArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Campaign) pulumi.StringPtrOutput { return v.ConnectCampaignFlowArn }).(pulumi.StringPtrOutput) +} + +func (o CampaignOutput) ConnectInstanceId() pulumi.StringOutput { + return o.ApplyT(func(v *Campaign) pulumi.StringOutput { return v.ConnectInstanceId }).(pulumi.StringOutput) +} + +func (o CampaignOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Campaign) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +func (o CampaignOutput) Schedule() CampaignSchedulePtrOutput { + return o.ApplyT(func(v *Campaign) CampaignSchedulePtrOutput { return v.Schedule }).(CampaignSchedulePtrOutput) +} + +func (o CampaignOutput) Source() CampaignSourcePtrOutput { + return o.ApplyT(func(v *Campaign) CampaignSourcePtrOutput { return v.Source }).(CampaignSourcePtrOutput) +} + +// One or more tags. +func (o CampaignOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v *Campaign) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*CampaignInput)(nil)).Elem(), &Campaign{}) + pulumi.RegisterOutputType(CampaignOutput{}) +} diff --git a/sdk/go/aws/connectcampaignsv2/getCampaign.go b/sdk/go/aws/connectcampaignsv2/getCampaign.go new file mode 100644 index 0000000000..a12821314e --- /dev/null +++ b/sdk/go/aws/connectcampaignsv2/getCampaign.go @@ -0,0 +1,127 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package connectcampaignsv2 + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Definition of AWS::ConnectCampaignsV2::Campaign Resource Type +func LookupCampaign(ctx *pulumi.Context, args *LookupCampaignArgs, opts ...pulumi.InvokeOption) (*LookupCampaignResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupCampaignResult + err := ctx.Invoke("aws-native:connectcampaignsv2:getCampaign", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupCampaignArgs struct { + // Amazon Connect Campaign Arn + Arn string `pulumi:"arn"` +} + +type LookupCampaignResult struct { + // Amazon Connect Campaign Arn + Arn *string `pulumi:"arn"` + ChannelSubtypeConfig *CampaignChannelSubtypeConfig `pulumi:"channelSubtypeConfig"` + CommunicationLimitsOverride *CampaignCommunicationLimitsConfig `pulumi:"communicationLimitsOverride"` + CommunicationTimeConfig *CampaignCommunicationTimeConfig `pulumi:"communicationTimeConfig"` + ConnectCampaignFlowArn *string `pulumi:"connectCampaignFlowArn"` + Name *string `pulumi:"name"` + Schedule *CampaignSchedule `pulumi:"schedule"` + Source *CampaignSource `pulumi:"source"` + // One or more tags. + Tags []aws.Tag `pulumi:"tags"` +} + +func LookupCampaignOutput(ctx *pulumi.Context, args LookupCampaignOutputArgs, opts ...pulumi.InvokeOption) LookupCampaignResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupCampaignResultOutput, error) { + args := v.(LookupCampaignArgs) + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupCampaignResult + secret, err := ctx.InvokePackageRaw("aws-native:connectcampaignsv2:getCampaign", args, &rv, "", opts...) + if err != nil { + return LookupCampaignResultOutput{}, err + } + + output := pulumi.ToOutput(rv).(LookupCampaignResultOutput) + if secret { + return pulumi.ToSecret(output).(LookupCampaignResultOutput), nil + } + return output, nil + }).(LookupCampaignResultOutput) +} + +type LookupCampaignOutputArgs struct { + // Amazon Connect Campaign Arn + Arn pulumi.StringInput `pulumi:"arn"` +} + +func (LookupCampaignOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupCampaignArgs)(nil)).Elem() +} + +type LookupCampaignResultOutput struct{ *pulumi.OutputState } + +func (LookupCampaignResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupCampaignResult)(nil)).Elem() +} + +func (o LookupCampaignResultOutput) ToLookupCampaignResultOutput() LookupCampaignResultOutput { + return o +} + +func (o LookupCampaignResultOutput) ToLookupCampaignResultOutputWithContext(ctx context.Context) LookupCampaignResultOutput { + return o +} + +// Amazon Connect Campaign Arn +func (o LookupCampaignResultOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupCampaignResult) *string { return v.Arn }).(pulumi.StringPtrOutput) +} + +func (o LookupCampaignResultOutput) ChannelSubtypeConfig() CampaignChannelSubtypeConfigPtrOutput { + return o.ApplyT(func(v LookupCampaignResult) *CampaignChannelSubtypeConfig { return v.ChannelSubtypeConfig }).(CampaignChannelSubtypeConfigPtrOutput) +} + +func (o LookupCampaignResultOutput) CommunicationLimitsOverride() CampaignCommunicationLimitsConfigPtrOutput { + return o.ApplyT(func(v LookupCampaignResult) *CampaignCommunicationLimitsConfig { return v.CommunicationLimitsOverride }).(CampaignCommunicationLimitsConfigPtrOutput) +} + +func (o LookupCampaignResultOutput) CommunicationTimeConfig() CampaignCommunicationTimeConfigPtrOutput { + return o.ApplyT(func(v LookupCampaignResult) *CampaignCommunicationTimeConfig { return v.CommunicationTimeConfig }).(CampaignCommunicationTimeConfigPtrOutput) +} + +func (o LookupCampaignResultOutput) ConnectCampaignFlowArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupCampaignResult) *string { return v.ConnectCampaignFlowArn }).(pulumi.StringPtrOutput) +} + +func (o LookupCampaignResultOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupCampaignResult) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +func (o LookupCampaignResultOutput) Schedule() CampaignSchedulePtrOutput { + return o.ApplyT(func(v LookupCampaignResult) *CampaignSchedule { return v.Schedule }).(CampaignSchedulePtrOutput) +} + +func (o LookupCampaignResultOutput) Source() CampaignSourcePtrOutput { + return o.ApplyT(func(v LookupCampaignResult) *CampaignSource { return v.Source }).(CampaignSourcePtrOutput) +} + +// One or more tags. +func (o LookupCampaignResultOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v LookupCampaignResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupCampaignResultOutput{}) +} diff --git a/sdk/go/aws/connectcampaignsv2/init.go b/sdk/go/aws/connectcampaignsv2/init.go new file mode 100644 index 0000000000..b1363c0434 --- /dev/null +++ b/sdk/go/aws/connectcampaignsv2/init.go @@ -0,0 +1,44 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package connectcampaignsv2 + +import ( + "fmt" + + "github.com/blang/semver" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type module struct { + version semver.Version +} + +func (m *module) Version() semver.Version { + return m.version +} + +func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { + switch typ { + case "aws-native:connectcampaignsv2:Campaign": + r = &Campaign{} + default: + return nil, fmt.Errorf("unknown resource type: %s", typ) + } + + err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn)) + return +} + +func init() { + version, err := internal.PkgVersion() + if err != nil { + version = semver.Version{Major: 1} + } + pulumi.RegisterResourceModule( + "aws-native", + "connectcampaignsv2", + &module{version}, + ) +} diff --git a/sdk/go/aws/connectcampaignsv2/pulumiEnums.go b/sdk/go/aws/connectcampaignsv2/pulumiEnums.go new file mode 100644 index 0000000000..48a1ce94e6 --- /dev/null +++ b/sdk/go/aws/connectcampaignsv2/pulumiEnums.go @@ -0,0 +1,579 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package connectcampaignsv2 + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// The communication limit time unit +type CampaignCommunicationLimitTimeUnit string + +const ( + CampaignCommunicationLimitTimeUnitDay = CampaignCommunicationLimitTimeUnit("DAY") +) + +func (CampaignCommunicationLimitTimeUnit) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignCommunicationLimitTimeUnit)(nil)).Elem() +} + +func (e CampaignCommunicationLimitTimeUnit) ToCampaignCommunicationLimitTimeUnitOutput() CampaignCommunicationLimitTimeUnitOutput { + return pulumi.ToOutput(e).(CampaignCommunicationLimitTimeUnitOutput) +} + +func (e CampaignCommunicationLimitTimeUnit) ToCampaignCommunicationLimitTimeUnitOutputWithContext(ctx context.Context) CampaignCommunicationLimitTimeUnitOutput { + return pulumi.ToOutputWithContext(ctx, e).(CampaignCommunicationLimitTimeUnitOutput) +} + +func (e CampaignCommunicationLimitTimeUnit) ToCampaignCommunicationLimitTimeUnitPtrOutput() CampaignCommunicationLimitTimeUnitPtrOutput { + return e.ToCampaignCommunicationLimitTimeUnitPtrOutputWithContext(context.Background()) +} + +func (e CampaignCommunicationLimitTimeUnit) ToCampaignCommunicationLimitTimeUnitPtrOutputWithContext(ctx context.Context) CampaignCommunicationLimitTimeUnitPtrOutput { + return CampaignCommunicationLimitTimeUnit(e).ToCampaignCommunicationLimitTimeUnitOutputWithContext(ctx).ToCampaignCommunicationLimitTimeUnitPtrOutputWithContext(ctx) +} + +func (e CampaignCommunicationLimitTimeUnit) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e CampaignCommunicationLimitTimeUnit) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e CampaignCommunicationLimitTimeUnit) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e CampaignCommunicationLimitTimeUnit) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type CampaignCommunicationLimitTimeUnitOutput struct{ *pulumi.OutputState } + +func (CampaignCommunicationLimitTimeUnitOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignCommunicationLimitTimeUnit)(nil)).Elem() +} + +func (o CampaignCommunicationLimitTimeUnitOutput) ToCampaignCommunicationLimitTimeUnitOutput() CampaignCommunicationLimitTimeUnitOutput { + return o +} + +func (o CampaignCommunicationLimitTimeUnitOutput) ToCampaignCommunicationLimitTimeUnitOutputWithContext(ctx context.Context) CampaignCommunicationLimitTimeUnitOutput { + return o +} + +func (o CampaignCommunicationLimitTimeUnitOutput) ToCampaignCommunicationLimitTimeUnitPtrOutput() CampaignCommunicationLimitTimeUnitPtrOutput { + return o.ToCampaignCommunicationLimitTimeUnitPtrOutputWithContext(context.Background()) +} + +func (o CampaignCommunicationLimitTimeUnitOutput) ToCampaignCommunicationLimitTimeUnitPtrOutputWithContext(ctx context.Context) CampaignCommunicationLimitTimeUnitPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignCommunicationLimitTimeUnit) *CampaignCommunicationLimitTimeUnit { + return &v + }).(CampaignCommunicationLimitTimeUnitPtrOutput) +} + +func (o CampaignCommunicationLimitTimeUnitOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o CampaignCommunicationLimitTimeUnitOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e CampaignCommunicationLimitTimeUnit) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o CampaignCommunicationLimitTimeUnitOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o CampaignCommunicationLimitTimeUnitOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e CampaignCommunicationLimitTimeUnit) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type CampaignCommunicationLimitTimeUnitPtrOutput struct{ *pulumi.OutputState } + +func (CampaignCommunicationLimitTimeUnitPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignCommunicationLimitTimeUnit)(nil)).Elem() +} + +func (o CampaignCommunicationLimitTimeUnitPtrOutput) ToCampaignCommunicationLimitTimeUnitPtrOutput() CampaignCommunicationLimitTimeUnitPtrOutput { + return o +} + +func (o CampaignCommunicationLimitTimeUnitPtrOutput) ToCampaignCommunicationLimitTimeUnitPtrOutputWithContext(ctx context.Context) CampaignCommunicationLimitTimeUnitPtrOutput { + return o +} + +func (o CampaignCommunicationLimitTimeUnitPtrOutput) Elem() CampaignCommunicationLimitTimeUnitOutput { + return o.ApplyT(func(v *CampaignCommunicationLimitTimeUnit) CampaignCommunicationLimitTimeUnit { + if v != nil { + return *v + } + var ret CampaignCommunicationLimitTimeUnit + return ret + }).(CampaignCommunicationLimitTimeUnitOutput) +} + +func (o CampaignCommunicationLimitTimeUnitPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o CampaignCommunicationLimitTimeUnitPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *CampaignCommunicationLimitTimeUnit) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// CampaignCommunicationLimitTimeUnitInput is an input type that accepts values of the CampaignCommunicationLimitTimeUnit enum +// A concrete instance of `CampaignCommunicationLimitTimeUnitInput` can be one of the following: +// +// CampaignCommunicationLimitTimeUnitDay +type CampaignCommunicationLimitTimeUnitInput interface { + pulumi.Input + + ToCampaignCommunicationLimitTimeUnitOutput() CampaignCommunicationLimitTimeUnitOutput + ToCampaignCommunicationLimitTimeUnitOutputWithContext(context.Context) CampaignCommunicationLimitTimeUnitOutput +} + +var campaignCommunicationLimitTimeUnitPtrType = reflect.TypeOf((**CampaignCommunicationLimitTimeUnit)(nil)).Elem() + +type CampaignCommunicationLimitTimeUnitPtrInput interface { + pulumi.Input + + ToCampaignCommunicationLimitTimeUnitPtrOutput() CampaignCommunicationLimitTimeUnitPtrOutput + ToCampaignCommunicationLimitTimeUnitPtrOutputWithContext(context.Context) CampaignCommunicationLimitTimeUnitPtrOutput +} + +type campaignCommunicationLimitTimeUnitPtr string + +func CampaignCommunicationLimitTimeUnitPtr(v string) CampaignCommunicationLimitTimeUnitPtrInput { + return (*campaignCommunicationLimitTimeUnitPtr)(&v) +} + +func (*campaignCommunicationLimitTimeUnitPtr) ElementType() reflect.Type { + return campaignCommunicationLimitTimeUnitPtrType +} + +func (in *campaignCommunicationLimitTimeUnitPtr) ToCampaignCommunicationLimitTimeUnitPtrOutput() CampaignCommunicationLimitTimeUnitPtrOutput { + return pulumi.ToOutput(in).(CampaignCommunicationLimitTimeUnitPtrOutput) +} + +func (in *campaignCommunicationLimitTimeUnitPtr) ToCampaignCommunicationLimitTimeUnitPtrOutputWithContext(ctx context.Context) CampaignCommunicationLimitTimeUnitPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(CampaignCommunicationLimitTimeUnitPtrOutput) +} + +// Day of week +type CampaignDayOfWeek string + +const ( + CampaignDayOfWeekMonday = CampaignDayOfWeek("MONDAY") + CampaignDayOfWeekTuesday = CampaignDayOfWeek("TUESDAY") + CampaignDayOfWeekWednesday = CampaignDayOfWeek("WEDNESDAY") + CampaignDayOfWeekThursday = CampaignDayOfWeek("THURSDAY") + CampaignDayOfWeekFriday = CampaignDayOfWeek("FRIDAY") + CampaignDayOfWeekSaturday = CampaignDayOfWeek("SATURDAY") + CampaignDayOfWeekSunday = CampaignDayOfWeek("SUNDAY") +) + +func (CampaignDayOfWeek) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignDayOfWeek)(nil)).Elem() +} + +func (e CampaignDayOfWeek) ToCampaignDayOfWeekOutput() CampaignDayOfWeekOutput { + return pulumi.ToOutput(e).(CampaignDayOfWeekOutput) +} + +func (e CampaignDayOfWeek) ToCampaignDayOfWeekOutputWithContext(ctx context.Context) CampaignDayOfWeekOutput { + return pulumi.ToOutputWithContext(ctx, e).(CampaignDayOfWeekOutput) +} + +func (e CampaignDayOfWeek) ToCampaignDayOfWeekPtrOutput() CampaignDayOfWeekPtrOutput { + return e.ToCampaignDayOfWeekPtrOutputWithContext(context.Background()) +} + +func (e CampaignDayOfWeek) ToCampaignDayOfWeekPtrOutputWithContext(ctx context.Context) CampaignDayOfWeekPtrOutput { + return CampaignDayOfWeek(e).ToCampaignDayOfWeekOutputWithContext(ctx).ToCampaignDayOfWeekPtrOutputWithContext(ctx) +} + +func (e CampaignDayOfWeek) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e CampaignDayOfWeek) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e CampaignDayOfWeek) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e CampaignDayOfWeek) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type CampaignDayOfWeekOutput struct{ *pulumi.OutputState } + +func (CampaignDayOfWeekOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignDayOfWeek)(nil)).Elem() +} + +func (o CampaignDayOfWeekOutput) ToCampaignDayOfWeekOutput() CampaignDayOfWeekOutput { + return o +} + +func (o CampaignDayOfWeekOutput) ToCampaignDayOfWeekOutputWithContext(ctx context.Context) CampaignDayOfWeekOutput { + return o +} + +func (o CampaignDayOfWeekOutput) ToCampaignDayOfWeekPtrOutput() CampaignDayOfWeekPtrOutput { + return o.ToCampaignDayOfWeekPtrOutputWithContext(context.Background()) +} + +func (o CampaignDayOfWeekOutput) ToCampaignDayOfWeekPtrOutputWithContext(ctx context.Context) CampaignDayOfWeekPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignDayOfWeek) *CampaignDayOfWeek { + return &v + }).(CampaignDayOfWeekPtrOutput) +} + +func (o CampaignDayOfWeekOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o CampaignDayOfWeekOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e CampaignDayOfWeek) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o CampaignDayOfWeekOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o CampaignDayOfWeekOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e CampaignDayOfWeek) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type CampaignDayOfWeekPtrOutput struct{ *pulumi.OutputState } + +func (CampaignDayOfWeekPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignDayOfWeek)(nil)).Elem() +} + +func (o CampaignDayOfWeekPtrOutput) ToCampaignDayOfWeekPtrOutput() CampaignDayOfWeekPtrOutput { + return o +} + +func (o CampaignDayOfWeekPtrOutput) ToCampaignDayOfWeekPtrOutputWithContext(ctx context.Context) CampaignDayOfWeekPtrOutput { + return o +} + +func (o CampaignDayOfWeekPtrOutput) Elem() CampaignDayOfWeekOutput { + return o.ApplyT(func(v *CampaignDayOfWeek) CampaignDayOfWeek { + if v != nil { + return *v + } + var ret CampaignDayOfWeek + return ret + }).(CampaignDayOfWeekOutput) +} + +func (o CampaignDayOfWeekPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o CampaignDayOfWeekPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *CampaignDayOfWeek) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// CampaignDayOfWeekInput is an input type that accepts values of the CampaignDayOfWeek enum +// A concrete instance of `CampaignDayOfWeekInput` can be one of the following: +// +// CampaignDayOfWeekMonday +// CampaignDayOfWeekTuesday +// CampaignDayOfWeekWednesday +// CampaignDayOfWeekThursday +// CampaignDayOfWeekFriday +// CampaignDayOfWeekSaturday +// CampaignDayOfWeekSunday +type CampaignDayOfWeekInput interface { + pulumi.Input + + ToCampaignDayOfWeekOutput() CampaignDayOfWeekOutput + ToCampaignDayOfWeekOutputWithContext(context.Context) CampaignDayOfWeekOutput +} + +var campaignDayOfWeekPtrType = reflect.TypeOf((**CampaignDayOfWeek)(nil)).Elem() + +type CampaignDayOfWeekPtrInput interface { + pulumi.Input + + ToCampaignDayOfWeekPtrOutput() CampaignDayOfWeekPtrOutput + ToCampaignDayOfWeekPtrOutputWithContext(context.Context) CampaignDayOfWeekPtrOutput +} + +type campaignDayOfWeekPtr string + +func CampaignDayOfWeekPtr(v string) CampaignDayOfWeekPtrInput { + return (*campaignDayOfWeekPtr)(&v) +} + +func (*campaignDayOfWeekPtr) ElementType() reflect.Type { + return campaignDayOfWeekPtrType +} + +func (in *campaignDayOfWeekPtr) ToCampaignDayOfWeekPtrOutput() CampaignDayOfWeekPtrOutput { + return pulumi.ToOutput(in).(CampaignDayOfWeekPtrOutput) +} + +func (in *campaignDayOfWeekPtr) ToCampaignDayOfWeekPtrOutputWithContext(ctx context.Context) CampaignDayOfWeekPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(CampaignDayOfWeekPtrOutput) +} + +// Local TimeZone Detection method +type CampaignLocalTimeZoneDetectionType string + +const ( + CampaignLocalTimeZoneDetectionTypeZipCode = CampaignLocalTimeZoneDetectionType("ZIP_CODE") + CampaignLocalTimeZoneDetectionTypeAreaCode = CampaignLocalTimeZoneDetectionType("AREA_CODE") +) + +func (CampaignLocalTimeZoneDetectionType) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignLocalTimeZoneDetectionType)(nil)).Elem() +} + +func (e CampaignLocalTimeZoneDetectionType) ToCampaignLocalTimeZoneDetectionTypeOutput() CampaignLocalTimeZoneDetectionTypeOutput { + return pulumi.ToOutput(e).(CampaignLocalTimeZoneDetectionTypeOutput) +} + +func (e CampaignLocalTimeZoneDetectionType) ToCampaignLocalTimeZoneDetectionTypeOutputWithContext(ctx context.Context) CampaignLocalTimeZoneDetectionTypeOutput { + return pulumi.ToOutputWithContext(ctx, e).(CampaignLocalTimeZoneDetectionTypeOutput) +} + +func (e CampaignLocalTimeZoneDetectionType) ToCampaignLocalTimeZoneDetectionTypePtrOutput() CampaignLocalTimeZoneDetectionTypePtrOutput { + return e.ToCampaignLocalTimeZoneDetectionTypePtrOutputWithContext(context.Background()) +} + +func (e CampaignLocalTimeZoneDetectionType) ToCampaignLocalTimeZoneDetectionTypePtrOutputWithContext(ctx context.Context) CampaignLocalTimeZoneDetectionTypePtrOutput { + return CampaignLocalTimeZoneDetectionType(e).ToCampaignLocalTimeZoneDetectionTypeOutputWithContext(ctx).ToCampaignLocalTimeZoneDetectionTypePtrOutputWithContext(ctx) +} + +func (e CampaignLocalTimeZoneDetectionType) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e CampaignLocalTimeZoneDetectionType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e CampaignLocalTimeZoneDetectionType) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e CampaignLocalTimeZoneDetectionType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type CampaignLocalTimeZoneDetectionTypeOutput struct{ *pulumi.OutputState } + +func (CampaignLocalTimeZoneDetectionTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignLocalTimeZoneDetectionType)(nil)).Elem() +} + +func (o CampaignLocalTimeZoneDetectionTypeOutput) ToCampaignLocalTimeZoneDetectionTypeOutput() CampaignLocalTimeZoneDetectionTypeOutput { + return o +} + +func (o CampaignLocalTimeZoneDetectionTypeOutput) ToCampaignLocalTimeZoneDetectionTypeOutputWithContext(ctx context.Context) CampaignLocalTimeZoneDetectionTypeOutput { + return o +} + +func (o CampaignLocalTimeZoneDetectionTypeOutput) ToCampaignLocalTimeZoneDetectionTypePtrOutput() CampaignLocalTimeZoneDetectionTypePtrOutput { + return o.ToCampaignLocalTimeZoneDetectionTypePtrOutputWithContext(context.Background()) +} + +func (o CampaignLocalTimeZoneDetectionTypeOutput) ToCampaignLocalTimeZoneDetectionTypePtrOutputWithContext(ctx context.Context) CampaignLocalTimeZoneDetectionTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignLocalTimeZoneDetectionType) *CampaignLocalTimeZoneDetectionType { + return &v + }).(CampaignLocalTimeZoneDetectionTypePtrOutput) +} + +func (o CampaignLocalTimeZoneDetectionTypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o CampaignLocalTimeZoneDetectionTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e CampaignLocalTimeZoneDetectionType) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o CampaignLocalTimeZoneDetectionTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o CampaignLocalTimeZoneDetectionTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e CampaignLocalTimeZoneDetectionType) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type CampaignLocalTimeZoneDetectionTypePtrOutput struct{ *pulumi.OutputState } + +func (CampaignLocalTimeZoneDetectionTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignLocalTimeZoneDetectionType)(nil)).Elem() +} + +func (o CampaignLocalTimeZoneDetectionTypePtrOutput) ToCampaignLocalTimeZoneDetectionTypePtrOutput() CampaignLocalTimeZoneDetectionTypePtrOutput { + return o +} + +func (o CampaignLocalTimeZoneDetectionTypePtrOutput) ToCampaignLocalTimeZoneDetectionTypePtrOutputWithContext(ctx context.Context) CampaignLocalTimeZoneDetectionTypePtrOutput { + return o +} + +func (o CampaignLocalTimeZoneDetectionTypePtrOutput) Elem() CampaignLocalTimeZoneDetectionTypeOutput { + return o.ApplyT(func(v *CampaignLocalTimeZoneDetectionType) CampaignLocalTimeZoneDetectionType { + if v != nil { + return *v + } + var ret CampaignLocalTimeZoneDetectionType + return ret + }).(CampaignLocalTimeZoneDetectionTypeOutput) +} + +func (o CampaignLocalTimeZoneDetectionTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o CampaignLocalTimeZoneDetectionTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *CampaignLocalTimeZoneDetectionType) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// CampaignLocalTimeZoneDetectionTypeInput is an input type that accepts values of the CampaignLocalTimeZoneDetectionType enum +// A concrete instance of `CampaignLocalTimeZoneDetectionTypeInput` can be one of the following: +// +// CampaignLocalTimeZoneDetectionTypeZipCode +// CampaignLocalTimeZoneDetectionTypeAreaCode +type CampaignLocalTimeZoneDetectionTypeInput interface { + pulumi.Input + + ToCampaignLocalTimeZoneDetectionTypeOutput() CampaignLocalTimeZoneDetectionTypeOutput + ToCampaignLocalTimeZoneDetectionTypeOutputWithContext(context.Context) CampaignLocalTimeZoneDetectionTypeOutput +} + +var campaignLocalTimeZoneDetectionTypePtrType = reflect.TypeOf((**CampaignLocalTimeZoneDetectionType)(nil)).Elem() + +type CampaignLocalTimeZoneDetectionTypePtrInput interface { + pulumi.Input + + ToCampaignLocalTimeZoneDetectionTypePtrOutput() CampaignLocalTimeZoneDetectionTypePtrOutput + ToCampaignLocalTimeZoneDetectionTypePtrOutputWithContext(context.Context) CampaignLocalTimeZoneDetectionTypePtrOutput +} + +type campaignLocalTimeZoneDetectionTypePtr string + +func CampaignLocalTimeZoneDetectionTypePtr(v string) CampaignLocalTimeZoneDetectionTypePtrInput { + return (*campaignLocalTimeZoneDetectionTypePtr)(&v) +} + +func (*campaignLocalTimeZoneDetectionTypePtr) ElementType() reflect.Type { + return campaignLocalTimeZoneDetectionTypePtrType +} + +func (in *campaignLocalTimeZoneDetectionTypePtr) ToCampaignLocalTimeZoneDetectionTypePtrOutput() CampaignLocalTimeZoneDetectionTypePtrOutput { + return pulumi.ToOutput(in).(CampaignLocalTimeZoneDetectionTypePtrOutput) +} + +func (in *campaignLocalTimeZoneDetectionTypePtr) ToCampaignLocalTimeZoneDetectionTypePtrOutputWithContext(ctx context.Context) CampaignLocalTimeZoneDetectionTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(CampaignLocalTimeZoneDetectionTypePtrOutput) +} + +// CampaignLocalTimeZoneDetectionTypeArrayInput is an input type that accepts CampaignLocalTimeZoneDetectionTypeArray and CampaignLocalTimeZoneDetectionTypeArrayOutput values. +// You can construct a concrete instance of `CampaignLocalTimeZoneDetectionTypeArrayInput` via: +// +// CampaignLocalTimeZoneDetectionTypeArray{ CampaignLocalTimeZoneDetectionTypeArgs{...} } +type CampaignLocalTimeZoneDetectionTypeArrayInput interface { + pulumi.Input + + ToCampaignLocalTimeZoneDetectionTypeArrayOutput() CampaignLocalTimeZoneDetectionTypeArrayOutput + ToCampaignLocalTimeZoneDetectionTypeArrayOutputWithContext(context.Context) CampaignLocalTimeZoneDetectionTypeArrayOutput +} + +type CampaignLocalTimeZoneDetectionTypeArray []CampaignLocalTimeZoneDetectionType + +func (CampaignLocalTimeZoneDetectionTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]CampaignLocalTimeZoneDetectionType)(nil)).Elem() +} + +func (i CampaignLocalTimeZoneDetectionTypeArray) ToCampaignLocalTimeZoneDetectionTypeArrayOutput() CampaignLocalTimeZoneDetectionTypeArrayOutput { + return i.ToCampaignLocalTimeZoneDetectionTypeArrayOutputWithContext(context.Background()) +} + +func (i CampaignLocalTimeZoneDetectionTypeArray) ToCampaignLocalTimeZoneDetectionTypeArrayOutputWithContext(ctx context.Context) CampaignLocalTimeZoneDetectionTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignLocalTimeZoneDetectionTypeArrayOutput) +} + +type CampaignLocalTimeZoneDetectionTypeArrayOutput struct{ *pulumi.OutputState } + +func (CampaignLocalTimeZoneDetectionTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]CampaignLocalTimeZoneDetectionType)(nil)).Elem() +} + +func (o CampaignLocalTimeZoneDetectionTypeArrayOutput) ToCampaignLocalTimeZoneDetectionTypeArrayOutput() CampaignLocalTimeZoneDetectionTypeArrayOutput { + return o +} + +func (o CampaignLocalTimeZoneDetectionTypeArrayOutput) ToCampaignLocalTimeZoneDetectionTypeArrayOutputWithContext(ctx context.Context) CampaignLocalTimeZoneDetectionTypeArrayOutput { + return o +} + +func (o CampaignLocalTimeZoneDetectionTypeArrayOutput) Index(i pulumi.IntInput) CampaignLocalTimeZoneDetectionTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) CampaignLocalTimeZoneDetectionType { + return vs[0].([]CampaignLocalTimeZoneDetectionType)[vs[1].(int)] + }).(CampaignLocalTimeZoneDetectionTypeOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*CampaignCommunicationLimitTimeUnitInput)(nil)).Elem(), CampaignCommunicationLimitTimeUnit("DAY")) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignCommunicationLimitTimeUnitPtrInput)(nil)).Elem(), CampaignCommunicationLimitTimeUnit("DAY")) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignDayOfWeekInput)(nil)).Elem(), CampaignDayOfWeek("MONDAY")) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignDayOfWeekPtrInput)(nil)).Elem(), CampaignDayOfWeek("MONDAY")) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignLocalTimeZoneDetectionTypeInput)(nil)).Elem(), CampaignLocalTimeZoneDetectionType("ZIP_CODE")) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignLocalTimeZoneDetectionTypePtrInput)(nil)).Elem(), CampaignLocalTimeZoneDetectionType("ZIP_CODE")) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignLocalTimeZoneDetectionTypeArrayInput)(nil)).Elem(), CampaignLocalTimeZoneDetectionTypeArray{}) + pulumi.RegisterOutputType(CampaignCommunicationLimitTimeUnitOutput{}) + pulumi.RegisterOutputType(CampaignCommunicationLimitTimeUnitPtrOutput{}) + pulumi.RegisterOutputType(CampaignDayOfWeekOutput{}) + pulumi.RegisterOutputType(CampaignDayOfWeekPtrOutput{}) + pulumi.RegisterOutputType(CampaignLocalTimeZoneDetectionTypeOutput{}) + pulumi.RegisterOutputType(CampaignLocalTimeZoneDetectionTypePtrOutput{}) + pulumi.RegisterOutputType(CampaignLocalTimeZoneDetectionTypeArrayOutput{}) +} diff --git a/sdk/go/aws/connectcampaignsv2/pulumiTypes.go b/sdk/go/aws/connectcampaignsv2/pulumiTypes.go new file mode 100644 index 0000000000..f5524b97ef --- /dev/null +++ b/sdk/go/aws/connectcampaignsv2/pulumiTypes.go @@ -0,0 +1,3994 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package connectcampaignsv2 + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +var _ = internal.GetEnvOrDefault + +// Agentless config +type CampaignAgentlessConfig struct { +} + +// CampaignAgentlessConfigInput is an input type that accepts CampaignAgentlessConfigArgs and CampaignAgentlessConfigOutput values. +// You can construct a concrete instance of `CampaignAgentlessConfigInput` via: +// +// CampaignAgentlessConfigArgs{...} +type CampaignAgentlessConfigInput interface { + pulumi.Input + + ToCampaignAgentlessConfigOutput() CampaignAgentlessConfigOutput + ToCampaignAgentlessConfigOutputWithContext(context.Context) CampaignAgentlessConfigOutput +} + +// Agentless config +type CampaignAgentlessConfigArgs struct { +} + +func (CampaignAgentlessConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignAgentlessConfig)(nil)).Elem() +} + +func (i CampaignAgentlessConfigArgs) ToCampaignAgentlessConfigOutput() CampaignAgentlessConfigOutput { + return i.ToCampaignAgentlessConfigOutputWithContext(context.Background()) +} + +func (i CampaignAgentlessConfigArgs) ToCampaignAgentlessConfigOutputWithContext(ctx context.Context) CampaignAgentlessConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignAgentlessConfigOutput) +} + +func (i CampaignAgentlessConfigArgs) ToCampaignAgentlessConfigPtrOutput() CampaignAgentlessConfigPtrOutput { + return i.ToCampaignAgentlessConfigPtrOutputWithContext(context.Background()) +} + +func (i CampaignAgentlessConfigArgs) ToCampaignAgentlessConfigPtrOutputWithContext(ctx context.Context) CampaignAgentlessConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignAgentlessConfigOutput).ToCampaignAgentlessConfigPtrOutputWithContext(ctx) +} + +// CampaignAgentlessConfigPtrInput is an input type that accepts CampaignAgentlessConfigArgs, CampaignAgentlessConfigPtr and CampaignAgentlessConfigPtrOutput values. +// You can construct a concrete instance of `CampaignAgentlessConfigPtrInput` via: +// +// CampaignAgentlessConfigArgs{...} +// +// or: +// +// nil +type CampaignAgentlessConfigPtrInput interface { + pulumi.Input + + ToCampaignAgentlessConfigPtrOutput() CampaignAgentlessConfigPtrOutput + ToCampaignAgentlessConfigPtrOutputWithContext(context.Context) CampaignAgentlessConfigPtrOutput +} + +type campaignAgentlessConfigPtrType CampaignAgentlessConfigArgs + +func CampaignAgentlessConfigPtr(v *CampaignAgentlessConfigArgs) CampaignAgentlessConfigPtrInput { + return (*campaignAgentlessConfigPtrType)(v) +} + +func (*campaignAgentlessConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignAgentlessConfig)(nil)).Elem() +} + +func (i *campaignAgentlessConfigPtrType) ToCampaignAgentlessConfigPtrOutput() CampaignAgentlessConfigPtrOutput { + return i.ToCampaignAgentlessConfigPtrOutputWithContext(context.Background()) +} + +func (i *campaignAgentlessConfigPtrType) ToCampaignAgentlessConfigPtrOutputWithContext(ctx context.Context) CampaignAgentlessConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignAgentlessConfigPtrOutput) +} + +// Agentless config +type CampaignAgentlessConfigOutput struct{ *pulumi.OutputState } + +func (CampaignAgentlessConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignAgentlessConfig)(nil)).Elem() +} + +func (o CampaignAgentlessConfigOutput) ToCampaignAgentlessConfigOutput() CampaignAgentlessConfigOutput { + return o +} + +func (o CampaignAgentlessConfigOutput) ToCampaignAgentlessConfigOutputWithContext(ctx context.Context) CampaignAgentlessConfigOutput { + return o +} + +func (o CampaignAgentlessConfigOutput) ToCampaignAgentlessConfigPtrOutput() CampaignAgentlessConfigPtrOutput { + return o.ToCampaignAgentlessConfigPtrOutputWithContext(context.Background()) +} + +func (o CampaignAgentlessConfigOutput) ToCampaignAgentlessConfigPtrOutputWithContext(ctx context.Context) CampaignAgentlessConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignAgentlessConfig) *CampaignAgentlessConfig { + return &v + }).(CampaignAgentlessConfigPtrOutput) +} + +type CampaignAgentlessConfigPtrOutput struct{ *pulumi.OutputState } + +func (CampaignAgentlessConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignAgentlessConfig)(nil)).Elem() +} + +func (o CampaignAgentlessConfigPtrOutput) ToCampaignAgentlessConfigPtrOutput() CampaignAgentlessConfigPtrOutput { + return o +} + +func (o CampaignAgentlessConfigPtrOutput) ToCampaignAgentlessConfigPtrOutputWithContext(ctx context.Context) CampaignAgentlessConfigPtrOutput { + return o +} + +func (o CampaignAgentlessConfigPtrOutput) Elem() CampaignAgentlessConfigOutput { + return o.ApplyT(func(v *CampaignAgentlessConfig) CampaignAgentlessConfig { + if v != nil { + return *v + } + var ret CampaignAgentlessConfig + return ret + }).(CampaignAgentlessConfigOutput) +} + +// The configuration used for answering machine detection during outbound calls +type CampaignAnswerMachineDetectionConfig struct { + // Enables detection of prompts (e.g., beep after after a voicemail greeting) + AwaitAnswerMachinePrompt *bool `pulumi:"awaitAnswerMachinePrompt"` + // Flag to decided whether outbound calls should have answering machine detection enabled or not + EnableAnswerMachineDetection bool `pulumi:"enableAnswerMachineDetection"` +} + +// CampaignAnswerMachineDetectionConfigInput is an input type that accepts CampaignAnswerMachineDetectionConfigArgs and CampaignAnswerMachineDetectionConfigOutput values. +// You can construct a concrete instance of `CampaignAnswerMachineDetectionConfigInput` via: +// +// CampaignAnswerMachineDetectionConfigArgs{...} +type CampaignAnswerMachineDetectionConfigInput interface { + pulumi.Input + + ToCampaignAnswerMachineDetectionConfigOutput() CampaignAnswerMachineDetectionConfigOutput + ToCampaignAnswerMachineDetectionConfigOutputWithContext(context.Context) CampaignAnswerMachineDetectionConfigOutput +} + +// The configuration used for answering machine detection during outbound calls +type CampaignAnswerMachineDetectionConfigArgs struct { + // Enables detection of prompts (e.g., beep after after a voicemail greeting) + AwaitAnswerMachinePrompt pulumi.BoolPtrInput `pulumi:"awaitAnswerMachinePrompt"` + // Flag to decided whether outbound calls should have answering machine detection enabled or not + EnableAnswerMachineDetection pulumi.BoolInput `pulumi:"enableAnswerMachineDetection"` +} + +func (CampaignAnswerMachineDetectionConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignAnswerMachineDetectionConfig)(nil)).Elem() +} + +func (i CampaignAnswerMachineDetectionConfigArgs) ToCampaignAnswerMachineDetectionConfigOutput() CampaignAnswerMachineDetectionConfigOutput { + return i.ToCampaignAnswerMachineDetectionConfigOutputWithContext(context.Background()) +} + +func (i CampaignAnswerMachineDetectionConfigArgs) ToCampaignAnswerMachineDetectionConfigOutputWithContext(ctx context.Context) CampaignAnswerMachineDetectionConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignAnswerMachineDetectionConfigOutput) +} + +func (i CampaignAnswerMachineDetectionConfigArgs) ToCampaignAnswerMachineDetectionConfigPtrOutput() CampaignAnswerMachineDetectionConfigPtrOutput { + return i.ToCampaignAnswerMachineDetectionConfigPtrOutputWithContext(context.Background()) +} + +func (i CampaignAnswerMachineDetectionConfigArgs) ToCampaignAnswerMachineDetectionConfigPtrOutputWithContext(ctx context.Context) CampaignAnswerMachineDetectionConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignAnswerMachineDetectionConfigOutput).ToCampaignAnswerMachineDetectionConfigPtrOutputWithContext(ctx) +} + +// CampaignAnswerMachineDetectionConfigPtrInput is an input type that accepts CampaignAnswerMachineDetectionConfigArgs, CampaignAnswerMachineDetectionConfigPtr and CampaignAnswerMachineDetectionConfigPtrOutput values. +// You can construct a concrete instance of `CampaignAnswerMachineDetectionConfigPtrInput` via: +// +// CampaignAnswerMachineDetectionConfigArgs{...} +// +// or: +// +// nil +type CampaignAnswerMachineDetectionConfigPtrInput interface { + pulumi.Input + + ToCampaignAnswerMachineDetectionConfigPtrOutput() CampaignAnswerMachineDetectionConfigPtrOutput + ToCampaignAnswerMachineDetectionConfigPtrOutputWithContext(context.Context) CampaignAnswerMachineDetectionConfigPtrOutput +} + +type campaignAnswerMachineDetectionConfigPtrType CampaignAnswerMachineDetectionConfigArgs + +func CampaignAnswerMachineDetectionConfigPtr(v *CampaignAnswerMachineDetectionConfigArgs) CampaignAnswerMachineDetectionConfigPtrInput { + return (*campaignAnswerMachineDetectionConfigPtrType)(v) +} + +func (*campaignAnswerMachineDetectionConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignAnswerMachineDetectionConfig)(nil)).Elem() +} + +func (i *campaignAnswerMachineDetectionConfigPtrType) ToCampaignAnswerMachineDetectionConfigPtrOutput() CampaignAnswerMachineDetectionConfigPtrOutput { + return i.ToCampaignAnswerMachineDetectionConfigPtrOutputWithContext(context.Background()) +} + +func (i *campaignAnswerMachineDetectionConfigPtrType) ToCampaignAnswerMachineDetectionConfigPtrOutputWithContext(ctx context.Context) CampaignAnswerMachineDetectionConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignAnswerMachineDetectionConfigPtrOutput) +} + +// The configuration used for answering machine detection during outbound calls +type CampaignAnswerMachineDetectionConfigOutput struct{ *pulumi.OutputState } + +func (CampaignAnswerMachineDetectionConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignAnswerMachineDetectionConfig)(nil)).Elem() +} + +func (o CampaignAnswerMachineDetectionConfigOutput) ToCampaignAnswerMachineDetectionConfigOutput() CampaignAnswerMachineDetectionConfigOutput { + return o +} + +func (o CampaignAnswerMachineDetectionConfigOutput) ToCampaignAnswerMachineDetectionConfigOutputWithContext(ctx context.Context) CampaignAnswerMachineDetectionConfigOutput { + return o +} + +func (o CampaignAnswerMachineDetectionConfigOutput) ToCampaignAnswerMachineDetectionConfigPtrOutput() CampaignAnswerMachineDetectionConfigPtrOutput { + return o.ToCampaignAnswerMachineDetectionConfigPtrOutputWithContext(context.Background()) +} + +func (o CampaignAnswerMachineDetectionConfigOutput) ToCampaignAnswerMachineDetectionConfigPtrOutputWithContext(ctx context.Context) CampaignAnswerMachineDetectionConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignAnswerMachineDetectionConfig) *CampaignAnswerMachineDetectionConfig { + return &v + }).(CampaignAnswerMachineDetectionConfigPtrOutput) +} + +// Enables detection of prompts (e.g., beep after after a voicemail greeting) +func (o CampaignAnswerMachineDetectionConfigOutput) AwaitAnswerMachinePrompt() pulumi.BoolPtrOutput { + return o.ApplyT(func(v CampaignAnswerMachineDetectionConfig) *bool { return v.AwaitAnswerMachinePrompt }).(pulumi.BoolPtrOutput) +} + +// Flag to decided whether outbound calls should have answering machine detection enabled or not +func (o CampaignAnswerMachineDetectionConfigOutput) EnableAnswerMachineDetection() pulumi.BoolOutput { + return o.ApplyT(func(v CampaignAnswerMachineDetectionConfig) bool { return v.EnableAnswerMachineDetection }).(pulumi.BoolOutput) +} + +type CampaignAnswerMachineDetectionConfigPtrOutput struct{ *pulumi.OutputState } + +func (CampaignAnswerMachineDetectionConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignAnswerMachineDetectionConfig)(nil)).Elem() +} + +func (o CampaignAnswerMachineDetectionConfigPtrOutput) ToCampaignAnswerMachineDetectionConfigPtrOutput() CampaignAnswerMachineDetectionConfigPtrOutput { + return o +} + +func (o CampaignAnswerMachineDetectionConfigPtrOutput) ToCampaignAnswerMachineDetectionConfigPtrOutputWithContext(ctx context.Context) CampaignAnswerMachineDetectionConfigPtrOutput { + return o +} + +func (o CampaignAnswerMachineDetectionConfigPtrOutput) Elem() CampaignAnswerMachineDetectionConfigOutput { + return o.ApplyT(func(v *CampaignAnswerMachineDetectionConfig) CampaignAnswerMachineDetectionConfig { + if v != nil { + return *v + } + var ret CampaignAnswerMachineDetectionConfig + return ret + }).(CampaignAnswerMachineDetectionConfigOutput) +} + +// Enables detection of prompts (e.g., beep after after a voicemail greeting) +func (o CampaignAnswerMachineDetectionConfigPtrOutput) AwaitAnswerMachinePrompt() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *CampaignAnswerMachineDetectionConfig) *bool { + if v == nil { + return nil + } + return v.AwaitAnswerMachinePrompt + }).(pulumi.BoolPtrOutput) +} + +// Flag to decided whether outbound calls should have answering machine detection enabled or not +func (o CampaignAnswerMachineDetectionConfigPtrOutput) EnableAnswerMachineDetection() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *CampaignAnswerMachineDetectionConfig) *bool { + if v == nil { + return nil + } + return &v.EnableAnswerMachineDetection + }).(pulumi.BoolPtrOutput) +} + +// The possible types of channel subtype config parameters +type CampaignChannelSubtypeConfig struct { + Email *CampaignEmailChannelSubtypeConfig `pulumi:"email"` + Sms *CampaignSmsChannelSubtypeConfig `pulumi:"sms"` + Telephony *CampaignTelephonyChannelSubtypeConfig `pulumi:"telephony"` +} + +// CampaignChannelSubtypeConfigInput is an input type that accepts CampaignChannelSubtypeConfigArgs and CampaignChannelSubtypeConfigOutput values. +// You can construct a concrete instance of `CampaignChannelSubtypeConfigInput` via: +// +// CampaignChannelSubtypeConfigArgs{...} +type CampaignChannelSubtypeConfigInput interface { + pulumi.Input + + ToCampaignChannelSubtypeConfigOutput() CampaignChannelSubtypeConfigOutput + ToCampaignChannelSubtypeConfigOutputWithContext(context.Context) CampaignChannelSubtypeConfigOutput +} + +// The possible types of channel subtype config parameters +type CampaignChannelSubtypeConfigArgs struct { + Email CampaignEmailChannelSubtypeConfigPtrInput `pulumi:"email"` + Sms CampaignSmsChannelSubtypeConfigPtrInput `pulumi:"sms"` + Telephony CampaignTelephonyChannelSubtypeConfigPtrInput `pulumi:"telephony"` +} + +func (CampaignChannelSubtypeConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignChannelSubtypeConfig)(nil)).Elem() +} + +func (i CampaignChannelSubtypeConfigArgs) ToCampaignChannelSubtypeConfigOutput() CampaignChannelSubtypeConfigOutput { + return i.ToCampaignChannelSubtypeConfigOutputWithContext(context.Background()) +} + +func (i CampaignChannelSubtypeConfigArgs) ToCampaignChannelSubtypeConfigOutputWithContext(ctx context.Context) CampaignChannelSubtypeConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignChannelSubtypeConfigOutput) +} + +// The possible types of channel subtype config parameters +type CampaignChannelSubtypeConfigOutput struct{ *pulumi.OutputState } + +func (CampaignChannelSubtypeConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignChannelSubtypeConfig)(nil)).Elem() +} + +func (o CampaignChannelSubtypeConfigOutput) ToCampaignChannelSubtypeConfigOutput() CampaignChannelSubtypeConfigOutput { + return o +} + +func (o CampaignChannelSubtypeConfigOutput) ToCampaignChannelSubtypeConfigOutputWithContext(ctx context.Context) CampaignChannelSubtypeConfigOutput { + return o +} + +func (o CampaignChannelSubtypeConfigOutput) Email() CampaignEmailChannelSubtypeConfigPtrOutput { + return o.ApplyT(func(v CampaignChannelSubtypeConfig) *CampaignEmailChannelSubtypeConfig { return v.Email }).(CampaignEmailChannelSubtypeConfigPtrOutput) +} + +func (o CampaignChannelSubtypeConfigOutput) Sms() CampaignSmsChannelSubtypeConfigPtrOutput { + return o.ApplyT(func(v CampaignChannelSubtypeConfig) *CampaignSmsChannelSubtypeConfig { return v.Sms }).(CampaignSmsChannelSubtypeConfigPtrOutput) +} + +func (o CampaignChannelSubtypeConfigOutput) Telephony() CampaignTelephonyChannelSubtypeConfigPtrOutput { + return o.ApplyT(func(v CampaignChannelSubtypeConfig) *CampaignTelephonyChannelSubtypeConfig { return v.Telephony }).(CampaignTelephonyChannelSubtypeConfigPtrOutput) +} + +type CampaignChannelSubtypeConfigPtrOutput struct{ *pulumi.OutputState } + +func (CampaignChannelSubtypeConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignChannelSubtypeConfig)(nil)).Elem() +} + +func (o CampaignChannelSubtypeConfigPtrOutput) ToCampaignChannelSubtypeConfigPtrOutput() CampaignChannelSubtypeConfigPtrOutput { + return o +} + +func (o CampaignChannelSubtypeConfigPtrOutput) ToCampaignChannelSubtypeConfigPtrOutputWithContext(ctx context.Context) CampaignChannelSubtypeConfigPtrOutput { + return o +} + +func (o CampaignChannelSubtypeConfigPtrOutput) Elem() CampaignChannelSubtypeConfigOutput { + return o.ApplyT(func(v *CampaignChannelSubtypeConfig) CampaignChannelSubtypeConfig { + if v != nil { + return *v + } + var ret CampaignChannelSubtypeConfig + return ret + }).(CampaignChannelSubtypeConfigOutput) +} + +func (o CampaignChannelSubtypeConfigPtrOutput) Email() CampaignEmailChannelSubtypeConfigPtrOutput { + return o.ApplyT(func(v *CampaignChannelSubtypeConfig) *CampaignEmailChannelSubtypeConfig { + if v == nil { + return nil + } + return v.Email + }).(CampaignEmailChannelSubtypeConfigPtrOutput) +} + +func (o CampaignChannelSubtypeConfigPtrOutput) Sms() CampaignSmsChannelSubtypeConfigPtrOutput { + return o.ApplyT(func(v *CampaignChannelSubtypeConfig) *CampaignSmsChannelSubtypeConfig { + if v == nil { + return nil + } + return v.Sms + }).(CampaignSmsChannelSubtypeConfigPtrOutput) +} + +func (o CampaignChannelSubtypeConfigPtrOutput) Telephony() CampaignTelephonyChannelSubtypeConfigPtrOutput { + return o.ApplyT(func(v *CampaignChannelSubtypeConfig) *CampaignTelephonyChannelSubtypeConfig { + if v == nil { + return nil + } + return v.Telephony + }).(CampaignTelephonyChannelSubtypeConfigPtrOutput) +} + +// Communication Limit +type CampaignCommunicationLimit struct { + Frequency int `pulumi:"frequency"` + MaxCountPerRecipient int `pulumi:"maxCountPerRecipient"` + Unit CampaignCommunicationLimitTimeUnit `pulumi:"unit"` +} + +// CampaignCommunicationLimitInput is an input type that accepts CampaignCommunicationLimitArgs and CampaignCommunicationLimitOutput values. +// You can construct a concrete instance of `CampaignCommunicationLimitInput` via: +// +// CampaignCommunicationLimitArgs{...} +type CampaignCommunicationLimitInput interface { + pulumi.Input + + ToCampaignCommunicationLimitOutput() CampaignCommunicationLimitOutput + ToCampaignCommunicationLimitOutputWithContext(context.Context) CampaignCommunicationLimitOutput +} + +// Communication Limit +type CampaignCommunicationLimitArgs struct { + Frequency pulumi.IntInput `pulumi:"frequency"` + MaxCountPerRecipient pulumi.IntInput `pulumi:"maxCountPerRecipient"` + Unit CampaignCommunicationLimitTimeUnitInput `pulumi:"unit"` +} + +func (CampaignCommunicationLimitArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignCommunicationLimit)(nil)).Elem() +} + +func (i CampaignCommunicationLimitArgs) ToCampaignCommunicationLimitOutput() CampaignCommunicationLimitOutput { + return i.ToCampaignCommunicationLimitOutputWithContext(context.Background()) +} + +func (i CampaignCommunicationLimitArgs) ToCampaignCommunicationLimitOutputWithContext(ctx context.Context) CampaignCommunicationLimitOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignCommunicationLimitOutput) +} + +// CampaignCommunicationLimitArrayInput is an input type that accepts CampaignCommunicationLimitArray and CampaignCommunicationLimitArrayOutput values. +// You can construct a concrete instance of `CampaignCommunicationLimitArrayInput` via: +// +// CampaignCommunicationLimitArray{ CampaignCommunicationLimitArgs{...} } +type CampaignCommunicationLimitArrayInput interface { + pulumi.Input + + ToCampaignCommunicationLimitArrayOutput() CampaignCommunicationLimitArrayOutput + ToCampaignCommunicationLimitArrayOutputWithContext(context.Context) CampaignCommunicationLimitArrayOutput +} + +type CampaignCommunicationLimitArray []CampaignCommunicationLimitInput + +func (CampaignCommunicationLimitArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]CampaignCommunicationLimit)(nil)).Elem() +} + +func (i CampaignCommunicationLimitArray) ToCampaignCommunicationLimitArrayOutput() CampaignCommunicationLimitArrayOutput { + return i.ToCampaignCommunicationLimitArrayOutputWithContext(context.Background()) +} + +func (i CampaignCommunicationLimitArray) ToCampaignCommunicationLimitArrayOutputWithContext(ctx context.Context) CampaignCommunicationLimitArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignCommunicationLimitArrayOutput) +} + +// Communication Limit +type CampaignCommunicationLimitOutput struct{ *pulumi.OutputState } + +func (CampaignCommunicationLimitOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignCommunicationLimit)(nil)).Elem() +} + +func (o CampaignCommunicationLimitOutput) ToCampaignCommunicationLimitOutput() CampaignCommunicationLimitOutput { + return o +} + +func (o CampaignCommunicationLimitOutput) ToCampaignCommunicationLimitOutputWithContext(ctx context.Context) CampaignCommunicationLimitOutput { + return o +} + +func (o CampaignCommunicationLimitOutput) Frequency() pulumi.IntOutput { + return o.ApplyT(func(v CampaignCommunicationLimit) int { return v.Frequency }).(pulumi.IntOutput) +} + +func (o CampaignCommunicationLimitOutput) MaxCountPerRecipient() pulumi.IntOutput { + return o.ApplyT(func(v CampaignCommunicationLimit) int { return v.MaxCountPerRecipient }).(pulumi.IntOutput) +} + +func (o CampaignCommunicationLimitOutput) Unit() CampaignCommunicationLimitTimeUnitOutput { + return o.ApplyT(func(v CampaignCommunicationLimit) CampaignCommunicationLimitTimeUnit { return v.Unit }).(CampaignCommunicationLimitTimeUnitOutput) +} + +type CampaignCommunicationLimitArrayOutput struct{ *pulumi.OutputState } + +func (CampaignCommunicationLimitArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]CampaignCommunicationLimit)(nil)).Elem() +} + +func (o CampaignCommunicationLimitArrayOutput) ToCampaignCommunicationLimitArrayOutput() CampaignCommunicationLimitArrayOutput { + return o +} + +func (o CampaignCommunicationLimitArrayOutput) ToCampaignCommunicationLimitArrayOutputWithContext(ctx context.Context) CampaignCommunicationLimitArrayOutput { + return o +} + +func (o CampaignCommunicationLimitArrayOutput) Index(i pulumi.IntInput) CampaignCommunicationLimitOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) CampaignCommunicationLimit { + return vs[0].([]CampaignCommunicationLimit)[vs[1].(int)] + }).(CampaignCommunicationLimitOutput) +} + +// Communication limits +type CampaignCommunicationLimits struct { + CommunicationLimitList []CampaignCommunicationLimit `pulumi:"communicationLimitList"` +} + +// CampaignCommunicationLimitsInput is an input type that accepts CampaignCommunicationLimitsArgs and CampaignCommunicationLimitsOutput values. +// You can construct a concrete instance of `CampaignCommunicationLimitsInput` via: +// +// CampaignCommunicationLimitsArgs{...} +type CampaignCommunicationLimitsInput interface { + pulumi.Input + + ToCampaignCommunicationLimitsOutput() CampaignCommunicationLimitsOutput + ToCampaignCommunicationLimitsOutputWithContext(context.Context) CampaignCommunicationLimitsOutput +} + +// Communication limits +type CampaignCommunicationLimitsArgs struct { + CommunicationLimitList CampaignCommunicationLimitArrayInput `pulumi:"communicationLimitList"` +} + +func (CampaignCommunicationLimitsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignCommunicationLimits)(nil)).Elem() +} + +func (i CampaignCommunicationLimitsArgs) ToCampaignCommunicationLimitsOutput() CampaignCommunicationLimitsOutput { + return i.ToCampaignCommunicationLimitsOutputWithContext(context.Background()) +} + +func (i CampaignCommunicationLimitsArgs) ToCampaignCommunicationLimitsOutputWithContext(ctx context.Context) CampaignCommunicationLimitsOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignCommunicationLimitsOutput) +} + +func (i CampaignCommunicationLimitsArgs) ToCampaignCommunicationLimitsPtrOutput() CampaignCommunicationLimitsPtrOutput { + return i.ToCampaignCommunicationLimitsPtrOutputWithContext(context.Background()) +} + +func (i CampaignCommunicationLimitsArgs) ToCampaignCommunicationLimitsPtrOutputWithContext(ctx context.Context) CampaignCommunicationLimitsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignCommunicationLimitsOutput).ToCampaignCommunicationLimitsPtrOutputWithContext(ctx) +} + +// CampaignCommunicationLimitsPtrInput is an input type that accepts CampaignCommunicationLimitsArgs, CampaignCommunicationLimitsPtr and CampaignCommunicationLimitsPtrOutput values. +// You can construct a concrete instance of `CampaignCommunicationLimitsPtrInput` via: +// +// CampaignCommunicationLimitsArgs{...} +// +// or: +// +// nil +type CampaignCommunicationLimitsPtrInput interface { + pulumi.Input + + ToCampaignCommunicationLimitsPtrOutput() CampaignCommunicationLimitsPtrOutput + ToCampaignCommunicationLimitsPtrOutputWithContext(context.Context) CampaignCommunicationLimitsPtrOutput +} + +type campaignCommunicationLimitsPtrType CampaignCommunicationLimitsArgs + +func CampaignCommunicationLimitsPtr(v *CampaignCommunicationLimitsArgs) CampaignCommunicationLimitsPtrInput { + return (*campaignCommunicationLimitsPtrType)(v) +} + +func (*campaignCommunicationLimitsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignCommunicationLimits)(nil)).Elem() +} + +func (i *campaignCommunicationLimitsPtrType) ToCampaignCommunicationLimitsPtrOutput() CampaignCommunicationLimitsPtrOutput { + return i.ToCampaignCommunicationLimitsPtrOutputWithContext(context.Background()) +} + +func (i *campaignCommunicationLimitsPtrType) ToCampaignCommunicationLimitsPtrOutputWithContext(ctx context.Context) CampaignCommunicationLimitsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignCommunicationLimitsPtrOutput) +} + +// Communication limits +type CampaignCommunicationLimitsOutput struct{ *pulumi.OutputState } + +func (CampaignCommunicationLimitsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignCommunicationLimits)(nil)).Elem() +} + +func (o CampaignCommunicationLimitsOutput) ToCampaignCommunicationLimitsOutput() CampaignCommunicationLimitsOutput { + return o +} + +func (o CampaignCommunicationLimitsOutput) ToCampaignCommunicationLimitsOutputWithContext(ctx context.Context) CampaignCommunicationLimitsOutput { + return o +} + +func (o CampaignCommunicationLimitsOutput) ToCampaignCommunicationLimitsPtrOutput() CampaignCommunicationLimitsPtrOutput { + return o.ToCampaignCommunicationLimitsPtrOutputWithContext(context.Background()) +} + +func (o CampaignCommunicationLimitsOutput) ToCampaignCommunicationLimitsPtrOutputWithContext(ctx context.Context) CampaignCommunicationLimitsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignCommunicationLimits) *CampaignCommunicationLimits { + return &v + }).(CampaignCommunicationLimitsPtrOutput) +} + +func (o CampaignCommunicationLimitsOutput) CommunicationLimitList() CampaignCommunicationLimitArrayOutput { + return o.ApplyT(func(v CampaignCommunicationLimits) []CampaignCommunicationLimit { return v.CommunicationLimitList }).(CampaignCommunicationLimitArrayOutput) +} + +type CampaignCommunicationLimitsPtrOutput struct{ *pulumi.OutputState } + +func (CampaignCommunicationLimitsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignCommunicationLimits)(nil)).Elem() +} + +func (o CampaignCommunicationLimitsPtrOutput) ToCampaignCommunicationLimitsPtrOutput() CampaignCommunicationLimitsPtrOutput { + return o +} + +func (o CampaignCommunicationLimitsPtrOutput) ToCampaignCommunicationLimitsPtrOutputWithContext(ctx context.Context) CampaignCommunicationLimitsPtrOutput { + return o +} + +func (o CampaignCommunicationLimitsPtrOutput) Elem() CampaignCommunicationLimitsOutput { + return o.ApplyT(func(v *CampaignCommunicationLimits) CampaignCommunicationLimits { + if v != nil { + return *v + } + var ret CampaignCommunicationLimits + return ret + }).(CampaignCommunicationLimitsOutput) +} + +func (o CampaignCommunicationLimitsPtrOutput) CommunicationLimitList() CampaignCommunicationLimitArrayOutput { + return o.ApplyT(func(v *CampaignCommunicationLimits) []CampaignCommunicationLimit { + if v == nil { + return nil + } + return v.CommunicationLimitList + }).(CampaignCommunicationLimitArrayOutput) +} + +// Communication limits config +type CampaignCommunicationLimitsConfig struct { + AllChannelsSubtypes *CampaignCommunicationLimits `pulumi:"allChannelsSubtypes"` +} + +// CampaignCommunicationLimitsConfigInput is an input type that accepts CampaignCommunicationLimitsConfigArgs and CampaignCommunicationLimitsConfigOutput values. +// You can construct a concrete instance of `CampaignCommunicationLimitsConfigInput` via: +// +// CampaignCommunicationLimitsConfigArgs{...} +type CampaignCommunicationLimitsConfigInput interface { + pulumi.Input + + ToCampaignCommunicationLimitsConfigOutput() CampaignCommunicationLimitsConfigOutput + ToCampaignCommunicationLimitsConfigOutputWithContext(context.Context) CampaignCommunicationLimitsConfigOutput +} + +// Communication limits config +type CampaignCommunicationLimitsConfigArgs struct { + AllChannelsSubtypes CampaignCommunicationLimitsPtrInput `pulumi:"allChannelsSubtypes"` +} + +func (CampaignCommunicationLimitsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignCommunicationLimitsConfig)(nil)).Elem() +} + +func (i CampaignCommunicationLimitsConfigArgs) ToCampaignCommunicationLimitsConfigOutput() CampaignCommunicationLimitsConfigOutput { + return i.ToCampaignCommunicationLimitsConfigOutputWithContext(context.Background()) +} + +func (i CampaignCommunicationLimitsConfigArgs) ToCampaignCommunicationLimitsConfigOutputWithContext(ctx context.Context) CampaignCommunicationLimitsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignCommunicationLimitsConfigOutput) +} + +func (i CampaignCommunicationLimitsConfigArgs) ToCampaignCommunicationLimitsConfigPtrOutput() CampaignCommunicationLimitsConfigPtrOutput { + return i.ToCampaignCommunicationLimitsConfigPtrOutputWithContext(context.Background()) +} + +func (i CampaignCommunicationLimitsConfigArgs) ToCampaignCommunicationLimitsConfigPtrOutputWithContext(ctx context.Context) CampaignCommunicationLimitsConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignCommunicationLimitsConfigOutput).ToCampaignCommunicationLimitsConfigPtrOutputWithContext(ctx) +} + +// CampaignCommunicationLimitsConfigPtrInput is an input type that accepts CampaignCommunicationLimitsConfigArgs, CampaignCommunicationLimitsConfigPtr and CampaignCommunicationLimitsConfigPtrOutput values. +// You can construct a concrete instance of `CampaignCommunicationLimitsConfigPtrInput` via: +// +// CampaignCommunicationLimitsConfigArgs{...} +// +// or: +// +// nil +type CampaignCommunicationLimitsConfigPtrInput interface { + pulumi.Input + + ToCampaignCommunicationLimitsConfigPtrOutput() CampaignCommunicationLimitsConfigPtrOutput + ToCampaignCommunicationLimitsConfigPtrOutputWithContext(context.Context) CampaignCommunicationLimitsConfigPtrOutput +} + +type campaignCommunicationLimitsConfigPtrType CampaignCommunicationLimitsConfigArgs + +func CampaignCommunicationLimitsConfigPtr(v *CampaignCommunicationLimitsConfigArgs) CampaignCommunicationLimitsConfigPtrInput { + return (*campaignCommunicationLimitsConfigPtrType)(v) +} + +func (*campaignCommunicationLimitsConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignCommunicationLimitsConfig)(nil)).Elem() +} + +func (i *campaignCommunicationLimitsConfigPtrType) ToCampaignCommunicationLimitsConfigPtrOutput() CampaignCommunicationLimitsConfigPtrOutput { + return i.ToCampaignCommunicationLimitsConfigPtrOutputWithContext(context.Background()) +} + +func (i *campaignCommunicationLimitsConfigPtrType) ToCampaignCommunicationLimitsConfigPtrOutputWithContext(ctx context.Context) CampaignCommunicationLimitsConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignCommunicationLimitsConfigPtrOutput) +} + +// Communication limits config +type CampaignCommunicationLimitsConfigOutput struct{ *pulumi.OutputState } + +func (CampaignCommunicationLimitsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignCommunicationLimitsConfig)(nil)).Elem() +} + +func (o CampaignCommunicationLimitsConfigOutput) ToCampaignCommunicationLimitsConfigOutput() CampaignCommunicationLimitsConfigOutput { + return o +} + +func (o CampaignCommunicationLimitsConfigOutput) ToCampaignCommunicationLimitsConfigOutputWithContext(ctx context.Context) CampaignCommunicationLimitsConfigOutput { + return o +} + +func (o CampaignCommunicationLimitsConfigOutput) ToCampaignCommunicationLimitsConfigPtrOutput() CampaignCommunicationLimitsConfigPtrOutput { + return o.ToCampaignCommunicationLimitsConfigPtrOutputWithContext(context.Background()) +} + +func (o CampaignCommunicationLimitsConfigOutput) ToCampaignCommunicationLimitsConfigPtrOutputWithContext(ctx context.Context) CampaignCommunicationLimitsConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignCommunicationLimitsConfig) *CampaignCommunicationLimitsConfig { + return &v + }).(CampaignCommunicationLimitsConfigPtrOutput) +} + +func (o CampaignCommunicationLimitsConfigOutput) AllChannelsSubtypes() CampaignCommunicationLimitsPtrOutput { + return o.ApplyT(func(v CampaignCommunicationLimitsConfig) *CampaignCommunicationLimits { return v.AllChannelsSubtypes }).(CampaignCommunicationLimitsPtrOutput) +} + +type CampaignCommunicationLimitsConfigPtrOutput struct{ *pulumi.OutputState } + +func (CampaignCommunicationLimitsConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignCommunicationLimitsConfig)(nil)).Elem() +} + +func (o CampaignCommunicationLimitsConfigPtrOutput) ToCampaignCommunicationLimitsConfigPtrOutput() CampaignCommunicationLimitsConfigPtrOutput { + return o +} + +func (o CampaignCommunicationLimitsConfigPtrOutput) ToCampaignCommunicationLimitsConfigPtrOutputWithContext(ctx context.Context) CampaignCommunicationLimitsConfigPtrOutput { + return o +} + +func (o CampaignCommunicationLimitsConfigPtrOutput) Elem() CampaignCommunicationLimitsConfigOutput { + return o.ApplyT(func(v *CampaignCommunicationLimitsConfig) CampaignCommunicationLimitsConfig { + if v != nil { + return *v + } + var ret CampaignCommunicationLimitsConfig + return ret + }).(CampaignCommunicationLimitsConfigOutput) +} + +func (o CampaignCommunicationLimitsConfigPtrOutput) AllChannelsSubtypes() CampaignCommunicationLimitsPtrOutput { + return o.ApplyT(func(v *CampaignCommunicationLimitsConfig) *CampaignCommunicationLimits { + if v == nil { + return nil + } + return v.AllChannelsSubtypes + }).(CampaignCommunicationLimitsPtrOutput) +} + +// Campaign communication time config +type CampaignCommunicationTimeConfig struct { + Email *CampaignTimeWindow `pulumi:"email"` + LocalTimeZoneConfig CampaignLocalTimeZoneConfig `pulumi:"localTimeZoneConfig"` + Sms *CampaignTimeWindow `pulumi:"sms"` + Telephony *CampaignTimeWindow `pulumi:"telephony"` +} + +// CampaignCommunicationTimeConfigInput is an input type that accepts CampaignCommunicationTimeConfigArgs and CampaignCommunicationTimeConfigOutput values. +// You can construct a concrete instance of `CampaignCommunicationTimeConfigInput` via: +// +// CampaignCommunicationTimeConfigArgs{...} +type CampaignCommunicationTimeConfigInput interface { + pulumi.Input + + ToCampaignCommunicationTimeConfigOutput() CampaignCommunicationTimeConfigOutput + ToCampaignCommunicationTimeConfigOutputWithContext(context.Context) CampaignCommunicationTimeConfigOutput +} + +// Campaign communication time config +type CampaignCommunicationTimeConfigArgs struct { + Email CampaignTimeWindowPtrInput `pulumi:"email"` + LocalTimeZoneConfig CampaignLocalTimeZoneConfigInput `pulumi:"localTimeZoneConfig"` + Sms CampaignTimeWindowPtrInput `pulumi:"sms"` + Telephony CampaignTimeWindowPtrInput `pulumi:"telephony"` +} + +func (CampaignCommunicationTimeConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignCommunicationTimeConfig)(nil)).Elem() +} + +func (i CampaignCommunicationTimeConfigArgs) ToCampaignCommunicationTimeConfigOutput() CampaignCommunicationTimeConfigOutput { + return i.ToCampaignCommunicationTimeConfigOutputWithContext(context.Background()) +} + +func (i CampaignCommunicationTimeConfigArgs) ToCampaignCommunicationTimeConfigOutputWithContext(ctx context.Context) CampaignCommunicationTimeConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignCommunicationTimeConfigOutput) +} + +func (i CampaignCommunicationTimeConfigArgs) ToCampaignCommunicationTimeConfigPtrOutput() CampaignCommunicationTimeConfigPtrOutput { + return i.ToCampaignCommunicationTimeConfigPtrOutputWithContext(context.Background()) +} + +func (i CampaignCommunicationTimeConfigArgs) ToCampaignCommunicationTimeConfigPtrOutputWithContext(ctx context.Context) CampaignCommunicationTimeConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignCommunicationTimeConfigOutput).ToCampaignCommunicationTimeConfigPtrOutputWithContext(ctx) +} + +// CampaignCommunicationTimeConfigPtrInput is an input type that accepts CampaignCommunicationTimeConfigArgs, CampaignCommunicationTimeConfigPtr and CampaignCommunicationTimeConfigPtrOutput values. +// You can construct a concrete instance of `CampaignCommunicationTimeConfigPtrInput` via: +// +// CampaignCommunicationTimeConfigArgs{...} +// +// or: +// +// nil +type CampaignCommunicationTimeConfigPtrInput interface { + pulumi.Input + + ToCampaignCommunicationTimeConfigPtrOutput() CampaignCommunicationTimeConfigPtrOutput + ToCampaignCommunicationTimeConfigPtrOutputWithContext(context.Context) CampaignCommunicationTimeConfigPtrOutput +} + +type campaignCommunicationTimeConfigPtrType CampaignCommunicationTimeConfigArgs + +func CampaignCommunicationTimeConfigPtr(v *CampaignCommunicationTimeConfigArgs) CampaignCommunicationTimeConfigPtrInput { + return (*campaignCommunicationTimeConfigPtrType)(v) +} + +func (*campaignCommunicationTimeConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignCommunicationTimeConfig)(nil)).Elem() +} + +func (i *campaignCommunicationTimeConfigPtrType) ToCampaignCommunicationTimeConfigPtrOutput() CampaignCommunicationTimeConfigPtrOutput { + return i.ToCampaignCommunicationTimeConfigPtrOutputWithContext(context.Background()) +} + +func (i *campaignCommunicationTimeConfigPtrType) ToCampaignCommunicationTimeConfigPtrOutputWithContext(ctx context.Context) CampaignCommunicationTimeConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignCommunicationTimeConfigPtrOutput) +} + +// Campaign communication time config +type CampaignCommunicationTimeConfigOutput struct{ *pulumi.OutputState } + +func (CampaignCommunicationTimeConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignCommunicationTimeConfig)(nil)).Elem() +} + +func (o CampaignCommunicationTimeConfigOutput) ToCampaignCommunicationTimeConfigOutput() CampaignCommunicationTimeConfigOutput { + return o +} + +func (o CampaignCommunicationTimeConfigOutput) ToCampaignCommunicationTimeConfigOutputWithContext(ctx context.Context) CampaignCommunicationTimeConfigOutput { + return o +} + +func (o CampaignCommunicationTimeConfigOutput) ToCampaignCommunicationTimeConfigPtrOutput() CampaignCommunicationTimeConfigPtrOutput { + return o.ToCampaignCommunicationTimeConfigPtrOutputWithContext(context.Background()) +} + +func (o CampaignCommunicationTimeConfigOutput) ToCampaignCommunicationTimeConfigPtrOutputWithContext(ctx context.Context) CampaignCommunicationTimeConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignCommunicationTimeConfig) *CampaignCommunicationTimeConfig { + return &v + }).(CampaignCommunicationTimeConfigPtrOutput) +} + +func (o CampaignCommunicationTimeConfigOutput) Email() CampaignTimeWindowPtrOutput { + return o.ApplyT(func(v CampaignCommunicationTimeConfig) *CampaignTimeWindow { return v.Email }).(CampaignTimeWindowPtrOutput) +} + +func (o CampaignCommunicationTimeConfigOutput) LocalTimeZoneConfig() CampaignLocalTimeZoneConfigOutput { + return o.ApplyT(func(v CampaignCommunicationTimeConfig) CampaignLocalTimeZoneConfig { return v.LocalTimeZoneConfig }).(CampaignLocalTimeZoneConfigOutput) +} + +func (o CampaignCommunicationTimeConfigOutput) Sms() CampaignTimeWindowPtrOutput { + return o.ApplyT(func(v CampaignCommunicationTimeConfig) *CampaignTimeWindow { return v.Sms }).(CampaignTimeWindowPtrOutput) +} + +func (o CampaignCommunicationTimeConfigOutput) Telephony() CampaignTimeWindowPtrOutput { + return o.ApplyT(func(v CampaignCommunicationTimeConfig) *CampaignTimeWindow { return v.Telephony }).(CampaignTimeWindowPtrOutput) +} + +type CampaignCommunicationTimeConfigPtrOutput struct{ *pulumi.OutputState } + +func (CampaignCommunicationTimeConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignCommunicationTimeConfig)(nil)).Elem() +} + +func (o CampaignCommunicationTimeConfigPtrOutput) ToCampaignCommunicationTimeConfigPtrOutput() CampaignCommunicationTimeConfigPtrOutput { + return o +} + +func (o CampaignCommunicationTimeConfigPtrOutput) ToCampaignCommunicationTimeConfigPtrOutputWithContext(ctx context.Context) CampaignCommunicationTimeConfigPtrOutput { + return o +} + +func (o CampaignCommunicationTimeConfigPtrOutput) Elem() CampaignCommunicationTimeConfigOutput { + return o.ApplyT(func(v *CampaignCommunicationTimeConfig) CampaignCommunicationTimeConfig { + if v != nil { + return *v + } + var ret CampaignCommunicationTimeConfig + return ret + }).(CampaignCommunicationTimeConfigOutput) +} + +func (o CampaignCommunicationTimeConfigPtrOutput) Email() CampaignTimeWindowPtrOutput { + return o.ApplyT(func(v *CampaignCommunicationTimeConfig) *CampaignTimeWindow { + if v == nil { + return nil + } + return v.Email + }).(CampaignTimeWindowPtrOutput) +} + +func (o CampaignCommunicationTimeConfigPtrOutput) LocalTimeZoneConfig() CampaignLocalTimeZoneConfigPtrOutput { + return o.ApplyT(func(v *CampaignCommunicationTimeConfig) *CampaignLocalTimeZoneConfig { + if v == nil { + return nil + } + return &v.LocalTimeZoneConfig + }).(CampaignLocalTimeZoneConfigPtrOutput) +} + +func (o CampaignCommunicationTimeConfigPtrOutput) Sms() CampaignTimeWindowPtrOutput { + return o.ApplyT(func(v *CampaignCommunicationTimeConfig) *CampaignTimeWindow { + if v == nil { + return nil + } + return v.Sms + }).(CampaignTimeWindowPtrOutput) +} + +func (o CampaignCommunicationTimeConfigPtrOutput) Telephony() CampaignTimeWindowPtrOutput { + return o.ApplyT(func(v *CampaignCommunicationTimeConfig) *CampaignTimeWindow { + if v == nil { + return nil + } + return v.Telephony + }).(CampaignTimeWindowPtrOutput) +} + +// Daily Hour +type CampaignDailyHour struct { + Key *CampaignDayOfWeek `pulumi:"key"` + Value []CampaignTimeRange `pulumi:"value"` +} + +// CampaignDailyHourInput is an input type that accepts CampaignDailyHourArgs and CampaignDailyHourOutput values. +// You can construct a concrete instance of `CampaignDailyHourInput` via: +// +// CampaignDailyHourArgs{...} +type CampaignDailyHourInput interface { + pulumi.Input + + ToCampaignDailyHourOutput() CampaignDailyHourOutput + ToCampaignDailyHourOutputWithContext(context.Context) CampaignDailyHourOutput +} + +// Daily Hour +type CampaignDailyHourArgs struct { + Key CampaignDayOfWeekPtrInput `pulumi:"key"` + Value CampaignTimeRangeArrayInput `pulumi:"value"` +} + +func (CampaignDailyHourArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignDailyHour)(nil)).Elem() +} + +func (i CampaignDailyHourArgs) ToCampaignDailyHourOutput() CampaignDailyHourOutput { + return i.ToCampaignDailyHourOutputWithContext(context.Background()) +} + +func (i CampaignDailyHourArgs) ToCampaignDailyHourOutputWithContext(ctx context.Context) CampaignDailyHourOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignDailyHourOutput) +} + +// CampaignDailyHourArrayInput is an input type that accepts CampaignDailyHourArray and CampaignDailyHourArrayOutput values. +// You can construct a concrete instance of `CampaignDailyHourArrayInput` via: +// +// CampaignDailyHourArray{ CampaignDailyHourArgs{...} } +type CampaignDailyHourArrayInput interface { + pulumi.Input + + ToCampaignDailyHourArrayOutput() CampaignDailyHourArrayOutput + ToCampaignDailyHourArrayOutputWithContext(context.Context) CampaignDailyHourArrayOutput +} + +type CampaignDailyHourArray []CampaignDailyHourInput + +func (CampaignDailyHourArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]CampaignDailyHour)(nil)).Elem() +} + +func (i CampaignDailyHourArray) ToCampaignDailyHourArrayOutput() CampaignDailyHourArrayOutput { + return i.ToCampaignDailyHourArrayOutputWithContext(context.Background()) +} + +func (i CampaignDailyHourArray) ToCampaignDailyHourArrayOutputWithContext(ctx context.Context) CampaignDailyHourArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignDailyHourArrayOutput) +} + +// Daily Hour +type CampaignDailyHourOutput struct{ *pulumi.OutputState } + +func (CampaignDailyHourOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignDailyHour)(nil)).Elem() +} + +func (o CampaignDailyHourOutput) ToCampaignDailyHourOutput() CampaignDailyHourOutput { + return o +} + +func (o CampaignDailyHourOutput) ToCampaignDailyHourOutputWithContext(ctx context.Context) CampaignDailyHourOutput { + return o +} + +func (o CampaignDailyHourOutput) Key() CampaignDayOfWeekPtrOutput { + return o.ApplyT(func(v CampaignDailyHour) *CampaignDayOfWeek { return v.Key }).(CampaignDayOfWeekPtrOutput) +} + +func (o CampaignDailyHourOutput) Value() CampaignTimeRangeArrayOutput { + return o.ApplyT(func(v CampaignDailyHour) []CampaignTimeRange { return v.Value }).(CampaignTimeRangeArrayOutput) +} + +type CampaignDailyHourArrayOutput struct{ *pulumi.OutputState } + +func (CampaignDailyHourArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]CampaignDailyHour)(nil)).Elem() +} + +func (o CampaignDailyHourArrayOutput) ToCampaignDailyHourArrayOutput() CampaignDailyHourArrayOutput { + return o +} + +func (o CampaignDailyHourArrayOutput) ToCampaignDailyHourArrayOutputWithContext(ctx context.Context) CampaignDailyHourArrayOutput { + return o +} + +func (o CampaignDailyHourArrayOutput) Index(i pulumi.IntInput) CampaignDailyHourOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) CampaignDailyHour { + return vs[0].([]CampaignDailyHour)[vs[1].(int)] + }).(CampaignDailyHourOutput) +} + +// Email Channel Subtype config +type CampaignEmailChannelSubtypeConfig struct { + Capacity *float64 `pulumi:"capacity"` + DefaultOutboundConfig CampaignEmailOutboundConfig `pulumi:"defaultOutboundConfig"` + OutboundMode CampaignEmailOutboundMode `pulumi:"outboundMode"` +} + +// CampaignEmailChannelSubtypeConfigInput is an input type that accepts CampaignEmailChannelSubtypeConfigArgs and CampaignEmailChannelSubtypeConfigOutput values. +// You can construct a concrete instance of `CampaignEmailChannelSubtypeConfigInput` via: +// +// CampaignEmailChannelSubtypeConfigArgs{...} +type CampaignEmailChannelSubtypeConfigInput interface { + pulumi.Input + + ToCampaignEmailChannelSubtypeConfigOutput() CampaignEmailChannelSubtypeConfigOutput + ToCampaignEmailChannelSubtypeConfigOutputWithContext(context.Context) CampaignEmailChannelSubtypeConfigOutput +} + +// Email Channel Subtype config +type CampaignEmailChannelSubtypeConfigArgs struct { + Capacity pulumi.Float64PtrInput `pulumi:"capacity"` + DefaultOutboundConfig CampaignEmailOutboundConfigInput `pulumi:"defaultOutboundConfig"` + OutboundMode CampaignEmailOutboundModeInput `pulumi:"outboundMode"` +} + +func (CampaignEmailChannelSubtypeConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignEmailChannelSubtypeConfig)(nil)).Elem() +} + +func (i CampaignEmailChannelSubtypeConfigArgs) ToCampaignEmailChannelSubtypeConfigOutput() CampaignEmailChannelSubtypeConfigOutput { + return i.ToCampaignEmailChannelSubtypeConfigOutputWithContext(context.Background()) +} + +func (i CampaignEmailChannelSubtypeConfigArgs) ToCampaignEmailChannelSubtypeConfigOutputWithContext(ctx context.Context) CampaignEmailChannelSubtypeConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignEmailChannelSubtypeConfigOutput) +} + +func (i CampaignEmailChannelSubtypeConfigArgs) ToCampaignEmailChannelSubtypeConfigPtrOutput() CampaignEmailChannelSubtypeConfigPtrOutput { + return i.ToCampaignEmailChannelSubtypeConfigPtrOutputWithContext(context.Background()) +} + +func (i CampaignEmailChannelSubtypeConfigArgs) ToCampaignEmailChannelSubtypeConfigPtrOutputWithContext(ctx context.Context) CampaignEmailChannelSubtypeConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignEmailChannelSubtypeConfigOutput).ToCampaignEmailChannelSubtypeConfigPtrOutputWithContext(ctx) +} + +// CampaignEmailChannelSubtypeConfigPtrInput is an input type that accepts CampaignEmailChannelSubtypeConfigArgs, CampaignEmailChannelSubtypeConfigPtr and CampaignEmailChannelSubtypeConfigPtrOutput values. +// You can construct a concrete instance of `CampaignEmailChannelSubtypeConfigPtrInput` via: +// +// CampaignEmailChannelSubtypeConfigArgs{...} +// +// or: +// +// nil +type CampaignEmailChannelSubtypeConfigPtrInput interface { + pulumi.Input + + ToCampaignEmailChannelSubtypeConfigPtrOutput() CampaignEmailChannelSubtypeConfigPtrOutput + ToCampaignEmailChannelSubtypeConfigPtrOutputWithContext(context.Context) CampaignEmailChannelSubtypeConfigPtrOutput +} + +type campaignEmailChannelSubtypeConfigPtrType CampaignEmailChannelSubtypeConfigArgs + +func CampaignEmailChannelSubtypeConfigPtr(v *CampaignEmailChannelSubtypeConfigArgs) CampaignEmailChannelSubtypeConfigPtrInput { + return (*campaignEmailChannelSubtypeConfigPtrType)(v) +} + +func (*campaignEmailChannelSubtypeConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignEmailChannelSubtypeConfig)(nil)).Elem() +} + +func (i *campaignEmailChannelSubtypeConfigPtrType) ToCampaignEmailChannelSubtypeConfigPtrOutput() CampaignEmailChannelSubtypeConfigPtrOutput { + return i.ToCampaignEmailChannelSubtypeConfigPtrOutputWithContext(context.Background()) +} + +func (i *campaignEmailChannelSubtypeConfigPtrType) ToCampaignEmailChannelSubtypeConfigPtrOutputWithContext(ctx context.Context) CampaignEmailChannelSubtypeConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignEmailChannelSubtypeConfigPtrOutput) +} + +// Email Channel Subtype config +type CampaignEmailChannelSubtypeConfigOutput struct{ *pulumi.OutputState } + +func (CampaignEmailChannelSubtypeConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignEmailChannelSubtypeConfig)(nil)).Elem() +} + +func (o CampaignEmailChannelSubtypeConfigOutput) ToCampaignEmailChannelSubtypeConfigOutput() CampaignEmailChannelSubtypeConfigOutput { + return o +} + +func (o CampaignEmailChannelSubtypeConfigOutput) ToCampaignEmailChannelSubtypeConfigOutputWithContext(ctx context.Context) CampaignEmailChannelSubtypeConfigOutput { + return o +} + +func (o CampaignEmailChannelSubtypeConfigOutput) ToCampaignEmailChannelSubtypeConfigPtrOutput() CampaignEmailChannelSubtypeConfigPtrOutput { + return o.ToCampaignEmailChannelSubtypeConfigPtrOutputWithContext(context.Background()) +} + +func (o CampaignEmailChannelSubtypeConfigOutput) ToCampaignEmailChannelSubtypeConfigPtrOutputWithContext(ctx context.Context) CampaignEmailChannelSubtypeConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignEmailChannelSubtypeConfig) *CampaignEmailChannelSubtypeConfig { + return &v + }).(CampaignEmailChannelSubtypeConfigPtrOutput) +} + +func (o CampaignEmailChannelSubtypeConfigOutput) Capacity() pulumi.Float64PtrOutput { + return o.ApplyT(func(v CampaignEmailChannelSubtypeConfig) *float64 { return v.Capacity }).(pulumi.Float64PtrOutput) +} + +func (o CampaignEmailChannelSubtypeConfigOutput) DefaultOutboundConfig() CampaignEmailOutboundConfigOutput { + return o.ApplyT(func(v CampaignEmailChannelSubtypeConfig) CampaignEmailOutboundConfig { return v.DefaultOutboundConfig }).(CampaignEmailOutboundConfigOutput) +} + +func (o CampaignEmailChannelSubtypeConfigOutput) OutboundMode() CampaignEmailOutboundModeOutput { + return o.ApplyT(func(v CampaignEmailChannelSubtypeConfig) CampaignEmailOutboundMode { return v.OutboundMode }).(CampaignEmailOutboundModeOutput) +} + +type CampaignEmailChannelSubtypeConfigPtrOutput struct{ *pulumi.OutputState } + +func (CampaignEmailChannelSubtypeConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignEmailChannelSubtypeConfig)(nil)).Elem() +} + +func (o CampaignEmailChannelSubtypeConfigPtrOutput) ToCampaignEmailChannelSubtypeConfigPtrOutput() CampaignEmailChannelSubtypeConfigPtrOutput { + return o +} + +func (o CampaignEmailChannelSubtypeConfigPtrOutput) ToCampaignEmailChannelSubtypeConfigPtrOutputWithContext(ctx context.Context) CampaignEmailChannelSubtypeConfigPtrOutput { + return o +} + +func (o CampaignEmailChannelSubtypeConfigPtrOutput) Elem() CampaignEmailChannelSubtypeConfigOutput { + return o.ApplyT(func(v *CampaignEmailChannelSubtypeConfig) CampaignEmailChannelSubtypeConfig { + if v != nil { + return *v + } + var ret CampaignEmailChannelSubtypeConfig + return ret + }).(CampaignEmailChannelSubtypeConfigOutput) +} + +func (o CampaignEmailChannelSubtypeConfigPtrOutput) Capacity() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *CampaignEmailChannelSubtypeConfig) *float64 { + if v == nil { + return nil + } + return v.Capacity + }).(pulumi.Float64PtrOutput) +} + +func (o CampaignEmailChannelSubtypeConfigPtrOutput) DefaultOutboundConfig() CampaignEmailOutboundConfigPtrOutput { + return o.ApplyT(func(v *CampaignEmailChannelSubtypeConfig) *CampaignEmailOutboundConfig { + if v == nil { + return nil + } + return &v.DefaultOutboundConfig + }).(CampaignEmailOutboundConfigPtrOutput) +} + +func (o CampaignEmailChannelSubtypeConfigPtrOutput) OutboundMode() CampaignEmailOutboundModePtrOutput { + return o.ApplyT(func(v *CampaignEmailChannelSubtypeConfig) *CampaignEmailOutboundMode { + if v == nil { + return nil + } + return &v.OutboundMode + }).(CampaignEmailOutboundModePtrOutput) +} + +// Default SMS outbound config +type CampaignEmailOutboundConfig struct { + ConnectSourceEmailAddress string `pulumi:"connectSourceEmailAddress"` + SourceEmailAddressDisplayName *string `pulumi:"sourceEmailAddressDisplayName"` + WisdomTemplateArn string `pulumi:"wisdomTemplateArn"` +} + +// CampaignEmailOutboundConfigInput is an input type that accepts CampaignEmailOutboundConfigArgs and CampaignEmailOutboundConfigOutput values. +// You can construct a concrete instance of `CampaignEmailOutboundConfigInput` via: +// +// CampaignEmailOutboundConfigArgs{...} +type CampaignEmailOutboundConfigInput interface { + pulumi.Input + + ToCampaignEmailOutboundConfigOutput() CampaignEmailOutboundConfigOutput + ToCampaignEmailOutboundConfigOutputWithContext(context.Context) CampaignEmailOutboundConfigOutput +} + +// Default SMS outbound config +type CampaignEmailOutboundConfigArgs struct { + ConnectSourceEmailAddress pulumi.StringInput `pulumi:"connectSourceEmailAddress"` + SourceEmailAddressDisplayName pulumi.StringPtrInput `pulumi:"sourceEmailAddressDisplayName"` + WisdomTemplateArn pulumi.StringInput `pulumi:"wisdomTemplateArn"` +} + +func (CampaignEmailOutboundConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignEmailOutboundConfig)(nil)).Elem() +} + +func (i CampaignEmailOutboundConfigArgs) ToCampaignEmailOutboundConfigOutput() CampaignEmailOutboundConfigOutput { + return i.ToCampaignEmailOutboundConfigOutputWithContext(context.Background()) +} + +func (i CampaignEmailOutboundConfigArgs) ToCampaignEmailOutboundConfigOutputWithContext(ctx context.Context) CampaignEmailOutboundConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignEmailOutboundConfigOutput) +} + +func (i CampaignEmailOutboundConfigArgs) ToCampaignEmailOutboundConfigPtrOutput() CampaignEmailOutboundConfigPtrOutput { + return i.ToCampaignEmailOutboundConfigPtrOutputWithContext(context.Background()) +} + +func (i CampaignEmailOutboundConfigArgs) ToCampaignEmailOutboundConfigPtrOutputWithContext(ctx context.Context) CampaignEmailOutboundConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignEmailOutboundConfigOutput).ToCampaignEmailOutboundConfigPtrOutputWithContext(ctx) +} + +// CampaignEmailOutboundConfigPtrInput is an input type that accepts CampaignEmailOutboundConfigArgs, CampaignEmailOutboundConfigPtr and CampaignEmailOutboundConfigPtrOutput values. +// You can construct a concrete instance of `CampaignEmailOutboundConfigPtrInput` via: +// +// CampaignEmailOutboundConfigArgs{...} +// +// or: +// +// nil +type CampaignEmailOutboundConfigPtrInput interface { + pulumi.Input + + ToCampaignEmailOutboundConfigPtrOutput() CampaignEmailOutboundConfigPtrOutput + ToCampaignEmailOutboundConfigPtrOutputWithContext(context.Context) CampaignEmailOutboundConfigPtrOutput +} + +type campaignEmailOutboundConfigPtrType CampaignEmailOutboundConfigArgs + +func CampaignEmailOutboundConfigPtr(v *CampaignEmailOutboundConfigArgs) CampaignEmailOutboundConfigPtrInput { + return (*campaignEmailOutboundConfigPtrType)(v) +} + +func (*campaignEmailOutboundConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignEmailOutboundConfig)(nil)).Elem() +} + +func (i *campaignEmailOutboundConfigPtrType) ToCampaignEmailOutboundConfigPtrOutput() CampaignEmailOutboundConfigPtrOutput { + return i.ToCampaignEmailOutboundConfigPtrOutputWithContext(context.Background()) +} + +func (i *campaignEmailOutboundConfigPtrType) ToCampaignEmailOutboundConfigPtrOutputWithContext(ctx context.Context) CampaignEmailOutboundConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignEmailOutboundConfigPtrOutput) +} + +// Default SMS outbound config +type CampaignEmailOutboundConfigOutput struct{ *pulumi.OutputState } + +func (CampaignEmailOutboundConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignEmailOutboundConfig)(nil)).Elem() +} + +func (o CampaignEmailOutboundConfigOutput) ToCampaignEmailOutboundConfigOutput() CampaignEmailOutboundConfigOutput { + return o +} + +func (o CampaignEmailOutboundConfigOutput) ToCampaignEmailOutboundConfigOutputWithContext(ctx context.Context) CampaignEmailOutboundConfigOutput { + return o +} + +func (o CampaignEmailOutboundConfigOutput) ToCampaignEmailOutboundConfigPtrOutput() CampaignEmailOutboundConfigPtrOutput { + return o.ToCampaignEmailOutboundConfigPtrOutputWithContext(context.Background()) +} + +func (o CampaignEmailOutboundConfigOutput) ToCampaignEmailOutboundConfigPtrOutputWithContext(ctx context.Context) CampaignEmailOutboundConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignEmailOutboundConfig) *CampaignEmailOutboundConfig { + return &v + }).(CampaignEmailOutboundConfigPtrOutput) +} + +func (o CampaignEmailOutboundConfigOutput) ConnectSourceEmailAddress() pulumi.StringOutput { + return o.ApplyT(func(v CampaignEmailOutboundConfig) string { return v.ConnectSourceEmailAddress }).(pulumi.StringOutput) +} + +func (o CampaignEmailOutboundConfigOutput) SourceEmailAddressDisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v CampaignEmailOutboundConfig) *string { return v.SourceEmailAddressDisplayName }).(pulumi.StringPtrOutput) +} + +func (o CampaignEmailOutboundConfigOutput) WisdomTemplateArn() pulumi.StringOutput { + return o.ApplyT(func(v CampaignEmailOutboundConfig) string { return v.WisdomTemplateArn }).(pulumi.StringOutput) +} + +type CampaignEmailOutboundConfigPtrOutput struct{ *pulumi.OutputState } + +func (CampaignEmailOutboundConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignEmailOutboundConfig)(nil)).Elem() +} + +func (o CampaignEmailOutboundConfigPtrOutput) ToCampaignEmailOutboundConfigPtrOutput() CampaignEmailOutboundConfigPtrOutput { + return o +} + +func (o CampaignEmailOutboundConfigPtrOutput) ToCampaignEmailOutboundConfigPtrOutputWithContext(ctx context.Context) CampaignEmailOutboundConfigPtrOutput { + return o +} + +func (o CampaignEmailOutboundConfigPtrOutput) Elem() CampaignEmailOutboundConfigOutput { + return o.ApplyT(func(v *CampaignEmailOutboundConfig) CampaignEmailOutboundConfig { + if v != nil { + return *v + } + var ret CampaignEmailOutboundConfig + return ret + }).(CampaignEmailOutboundConfigOutput) +} + +func (o CampaignEmailOutboundConfigPtrOutput) ConnectSourceEmailAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CampaignEmailOutboundConfig) *string { + if v == nil { + return nil + } + return &v.ConnectSourceEmailAddress + }).(pulumi.StringPtrOutput) +} + +func (o CampaignEmailOutboundConfigPtrOutput) SourceEmailAddressDisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CampaignEmailOutboundConfig) *string { + if v == nil { + return nil + } + return v.SourceEmailAddressDisplayName + }).(pulumi.StringPtrOutput) +} + +func (o CampaignEmailOutboundConfigPtrOutput) WisdomTemplateArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CampaignEmailOutboundConfig) *string { + if v == nil { + return nil + } + return &v.WisdomTemplateArn + }).(pulumi.StringPtrOutput) +} + +// Email Outbound Mode +type CampaignEmailOutboundMode struct { + AgentlessConfig *CampaignAgentlessConfig `pulumi:"agentlessConfig"` +} + +// CampaignEmailOutboundModeInput is an input type that accepts CampaignEmailOutboundModeArgs and CampaignEmailOutboundModeOutput values. +// You can construct a concrete instance of `CampaignEmailOutboundModeInput` via: +// +// CampaignEmailOutboundModeArgs{...} +type CampaignEmailOutboundModeInput interface { + pulumi.Input + + ToCampaignEmailOutboundModeOutput() CampaignEmailOutboundModeOutput + ToCampaignEmailOutboundModeOutputWithContext(context.Context) CampaignEmailOutboundModeOutput +} + +// Email Outbound Mode +type CampaignEmailOutboundModeArgs struct { + AgentlessConfig CampaignAgentlessConfigPtrInput `pulumi:"agentlessConfig"` +} + +func (CampaignEmailOutboundModeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignEmailOutboundMode)(nil)).Elem() +} + +func (i CampaignEmailOutboundModeArgs) ToCampaignEmailOutboundModeOutput() CampaignEmailOutboundModeOutput { + return i.ToCampaignEmailOutboundModeOutputWithContext(context.Background()) +} + +func (i CampaignEmailOutboundModeArgs) ToCampaignEmailOutboundModeOutputWithContext(ctx context.Context) CampaignEmailOutboundModeOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignEmailOutboundModeOutput) +} + +func (i CampaignEmailOutboundModeArgs) ToCampaignEmailOutboundModePtrOutput() CampaignEmailOutboundModePtrOutput { + return i.ToCampaignEmailOutboundModePtrOutputWithContext(context.Background()) +} + +func (i CampaignEmailOutboundModeArgs) ToCampaignEmailOutboundModePtrOutputWithContext(ctx context.Context) CampaignEmailOutboundModePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignEmailOutboundModeOutput).ToCampaignEmailOutboundModePtrOutputWithContext(ctx) +} + +// CampaignEmailOutboundModePtrInput is an input type that accepts CampaignEmailOutboundModeArgs, CampaignEmailOutboundModePtr and CampaignEmailOutboundModePtrOutput values. +// You can construct a concrete instance of `CampaignEmailOutboundModePtrInput` via: +// +// CampaignEmailOutboundModeArgs{...} +// +// or: +// +// nil +type CampaignEmailOutboundModePtrInput interface { + pulumi.Input + + ToCampaignEmailOutboundModePtrOutput() CampaignEmailOutboundModePtrOutput + ToCampaignEmailOutboundModePtrOutputWithContext(context.Context) CampaignEmailOutboundModePtrOutput +} + +type campaignEmailOutboundModePtrType CampaignEmailOutboundModeArgs + +func CampaignEmailOutboundModePtr(v *CampaignEmailOutboundModeArgs) CampaignEmailOutboundModePtrInput { + return (*campaignEmailOutboundModePtrType)(v) +} + +func (*campaignEmailOutboundModePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignEmailOutboundMode)(nil)).Elem() +} + +func (i *campaignEmailOutboundModePtrType) ToCampaignEmailOutboundModePtrOutput() CampaignEmailOutboundModePtrOutput { + return i.ToCampaignEmailOutboundModePtrOutputWithContext(context.Background()) +} + +func (i *campaignEmailOutboundModePtrType) ToCampaignEmailOutboundModePtrOutputWithContext(ctx context.Context) CampaignEmailOutboundModePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignEmailOutboundModePtrOutput) +} + +// Email Outbound Mode +type CampaignEmailOutboundModeOutput struct{ *pulumi.OutputState } + +func (CampaignEmailOutboundModeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignEmailOutboundMode)(nil)).Elem() +} + +func (o CampaignEmailOutboundModeOutput) ToCampaignEmailOutboundModeOutput() CampaignEmailOutboundModeOutput { + return o +} + +func (o CampaignEmailOutboundModeOutput) ToCampaignEmailOutboundModeOutputWithContext(ctx context.Context) CampaignEmailOutboundModeOutput { + return o +} + +func (o CampaignEmailOutboundModeOutput) ToCampaignEmailOutboundModePtrOutput() CampaignEmailOutboundModePtrOutput { + return o.ToCampaignEmailOutboundModePtrOutputWithContext(context.Background()) +} + +func (o CampaignEmailOutboundModeOutput) ToCampaignEmailOutboundModePtrOutputWithContext(ctx context.Context) CampaignEmailOutboundModePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignEmailOutboundMode) *CampaignEmailOutboundMode { + return &v + }).(CampaignEmailOutboundModePtrOutput) +} + +func (o CampaignEmailOutboundModeOutput) AgentlessConfig() CampaignAgentlessConfigPtrOutput { + return o.ApplyT(func(v CampaignEmailOutboundMode) *CampaignAgentlessConfig { return v.AgentlessConfig }).(CampaignAgentlessConfigPtrOutput) +} + +type CampaignEmailOutboundModePtrOutput struct{ *pulumi.OutputState } + +func (CampaignEmailOutboundModePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignEmailOutboundMode)(nil)).Elem() +} + +func (o CampaignEmailOutboundModePtrOutput) ToCampaignEmailOutboundModePtrOutput() CampaignEmailOutboundModePtrOutput { + return o +} + +func (o CampaignEmailOutboundModePtrOutput) ToCampaignEmailOutboundModePtrOutputWithContext(ctx context.Context) CampaignEmailOutboundModePtrOutput { + return o +} + +func (o CampaignEmailOutboundModePtrOutput) Elem() CampaignEmailOutboundModeOutput { + return o.ApplyT(func(v *CampaignEmailOutboundMode) CampaignEmailOutboundMode { + if v != nil { + return *v + } + var ret CampaignEmailOutboundMode + return ret + }).(CampaignEmailOutboundModeOutput) +} + +func (o CampaignEmailOutboundModePtrOutput) AgentlessConfig() CampaignAgentlessConfigPtrOutput { + return o.ApplyT(func(v *CampaignEmailOutboundMode) *CampaignAgentlessConfig { + if v == nil { + return nil + } + return v.AgentlessConfig + }).(CampaignAgentlessConfigPtrOutput) +} + +// Local time zone config +type CampaignLocalTimeZoneConfig struct { + DefaultTimeZone *string `pulumi:"defaultTimeZone"` + LocalTimeZoneDetection []CampaignLocalTimeZoneDetectionType `pulumi:"localTimeZoneDetection"` +} + +// CampaignLocalTimeZoneConfigInput is an input type that accepts CampaignLocalTimeZoneConfigArgs and CampaignLocalTimeZoneConfigOutput values. +// You can construct a concrete instance of `CampaignLocalTimeZoneConfigInput` via: +// +// CampaignLocalTimeZoneConfigArgs{...} +type CampaignLocalTimeZoneConfigInput interface { + pulumi.Input + + ToCampaignLocalTimeZoneConfigOutput() CampaignLocalTimeZoneConfigOutput + ToCampaignLocalTimeZoneConfigOutputWithContext(context.Context) CampaignLocalTimeZoneConfigOutput +} + +// Local time zone config +type CampaignLocalTimeZoneConfigArgs struct { + DefaultTimeZone pulumi.StringPtrInput `pulumi:"defaultTimeZone"` + LocalTimeZoneDetection CampaignLocalTimeZoneDetectionTypeArrayInput `pulumi:"localTimeZoneDetection"` +} + +func (CampaignLocalTimeZoneConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignLocalTimeZoneConfig)(nil)).Elem() +} + +func (i CampaignLocalTimeZoneConfigArgs) ToCampaignLocalTimeZoneConfigOutput() CampaignLocalTimeZoneConfigOutput { + return i.ToCampaignLocalTimeZoneConfigOutputWithContext(context.Background()) +} + +func (i CampaignLocalTimeZoneConfigArgs) ToCampaignLocalTimeZoneConfigOutputWithContext(ctx context.Context) CampaignLocalTimeZoneConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignLocalTimeZoneConfigOutput) +} + +func (i CampaignLocalTimeZoneConfigArgs) ToCampaignLocalTimeZoneConfigPtrOutput() CampaignLocalTimeZoneConfigPtrOutput { + return i.ToCampaignLocalTimeZoneConfigPtrOutputWithContext(context.Background()) +} + +func (i CampaignLocalTimeZoneConfigArgs) ToCampaignLocalTimeZoneConfigPtrOutputWithContext(ctx context.Context) CampaignLocalTimeZoneConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignLocalTimeZoneConfigOutput).ToCampaignLocalTimeZoneConfigPtrOutputWithContext(ctx) +} + +// CampaignLocalTimeZoneConfigPtrInput is an input type that accepts CampaignLocalTimeZoneConfigArgs, CampaignLocalTimeZoneConfigPtr and CampaignLocalTimeZoneConfigPtrOutput values. +// You can construct a concrete instance of `CampaignLocalTimeZoneConfigPtrInput` via: +// +// CampaignLocalTimeZoneConfigArgs{...} +// +// or: +// +// nil +type CampaignLocalTimeZoneConfigPtrInput interface { + pulumi.Input + + ToCampaignLocalTimeZoneConfigPtrOutput() CampaignLocalTimeZoneConfigPtrOutput + ToCampaignLocalTimeZoneConfigPtrOutputWithContext(context.Context) CampaignLocalTimeZoneConfigPtrOutput +} + +type campaignLocalTimeZoneConfigPtrType CampaignLocalTimeZoneConfigArgs + +func CampaignLocalTimeZoneConfigPtr(v *CampaignLocalTimeZoneConfigArgs) CampaignLocalTimeZoneConfigPtrInput { + return (*campaignLocalTimeZoneConfigPtrType)(v) +} + +func (*campaignLocalTimeZoneConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignLocalTimeZoneConfig)(nil)).Elem() +} + +func (i *campaignLocalTimeZoneConfigPtrType) ToCampaignLocalTimeZoneConfigPtrOutput() CampaignLocalTimeZoneConfigPtrOutput { + return i.ToCampaignLocalTimeZoneConfigPtrOutputWithContext(context.Background()) +} + +func (i *campaignLocalTimeZoneConfigPtrType) ToCampaignLocalTimeZoneConfigPtrOutputWithContext(ctx context.Context) CampaignLocalTimeZoneConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignLocalTimeZoneConfigPtrOutput) +} + +// Local time zone config +type CampaignLocalTimeZoneConfigOutput struct{ *pulumi.OutputState } + +func (CampaignLocalTimeZoneConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignLocalTimeZoneConfig)(nil)).Elem() +} + +func (o CampaignLocalTimeZoneConfigOutput) ToCampaignLocalTimeZoneConfigOutput() CampaignLocalTimeZoneConfigOutput { + return o +} + +func (o CampaignLocalTimeZoneConfigOutput) ToCampaignLocalTimeZoneConfigOutputWithContext(ctx context.Context) CampaignLocalTimeZoneConfigOutput { + return o +} + +func (o CampaignLocalTimeZoneConfigOutput) ToCampaignLocalTimeZoneConfigPtrOutput() CampaignLocalTimeZoneConfigPtrOutput { + return o.ToCampaignLocalTimeZoneConfigPtrOutputWithContext(context.Background()) +} + +func (o CampaignLocalTimeZoneConfigOutput) ToCampaignLocalTimeZoneConfigPtrOutputWithContext(ctx context.Context) CampaignLocalTimeZoneConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignLocalTimeZoneConfig) *CampaignLocalTimeZoneConfig { + return &v + }).(CampaignLocalTimeZoneConfigPtrOutput) +} + +func (o CampaignLocalTimeZoneConfigOutput) DefaultTimeZone() pulumi.StringPtrOutput { + return o.ApplyT(func(v CampaignLocalTimeZoneConfig) *string { return v.DefaultTimeZone }).(pulumi.StringPtrOutput) +} + +func (o CampaignLocalTimeZoneConfigOutput) LocalTimeZoneDetection() CampaignLocalTimeZoneDetectionTypeArrayOutput { + return o.ApplyT(func(v CampaignLocalTimeZoneConfig) []CampaignLocalTimeZoneDetectionType { + return v.LocalTimeZoneDetection + }).(CampaignLocalTimeZoneDetectionTypeArrayOutput) +} + +type CampaignLocalTimeZoneConfigPtrOutput struct{ *pulumi.OutputState } + +func (CampaignLocalTimeZoneConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignLocalTimeZoneConfig)(nil)).Elem() +} + +func (o CampaignLocalTimeZoneConfigPtrOutput) ToCampaignLocalTimeZoneConfigPtrOutput() CampaignLocalTimeZoneConfigPtrOutput { + return o +} + +func (o CampaignLocalTimeZoneConfigPtrOutput) ToCampaignLocalTimeZoneConfigPtrOutputWithContext(ctx context.Context) CampaignLocalTimeZoneConfigPtrOutput { + return o +} + +func (o CampaignLocalTimeZoneConfigPtrOutput) Elem() CampaignLocalTimeZoneConfigOutput { + return o.ApplyT(func(v *CampaignLocalTimeZoneConfig) CampaignLocalTimeZoneConfig { + if v != nil { + return *v + } + var ret CampaignLocalTimeZoneConfig + return ret + }).(CampaignLocalTimeZoneConfigOutput) +} + +func (o CampaignLocalTimeZoneConfigPtrOutput) DefaultTimeZone() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CampaignLocalTimeZoneConfig) *string { + if v == nil { + return nil + } + return v.DefaultTimeZone + }).(pulumi.StringPtrOutput) +} + +func (o CampaignLocalTimeZoneConfigPtrOutput) LocalTimeZoneDetection() CampaignLocalTimeZoneDetectionTypeArrayOutput { + return o.ApplyT(func(v *CampaignLocalTimeZoneConfig) []CampaignLocalTimeZoneDetectionType { + if v == nil { + return nil + } + return v.LocalTimeZoneDetection + }).(CampaignLocalTimeZoneDetectionTypeArrayOutput) +} + +// Open Hours config +type CampaignOpenHours struct { + DailyHours []CampaignDailyHour `pulumi:"dailyHours"` +} + +// CampaignOpenHoursInput is an input type that accepts CampaignOpenHoursArgs and CampaignOpenHoursOutput values. +// You can construct a concrete instance of `CampaignOpenHoursInput` via: +// +// CampaignOpenHoursArgs{...} +type CampaignOpenHoursInput interface { + pulumi.Input + + ToCampaignOpenHoursOutput() CampaignOpenHoursOutput + ToCampaignOpenHoursOutputWithContext(context.Context) CampaignOpenHoursOutput +} + +// Open Hours config +type CampaignOpenHoursArgs struct { + DailyHours CampaignDailyHourArrayInput `pulumi:"dailyHours"` +} + +func (CampaignOpenHoursArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignOpenHours)(nil)).Elem() +} + +func (i CampaignOpenHoursArgs) ToCampaignOpenHoursOutput() CampaignOpenHoursOutput { + return i.ToCampaignOpenHoursOutputWithContext(context.Background()) +} + +func (i CampaignOpenHoursArgs) ToCampaignOpenHoursOutputWithContext(ctx context.Context) CampaignOpenHoursOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignOpenHoursOutput) +} + +func (i CampaignOpenHoursArgs) ToCampaignOpenHoursPtrOutput() CampaignOpenHoursPtrOutput { + return i.ToCampaignOpenHoursPtrOutputWithContext(context.Background()) +} + +func (i CampaignOpenHoursArgs) ToCampaignOpenHoursPtrOutputWithContext(ctx context.Context) CampaignOpenHoursPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignOpenHoursOutput).ToCampaignOpenHoursPtrOutputWithContext(ctx) +} + +// CampaignOpenHoursPtrInput is an input type that accepts CampaignOpenHoursArgs, CampaignOpenHoursPtr and CampaignOpenHoursPtrOutput values. +// You can construct a concrete instance of `CampaignOpenHoursPtrInput` via: +// +// CampaignOpenHoursArgs{...} +// +// or: +// +// nil +type CampaignOpenHoursPtrInput interface { + pulumi.Input + + ToCampaignOpenHoursPtrOutput() CampaignOpenHoursPtrOutput + ToCampaignOpenHoursPtrOutputWithContext(context.Context) CampaignOpenHoursPtrOutput +} + +type campaignOpenHoursPtrType CampaignOpenHoursArgs + +func CampaignOpenHoursPtr(v *CampaignOpenHoursArgs) CampaignOpenHoursPtrInput { + return (*campaignOpenHoursPtrType)(v) +} + +func (*campaignOpenHoursPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignOpenHours)(nil)).Elem() +} + +func (i *campaignOpenHoursPtrType) ToCampaignOpenHoursPtrOutput() CampaignOpenHoursPtrOutput { + return i.ToCampaignOpenHoursPtrOutputWithContext(context.Background()) +} + +func (i *campaignOpenHoursPtrType) ToCampaignOpenHoursPtrOutputWithContext(ctx context.Context) CampaignOpenHoursPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignOpenHoursPtrOutput) +} + +// Open Hours config +type CampaignOpenHoursOutput struct{ *pulumi.OutputState } + +func (CampaignOpenHoursOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignOpenHours)(nil)).Elem() +} + +func (o CampaignOpenHoursOutput) ToCampaignOpenHoursOutput() CampaignOpenHoursOutput { + return o +} + +func (o CampaignOpenHoursOutput) ToCampaignOpenHoursOutputWithContext(ctx context.Context) CampaignOpenHoursOutput { + return o +} + +func (o CampaignOpenHoursOutput) ToCampaignOpenHoursPtrOutput() CampaignOpenHoursPtrOutput { + return o.ToCampaignOpenHoursPtrOutputWithContext(context.Background()) +} + +func (o CampaignOpenHoursOutput) ToCampaignOpenHoursPtrOutputWithContext(ctx context.Context) CampaignOpenHoursPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignOpenHours) *CampaignOpenHours { + return &v + }).(CampaignOpenHoursPtrOutput) +} + +func (o CampaignOpenHoursOutput) DailyHours() CampaignDailyHourArrayOutput { + return o.ApplyT(func(v CampaignOpenHours) []CampaignDailyHour { return v.DailyHours }).(CampaignDailyHourArrayOutput) +} + +type CampaignOpenHoursPtrOutput struct{ *pulumi.OutputState } + +func (CampaignOpenHoursPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignOpenHours)(nil)).Elem() +} + +func (o CampaignOpenHoursPtrOutput) ToCampaignOpenHoursPtrOutput() CampaignOpenHoursPtrOutput { + return o +} + +func (o CampaignOpenHoursPtrOutput) ToCampaignOpenHoursPtrOutputWithContext(ctx context.Context) CampaignOpenHoursPtrOutput { + return o +} + +func (o CampaignOpenHoursPtrOutput) Elem() CampaignOpenHoursOutput { + return o.ApplyT(func(v *CampaignOpenHours) CampaignOpenHours { + if v != nil { + return *v + } + var ret CampaignOpenHours + return ret + }).(CampaignOpenHoursOutput) +} + +func (o CampaignOpenHoursPtrOutput) DailyHours() CampaignDailyHourArrayOutput { + return o.ApplyT(func(v *CampaignOpenHours) []CampaignDailyHour { + if v == nil { + return nil + } + return v.DailyHours + }).(CampaignDailyHourArrayOutput) +} + +// Predictive config +type CampaignPredictiveConfig struct { + BandwidthAllocation float64 `pulumi:"bandwidthAllocation"` +} + +// CampaignPredictiveConfigInput is an input type that accepts CampaignPredictiveConfigArgs and CampaignPredictiveConfigOutput values. +// You can construct a concrete instance of `CampaignPredictiveConfigInput` via: +// +// CampaignPredictiveConfigArgs{...} +type CampaignPredictiveConfigInput interface { + pulumi.Input + + ToCampaignPredictiveConfigOutput() CampaignPredictiveConfigOutput + ToCampaignPredictiveConfigOutputWithContext(context.Context) CampaignPredictiveConfigOutput +} + +// Predictive config +type CampaignPredictiveConfigArgs struct { + BandwidthAllocation pulumi.Float64Input `pulumi:"bandwidthAllocation"` +} + +func (CampaignPredictiveConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignPredictiveConfig)(nil)).Elem() +} + +func (i CampaignPredictiveConfigArgs) ToCampaignPredictiveConfigOutput() CampaignPredictiveConfigOutput { + return i.ToCampaignPredictiveConfigOutputWithContext(context.Background()) +} + +func (i CampaignPredictiveConfigArgs) ToCampaignPredictiveConfigOutputWithContext(ctx context.Context) CampaignPredictiveConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignPredictiveConfigOutput) +} + +func (i CampaignPredictiveConfigArgs) ToCampaignPredictiveConfigPtrOutput() CampaignPredictiveConfigPtrOutput { + return i.ToCampaignPredictiveConfigPtrOutputWithContext(context.Background()) +} + +func (i CampaignPredictiveConfigArgs) ToCampaignPredictiveConfigPtrOutputWithContext(ctx context.Context) CampaignPredictiveConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignPredictiveConfigOutput).ToCampaignPredictiveConfigPtrOutputWithContext(ctx) +} + +// CampaignPredictiveConfigPtrInput is an input type that accepts CampaignPredictiveConfigArgs, CampaignPredictiveConfigPtr and CampaignPredictiveConfigPtrOutput values. +// You can construct a concrete instance of `CampaignPredictiveConfigPtrInput` via: +// +// CampaignPredictiveConfigArgs{...} +// +// or: +// +// nil +type CampaignPredictiveConfigPtrInput interface { + pulumi.Input + + ToCampaignPredictiveConfigPtrOutput() CampaignPredictiveConfigPtrOutput + ToCampaignPredictiveConfigPtrOutputWithContext(context.Context) CampaignPredictiveConfigPtrOutput +} + +type campaignPredictiveConfigPtrType CampaignPredictiveConfigArgs + +func CampaignPredictiveConfigPtr(v *CampaignPredictiveConfigArgs) CampaignPredictiveConfigPtrInput { + return (*campaignPredictiveConfigPtrType)(v) +} + +func (*campaignPredictiveConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignPredictiveConfig)(nil)).Elem() +} + +func (i *campaignPredictiveConfigPtrType) ToCampaignPredictiveConfigPtrOutput() CampaignPredictiveConfigPtrOutput { + return i.ToCampaignPredictiveConfigPtrOutputWithContext(context.Background()) +} + +func (i *campaignPredictiveConfigPtrType) ToCampaignPredictiveConfigPtrOutputWithContext(ctx context.Context) CampaignPredictiveConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignPredictiveConfigPtrOutput) +} + +// Predictive config +type CampaignPredictiveConfigOutput struct{ *pulumi.OutputState } + +func (CampaignPredictiveConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignPredictiveConfig)(nil)).Elem() +} + +func (o CampaignPredictiveConfigOutput) ToCampaignPredictiveConfigOutput() CampaignPredictiveConfigOutput { + return o +} + +func (o CampaignPredictiveConfigOutput) ToCampaignPredictiveConfigOutputWithContext(ctx context.Context) CampaignPredictiveConfigOutput { + return o +} + +func (o CampaignPredictiveConfigOutput) ToCampaignPredictiveConfigPtrOutput() CampaignPredictiveConfigPtrOutput { + return o.ToCampaignPredictiveConfigPtrOutputWithContext(context.Background()) +} + +func (o CampaignPredictiveConfigOutput) ToCampaignPredictiveConfigPtrOutputWithContext(ctx context.Context) CampaignPredictiveConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignPredictiveConfig) *CampaignPredictiveConfig { + return &v + }).(CampaignPredictiveConfigPtrOutput) +} + +func (o CampaignPredictiveConfigOutput) BandwidthAllocation() pulumi.Float64Output { + return o.ApplyT(func(v CampaignPredictiveConfig) float64 { return v.BandwidthAllocation }).(pulumi.Float64Output) +} + +type CampaignPredictiveConfigPtrOutput struct{ *pulumi.OutputState } + +func (CampaignPredictiveConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignPredictiveConfig)(nil)).Elem() +} + +func (o CampaignPredictiveConfigPtrOutput) ToCampaignPredictiveConfigPtrOutput() CampaignPredictiveConfigPtrOutput { + return o +} + +func (o CampaignPredictiveConfigPtrOutput) ToCampaignPredictiveConfigPtrOutputWithContext(ctx context.Context) CampaignPredictiveConfigPtrOutput { + return o +} + +func (o CampaignPredictiveConfigPtrOutput) Elem() CampaignPredictiveConfigOutput { + return o.ApplyT(func(v *CampaignPredictiveConfig) CampaignPredictiveConfig { + if v != nil { + return *v + } + var ret CampaignPredictiveConfig + return ret + }).(CampaignPredictiveConfigOutput) +} + +func (o CampaignPredictiveConfigPtrOutput) BandwidthAllocation() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *CampaignPredictiveConfig) *float64 { + if v == nil { + return nil + } + return &v.BandwidthAllocation + }).(pulumi.Float64PtrOutput) +} + +// Progressive config +type CampaignProgressiveConfig struct { + BandwidthAllocation float64 `pulumi:"bandwidthAllocation"` +} + +// CampaignProgressiveConfigInput is an input type that accepts CampaignProgressiveConfigArgs and CampaignProgressiveConfigOutput values. +// You can construct a concrete instance of `CampaignProgressiveConfigInput` via: +// +// CampaignProgressiveConfigArgs{...} +type CampaignProgressiveConfigInput interface { + pulumi.Input + + ToCampaignProgressiveConfigOutput() CampaignProgressiveConfigOutput + ToCampaignProgressiveConfigOutputWithContext(context.Context) CampaignProgressiveConfigOutput +} + +// Progressive config +type CampaignProgressiveConfigArgs struct { + BandwidthAllocation pulumi.Float64Input `pulumi:"bandwidthAllocation"` +} + +func (CampaignProgressiveConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignProgressiveConfig)(nil)).Elem() +} + +func (i CampaignProgressiveConfigArgs) ToCampaignProgressiveConfigOutput() CampaignProgressiveConfigOutput { + return i.ToCampaignProgressiveConfigOutputWithContext(context.Background()) +} + +func (i CampaignProgressiveConfigArgs) ToCampaignProgressiveConfigOutputWithContext(ctx context.Context) CampaignProgressiveConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignProgressiveConfigOutput) +} + +func (i CampaignProgressiveConfigArgs) ToCampaignProgressiveConfigPtrOutput() CampaignProgressiveConfigPtrOutput { + return i.ToCampaignProgressiveConfigPtrOutputWithContext(context.Background()) +} + +func (i CampaignProgressiveConfigArgs) ToCampaignProgressiveConfigPtrOutputWithContext(ctx context.Context) CampaignProgressiveConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignProgressiveConfigOutput).ToCampaignProgressiveConfigPtrOutputWithContext(ctx) +} + +// CampaignProgressiveConfigPtrInput is an input type that accepts CampaignProgressiveConfigArgs, CampaignProgressiveConfigPtr and CampaignProgressiveConfigPtrOutput values. +// You can construct a concrete instance of `CampaignProgressiveConfigPtrInput` via: +// +// CampaignProgressiveConfigArgs{...} +// +// or: +// +// nil +type CampaignProgressiveConfigPtrInput interface { + pulumi.Input + + ToCampaignProgressiveConfigPtrOutput() CampaignProgressiveConfigPtrOutput + ToCampaignProgressiveConfigPtrOutputWithContext(context.Context) CampaignProgressiveConfigPtrOutput +} + +type campaignProgressiveConfigPtrType CampaignProgressiveConfigArgs + +func CampaignProgressiveConfigPtr(v *CampaignProgressiveConfigArgs) CampaignProgressiveConfigPtrInput { + return (*campaignProgressiveConfigPtrType)(v) +} + +func (*campaignProgressiveConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignProgressiveConfig)(nil)).Elem() +} + +func (i *campaignProgressiveConfigPtrType) ToCampaignProgressiveConfigPtrOutput() CampaignProgressiveConfigPtrOutput { + return i.ToCampaignProgressiveConfigPtrOutputWithContext(context.Background()) +} + +func (i *campaignProgressiveConfigPtrType) ToCampaignProgressiveConfigPtrOutputWithContext(ctx context.Context) CampaignProgressiveConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignProgressiveConfigPtrOutput) +} + +// Progressive config +type CampaignProgressiveConfigOutput struct{ *pulumi.OutputState } + +func (CampaignProgressiveConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignProgressiveConfig)(nil)).Elem() +} + +func (o CampaignProgressiveConfigOutput) ToCampaignProgressiveConfigOutput() CampaignProgressiveConfigOutput { + return o +} + +func (o CampaignProgressiveConfigOutput) ToCampaignProgressiveConfigOutputWithContext(ctx context.Context) CampaignProgressiveConfigOutput { + return o +} + +func (o CampaignProgressiveConfigOutput) ToCampaignProgressiveConfigPtrOutput() CampaignProgressiveConfigPtrOutput { + return o.ToCampaignProgressiveConfigPtrOutputWithContext(context.Background()) +} + +func (o CampaignProgressiveConfigOutput) ToCampaignProgressiveConfigPtrOutputWithContext(ctx context.Context) CampaignProgressiveConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignProgressiveConfig) *CampaignProgressiveConfig { + return &v + }).(CampaignProgressiveConfigPtrOutput) +} + +func (o CampaignProgressiveConfigOutput) BandwidthAllocation() pulumi.Float64Output { + return o.ApplyT(func(v CampaignProgressiveConfig) float64 { return v.BandwidthAllocation }).(pulumi.Float64Output) +} + +type CampaignProgressiveConfigPtrOutput struct{ *pulumi.OutputState } + +func (CampaignProgressiveConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignProgressiveConfig)(nil)).Elem() +} + +func (o CampaignProgressiveConfigPtrOutput) ToCampaignProgressiveConfigPtrOutput() CampaignProgressiveConfigPtrOutput { + return o +} + +func (o CampaignProgressiveConfigPtrOutput) ToCampaignProgressiveConfigPtrOutputWithContext(ctx context.Context) CampaignProgressiveConfigPtrOutput { + return o +} + +func (o CampaignProgressiveConfigPtrOutput) Elem() CampaignProgressiveConfigOutput { + return o.ApplyT(func(v *CampaignProgressiveConfig) CampaignProgressiveConfig { + if v != nil { + return *v + } + var ret CampaignProgressiveConfig + return ret + }).(CampaignProgressiveConfigOutput) +} + +func (o CampaignProgressiveConfigPtrOutput) BandwidthAllocation() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *CampaignProgressiveConfig) *float64 { + if v == nil { + return nil + } + return &v.BandwidthAllocation + }).(pulumi.Float64PtrOutput) +} + +// Restricted period +type CampaignRestrictedPeriod struct { + EndDate string `pulumi:"endDate"` + // The name of a restricted period + Name *string `pulumi:"name"` + StartDate string `pulumi:"startDate"` +} + +// CampaignRestrictedPeriodInput is an input type that accepts CampaignRestrictedPeriodArgs and CampaignRestrictedPeriodOutput values. +// You can construct a concrete instance of `CampaignRestrictedPeriodInput` via: +// +// CampaignRestrictedPeriodArgs{...} +type CampaignRestrictedPeriodInput interface { + pulumi.Input + + ToCampaignRestrictedPeriodOutput() CampaignRestrictedPeriodOutput + ToCampaignRestrictedPeriodOutputWithContext(context.Context) CampaignRestrictedPeriodOutput +} + +// Restricted period +type CampaignRestrictedPeriodArgs struct { + EndDate pulumi.StringInput `pulumi:"endDate"` + // The name of a restricted period + Name pulumi.StringPtrInput `pulumi:"name"` + StartDate pulumi.StringInput `pulumi:"startDate"` +} + +func (CampaignRestrictedPeriodArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignRestrictedPeriod)(nil)).Elem() +} + +func (i CampaignRestrictedPeriodArgs) ToCampaignRestrictedPeriodOutput() CampaignRestrictedPeriodOutput { + return i.ToCampaignRestrictedPeriodOutputWithContext(context.Background()) +} + +func (i CampaignRestrictedPeriodArgs) ToCampaignRestrictedPeriodOutputWithContext(ctx context.Context) CampaignRestrictedPeriodOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignRestrictedPeriodOutput) +} + +// CampaignRestrictedPeriodArrayInput is an input type that accepts CampaignRestrictedPeriodArray and CampaignRestrictedPeriodArrayOutput values. +// You can construct a concrete instance of `CampaignRestrictedPeriodArrayInput` via: +// +// CampaignRestrictedPeriodArray{ CampaignRestrictedPeriodArgs{...} } +type CampaignRestrictedPeriodArrayInput interface { + pulumi.Input + + ToCampaignRestrictedPeriodArrayOutput() CampaignRestrictedPeriodArrayOutput + ToCampaignRestrictedPeriodArrayOutputWithContext(context.Context) CampaignRestrictedPeriodArrayOutput +} + +type CampaignRestrictedPeriodArray []CampaignRestrictedPeriodInput + +func (CampaignRestrictedPeriodArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]CampaignRestrictedPeriod)(nil)).Elem() +} + +func (i CampaignRestrictedPeriodArray) ToCampaignRestrictedPeriodArrayOutput() CampaignRestrictedPeriodArrayOutput { + return i.ToCampaignRestrictedPeriodArrayOutputWithContext(context.Background()) +} + +func (i CampaignRestrictedPeriodArray) ToCampaignRestrictedPeriodArrayOutputWithContext(ctx context.Context) CampaignRestrictedPeriodArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignRestrictedPeriodArrayOutput) +} + +// Restricted period +type CampaignRestrictedPeriodOutput struct{ *pulumi.OutputState } + +func (CampaignRestrictedPeriodOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignRestrictedPeriod)(nil)).Elem() +} + +func (o CampaignRestrictedPeriodOutput) ToCampaignRestrictedPeriodOutput() CampaignRestrictedPeriodOutput { + return o +} + +func (o CampaignRestrictedPeriodOutput) ToCampaignRestrictedPeriodOutputWithContext(ctx context.Context) CampaignRestrictedPeriodOutput { + return o +} + +func (o CampaignRestrictedPeriodOutput) EndDate() pulumi.StringOutput { + return o.ApplyT(func(v CampaignRestrictedPeriod) string { return v.EndDate }).(pulumi.StringOutput) +} + +// The name of a restricted period +func (o CampaignRestrictedPeriodOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v CampaignRestrictedPeriod) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +func (o CampaignRestrictedPeriodOutput) StartDate() pulumi.StringOutput { + return o.ApplyT(func(v CampaignRestrictedPeriod) string { return v.StartDate }).(pulumi.StringOutput) +} + +type CampaignRestrictedPeriodArrayOutput struct{ *pulumi.OutputState } + +func (CampaignRestrictedPeriodArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]CampaignRestrictedPeriod)(nil)).Elem() +} + +func (o CampaignRestrictedPeriodArrayOutput) ToCampaignRestrictedPeriodArrayOutput() CampaignRestrictedPeriodArrayOutput { + return o +} + +func (o CampaignRestrictedPeriodArrayOutput) ToCampaignRestrictedPeriodArrayOutputWithContext(ctx context.Context) CampaignRestrictedPeriodArrayOutput { + return o +} + +func (o CampaignRestrictedPeriodArrayOutput) Index(i pulumi.IntInput) CampaignRestrictedPeriodOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) CampaignRestrictedPeriod { + return vs[0].([]CampaignRestrictedPeriod)[vs[1].(int)] + }).(CampaignRestrictedPeriodOutput) +} + +// Restricted period config +type CampaignRestrictedPeriods struct { + RestrictedPeriodList []CampaignRestrictedPeriod `pulumi:"restrictedPeriodList"` +} + +// CampaignRestrictedPeriodsInput is an input type that accepts CampaignRestrictedPeriodsArgs and CampaignRestrictedPeriodsOutput values. +// You can construct a concrete instance of `CampaignRestrictedPeriodsInput` via: +// +// CampaignRestrictedPeriodsArgs{...} +type CampaignRestrictedPeriodsInput interface { + pulumi.Input + + ToCampaignRestrictedPeriodsOutput() CampaignRestrictedPeriodsOutput + ToCampaignRestrictedPeriodsOutputWithContext(context.Context) CampaignRestrictedPeriodsOutput +} + +// Restricted period config +type CampaignRestrictedPeriodsArgs struct { + RestrictedPeriodList CampaignRestrictedPeriodArrayInput `pulumi:"restrictedPeriodList"` +} + +func (CampaignRestrictedPeriodsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignRestrictedPeriods)(nil)).Elem() +} + +func (i CampaignRestrictedPeriodsArgs) ToCampaignRestrictedPeriodsOutput() CampaignRestrictedPeriodsOutput { + return i.ToCampaignRestrictedPeriodsOutputWithContext(context.Background()) +} + +func (i CampaignRestrictedPeriodsArgs) ToCampaignRestrictedPeriodsOutputWithContext(ctx context.Context) CampaignRestrictedPeriodsOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignRestrictedPeriodsOutput) +} + +func (i CampaignRestrictedPeriodsArgs) ToCampaignRestrictedPeriodsPtrOutput() CampaignRestrictedPeriodsPtrOutput { + return i.ToCampaignRestrictedPeriodsPtrOutputWithContext(context.Background()) +} + +func (i CampaignRestrictedPeriodsArgs) ToCampaignRestrictedPeriodsPtrOutputWithContext(ctx context.Context) CampaignRestrictedPeriodsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignRestrictedPeriodsOutput).ToCampaignRestrictedPeriodsPtrOutputWithContext(ctx) +} + +// CampaignRestrictedPeriodsPtrInput is an input type that accepts CampaignRestrictedPeriodsArgs, CampaignRestrictedPeriodsPtr and CampaignRestrictedPeriodsPtrOutput values. +// You can construct a concrete instance of `CampaignRestrictedPeriodsPtrInput` via: +// +// CampaignRestrictedPeriodsArgs{...} +// +// or: +// +// nil +type CampaignRestrictedPeriodsPtrInput interface { + pulumi.Input + + ToCampaignRestrictedPeriodsPtrOutput() CampaignRestrictedPeriodsPtrOutput + ToCampaignRestrictedPeriodsPtrOutputWithContext(context.Context) CampaignRestrictedPeriodsPtrOutput +} + +type campaignRestrictedPeriodsPtrType CampaignRestrictedPeriodsArgs + +func CampaignRestrictedPeriodsPtr(v *CampaignRestrictedPeriodsArgs) CampaignRestrictedPeriodsPtrInput { + return (*campaignRestrictedPeriodsPtrType)(v) +} + +func (*campaignRestrictedPeriodsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignRestrictedPeriods)(nil)).Elem() +} + +func (i *campaignRestrictedPeriodsPtrType) ToCampaignRestrictedPeriodsPtrOutput() CampaignRestrictedPeriodsPtrOutput { + return i.ToCampaignRestrictedPeriodsPtrOutputWithContext(context.Background()) +} + +func (i *campaignRestrictedPeriodsPtrType) ToCampaignRestrictedPeriodsPtrOutputWithContext(ctx context.Context) CampaignRestrictedPeriodsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignRestrictedPeriodsPtrOutput) +} + +// Restricted period config +type CampaignRestrictedPeriodsOutput struct{ *pulumi.OutputState } + +func (CampaignRestrictedPeriodsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignRestrictedPeriods)(nil)).Elem() +} + +func (o CampaignRestrictedPeriodsOutput) ToCampaignRestrictedPeriodsOutput() CampaignRestrictedPeriodsOutput { + return o +} + +func (o CampaignRestrictedPeriodsOutput) ToCampaignRestrictedPeriodsOutputWithContext(ctx context.Context) CampaignRestrictedPeriodsOutput { + return o +} + +func (o CampaignRestrictedPeriodsOutput) ToCampaignRestrictedPeriodsPtrOutput() CampaignRestrictedPeriodsPtrOutput { + return o.ToCampaignRestrictedPeriodsPtrOutputWithContext(context.Background()) +} + +func (o CampaignRestrictedPeriodsOutput) ToCampaignRestrictedPeriodsPtrOutputWithContext(ctx context.Context) CampaignRestrictedPeriodsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignRestrictedPeriods) *CampaignRestrictedPeriods { + return &v + }).(CampaignRestrictedPeriodsPtrOutput) +} + +func (o CampaignRestrictedPeriodsOutput) RestrictedPeriodList() CampaignRestrictedPeriodArrayOutput { + return o.ApplyT(func(v CampaignRestrictedPeriods) []CampaignRestrictedPeriod { return v.RestrictedPeriodList }).(CampaignRestrictedPeriodArrayOutput) +} + +type CampaignRestrictedPeriodsPtrOutput struct{ *pulumi.OutputState } + +func (CampaignRestrictedPeriodsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignRestrictedPeriods)(nil)).Elem() +} + +func (o CampaignRestrictedPeriodsPtrOutput) ToCampaignRestrictedPeriodsPtrOutput() CampaignRestrictedPeriodsPtrOutput { + return o +} + +func (o CampaignRestrictedPeriodsPtrOutput) ToCampaignRestrictedPeriodsPtrOutputWithContext(ctx context.Context) CampaignRestrictedPeriodsPtrOutput { + return o +} + +func (o CampaignRestrictedPeriodsPtrOutput) Elem() CampaignRestrictedPeriodsOutput { + return o.ApplyT(func(v *CampaignRestrictedPeriods) CampaignRestrictedPeriods { + if v != nil { + return *v + } + var ret CampaignRestrictedPeriods + return ret + }).(CampaignRestrictedPeriodsOutput) +} + +func (o CampaignRestrictedPeriodsPtrOutput) RestrictedPeriodList() CampaignRestrictedPeriodArrayOutput { + return o.ApplyT(func(v *CampaignRestrictedPeriods) []CampaignRestrictedPeriod { + if v == nil { + return nil + } + return v.RestrictedPeriodList + }).(CampaignRestrictedPeriodArrayOutput) +} + +// Campaign schedule +type CampaignSchedule struct { + EndTime string `pulumi:"endTime"` + RefreshFrequency *string `pulumi:"refreshFrequency"` + StartTime string `pulumi:"startTime"` +} + +// CampaignScheduleInput is an input type that accepts CampaignScheduleArgs and CampaignScheduleOutput values. +// You can construct a concrete instance of `CampaignScheduleInput` via: +// +// CampaignScheduleArgs{...} +type CampaignScheduleInput interface { + pulumi.Input + + ToCampaignScheduleOutput() CampaignScheduleOutput + ToCampaignScheduleOutputWithContext(context.Context) CampaignScheduleOutput +} + +// Campaign schedule +type CampaignScheduleArgs struct { + EndTime pulumi.StringInput `pulumi:"endTime"` + RefreshFrequency pulumi.StringPtrInput `pulumi:"refreshFrequency"` + StartTime pulumi.StringInput `pulumi:"startTime"` +} + +func (CampaignScheduleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignSchedule)(nil)).Elem() +} + +func (i CampaignScheduleArgs) ToCampaignScheduleOutput() CampaignScheduleOutput { + return i.ToCampaignScheduleOutputWithContext(context.Background()) +} + +func (i CampaignScheduleArgs) ToCampaignScheduleOutputWithContext(ctx context.Context) CampaignScheduleOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignScheduleOutput) +} + +func (i CampaignScheduleArgs) ToCampaignSchedulePtrOutput() CampaignSchedulePtrOutput { + return i.ToCampaignSchedulePtrOutputWithContext(context.Background()) +} + +func (i CampaignScheduleArgs) ToCampaignSchedulePtrOutputWithContext(ctx context.Context) CampaignSchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignScheduleOutput).ToCampaignSchedulePtrOutputWithContext(ctx) +} + +// CampaignSchedulePtrInput is an input type that accepts CampaignScheduleArgs, CampaignSchedulePtr and CampaignSchedulePtrOutput values. +// You can construct a concrete instance of `CampaignSchedulePtrInput` via: +// +// CampaignScheduleArgs{...} +// +// or: +// +// nil +type CampaignSchedulePtrInput interface { + pulumi.Input + + ToCampaignSchedulePtrOutput() CampaignSchedulePtrOutput + ToCampaignSchedulePtrOutputWithContext(context.Context) CampaignSchedulePtrOutput +} + +type campaignSchedulePtrType CampaignScheduleArgs + +func CampaignSchedulePtr(v *CampaignScheduleArgs) CampaignSchedulePtrInput { + return (*campaignSchedulePtrType)(v) +} + +func (*campaignSchedulePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignSchedule)(nil)).Elem() +} + +func (i *campaignSchedulePtrType) ToCampaignSchedulePtrOutput() CampaignSchedulePtrOutput { + return i.ToCampaignSchedulePtrOutputWithContext(context.Background()) +} + +func (i *campaignSchedulePtrType) ToCampaignSchedulePtrOutputWithContext(ctx context.Context) CampaignSchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignSchedulePtrOutput) +} + +// Campaign schedule +type CampaignScheduleOutput struct{ *pulumi.OutputState } + +func (CampaignScheduleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignSchedule)(nil)).Elem() +} + +func (o CampaignScheduleOutput) ToCampaignScheduleOutput() CampaignScheduleOutput { + return o +} + +func (o CampaignScheduleOutput) ToCampaignScheduleOutputWithContext(ctx context.Context) CampaignScheduleOutput { + return o +} + +func (o CampaignScheduleOutput) ToCampaignSchedulePtrOutput() CampaignSchedulePtrOutput { + return o.ToCampaignSchedulePtrOutputWithContext(context.Background()) +} + +func (o CampaignScheduleOutput) ToCampaignSchedulePtrOutputWithContext(ctx context.Context) CampaignSchedulePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignSchedule) *CampaignSchedule { + return &v + }).(CampaignSchedulePtrOutput) +} + +func (o CampaignScheduleOutput) EndTime() pulumi.StringOutput { + return o.ApplyT(func(v CampaignSchedule) string { return v.EndTime }).(pulumi.StringOutput) +} + +func (o CampaignScheduleOutput) RefreshFrequency() pulumi.StringPtrOutput { + return o.ApplyT(func(v CampaignSchedule) *string { return v.RefreshFrequency }).(pulumi.StringPtrOutput) +} + +func (o CampaignScheduleOutput) StartTime() pulumi.StringOutput { + return o.ApplyT(func(v CampaignSchedule) string { return v.StartTime }).(pulumi.StringOutput) +} + +type CampaignSchedulePtrOutput struct{ *pulumi.OutputState } + +func (CampaignSchedulePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignSchedule)(nil)).Elem() +} + +func (o CampaignSchedulePtrOutput) ToCampaignSchedulePtrOutput() CampaignSchedulePtrOutput { + return o +} + +func (o CampaignSchedulePtrOutput) ToCampaignSchedulePtrOutputWithContext(ctx context.Context) CampaignSchedulePtrOutput { + return o +} + +func (o CampaignSchedulePtrOutput) Elem() CampaignScheduleOutput { + return o.ApplyT(func(v *CampaignSchedule) CampaignSchedule { + if v != nil { + return *v + } + var ret CampaignSchedule + return ret + }).(CampaignScheduleOutput) +} + +func (o CampaignSchedulePtrOutput) EndTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CampaignSchedule) *string { + if v == nil { + return nil + } + return &v.EndTime + }).(pulumi.StringPtrOutput) +} + +func (o CampaignSchedulePtrOutput) RefreshFrequency() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CampaignSchedule) *string { + if v == nil { + return nil + } + return v.RefreshFrequency + }).(pulumi.StringPtrOutput) +} + +func (o CampaignSchedulePtrOutput) StartTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CampaignSchedule) *string { + if v == nil { + return nil + } + return &v.StartTime + }).(pulumi.StringPtrOutput) +} + +// SMS Channel Subtype config +type CampaignSmsChannelSubtypeConfig struct { + Capacity *float64 `pulumi:"capacity"` + DefaultOutboundConfig CampaignSmsOutboundConfig `pulumi:"defaultOutboundConfig"` + OutboundMode CampaignSmsOutboundMode `pulumi:"outboundMode"` +} + +// CampaignSmsChannelSubtypeConfigInput is an input type that accepts CampaignSmsChannelSubtypeConfigArgs and CampaignSmsChannelSubtypeConfigOutput values. +// You can construct a concrete instance of `CampaignSmsChannelSubtypeConfigInput` via: +// +// CampaignSmsChannelSubtypeConfigArgs{...} +type CampaignSmsChannelSubtypeConfigInput interface { + pulumi.Input + + ToCampaignSmsChannelSubtypeConfigOutput() CampaignSmsChannelSubtypeConfigOutput + ToCampaignSmsChannelSubtypeConfigOutputWithContext(context.Context) CampaignSmsChannelSubtypeConfigOutput +} + +// SMS Channel Subtype config +type CampaignSmsChannelSubtypeConfigArgs struct { + Capacity pulumi.Float64PtrInput `pulumi:"capacity"` + DefaultOutboundConfig CampaignSmsOutboundConfigInput `pulumi:"defaultOutboundConfig"` + OutboundMode CampaignSmsOutboundModeInput `pulumi:"outboundMode"` +} + +func (CampaignSmsChannelSubtypeConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignSmsChannelSubtypeConfig)(nil)).Elem() +} + +func (i CampaignSmsChannelSubtypeConfigArgs) ToCampaignSmsChannelSubtypeConfigOutput() CampaignSmsChannelSubtypeConfigOutput { + return i.ToCampaignSmsChannelSubtypeConfigOutputWithContext(context.Background()) +} + +func (i CampaignSmsChannelSubtypeConfigArgs) ToCampaignSmsChannelSubtypeConfigOutputWithContext(ctx context.Context) CampaignSmsChannelSubtypeConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignSmsChannelSubtypeConfigOutput) +} + +func (i CampaignSmsChannelSubtypeConfigArgs) ToCampaignSmsChannelSubtypeConfigPtrOutput() CampaignSmsChannelSubtypeConfigPtrOutput { + return i.ToCampaignSmsChannelSubtypeConfigPtrOutputWithContext(context.Background()) +} + +func (i CampaignSmsChannelSubtypeConfigArgs) ToCampaignSmsChannelSubtypeConfigPtrOutputWithContext(ctx context.Context) CampaignSmsChannelSubtypeConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignSmsChannelSubtypeConfigOutput).ToCampaignSmsChannelSubtypeConfigPtrOutputWithContext(ctx) +} + +// CampaignSmsChannelSubtypeConfigPtrInput is an input type that accepts CampaignSmsChannelSubtypeConfigArgs, CampaignSmsChannelSubtypeConfigPtr and CampaignSmsChannelSubtypeConfigPtrOutput values. +// You can construct a concrete instance of `CampaignSmsChannelSubtypeConfigPtrInput` via: +// +// CampaignSmsChannelSubtypeConfigArgs{...} +// +// or: +// +// nil +type CampaignSmsChannelSubtypeConfigPtrInput interface { + pulumi.Input + + ToCampaignSmsChannelSubtypeConfigPtrOutput() CampaignSmsChannelSubtypeConfigPtrOutput + ToCampaignSmsChannelSubtypeConfigPtrOutputWithContext(context.Context) CampaignSmsChannelSubtypeConfigPtrOutput +} + +type campaignSmsChannelSubtypeConfigPtrType CampaignSmsChannelSubtypeConfigArgs + +func CampaignSmsChannelSubtypeConfigPtr(v *CampaignSmsChannelSubtypeConfigArgs) CampaignSmsChannelSubtypeConfigPtrInput { + return (*campaignSmsChannelSubtypeConfigPtrType)(v) +} + +func (*campaignSmsChannelSubtypeConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignSmsChannelSubtypeConfig)(nil)).Elem() +} + +func (i *campaignSmsChannelSubtypeConfigPtrType) ToCampaignSmsChannelSubtypeConfigPtrOutput() CampaignSmsChannelSubtypeConfigPtrOutput { + return i.ToCampaignSmsChannelSubtypeConfigPtrOutputWithContext(context.Background()) +} + +func (i *campaignSmsChannelSubtypeConfigPtrType) ToCampaignSmsChannelSubtypeConfigPtrOutputWithContext(ctx context.Context) CampaignSmsChannelSubtypeConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignSmsChannelSubtypeConfigPtrOutput) +} + +// SMS Channel Subtype config +type CampaignSmsChannelSubtypeConfigOutput struct{ *pulumi.OutputState } + +func (CampaignSmsChannelSubtypeConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignSmsChannelSubtypeConfig)(nil)).Elem() +} + +func (o CampaignSmsChannelSubtypeConfigOutput) ToCampaignSmsChannelSubtypeConfigOutput() CampaignSmsChannelSubtypeConfigOutput { + return o +} + +func (o CampaignSmsChannelSubtypeConfigOutput) ToCampaignSmsChannelSubtypeConfigOutputWithContext(ctx context.Context) CampaignSmsChannelSubtypeConfigOutput { + return o +} + +func (o CampaignSmsChannelSubtypeConfigOutput) ToCampaignSmsChannelSubtypeConfigPtrOutput() CampaignSmsChannelSubtypeConfigPtrOutput { + return o.ToCampaignSmsChannelSubtypeConfigPtrOutputWithContext(context.Background()) +} + +func (o CampaignSmsChannelSubtypeConfigOutput) ToCampaignSmsChannelSubtypeConfigPtrOutputWithContext(ctx context.Context) CampaignSmsChannelSubtypeConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignSmsChannelSubtypeConfig) *CampaignSmsChannelSubtypeConfig { + return &v + }).(CampaignSmsChannelSubtypeConfigPtrOutput) +} + +func (o CampaignSmsChannelSubtypeConfigOutput) Capacity() pulumi.Float64PtrOutput { + return o.ApplyT(func(v CampaignSmsChannelSubtypeConfig) *float64 { return v.Capacity }).(pulumi.Float64PtrOutput) +} + +func (o CampaignSmsChannelSubtypeConfigOutput) DefaultOutboundConfig() CampaignSmsOutboundConfigOutput { + return o.ApplyT(func(v CampaignSmsChannelSubtypeConfig) CampaignSmsOutboundConfig { return v.DefaultOutboundConfig }).(CampaignSmsOutboundConfigOutput) +} + +func (o CampaignSmsChannelSubtypeConfigOutput) OutboundMode() CampaignSmsOutboundModeOutput { + return o.ApplyT(func(v CampaignSmsChannelSubtypeConfig) CampaignSmsOutboundMode { return v.OutboundMode }).(CampaignSmsOutboundModeOutput) +} + +type CampaignSmsChannelSubtypeConfigPtrOutput struct{ *pulumi.OutputState } + +func (CampaignSmsChannelSubtypeConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignSmsChannelSubtypeConfig)(nil)).Elem() +} + +func (o CampaignSmsChannelSubtypeConfigPtrOutput) ToCampaignSmsChannelSubtypeConfigPtrOutput() CampaignSmsChannelSubtypeConfigPtrOutput { + return o +} + +func (o CampaignSmsChannelSubtypeConfigPtrOutput) ToCampaignSmsChannelSubtypeConfigPtrOutputWithContext(ctx context.Context) CampaignSmsChannelSubtypeConfigPtrOutput { + return o +} + +func (o CampaignSmsChannelSubtypeConfigPtrOutput) Elem() CampaignSmsChannelSubtypeConfigOutput { + return o.ApplyT(func(v *CampaignSmsChannelSubtypeConfig) CampaignSmsChannelSubtypeConfig { + if v != nil { + return *v + } + var ret CampaignSmsChannelSubtypeConfig + return ret + }).(CampaignSmsChannelSubtypeConfigOutput) +} + +func (o CampaignSmsChannelSubtypeConfigPtrOutput) Capacity() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *CampaignSmsChannelSubtypeConfig) *float64 { + if v == nil { + return nil + } + return v.Capacity + }).(pulumi.Float64PtrOutput) +} + +func (o CampaignSmsChannelSubtypeConfigPtrOutput) DefaultOutboundConfig() CampaignSmsOutboundConfigPtrOutput { + return o.ApplyT(func(v *CampaignSmsChannelSubtypeConfig) *CampaignSmsOutboundConfig { + if v == nil { + return nil + } + return &v.DefaultOutboundConfig + }).(CampaignSmsOutboundConfigPtrOutput) +} + +func (o CampaignSmsChannelSubtypeConfigPtrOutput) OutboundMode() CampaignSmsOutboundModePtrOutput { + return o.ApplyT(func(v *CampaignSmsChannelSubtypeConfig) *CampaignSmsOutboundMode { + if v == nil { + return nil + } + return &v.OutboundMode + }).(CampaignSmsOutboundModePtrOutput) +} + +// Default SMS outbound config +type CampaignSmsOutboundConfig struct { + ConnectSourcePhoneNumberArn string `pulumi:"connectSourcePhoneNumberArn"` + WisdomTemplateArn string `pulumi:"wisdomTemplateArn"` +} + +// CampaignSmsOutboundConfigInput is an input type that accepts CampaignSmsOutboundConfigArgs and CampaignSmsOutboundConfigOutput values. +// You can construct a concrete instance of `CampaignSmsOutboundConfigInput` via: +// +// CampaignSmsOutboundConfigArgs{...} +type CampaignSmsOutboundConfigInput interface { + pulumi.Input + + ToCampaignSmsOutboundConfigOutput() CampaignSmsOutboundConfigOutput + ToCampaignSmsOutboundConfigOutputWithContext(context.Context) CampaignSmsOutboundConfigOutput +} + +// Default SMS outbound config +type CampaignSmsOutboundConfigArgs struct { + ConnectSourcePhoneNumberArn pulumi.StringInput `pulumi:"connectSourcePhoneNumberArn"` + WisdomTemplateArn pulumi.StringInput `pulumi:"wisdomTemplateArn"` +} + +func (CampaignSmsOutboundConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignSmsOutboundConfig)(nil)).Elem() +} + +func (i CampaignSmsOutboundConfigArgs) ToCampaignSmsOutboundConfigOutput() CampaignSmsOutboundConfigOutput { + return i.ToCampaignSmsOutboundConfigOutputWithContext(context.Background()) +} + +func (i CampaignSmsOutboundConfigArgs) ToCampaignSmsOutboundConfigOutputWithContext(ctx context.Context) CampaignSmsOutboundConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignSmsOutboundConfigOutput) +} + +func (i CampaignSmsOutboundConfigArgs) ToCampaignSmsOutboundConfigPtrOutput() CampaignSmsOutboundConfigPtrOutput { + return i.ToCampaignSmsOutboundConfigPtrOutputWithContext(context.Background()) +} + +func (i CampaignSmsOutboundConfigArgs) ToCampaignSmsOutboundConfigPtrOutputWithContext(ctx context.Context) CampaignSmsOutboundConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignSmsOutboundConfigOutput).ToCampaignSmsOutboundConfigPtrOutputWithContext(ctx) +} + +// CampaignSmsOutboundConfigPtrInput is an input type that accepts CampaignSmsOutboundConfigArgs, CampaignSmsOutboundConfigPtr and CampaignSmsOutboundConfigPtrOutput values. +// You can construct a concrete instance of `CampaignSmsOutboundConfigPtrInput` via: +// +// CampaignSmsOutboundConfigArgs{...} +// +// or: +// +// nil +type CampaignSmsOutboundConfigPtrInput interface { + pulumi.Input + + ToCampaignSmsOutboundConfigPtrOutput() CampaignSmsOutboundConfigPtrOutput + ToCampaignSmsOutboundConfigPtrOutputWithContext(context.Context) CampaignSmsOutboundConfigPtrOutput +} + +type campaignSmsOutboundConfigPtrType CampaignSmsOutboundConfigArgs + +func CampaignSmsOutboundConfigPtr(v *CampaignSmsOutboundConfigArgs) CampaignSmsOutboundConfigPtrInput { + return (*campaignSmsOutboundConfigPtrType)(v) +} + +func (*campaignSmsOutboundConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignSmsOutboundConfig)(nil)).Elem() +} + +func (i *campaignSmsOutboundConfigPtrType) ToCampaignSmsOutboundConfigPtrOutput() CampaignSmsOutboundConfigPtrOutput { + return i.ToCampaignSmsOutboundConfigPtrOutputWithContext(context.Background()) +} + +func (i *campaignSmsOutboundConfigPtrType) ToCampaignSmsOutboundConfigPtrOutputWithContext(ctx context.Context) CampaignSmsOutboundConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignSmsOutboundConfigPtrOutput) +} + +// Default SMS outbound config +type CampaignSmsOutboundConfigOutput struct{ *pulumi.OutputState } + +func (CampaignSmsOutboundConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignSmsOutboundConfig)(nil)).Elem() +} + +func (o CampaignSmsOutboundConfigOutput) ToCampaignSmsOutboundConfigOutput() CampaignSmsOutboundConfigOutput { + return o +} + +func (o CampaignSmsOutboundConfigOutput) ToCampaignSmsOutboundConfigOutputWithContext(ctx context.Context) CampaignSmsOutboundConfigOutput { + return o +} + +func (o CampaignSmsOutboundConfigOutput) ToCampaignSmsOutboundConfigPtrOutput() CampaignSmsOutboundConfigPtrOutput { + return o.ToCampaignSmsOutboundConfigPtrOutputWithContext(context.Background()) +} + +func (o CampaignSmsOutboundConfigOutput) ToCampaignSmsOutboundConfigPtrOutputWithContext(ctx context.Context) CampaignSmsOutboundConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignSmsOutboundConfig) *CampaignSmsOutboundConfig { + return &v + }).(CampaignSmsOutboundConfigPtrOutput) +} + +func (o CampaignSmsOutboundConfigOutput) ConnectSourcePhoneNumberArn() pulumi.StringOutput { + return o.ApplyT(func(v CampaignSmsOutboundConfig) string { return v.ConnectSourcePhoneNumberArn }).(pulumi.StringOutput) +} + +func (o CampaignSmsOutboundConfigOutput) WisdomTemplateArn() pulumi.StringOutput { + return o.ApplyT(func(v CampaignSmsOutboundConfig) string { return v.WisdomTemplateArn }).(pulumi.StringOutput) +} + +type CampaignSmsOutboundConfigPtrOutput struct{ *pulumi.OutputState } + +func (CampaignSmsOutboundConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignSmsOutboundConfig)(nil)).Elem() +} + +func (o CampaignSmsOutboundConfigPtrOutput) ToCampaignSmsOutboundConfigPtrOutput() CampaignSmsOutboundConfigPtrOutput { + return o +} + +func (o CampaignSmsOutboundConfigPtrOutput) ToCampaignSmsOutboundConfigPtrOutputWithContext(ctx context.Context) CampaignSmsOutboundConfigPtrOutput { + return o +} + +func (o CampaignSmsOutboundConfigPtrOutput) Elem() CampaignSmsOutboundConfigOutput { + return o.ApplyT(func(v *CampaignSmsOutboundConfig) CampaignSmsOutboundConfig { + if v != nil { + return *v + } + var ret CampaignSmsOutboundConfig + return ret + }).(CampaignSmsOutboundConfigOutput) +} + +func (o CampaignSmsOutboundConfigPtrOutput) ConnectSourcePhoneNumberArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CampaignSmsOutboundConfig) *string { + if v == nil { + return nil + } + return &v.ConnectSourcePhoneNumberArn + }).(pulumi.StringPtrOutput) +} + +func (o CampaignSmsOutboundConfigPtrOutput) WisdomTemplateArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CampaignSmsOutboundConfig) *string { + if v == nil { + return nil + } + return &v.WisdomTemplateArn + }).(pulumi.StringPtrOutput) +} + +// SMS Outbound Mode +type CampaignSmsOutboundMode struct { + AgentlessConfig *CampaignAgentlessConfig `pulumi:"agentlessConfig"` +} + +// CampaignSmsOutboundModeInput is an input type that accepts CampaignSmsOutboundModeArgs and CampaignSmsOutboundModeOutput values. +// You can construct a concrete instance of `CampaignSmsOutboundModeInput` via: +// +// CampaignSmsOutboundModeArgs{...} +type CampaignSmsOutboundModeInput interface { + pulumi.Input + + ToCampaignSmsOutboundModeOutput() CampaignSmsOutboundModeOutput + ToCampaignSmsOutboundModeOutputWithContext(context.Context) CampaignSmsOutboundModeOutput +} + +// SMS Outbound Mode +type CampaignSmsOutboundModeArgs struct { + AgentlessConfig CampaignAgentlessConfigPtrInput `pulumi:"agentlessConfig"` +} + +func (CampaignSmsOutboundModeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignSmsOutboundMode)(nil)).Elem() +} + +func (i CampaignSmsOutboundModeArgs) ToCampaignSmsOutboundModeOutput() CampaignSmsOutboundModeOutput { + return i.ToCampaignSmsOutboundModeOutputWithContext(context.Background()) +} + +func (i CampaignSmsOutboundModeArgs) ToCampaignSmsOutboundModeOutputWithContext(ctx context.Context) CampaignSmsOutboundModeOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignSmsOutboundModeOutput) +} + +func (i CampaignSmsOutboundModeArgs) ToCampaignSmsOutboundModePtrOutput() CampaignSmsOutboundModePtrOutput { + return i.ToCampaignSmsOutboundModePtrOutputWithContext(context.Background()) +} + +func (i CampaignSmsOutboundModeArgs) ToCampaignSmsOutboundModePtrOutputWithContext(ctx context.Context) CampaignSmsOutboundModePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignSmsOutboundModeOutput).ToCampaignSmsOutboundModePtrOutputWithContext(ctx) +} + +// CampaignSmsOutboundModePtrInput is an input type that accepts CampaignSmsOutboundModeArgs, CampaignSmsOutboundModePtr and CampaignSmsOutboundModePtrOutput values. +// You can construct a concrete instance of `CampaignSmsOutboundModePtrInput` via: +// +// CampaignSmsOutboundModeArgs{...} +// +// or: +// +// nil +type CampaignSmsOutboundModePtrInput interface { + pulumi.Input + + ToCampaignSmsOutboundModePtrOutput() CampaignSmsOutboundModePtrOutput + ToCampaignSmsOutboundModePtrOutputWithContext(context.Context) CampaignSmsOutboundModePtrOutput +} + +type campaignSmsOutboundModePtrType CampaignSmsOutboundModeArgs + +func CampaignSmsOutboundModePtr(v *CampaignSmsOutboundModeArgs) CampaignSmsOutboundModePtrInput { + return (*campaignSmsOutboundModePtrType)(v) +} + +func (*campaignSmsOutboundModePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignSmsOutboundMode)(nil)).Elem() +} + +func (i *campaignSmsOutboundModePtrType) ToCampaignSmsOutboundModePtrOutput() CampaignSmsOutboundModePtrOutput { + return i.ToCampaignSmsOutboundModePtrOutputWithContext(context.Background()) +} + +func (i *campaignSmsOutboundModePtrType) ToCampaignSmsOutboundModePtrOutputWithContext(ctx context.Context) CampaignSmsOutboundModePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignSmsOutboundModePtrOutput) +} + +// SMS Outbound Mode +type CampaignSmsOutboundModeOutput struct{ *pulumi.OutputState } + +func (CampaignSmsOutboundModeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignSmsOutboundMode)(nil)).Elem() +} + +func (o CampaignSmsOutboundModeOutput) ToCampaignSmsOutboundModeOutput() CampaignSmsOutboundModeOutput { + return o +} + +func (o CampaignSmsOutboundModeOutput) ToCampaignSmsOutboundModeOutputWithContext(ctx context.Context) CampaignSmsOutboundModeOutput { + return o +} + +func (o CampaignSmsOutboundModeOutput) ToCampaignSmsOutboundModePtrOutput() CampaignSmsOutboundModePtrOutput { + return o.ToCampaignSmsOutboundModePtrOutputWithContext(context.Background()) +} + +func (o CampaignSmsOutboundModeOutput) ToCampaignSmsOutboundModePtrOutputWithContext(ctx context.Context) CampaignSmsOutboundModePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignSmsOutboundMode) *CampaignSmsOutboundMode { + return &v + }).(CampaignSmsOutboundModePtrOutput) +} + +func (o CampaignSmsOutboundModeOutput) AgentlessConfig() CampaignAgentlessConfigPtrOutput { + return o.ApplyT(func(v CampaignSmsOutboundMode) *CampaignAgentlessConfig { return v.AgentlessConfig }).(CampaignAgentlessConfigPtrOutput) +} + +type CampaignSmsOutboundModePtrOutput struct{ *pulumi.OutputState } + +func (CampaignSmsOutboundModePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignSmsOutboundMode)(nil)).Elem() +} + +func (o CampaignSmsOutboundModePtrOutput) ToCampaignSmsOutboundModePtrOutput() CampaignSmsOutboundModePtrOutput { + return o +} + +func (o CampaignSmsOutboundModePtrOutput) ToCampaignSmsOutboundModePtrOutputWithContext(ctx context.Context) CampaignSmsOutboundModePtrOutput { + return o +} + +func (o CampaignSmsOutboundModePtrOutput) Elem() CampaignSmsOutboundModeOutput { + return o.ApplyT(func(v *CampaignSmsOutboundMode) CampaignSmsOutboundMode { + if v != nil { + return *v + } + var ret CampaignSmsOutboundMode + return ret + }).(CampaignSmsOutboundModeOutput) +} + +func (o CampaignSmsOutboundModePtrOutput) AgentlessConfig() CampaignAgentlessConfigPtrOutput { + return o.ApplyT(func(v *CampaignSmsOutboundMode) *CampaignAgentlessConfig { + if v == nil { + return nil + } + return v.AgentlessConfig + }).(CampaignAgentlessConfigPtrOutput) +} + +// The possible types of channel config parameters +type CampaignSource struct { + CustomerProfilesSegmentArn *string `pulumi:"customerProfilesSegmentArn"` +} + +// CampaignSourceInput is an input type that accepts CampaignSourceArgs and CampaignSourceOutput values. +// You can construct a concrete instance of `CampaignSourceInput` via: +// +// CampaignSourceArgs{...} +type CampaignSourceInput interface { + pulumi.Input + + ToCampaignSourceOutput() CampaignSourceOutput + ToCampaignSourceOutputWithContext(context.Context) CampaignSourceOutput +} + +// The possible types of channel config parameters +type CampaignSourceArgs struct { + CustomerProfilesSegmentArn pulumi.StringPtrInput `pulumi:"customerProfilesSegmentArn"` +} + +func (CampaignSourceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignSource)(nil)).Elem() +} + +func (i CampaignSourceArgs) ToCampaignSourceOutput() CampaignSourceOutput { + return i.ToCampaignSourceOutputWithContext(context.Background()) +} + +func (i CampaignSourceArgs) ToCampaignSourceOutputWithContext(ctx context.Context) CampaignSourceOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignSourceOutput) +} + +func (i CampaignSourceArgs) ToCampaignSourcePtrOutput() CampaignSourcePtrOutput { + return i.ToCampaignSourcePtrOutputWithContext(context.Background()) +} + +func (i CampaignSourceArgs) ToCampaignSourcePtrOutputWithContext(ctx context.Context) CampaignSourcePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignSourceOutput).ToCampaignSourcePtrOutputWithContext(ctx) +} + +// CampaignSourcePtrInput is an input type that accepts CampaignSourceArgs, CampaignSourcePtr and CampaignSourcePtrOutput values. +// You can construct a concrete instance of `CampaignSourcePtrInput` via: +// +// CampaignSourceArgs{...} +// +// or: +// +// nil +type CampaignSourcePtrInput interface { + pulumi.Input + + ToCampaignSourcePtrOutput() CampaignSourcePtrOutput + ToCampaignSourcePtrOutputWithContext(context.Context) CampaignSourcePtrOutput +} + +type campaignSourcePtrType CampaignSourceArgs + +func CampaignSourcePtr(v *CampaignSourceArgs) CampaignSourcePtrInput { + return (*campaignSourcePtrType)(v) +} + +func (*campaignSourcePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignSource)(nil)).Elem() +} + +func (i *campaignSourcePtrType) ToCampaignSourcePtrOutput() CampaignSourcePtrOutput { + return i.ToCampaignSourcePtrOutputWithContext(context.Background()) +} + +func (i *campaignSourcePtrType) ToCampaignSourcePtrOutputWithContext(ctx context.Context) CampaignSourcePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignSourcePtrOutput) +} + +// The possible types of channel config parameters +type CampaignSourceOutput struct{ *pulumi.OutputState } + +func (CampaignSourceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignSource)(nil)).Elem() +} + +func (o CampaignSourceOutput) ToCampaignSourceOutput() CampaignSourceOutput { + return o +} + +func (o CampaignSourceOutput) ToCampaignSourceOutputWithContext(ctx context.Context) CampaignSourceOutput { + return o +} + +func (o CampaignSourceOutput) ToCampaignSourcePtrOutput() CampaignSourcePtrOutput { + return o.ToCampaignSourcePtrOutputWithContext(context.Background()) +} + +func (o CampaignSourceOutput) ToCampaignSourcePtrOutputWithContext(ctx context.Context) CampaignSourcePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignSource) *CampaignSource { + return &v + }).(CampaignSourcePtrOutput) +} + +func (o CampaignSourceOutput) CustomerProfilesSegmentArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v CampaignSource) *string { return v.CustomerProfilesSegmentArn }).(pulumi.StringPtrOutput) +} + +type CampaignSourcePtrOutput struct{ *pulumi.OutputState } + +func (CampaignSourcePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignSource)(nil)).Elem() +} + +func (o CampaignSourcePtrOutput) ToCampaignSourcePtrOutput() CampaignSourcePtrOutput { + return o +} + +func (o CampaignSourcePtrOutput) ToCampaignSourcePtrOutputWithContext(ctx context.Context) CampaignSourcePtrOutput { + return o +} + +func (o CampaignSourcePtrOutput) Elem() CampaignSourceOutput { + return o.ApplyT(func(v *CampaignSource) CampaignSource { + if v != nil { + return *v + } + var ret CampaignSource + return ret + }).(CampaignSourceOutput) +} + +func (o CampaignSourcePtrOutput) CustomerProfilesSegmentArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CampaignSource) *string { + if v == nil { + return nil + } + return v.CustomerProfilesSegmentArn + }).(pulumi.StringPtrOutput) +} + +type CampaignTag struct { + // The key name of the tag. + Key string `pulumi:"key"` + // The value for the tag. + Value string `pulumi:"value"` +} + +// Telephony Channel Subtype config +type CampaignTelephonyChannelSubtypeConfig struct { + Capacity *float64 `pulumi:"capacity"` + ConnectQueueId *string `pulumi:"connectQueueId"` + DefaultOutboundConfig CampaignTelephonyOutboundConfig `pulumi:"defaultOutboundConfig"` + OutboundMode CampaignTelephonyOutboundMode `pulumi:"outboundMode"` +} + +// CampaignTelephonyChannelSubtypeConfigInput is an input type that accepts CampaignTelephonyChannelSubtypeConfigArgs and CampaignTelephonyChannelSubtypeConfigOutput values. +// You can construct a concrete instance of `CampaignTelephonyChannelSubtypeConfigInput` via: +// +// CampaignTelephonyChannelSubtypeConfigArgs{...} +type CampaignTelephonyChannelSubtypeConfigInput interface { + pulumi.Input + + ToCampaignTelephonyChannelSubtypeConfigOutput() CampaignTelephonyChannelSubtypeConfigOutput + ToCampaignTelephonyChannelSubtypeConfigOutputWithContext(context.Context) CampaignTelephonyChannelSubtypeConfigOutput +} + +// Telephony Channel Subtype config +type CampaignTelephonyChannelSubtypeConfigArgs struct { + Capacity pulumi.Float64PtrInput `pulumi:"capacity"` + ConnectQueueId pulumi.StringPtrInput `pulumi:"connectQueueId"` + DefaultOutboundConfig CampaignTelephonyOutboundConfigInput `pulumi:"defaultOutboundConfig"` + OutboundMode CampaignTelephonyOutboundModeInput `pulumi:"outboundMode"` +} + +func (CampaignTelephonyChannelSubtypeConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignTelephonyChannelSubtypeConfig)(nil)).Elem() +} + +func (i CampaignTelephonyChannelSubtypeConfigArgs) ToCampaignTelephonyChannelSubtypeConfigOutput() CampaignTelephonyChannelSubtypeConfigOutput { + return i.ToCampaignTelephonyChannelSubtypeConfigOutputWithContext(context.Background()) +} + +func (i CampaignTelephonyChannelSubtypeConfigArgs) ToCampaignTelephonyChannelSubtypeConfigOutputWithContext(ctx context.Context) CampaignTelephonyChannelSubtypeConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignTelephonyChannelSubtypeConfigOutput) +} + +func (i CampaignTelephonyChannelSubtypeConfigArgs) ToCampaignTelephonyChannelSubtypeConfigPtrOutput() CampaignTelephonyChannelSubtypeConfigPtrOutput { + return i.ToCampaignTelephonyChannelSubtypeConfigPtrOutputWithContext(context.Background()) +} + +func (i CampaignTelephonyChannelSubtypeConfigArgs) ToCampaignTelephonyChannelSubtypeConfigPtrOutputWithContext(ctx context.Context) CampaignTelephonyChannelSubtypeConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignTelephonyChannelSubtypeConfigOutput).ToCampaignTelephonyChannelSubtypeConfigPtrOutputWithContext(ctx) +} + +// CampaignTelephonyChannelSubtypeConfigPtrInput is an input type that accepts CampaignTelephonyChannelSubtypeConfigArgs, CampaignTelephonyChannelSubtypeConfigPtr and CampaignTelephonyChannelSubtypeConfigPtrOutput values. +// You can construct a concrete instance of `CampaignTelephonyChannelSubtypeConfigPtrInput` via: +// +// CampaignTelephonyChannelSubtypeConfigArgs{...} +// +// or: +// +// nil +type CampaignTelephonyChannelSubtypeConfigPtrInput interface { + pulumi.Input + + ToCampaignTelephonyChannelSubtypeConfigPtrOutput() CampaignTelephonyChannelSubtypeConfigPtrOutput + ToCampaignTelephonyChannelSubtypeConfigPtrOutputWithContext(context.Context) CampaignTelephonyChannelSubtypeConfigPtrOutput +} + +type campaignTelephonyChannelSubtypeConfigPtrType CampaignTelephonyChannelSubtypeConfigArgs + +func CampaignTelephonyChannelSubtypeConfigPtr(v *CampaignTelephonyChannelSubtypeConfigArgs) CampaignTelephonyChannelSubtypeConfigPtrInput { + return (*campaignTelephonyChannelSubtypeConfigPtrType)(v) +} + +func (*campaignTelephonyChannelSubtypeConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignTelephonyChannelSubtypeConfig)(nil)).Elem() +} + +func (i *campaignTelephonyChannelSubtypeConfigPtrType) ToCampaignTelephonyChannelSubtypeConfigPtrOutput() CampaignTelephonyChannelSubtypeConfigPtrOutput { + return i.ToCampaignTelephonyChannelSubtypeConfigPtrOutputWithContext(context.Background()) +} + +func (i *campaignTelephonyChannelSubtypeConfigPtrType) ToCampaignTelephonyChannelSubtypeConfigPtrOutputWithContext(ctx context.Context) CampaignTelephonyChannelSubtypeConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignTelephonyChannelSubtypeConfigPtrOutput) +} + +// Telephony Channel Subtype config +type CampaignTelephonyChannelSubtypeConfigOutput struct{ *pulumi.OutputState } + +func (CampaignTelephonyChannelSubtypeConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignTelephonyChannelSubtypeConfig)(nil)).Elem() +} + +func (o CampaignTelephonyChannelSubtypeConfigOutput) ToCampaignTelephonyChannelSubtypeConfigOutput() CampaignTelephonyChannelSubtypeConfigOutput { + return o +} + +func (o CampaignTelephonyChannelSubtypeConfigOutput) ToCampaignTelephonyChannelSubtypeConfigOutputWithContext(ctx context.Context) CampaignTelephonyChannelSubtypeConfigOutput { + return o +} + +func (o CampaignTelephonyChannelSubtypeConfigOutput) ToCampaignTelephonyChannelSubtypeConfigPtrOutput() CampaignTelephonyChannelSubtypeConfigPtrOutput { + return o.ToCampaignTelephonyChannelSubtypeConfigPtrOutputWithContext(context.Background()) +} + +func (o CampaignTelephonyChannelSubtypeConfigOutput) ToCampaignTelephonyChannelSubtypeConfigPtrOutputWithContext(ctx context.Context) CampaignTelephonyChannelSubtypeConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignTelephonyChannelSubtypeConfig) *CampaignTelephonyChannelSubtypeConfig { + return &v + }).(CampaignTelephonyChannelSubtypeConfigPtrOutput) +} + +func (o CampaignTelephonyChannelSubtypeConfigOutput) Capacity() pulumi.Float64PtrOutput { + return o.ApplyT(func(v CampaignTelephonyChannelSubtypeConfig) *float64 { return v.Capacity }).(pulumi.Float64PtrOutput) +} + +func (o CampaignTelephonyChannelSubtypeConfigOutput) ConnectQueueId() pulumi.StringPtrOutput { + return o.ApplyT(func(v CampaignTelephonyChannelSubtypeConfig) *string { return v.ConnectQueueId }).(pulumi.StringPtrOutput) +} + +func (o CampaignTelephonyChannelSubtypeConfigOutput) DefaultOutboundConfig() CampaignTelephonyOutboundConfigOutput { + return o.ApplyT(func(v CampaignTelephonyChannelSubtypeConfig) CampaignTelephonyOutboundConfig { + return v.DefaultOutboundConfig + }).(CampaignTelephonyOutboundConfigOutput) +} + +func (o CampaignTelephonyChannelSubtypeConfigOutput) OutboundMode() CampaignTelephonyOutboundModeOutput { + return o.ApplyT(func(v CampaignTelephonyChannelSubtypeConfig) CampaignTelephonyOutboundMode { return v.OutboundMode }).(CampaignTelephonyOutboundModeOutput) +} + +type CampaignTelephonyChannelSubtypeConfigPtrOutput struct{ *pulumi.OutputState } + +func (CampaignTelephonyChannelSubtypeConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignTelephonyChannelSubtypeConfig)(nil)).Elem() +} + +func (o CampaignTelephonyChannelSubtypeConfigPtrOutput) ToCampaignTelephonyChannelSubtypeConfigPtrOutput() CampaignTelephonyChannelSubtypeConfigPtrOutput { + return o +} + +func (o CampaignTelephonyChannelSubtypeConfigPtrOutput) ToCampaignTelephonyChannelSubtypeConfigPtrOutputWithContext(ctx context.Context) CampaignTelephonyChannelSubtypeConfigPtrOutput { + return o +} + +func (o CampaignTelephonyChannelSubtypeConfigPtrOutput) Elem() CampaignTelephonyChannelSubtypeConfigOutput { + return o.ApplyT(func(v *CampaignTelephonyChannelSubtypeConfig) CampaignTelephonyChannelSubtypeConfig { + if v != nil { + return *v + } + var ret CampaignTelephonyChannelSubtypeConfig + return ret + }).(CampaignTelephonyChannelSubtypeConfigOutput) +} + +func (o CampaignTelephonyChannelSubtypeConfigPtrOutput) Capacity() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *CampaignTelephonyChannelSubtypeConfig) *float64 { + if v == nil { + return nil + } + return v.Capacity + }).(pulumi.Float64PtrOutput) +} + +func (o CampaignTelephonyChannelSubtypeConfigPtrOutput) ConnectQueueId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CampaignTelephonyChannelSubtypeConfig) *string { + if v == nil { + return nil + } + return v.ConnectQueueId + }).(pulumi.StringPtrOutput) +} + +func (o CampaignTelephonyChannelSubtypeConfigPtrOutput) DefaultOutboundConfig() CampaignTelephonyOutboundConfigPtrOutput { + return o.ApplyT(func(v *CampaignTelephonyChannelSubtypeConfig) *CampaignTelephonyOutboundConfig { + if v == nil { + return nil + } + return &v.DefaultOutboundConfig + }).(CampaignTelephonyOutboundConfigPtrOutput) +} + +func (o CampaignTelephonyChannelSubtypeConfigPtrOutput) OutboundMode() CampaignTelephonyOutboundModePtrOutput { + return o.ApplyT(func(v *CampaignTelephonyChannelSubtypeConfig) *CampaignTelephonyOutboundMode { + if v == nil { + return nil + } + return &v.OutboundMode + }).(CampaignTelephonyOutboundModePtrOutput) +} + +// Default Telephone Outbound config +type CampaignTelephonyOutboundConfig struct { + AnswerMachineDetectionConfig *CampaignAnswerMachineDetectionConfig `pulumi:"answerMachineDetectionConfig"` + ConnectContactFlowId string `pulumi:"connectContactFlowId"` + ConnectSourcePhoneNumber *string `pulumi:"connectSourcePhoneNumber"` +} + +// CampaignTelephonyOutboundConfigInput is an input type that accepts CampaignTelephonyOutboundConfigArgs and CampaignTelephonyOutboundConfigOutput values. +// You can construct a concrete instance of `CampaignTelephonyOutboundConfigInput` via: +// +// CampaignTelephonyOutboundConfigArgs{...} +type CampaignTelephonyOutboundConfigInput interface { + pulumi.Input + + ToCampaignTelephonyOutboundConfigOutput() CampaignTelephonyOutboundConfigOutput + ToCampaignTelephonyOutboundConfigOutputWithContext(context.Context) CampaignTelephonyOutboundConfigOutput +} + +// Default Telephone Outbound config +type CampaignTelephonyOutboundConfigArgs struct { + AnswerMachineDetectionConfig CampaignAnswerMachineDetectionConfigPtrInput `pulumi:"answerMachineDetectionConfig"` + ConnectContactFlowId pulumi.StringInput `pulumi:"connectContactFlowId"` + ConnectSourcePhoneNumber pulumi.StringPtrInput `pulumi:"connectSourcePhoneNumber"` +} + +func (CampaignTelephonyOutboundConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignTelephonyOutboundConfig)(nil)).Elem() +} + +func (i CampaignTelephonyOutboundConfigArgs) ToCampaignTelephonyOutboundConfigOutput() CampaignTelephonyOutboundConfigOutput { + return i.ToCampaignTelephonyOutboundConfigOutputWithContext(context.Background()) +} + +func (i CampaignTelephonyOutboundConfigArgs) ToCampaignTelephonyOutboundConfigOutputWithContext(ctx context.Context) CampaignTelephonyOutboundConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignTelephonyOutboundConfigOutput) +} + +func (i CampaignTelephonyOutboundConfigArgs) ToCampaignTelephonyOutboundConfigPtrOutput() CampaignTelephonyOutboundConfigPtrOutput { + return i.ToCampaignTelephonyOutboundConfigPtrOutputWithContext(context.Background()) +} + +func (i CampaignTelephonyOutboundConfigArgs) ToCampaignTelephonyOutboundConfigPtrOutputWithContext(ctx context.Context) CampaignTelephonyOutboundConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignTelephonyOutboundConfigOutput).ToCampaignTelephonyOutboundConfigPtrOutputWithContext(ctx) +} + +// CampaignTelephonyOutboundConfigPtrInput is an input type that accepts CampaignTelephonyOutboundConfigArgs, CampaignTelephonyOutboundConfigPtr and CampaignTelephonyOutboundConfigPtrOutput values. +// You can construct a concrete instance of `CampaignTelephonyOutboundConfigPtrInput` via: +// +// CampaignTelephonyOutboundConfigArgs{...} +// +// or: +// +// nil +type CampaignTelephonyOutboundConfigPtrInput interface { + pulumi.Input + + ToCampaignTelephonyOutboundConfigPtrOutput() CampaignTelephonyOutboundConfigPtrOutput + ToCampaignTelephonyOutboundConfigPtrOutputWithContext(context.Context) CampaignTelephonyOutboundConfigPtrOutput +} + +type campaignTelephonyOutboundConfigPtrType CampaignTelephonyOutboundConfigArgs + +func CampaignTelephonyOutboundConfigPtr(v *CampaignTelephonyOutboundConfigArgs) CampaignTelephonyOutboundConfigPtrInput { + return (*campaignTelephonyOutboundConfigPtrType)(v) +} + +func (*campaignTelephonyOutboundConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignTelephonyOutboundConfig)(nil)).Elem() +} + +func (i *campaignTelephonyOutboundConfigPtrType) ToCampaignTelephonyOutboundConfigPtrOutput() CampaignTelephonyOutboundConfigPtrOutput { + return i.ToCampaignTelephonyOutboundConfigPtrOutputWithContext(context.Background()) +} + +func (i *campaignTelephonyOutboundConfigPtrType) ToCampaignTelephonyOutboundConfigPtrOutputWithContext(ctx context.Context) CampaignTelephonyOutboundConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignTelephonyOutboundConfigPtrOutput) +} + +// Default Telephone Outbound config +type CampaignTelephonyOutboundConfigOutput struct{ *pulumi.OutputState } + +func (CampaignTelephonyOutboundConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignTelephonyOutboundConfig)(nil)).Elem() +} + +func (o CampaignTelephonyOutboundConfigOutput) ToCampaignTelephonyOutboundConfigOutput() CampaignTelephonyOutboundConfigOutput { + return o +} + +func (o CampaignTelephonyOutboundConfigOutput) ToCampaignTelephonyOutboundConfigOutputWithContext(ctx context.Context) CampaignTelephonyOutboundConfigOutput { + return o +} + +func (o CampaignTelephonyOutboundConfigOutput) ToCampaignTelephonyOutboundConfigPtrOutput() CampaignTelephonyOutboundConfigPtrOutput { + return o.ToCampaignTelephonyOutboundConfigPtrOutputWithContext(context.Background()) +} + +func (o CampaignTelephonyOutboundConfigOutput) ToCampaignTelephonyOutboundConfigPtrOutputWithContext(ctx context.Context) CampaignTelephonyOutboundConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignTelephonyOutboundConfig) *CampaignTelephonyOutboundConfig { + return &v + }).(CampaignTelephonyOutboundConfigPtrOutput) +} + +func (o CampaignTelephonyOutboundConfigOutput) AnswerMachineDetectionConfig() CampaignAnswerMachineDetectionConfigPtrOutput { + return o.ApplyT(func(v CampaignTelephonyOutboundConfig) *CampaignAnswerMachineDetectionConfig { + return v.AnswerMachineDetectionConfig + }).(CampaignAnswerMachineDetectionConfigPtrOutput) +} + +func (o CampaignTelephonyOutboundConfigOutput) ConnectContactFlowId() pulumi.StringOutput { + return o.ApplyT(func(v CampaignTelephonyOutboundConfig) string { return v.ConnectContactFlowId }).(pulumi.StringOutput) +} + +func (o CampaignTelephonyOutboundConfigOutput) ConnectSourcePhoneNumber() pulumi.StringPtrOutput { + return o.ApplyT(func(v CampaignTelephonyOutboundConfig) *string { return v.ConnectSourcePhoneNumber }).(pulumi.StringPtrOutput) +} + +type CampaignTelephonyOutboundConfigPtrOutput struct{ *pulumi.OutputState } + +func (CampaignTelephonyOutboundConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignTelephonyOutboundConfig)(nil)).Elem() +} + +func (o CampaignTelephonyOutboundConfigPtrOutput) ToCampaignTelephonyOutboundConfigPtrOutput() CampaignTelephonyOutboundConfigPtrOutput { + return o +} + +func (o CampaignTelephonyOutboundConfigPtrOutput) ToCampaignTelephonyOutboundConfigPtrOutputWithContext(ctx context.Context) CampaignTelephonyOutboundConfigPtrOutput { + return o +} + +func (o CampaignTelephonyOutboundConfigPtrOutput) Elem() CampaignTelephonyOutboundConfigOutput { + return o.ApplyT(func(v *CampaignTelephonyOutboundConfig) CampaignTelephonyOutboundConfig { + if v != nil { + return *v + } + var ret CampaignTelephonyOutboundConfig + return ret + }).(CampaignTelephonyOutboundConfigOutput) +} + +func (o CampaignTelephonyOutboundConfigPtrOutput) AnswerMachineDetectionConfig() CampaignAnswerMachineDetectionConfigPtrOutput { + return o.ApplyT(func(v *CampaignTelephonyOutboundConfig) *CampaignAnswerMachineDetectionConfig { + if v == nil { + return nil + } + return v.AnswerMachineDetectionConfig + }).(CampaignAnswerMachineDetectionConfigPtrOutput) +} + +func (o CampaignTelephonyOutboundConfigPtrOutput) ConnectContactFlowId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CampaignTelephonyOutboundConfig) *string { + if v == nil { + return nil + } + return &v.ConnectContactFlowId + }).(pulumi.StringPtrOutput) +} + +func (o CampaignTelephonyOutboundConfigPtrOutput) ConnectSourcePhoneNumber() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CampaignTelephonyOutboundConfig) *string { + if v == nil { + return nil + } + return v.ConnectSourcePhoneNumber + }).(pulumi.StringPtrOutput) +} + +// Telephony Outbound Mode +type CampaignTelephonyOutboundMode struct { + AgentlessConfig *CampaignAgentlessConfig `pulumi:"agentlessConfig"` + PredictiveConfig *CampaignPredictiveConfig `pulumi:"predictiveConfig"` + ProgressiveConfig *CampaignProgressiveConfig `pulumi:"progressiveConfig"` +} + +// CampaignTelephonyOutboundModeInput is an input type that accepts CampaignTelephonyOutboundModeArgs and CampaignTelephonyOutboundModeOutput values. +// You can construct a concrete instance of `CampaignTelephonyOutboundModeInput` via: +// +// CampaignTelephonyOutboundModeArgs{...} +type CampaignTelephonyOutboundModeInput interface { + pulumi.Input + + ToCampaignTelephonyOutboundModeOutput() CampaignTelephonyOutboundModeOutput + ToCampaignTelephonyOutboundModeOutputWithContext(context.Context) CampaignTelephonyOutboundModeOutput +} + +// Telephony Outbound Mode +type CampaignTelephonyOutboundModeArgs struct { + AgentlessConfig CampaignAgentlessConfigPtrInput `pulumi:"agentlessConfig"` + PredictiveConfig CampaignPredictiveConfigPtrInput `pulumi:"predictiveConfig"` + ProgressiveConfig CampaignProgressiveConfigPtrInput `pulumi:"progressiveConfig"` +} + +func (CampaignTelephonyOutboundModeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignTelephonyOutboundMode)(nil)).Elem() +} + +func (i CampaignTelephonyOutboundModeArgs) ToCampaignTelephonyOutboundModeOutput() CampaignTelephonyOutboundModeOutput { + return i.ToCampaignTelephonyOutboundModeOutputWithContext(context.Background()) +} + +func (i CampaignTelephonyOutboundModeArgs) ToCampaignTelephonyOutboundModeOutputWithContext(ctx context.Context) CampaignTelephonyOutboundModeOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignTelephonyOutboundModeOutput) +} + +func (i CampaignTelephonyOutboundModeArgs) ToCampaignTelephonyOutboundModePtrOutput() CampaignTelephonyOutboundModePtrOutput { + return i.ToCampaignTelephonyOutboundModePtrOutputWithContext(context.Background()) +} + +func (i CampaignTelephonyOutboundModeArgs) ToCampaignTelephonyOutboundModePtrOutputWithContext(ctx context.Context) CampaignTelephonyOutboundModePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignTelephonyOutboundModeOutput).ToCampaignTelephonyOutboundModePtrOutputWithContext(ctx) +} + +// CampaignTelephonyOutboundModePtrInput is an input type that accepts CampaignTelephonyOutboundModeArgs, CampaignTelephonyOutboundModePtr and CampaignTelephonyOutboundModePtrOutput values. +// You can construct a concrete instance of `CampaignTelephonyOutboundModePtrInput` via: +// +// CampaignTelephonyOutboundModeArgs{...} +// +// or: +// +// nil +type CampaignTelephonyOutboundModePtrInput interface { + pulumi.Input + + ToCampaignTelephonyOutboundModePtrOutput() CampaignTelephonyOutboundModePtrOutput + ToCampaignTelephonyOutboundModePtrOutputWithContext(context.Context) CampaignTelephonyOutboundModePtrOutput +} + +type campaignTelephonyOutboundModePtrType CampaignTelephonyOutboundModeArgs + +func CampaignTelephonyOutboundModePtr(v *CampaignTelephonyOutboundModeArgs) CampaignTelephonyOutboundModePtrInput { + return (*campaignTelephonyOutboundModePtrType)(v) +} + +func (*campaignTelephonyOutboundModePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignTelephonyOutboundMode)(nil)).Elem() +} + +func (i *campaignTelephonyOutboundModePtrType) ToCampaignTelephonyOutboundModePtrOutput() CampaignTelephonyOutboundModePtrOutput { + return i.ToCampaignTelephonyOutboundModePtrOutputWithContext(context.Background()) +} + +func (i *campaignTelephonyOutboundModePtrType) ToCampaignTelephonyOutboundModePtrOutputWithContext(ctx context.Context) CampaignTelephonyOutboundModePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignTelephonyOutboundModePtrOutput) +} + +// Telephony Outbound Mode +type CampaignTelephonyOutboundModeOutput struct{ *pulumi.OutputState } + +func (CampaignTelephonyOutboundModeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignTelephonyOutboundMode)(nil)).Elem() +} + +func (o CampaignTelephonyOutboundModeOutput) ToCampaignTelephonyOutboundModeOutput() CampaignTelephonyOutboundModeOutput { + return o +} + +func (o CampaignTelephonyOutboundModeOutput) ToCampaignTelephonyOutboundModeOutputWithContext(ctx context.Context) CampaignTelephonyOutboundModeOutput { + return o +} + +func (o CampaignTelephonyOutboundModeOutput) ToCampaignTelephonyOutboundModePtrOutput() CampaignTelephonyOutboundModePtrOutput { + return o.ToCampaignTelephonyOutboundModePtrOutputWithContext(context.Background()) +} + +func (o CampaignTelephonyOutboundModeOutput) ToCampaignTelephonyOutboundModePtrOutputWithContext(ctx context.Context) CampaignTelephonyOutboundModePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignTelephonyOutboundMode) *CampaignTelephonyOutboundMode { + return &v + }).(CampaignTelephonyOutboundModePtrOutput) +} + +func (o CampaignTelephonyOutboundModeOutput) AgentlessConfig() CampaignAgentlessConfigPtrOutput { + return o.ApplyT(func(v CampaignTelephonyOutboundMode) *CampaignAgentlessConfig { return v.AgentlessConfig }).(CampaignAgentlessConfigPtrOutput) +} + +func (o CampaignTelephonyOutboundModeOutput) PredictiveConfig() CampaignPredictiveConfigPtrOutput { + return o.ApplyT(func(v CampaignTelephonyOutboundMode) *CampaignPredictiveConfig { return v.PredictiveConfig }).(CampaignPredictiveConfigPtrOutput) +} + +func (o CampaignTelephonyOutboundModeOutput) ProgressiveConfig() CampaignProgressiveConfigPtrOutput { + return o.ApplyT(func(v CampaignTelephonyOutboundMode) *CampaignProgressiveConfig { return v.ProgressiveConfig }).(CampaignProgressiveConfigPtrOutput) +} + +type CampaignTelephonyOutboundModePtrOutput struct{ *pulumi.OutputState } + +func (CampaignTelephonyOutboundModePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignTelephonyOutboundMode)(nil)).Elem() +} + +func (o CampaignTelephonyOutboundModePtrOutput) ToCampaignTelephonyOutboundModePtrOutput() CampaignTelephonyOutboundModePtrOutput { + return o +} + +func (o CampaignTelephonyOutboundModePtrOutput) ToCampaignTelephonyOutboundModePtrOutputWithContext(ctx context.Context) CampaignTelephonyOutboundModePtrOutput { + return o +} + +func (o CampaignTelephonyOutboundModePtrOutput) Elem() CampaignTelephonyOutboundModeOutput { + return o.ApplyT(func(v *CampaignTelephonyOutboundMode) CampaignTelephonyOutboundMode { + if v != nil { + return *v + } + var ret CampaignTelephonyOutboundMode + return ret + }).(CampaignTelephonyOutboundModeOutput) +} + +func (o CampaignTelephonyOutboundModePtrOutput) AgentlessConfig() CampaignAgentlessConfigPtrOutput { + return o.ApplyT(func(v *CampaignTelephonyOutboundMode) *CampaignAgentlessConfig { + if v == nil { + return nil + } + return v.AgentlessConfig + }).(CampaignAgentlessConfigPtrOutput) +} + +func (o CampaignTelephonyOutboundModePtrOutput) PredictiveConfig() CampaignPredictiveConfigPtrOutput { + return o.ApplyT(func(v *CampaignTelephonyOutboundMode) *CampaignPredictiveConfig { + if v == nil { + return nil + } + return v.PredictiveConfig + }).(CampaignPredictiveConfigPtrOutput) +} + +func (o CampaignTelephonyOutboundModePtrOutput) ProgressiveConfig() CampaignProgressiveConfigPtrOutput { + return o.ApplyT(func(v *CampaignTelephonyOutboundMode) *CampaignProgressiveConfig { + if v == nil { + return nil + } + return v.ProgressiveConfig + }).(CampaignProgressiveConfigPtrOutput) +} + +// Time range in 24 hour format +type CampaignTimeRange struct { + EndTime string `pulumi:"endTime"` + StartTime string `pulumi:"startTime"` +} + +// CampaignTimeRangeInput is an input type that accepts CampaignTimeRangeArgs and CampaignTimeRangeOutput values. +// You can construct a concrete instance of `CampaignTimeRangeInput` via: +// +// CampaignTimeRangeArgs{...} +type CampaignTimeRangeInput interface { + pulumi.Input + + ToCampaignTimeRangeOutput() CampaignTimeRangeOutput + ToCampaignTimeRangeOutputWithContext(context.Context) CampaignTimeRangeOutput +} + +// Time range in 24 hour format +type CampaignTimeRangeArgs struct { + EndTime pulumi.StringInput `pulumi:"endTime"` + StartTime pulumi.StringInput `pulumi:"startTime"` +} + +func (CampaignTimeRangeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignTimeRange)(nil)).Elem() +} + +func (i CampaignTimeRangeArgs) ToCampaignTimeRangeOutput() CampaignTimeRangeOutput { + return i.ToCampaignTimeRangeOutputWithContext(context.Background()) +} + +func (i CampaignTimeRangeArgs) ToCampaignTimeRangeOutputWithContext(ctx context.Context) CampaignTimeRangeOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignTimeRangeOutput) +} + +// CampaignTimeRangeArrayInput is an input type that accepts CampaignTimeRangeArray and CampaignTimeRangeArrayOutput values. +// You can construct a concrete instance of `CampaignTimeRangeArrayInput` via: +// +// CampaignTimeRangeArray{ CampaignTimeRangeArgs{...} } +type CampaignTimeRangeArrayInput interface { + pulumi.Input + + ToCampaignTimeRangeArrayOutput() CampaignTimeRangeArrayOutput + ToCampaignTimeRangeArrayOutputWithContext(context.Context) CampaignTimeRangeArrayOutput +} + +type CampaignTimeRangeArray []CampaignTimeRangeInput + +func (CampaignTimeRangeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]CampaignTimeRange)(nil)).Elem() +} + +func (i CampaignTimeRangeArray) ToCampaignTimeRangeArrayOutput() CampaignTimeRangeArrayOutput { + return i.ToCampaignTimeRangeArrayOutputWithContext(context.Background()) +} + +func (i CampaignTimeRangeArray) ToCampaignTimeRangeArrayOutputWithContext(ctx context.Context) CampaignTimeRangeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignTimeRangeArrayOutput) +} + +// Time range in 24 hour format +type CampaignTimeRangeOutput struct{ *pulumi.OutputState } + +func (CampaignTimeRangeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignTimeRange)(nil)).Elem() +} + +func (o CampaignTimeRangeOutput) ToCampaignTimeRangeOutput() CampaignTimeRangeOutput { + return o +} + +func (o CampaignTimeRangeOutput) ToCampaignTimeRangeOutputWithContext(ctx context.Context) CampaignTimeRangeOutput { + return o +} + +func (o CampaignTimeRangeOutput) EndTime() pulumi.StringOutput { + return o.ApplyT(func(v CampaignTimeRange) string { return v.EndTime }).(pulumi.StringOutput) +} + +func (o CampaignTimeRangeOutput) StartTime() pulumi.StringOutput { + return o.ApplyT(func(v CampaignTimeRange) string { return v.StartTime }).(pulumi.StringOutput) +} + +type CampaignTimeRangeArrayOutput struct{ *pulumi.OutputState } + +func (CampaignTimeRangeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]CampaignTimeRange)(nil)).Elem() +} + +func (o CampaignTimeRangeArrayOutput) ToCampaignTimeRangeArrayOutput() CampaignTimeRangeArrayOutput { + return o +} + +func (o CampaignTimeRangeArrayOutput) ToCampaignTimeRangeArrayOutputWithContext(ctx context.Context) CampaignTimeRangeArrayOutput { + return o +} + +func (o CampaignTimeRangeArrayOutput) Index(i pulumi.IntInput) CampaignTimeRangeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) CampaignTimeRange { + return vs[0].([]CampaignTimeRange)[vs[1].(int)] + }).(CampaignTimeRangeOutput) +} + +// Time window config +type CampaignTimeWindow struct { + OpenHours CampaignOpenHours `pulumi:"openHours"` + RestrictedPeriods *CampaignRestrictedPeriods `pulumi:"restrictedPeriods"` +} + +// CampaignTimeWindowInput is an input type that accepts CampaignTimeWindowArgs and CampaignTimeWindowOutput values. +// You can construct a concrete instance of `CampaignTimeWindowInput` via: +// +// CampaignTimeWindowArgs{...} +type CampaignTimeWindowInput interface { + pulumi.Input + + ToCampaignTimeWindowOutput() CampaignTimeWindowOutput + ToCampaignTimeWindowOutputWithContext(context.Context) CampaignTimeWindowOutput +} + +// Time window config +type CampaignTimeWindowArgs struct { + OpenHours CampaignOpenHoursInput `pulumi:"openHours"` + RestrictedPeriods CampaignRestrictedPeriodsPtrInput `pulumi:"restrictedPeriods"` +} + +func (CampaignTimeWindowArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignTimeWindow)(nil)).Elem() +} + +func (i CampaignTimeWindowArgs) ToCampaignTimeWindowOutput() CampaignTimeWindowOutput { + return i.ToCampaignTimeWindowOutputWithContext(context.Background()) +} + +func (i CampaignTimeWindowArgs) ToCampaignTimeWindowOutputWithContext(ctx context.Context) CampaignTimeWindowOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignTimeWindowOutput) +} + +func (i CampaignTimeWindowArgs) ToCampaignTimeWindowPtrOutput() CampaignTimeWindowPtrOutput { + return i.ToCampaignTimeWindowPtrOutputWithContext(context.Background()) +} + +func (i CampaignTimeWindowArgs) ToCampaignTimeWindowPtrOutputWithContext(ctx context.Context) CampaignTimeWindowPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignTimeWindowOutput).ToCampaignTimeWindowPtrOutputWithContext(ctx) +} + +// CampaignTimeWindowPtrInput is an input type that accepts CampaignTimeWindowArgs, CampaignTimeWindowPtr and CampaignTimeWindowPtrOutput values. +// You can construct a concrete instance of `CampaignTimeWindowPtrInput` via: +// +// CampaignTimeWindowArgs{...} +// +// or: +// +// nil +type CampaignTimeWindowPtrInput interface { + pulumi.Input + + ToCampaignTimeWindowPtrOutput() CampaignTimeWindowPtrOutput + ToCampaignTimeWindowPtrOutputWithContext(context.Context) CampaignTimeWindowPtrOutput +} + +type campaignTimeWindowPtrType CampaignTimeWindowArgs + +func CampaignTimeWindowPtr(v *CampaignTimeWindowArgs) CampaignTimeWindowPtrInput { + return (*campaignTimeWindowPtrType)(v) +} + +func (*campaignTimeWindowPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignTimeWindow)(nil)).Elem() +} + +func (i *campaignTimeWindowPtrType) ToCampaignTimeWindowPtrOutput() CampaignTimeWindowPtrOutput { + return i.ToCampaignTimeWindowPtrOutputWithContext(context.Background()) +} + +func (i *campaignTimeWindowPtrType) ToCampaignTimeWindowPtrOutputWithContext(ctx context.Context) CampaignTimeWindowPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CampaignTimeWindowPtrOutput) +} + +// Time window config +type CampaignTimeWindowOutput struct{ *pulumi.OutputState } + +func (CampaignTimeWindowOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CampaignTimeWindow)(nil)).Elem() +} + +func (o CampaignTimeWindowOutput) ToCampaignTimeWindowOutput() CampaignTimeWindowOutput { + return o +} + +func (o CampaignTimeWindowOutput) ToCampaignTimeWindowOutputWithContext(ctx context.Context) CampaignTimeWindowOutput { + return o +} + +func (o CampaignTimeWindowOutput) ToCampaignTimeWindowPtrOutput() CampaignTimeWindowPtrOutput { + return o.ToCampaignTimeWindowPtrOutputWithContext(context.Background()) +} + +func (o CampaignTimeWindowOutput) ToCampaignTimeWindowPtrOutputWithContext(ctx context.Context) CampaignTimeWindowPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CampaignTimeWindow) *CampaignTimeWindow { + return &v + }).(CampaignTimeWindowPtrOutput) +} + +func (o CampaignTimeWindowOutput) OpenHours() CampaignOpenHoursOutput { + return o.ApplyT(func(v CampaignTimeWindow) CampaignOpenHours { return v.OpenHours }).(CampaignOpenHoursOutput) +} + +func (o CampaignTimeWindowOutput) RestrictedPeriods() CampaignRestrictedPeriodsPtrOutput { + return o.ApplyT(func(v CampaignTimeWindow) *CampaignRestrictedPeriods { return v.RestrictedPeriods }).(CampaignRestrictedPeriodsPtrOutput) +} + +type CampaignTimeWindowPtrOutput struct{ *pulumi.OutputState } + +func (CampaignTimeWindowPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CampaignTimeWindow)(nil)).Elem() +} + +func (o CampaignTimeWindowPtrOutput) ToCampaignTimeWindowPtrOutput() CampaignTimeWindowPtrOutput { + return o +} + +func (o CampaignTimeWindowPtrOutput) ToCampaignTimeWindowPtrOutputWithContext(ctx context.Context) CampaignTimeWindowPtrOutput { + return o +} + +func (o CampaignTimeWindowPtrOutput) Elem() CampaignTimeWindowOutput { + return o.ApplyT(func(v *CampaignTimeWindow) CampaignTimeWindow { + if v != nil { + return *v + } + var ret CampaignTimeWindow + return ret + }).(CampaignTimeWindowOutput) +} + +func (o CampaignTimeWindowPtrOutput) OpenHours() CampaignOpenHoursPtrOutput { + return o.ApplyT(func(v *CampaignTimeWindow) *CampaignOpenHours { + if v == nil { + return nil + } + return &v.OpenHours + }).(CampaignOpenHoursPtrOutput) +} + +func (o CampaignTimeWindowPtrOutput) RestrictedPeriods() CampaignRestrictedPeriodsPtrOutput { + return o.ApplyT(func(v *CampaignTimeWindow) *CampaignRestrictedPeriods { + if v == nil { + return nil + } + return v.RestrictedPeriods + }).(CampaignRestrictedPeriodsPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*CampaignAgentlessConfigInput)(nil)).Elem(), CampaignAgentlessConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignAgentlessConfigPtrInput)(nil)).Elem(), CampaignAgentlessConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignAnswerMachineDetectionConfigInput)(nil)).Elem(), CampaignAnswerMachineDetectionConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignAnswerMachineDetectionConfigPtrInput)(nil)).Elem(), CampaignAnswerMachineDetectionConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignChannelSubtypeConfigInput)(nil)).Elem(), CampaignChannelSubtypeConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignCommunicationLimitInput)(nil)).Elem(), CampaignCommunicationLimitArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignCommunicationLimitArrayInput)(nil)).Elem(), CampaignCommunicationLimitArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignCommunicationLimitsInput)(nil)).Elem(), CampaignCommunicationLimitsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignCommunicationLimitsPtrInput)(nil)).Elem(), CampaignCommunicationLimitsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignCommunicationLimitsConfigInput)(nil)).Elem(), CampaignCommunicationLimitsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignCommunicationLimitsConfigPtrInput)(nil)).Elem(), CampaignCommunicationLimitsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignCommunicationTimeConfigInput)(nil)).Elem(), CampaignCommunicationTimeConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignCommunicationTimeConfigPtrInput)(nil)).Elem(), CampaignCommunicationTimeConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignDailyHourInput)(nil)).Elem(), CampaignDailyHourArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignDailyHourArrayInput)(nil)).Elem(), CampaignDailyHourArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignEmailChannelSubtypeConfigInput)(nil)).Elem(), CampaignEmailChannelSubtypeConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignEmailChannelSubtypeConfigPtrInput)(nil)).Elem(), CampaignEmailChannelSubtypeConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignEmailOutboundConfigInput)(nil)).Elem(), CampaignEmailOutboundConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignEmailOutboundConfigPtrInput)(nil)).Elem(), CampaignEmailOutboundConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignEmailOutboundModeInput)(nil)).Elem(), CampaignEmailOutboundModeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignEmailOutboundModePtrInput)(nil)).Elem(), CampaignEmailOutboundModeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignLocalTimeZoneConfigInput)(nil)).Elem(), CampaignLocalTimeZoneConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignLocalTimeZoneConfigPtrInput)(nil)).Elem(), CampaignLocalTimeZoneConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignOpenHoursInput)(nil)).Elem(), CampaignOpenHoursArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignOpenHoursPtrInput)(nil)).Elem(), CampaignOpenHoursArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignPredictiveConfigInput)(nil)).Elem(), CampaignPredictiveConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignPredictiveConfigPtrInput)(nil)).Elem(), CampaignPredictiveConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignProgressiveConfigInput)(nil)).Elem(), CampaignProgressiveConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignProgressiveConfigPtrInput)(nil)).Elem(), CampaignProgressiveConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignRestrictedPeriodInput)(nil)).Elem(), CampaignRestrictedPeriodArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignRestrictedPeriodArrayInput)(nil)).Elem(), CampaignRestrictedPeriodArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignRestrictedPeriodsInput)(nil)).Elem(), CampaignRestrictedPeriodsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignRestrictedPeriodsPtrInput)(nil)).Elem(), CampaignRestrictedPeriodsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignScheduleInput)(nil)).Elem(), CampaignScheduleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignSchedulePtrInput)(nil)).Elem(), CampaignScheduleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignSmsChannelSubtypeConfigInput)(nil)).Elem(), CampaignSmsChannelSubtypeConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignSmsChannelSubtypeConfigPtrInput)(nil)).Elem(), CampaignSmsChannelSubtypeConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignSmsOutboundConfigInput)(nil)).Elem(), CampaignSmsOutboundConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignSmsOutboundConfigPtrInput)(nil)).Elem(), CampaignSmsOutboundConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignSmsOutboundModeInput)(nil)).Elem(), CampaignSmsOutboundModeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignSmsOutboundModePtrInput)(nil)).Elem(), CampaignSmsOutboundModeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignSourceInput)(nil)).Elem(), CampaignSourceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignSourcePtrInput)(nil)).Elem(), CampaignSourceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignTelephonyChannelSubtypeConfigInput)(nil)).Elem(), CampaignTelephonyChannelSubtypeConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignTelephonyChannelSubtypeConfigPtrInput)(nil)).Elem(), CampaignTelephonyChannelSubtypeConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignTelephonyOutboundConfigInput)(nil)).Elem(), CampaignTelephonyOutboundConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignTelephonyOutboundConfigPtrInput)(nil)).Elem(), CampaignTelephonyOutboundConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignTelephonyOutboundModeInput)(nil)).Elem(), CampaignTelephonyOutboundModeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignTelephonyOutboundModePtrInput)(nil)).Elem(), CampaignTelephonyOutboundModeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignTimeRangeInput)(nil)).Elem(), CampaignTimeRangeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignTimeRangeArrayInput)(nil)).Elem(), CampaignTimeRangeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignTimeWindowInput)(nil)).Elem(), CampaignTimeWindowArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CampaignTimeWindowPtrInput)(nil)).Elem(), CampaignTimeWindowArgs{}) + pulumi.RegisterOutputType(CampaignAgentlessConfigOutput{}) + pulumi.RegisterOutputType(CampaignAgentlessConfigPtrOutput{}) + pulumi.RegisterOutputType(CampaignAnswerMachineDetectionConfigOutput{}) + pulumi.RegisterOutputType(CampaignAnswerMachineDetectionConfigPtrOutput{}) + pulumi.RegisterOutputType(CampaignChannelSubtypeConfigOutput{}) + pulumi.RegisterOutputType(CampaignChannelSubtypeConfigPtrOutput{}) + pulumi.RegisterOutputType(CampaignCommunicationLimitOutput{}) + pulumi.RegisterOutputType(CampaignCommunicationLimitArrayOutput{}) + pulumi.RegisterOutputType(CampaignCommunicationLimitsOutput{}) + pulumi.RegisterOutputType(CampaignCommunicationLimitsPtrOutput{}) + pulumi.RegisterOutputType(CampaignCommunicationLimitsConfigOutput{}) + pulumi.RegisterOutputType(CampaignCommunicationLimitsConfigPtrOutput{}) + pulumi.RegisterOutputType(CampaignCommunicationTimeConfigOutput{}) + pulumi.RegisterOutputType(CampaignCommunicationTimeConfigPtrOutput{}) + pulumi.RegisterOutputType(CampaignDailyHourOutput{}) + pulumi.RegisterOutputType(CampaignDailyHourArrayOutput{}) + pulumi.RegisterOutputType(CampaignEmailChannelSubtypeConfigOutput{}) + pulumi.RegisterOutputType(CampaignEmailChannelSubtypeConfigPtrOutput{}) + pulumi.RegisterOutputType(CampaignEmailOutboundConfigOutput{}) + pulumi.RegisterOutputType(CampaignEmailOutboundConfigPtrOutput{}) + pulumi.RegisterOutputType(CampaignEmailOutboundModeOutput{}) + pulumi.RegisterOutputType(CampaignEmailOutboundModePtrOutput{}) + pulumi.RegisterOutputType(CampaignLocalTimeZoneConfigOutput{}) + pulumi.RegisterOutputType(CampaignLocalTimeZoneConfigPtrOutput{}) + pulumi.RegisterOutputType(CampaignOpenHoursOutput{}) + pulumi.RegisterOutputType(CampaignOpenHoursPtrOutput{}) + pulumi.RegisterOutputType(CampaignPredictiveConfigOutput{}) + pulumi.RegisterOutputType(CampaignPredictiveConfigPtrOutput{}) + pulumi.RegisterOutputType(CampaignProgressiveConfigOutput{}) + pulumi.RegisterOutputType(CampaignProgressiveConfigPtrOutput{}) + pulumi.RegisterOutputType(CampaignRestrictedPeriodOutput{}) + pulumi.RegisterOutputType(CampaignRestrictedPeriodArrayOutput{}) + pulumi.RegisterOutputType(CampaignRestrictedPeriodsOutput{}) + pulumi.RegisterOutputType(CampaignRestrictedPeriodsPtrOutput{}) + pulumi.RegisterOutputType(CampaignScheduleOutput{}) + pulumi.RegisterOutputType(CampaignSchedulePtrOutput{}) + pulumi.RegisterOutputType(CampaignSmsChannelSubtypeConfigOutput{}) + pulumi.RegisterOutputType(CampaignSmsChannelSubtypeConfigPtrOutput{}) + pulumi.RegisterOutputType(CampaignSmsOutboundConfigOutput{}) + pulumi.RegisterOutputType(CampaignSmsOutboundConfigPtrOutput{}) + pulumi.RegisterOutputType(CampaignSmsOutboundModeOutput{}) + pulumi.RegisterOutputType(CampaignSmsOutboundModePtrOutput{}) + pulumi.RegisterOutputType(CampaignSourceOutput{}) + pulumi.RegisterOutputType(CampaignSourcePtrOutput{}) + pulumi.RegisterOutputType(CampaignTelephonyChannelSubtypeConfigOutput{}) + pulumi.RegisterOutputType(CampaignTelephonyChannelSubtypeConfigPtrOutput{}) + pulumi.RegisterOutputType(CampaignTelephonyOutboundConfigOutput{}) + pulumi.RegisterOutputType(CampaignTelephonyOutboundConfigPtrOutput{}) + pulumi.RegisterOutputType(CampaignTelephonyOutboundModeOutput{}) + pulumi.RegisterOutputType(CampaignTelephonyOutboundModePtrOutput{}) + pulumi.RegisterOutputType(CampaignTimeRangeOutput{}) + pulumi.RegisterOutputType(CampaignTimeRangeArrayOutput{}) + pulumi.RegisterOutputType(CampaignTimeWindowOutput{}) + pulumi.RegisterOutputType(CampaignTimeWindowPtrOutput{}) +} diff --git a/sdk/go/aws/dynamodb/getGlobalTable.go b/sdk/go/aws/dynamodb/getGlobalTable.go index 7c8a2df14c..6ba761cf38 100644 --- a/sdk/go/aws/dynamodb/getGlobalTable.go +++ b/sdk/go/aws/dynamodb/getGlobalTable.go @@ -65,7 +65,8 @@ type LookupGlobalTableResult struct { TableId *string `pulumi:"tableId"` // Specifies the time to live (TTL) settings for the table. This setting will be applied to all replicas. TimeToLiveSpecification *GlobalTableTimeToLiveSpecification `pulumi:"timeToLiveSpecification"` - // Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + WarmThroughput *GlobalTableWarmThroughput `pulumi:"warmThroughput"` + // Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . WriteOnDemandThroughputSettings *GlobalTableWriteOnDemandThroughputSettings `pulumi:"writeOnDemandThroughputSettings"` // Specifies an auto scaling policy for write capacity. This policy will be applied to all replicas. This setting must be specified if `BillingMode` is set to `PROVISIONED` . WriteProvisionedThroughputSettings *GlobalTableWriteProvisionedThroughputSettings `pulumi:"writeProvisionedThroughputSettings"` @@ -180,7 +181,11 @@ func (o LookupGlobalTableResultOutput) TimeToLiveSpecification() GlobalTableTime return o.ApplyT(func(v LookupGlobalTableResult) *GlobalTableTimeToLiveSpecification { return v.TimeToLiveSpecification }).(GlobalTableTimeToLiveSpecificationPtrOutput) } -// Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . +func (o LookupGlobalTableResultOutput) WarmThroughput() GlobalTableWarmThroughputPtrOutput { + return o.ApplyT(func(v LookupGlobalTableResult) *GlobalTableWarmThroughput { return v.WarmThroughput }).(GlobalTableWarmThroughputPtrOutput) +} + +// Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . func (o LookupGlobalTableResultOutput) WriteOnDemandThroughputSettings() GlobalTableWriteOnDemandThroughputSettingsPtrOutput { return o.ApplyT(func(v LookupGlobalTableResult) *GlobalTableWriteOnDemandThroughputSettings { return v.WriteOnDemandThroughputSettings diff --git a/sdk/go/aws/dynamodb/getTable.go b/sdk/go/aws/dynamodb/getTable.go index 6f0c2d0bcd..2612deed79 100644 --- a/sdk/go/aws/dynamodb/getTable.go +++ b/sdk/go/aws/dynamodb/getTable.go @@ -17,7 +17,7 @@ import ( // You should be aware of the following behaviors when working with DDB tables: // + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). // -// Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. +// Our guidance is to use the latest schema documented for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. func LookupTable(ctx *pulumi.Context, args *LookupTableArgs, opts ...pulumi.InvokeOption) (*LookupTableResult, error) { opts = internal.PkgInvokeDefaultOpts(opts) var rv LookupTableResult @@ -91,6 +91,7 @@ type LookupTableResult struct { // Specifies the Time to Live (TTL) settings for the table. // For detailed information about the limits in DynamoDB, see [Limits in Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the Amazon DynamoDB Developer Guide. TimeToLiveSpecification *TableTimeToLiveSpecification `pulumi:"timeToLiveSpecification"` + WarmThroughput *TableWarmThroughput `pulumi:"warmThroughput"` } func LookupTableOutput(ctx *pulumi.Context, args LookupTableOutputArgs, opts ...pulumi.InvokeOption) LookupTableResultOutput { @@ -260,6 +261,10 @@ func (o LookupTableResultOutput) TimeToLiveSpecification() TableTimeToLiveSpecif return o.ApplyT(func(v LookupTableResult) *TableTimeToLiveSpecification { return v.TimeToLiveSpecification }).(TableTimeToLiveSpecificationPtrOutput) } +func (o LookupTableResultOutput) WarmThroughput() TableWarmThroughputPtrOutput { + return o.ApplyT(func(v LookupTableResult) *TableWarmThroughput { return v.WarmThroughput }).(TableWarmThroughputPtrOutput) +} + func init() { pulumi.RegisterOutputType(LookupTableResultOutput{}) } diff --git a/sdk/go/aws/dynamodb/globalTable.go b/sdk/go/aws/dynamodb/globalTable.go index c01f46ee57..53b779856f 100644 --- a/sdk/go/aws/dynamodb/globalTable.go +++ b/sdk/go/aws/dynamodb/globalTable.go @@ -59,7 +59,8 @@ type GlobalTable struct { TableName pulumi.StringPtrOutput `pulumi:"tableName"` // Specifies the time to live (TTL) settings for the table. This setting will be applied to all replicas. TimeToLiveSpecification GlobalTableTimeToLiveSpecificationPtrOutput `pulumi:"timeToLiveSpecification"` - // Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + WarmThroughput GlobalTableWarmThroughputPtrOutput `pulumi:"warmThroughput"` + // Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . WriteOnDemandThroughputSettings GlobalTableWriteOnDemandThroughputSettingsPtrOutput `pulumi:"writeOnDemandThroughputSettings"` // Specifies an auto scaling policy for write capacity. This policy will be applied to all replicas. This setting must be specified if `BillingMode` is set to `PROVISIONED` . WriteProvisionedThroughputSettings GlobalTableWriteProvisionedThroughputSettingsPtrOutput `pulumi:"writeProvisionedThroughputSettings"` @@ -155,7 +156,8 @@ type globalTableArgs struct { TableName *string `pulumi:"tableName"` // Specifies the time to live (TTL) settings for the table. This setting will be applied to all replicas. TimeToLiveSpecification *GlobalTableTimeToLiveSpecification `pulumi:"timeToLiveSpecification"` - // Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + WarmThroughput *GlobalTableWarmThroughput `pulumi:"warmThroughput"` + // Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . WriteOnDemandThroughputSettings *GlobalTableWriteOnDemandThroughputSettings `pulumi:"writeOnDemandThroughputSettings"` // Specifies an auto scaling policy for write capacity. This policy will be applied to all replicas. This setting must be specified if `BillingMode` is set to `PROVISIONED` . WriteProvisionedThroughputSettings *GlobalTableWriteProvisionedThroughputSettings `pulumi:"writeProvisionedThroughputSettings"` @@ -198,7 +200,8 @@ type GlobalTableArgs struct { TableName pulumi.StringPtrInput // Specifies the time to live (TTL) settings for the table. This setting will be applied to all replicas. TimeToLiveSpecification GlobalTableTimeToLiveSpecificationPtrInput - // Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + WarmThroughput GlobalTableWarmThroughputPtrInput + // Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . WriteOnDemandThroughputSettings GlobalTableWriteOnDemandThroughputSettingsPtrInput // Specifies an auto scaling policy for write capacity. This policy will be applied to all replicas. This setting must be specified if `BillingMode` is set to `PROVISIONED` . WriteProvisionedThroughputSettings GlobalTableWriteProvisionedThroughputSettingsPtrInput @@ -323,7 +326,11 @@ func (o GlobalTableOutput) TimeToLiveSpecification() GlobalTableTimeToLiveSpecif return o.ApplyT(func(v *GlobalTable) GlobalTableTimeToLiveSpecificationPtrOutput { return v.TimeToLiveSpecification }).(GlobalTableTimeToLiveSpecificationPtrOutput) } -// Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . +func (o GlobalTableOutput) WarmThroughput() GlobalTableWarmThroughputPtrOutput { + return o.ApplyT(func(v *GlobalTable) GlobalTableWarmThroughputPtrOutput { return v.WarmThroughput }).(GlobalTableWarmThroughputPtrOutput) +} + +// Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . func (o GlobalTableOutput) WriteOnDemandThroughputSettings() GlobalTableWriteOnDemandThroughputSettingsPtrOutput { return o.ApplyT(func(v *GlobalTable) GlobalTableWriteOnDemandThroughputSettingsPtrOutput { return v.WriteOnDemandThroughputSettings diff --git a/sdk/go/aws/dynamodb/pulumiTypes.go b/sdk/go/aws/dynamodb/pulumiTypes.go index 2f8054d0b3..e7ed086dd7 100644 --- a/sdk/go/aws/dynamodb/pulumiTypes.go +++ b/sdk/go/aws/dynamodb/pulumiTypes.go @@ -493,8 +493,9 @@ type GlobalTableGlobalSecondaryIndex struct { // > The sort key of an item is also known as its *range attribute* . The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. KeySchema []GlobalTableKeySchema `pulumi:"keySchema"` // Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. - Projection GlobalTableProjection `pulumi:"projection"` - // Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + Projection GlobalTableProjection `pulumi:"projection"` + WarmThroughput *GlobalTableWarmThroughput `pulumi:"warmThroughput"` + // Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . WriteOnDemandThroughputSettings *GlobalTableWriteOnDemandThroughputSettings `pulumi:"writeOnDemandThroughputSettings"` // Defines write capacity settings for the global secondary index. You must specify a value for this property if the table's `BillingMode` is `PROVISIONED` . All replicas will have the same write capacity settings for this global secondary index. WriteProvisionedThroughputSettings *GlobalTableWriteProvisionedThroughputSettings `pulumi:"writeProvisionedThroughputSettings"` @@ -524,8 +525,9 @@ type GlobalTableGlobalSecondaryIndexArgs struct { // > The sort key of an item is also known as its *range attribute* . The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. KeySchema GlobalTableKeySchemaArrayInput `pulumi:"keySchema"` // Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. - Projection GlobalTableProjectionInput `pulumi:"projection"` - // Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + Projection GlobalTableProjectionInput `pulumi:"projection"` + WarmThroughput GlobalTableWarmThroughputPtrInput `pulumi:"warmThroughput"` + // Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . WriteOnDemandThroughputSettings GlobalTableWriteOnDemandThroughputSettingsPtrInput `pulumi:"writeOnDemandThroughputSettings"` // Defines write capacity settings for the global secondary index. You must specify a value for this property if the table's `BillingMode` is `PROVISIONED` . All replicas will have the same write capacity settings for this global secondary index. WriteProvisionedThroughputSettings GlobalTableWriteProvisionedThroughputSettingsPtrInput `pulumi:"writeProvisionedThroughputSettings"` @@ -604,7 +606,11 @@ func (o GlobalTableGlobalSecondaryIndexOutput) Projection() GlobalTableProjectio return o.ApplyT(func(v GlobalTableGlobalSecondaryIndex) GlobalTableProjection { return v.Projection }).(GlobalTableProjectionOutput) } -// Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . +func (o GlobalTableGlobalSecondaryIndexOutput) WarmThroughput() GlobalTableWarmThroughputPtrOutput { + return o.ApplyT(func(v GlobalTableGlobalSecondaryIndex) *GlobalTableWarmThroughput { return v.WarmThroughput }).(GlobalTableWarmThroughputPtrOutput) +} + +// Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . func (o GlobalTableGlobalSecondaryIndexOutput) WriteOnDemandThroughputSettings() GlobalTableWriteOnDemandThroughputSettingsPtrOutput { return o.ApplyT(func(v GlobalTableGlobalSecondaryIndex) *GlobalTableWriteOnDemandThroughputSettings { return v.WriteOnDemandThroughputSettings @@ -1581,7 +1587,7 @@ type GlobalTableReplicaGlobalSecondaryIndexSpecification struct { ContributorInsightsSpecification *GlobalTableContributorInsightsSpecification `pulumi:"contributorInsightsSpecification"` // The name of the global secondary index. The name must be unique among all other indexes on this table. IndexName string `pulumi:"indexName"` - // Sets the read request settings for a replica global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + // Sets the read request settings for a replica global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . ReadOnDemandThroughputSettings *GlobalTableReadOnDemandThroughputSettings `pulumi:"readOnDemandThroughputSettings"` // Allows you to specify the read capacity settings for a replica global secondary index when the `BillingMode` is set to `PROVISIONED` . ReadProvisionedThroughputSettings *GlobalTableReadProvisionedThroughputSettings `pulumi:"readProvisionedThroughputSettings"` @@ -1603,7 +1609,7 @@ type GlobalTableReplicaGlobalSecondaryIndexSpecificationArgs struct { ContributorInsightsSpecification GlobalTableContributorInsightsSpecificationPtrInput `pulumi:"contributorInsightsSpecification"` // The name of the global secondary index. The name must be unique among all other indexes on this table. IndexName pulumi.StringInput `pulumi:"indexName"` - // Sets the read request settings for a replica global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + // Sets the read request settings for a replica global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . ReadOnDemandThroughputSettings GlobalTableReadOnDemandThroughputSettingsPtrInput `pulumi:"readOnDemandThroughputSettings"` // Allows you to specify the read capacity settings for a replica global secondary index when the `BillingMode` is set to `PROVISIONED` . ReadProvisionedThroughputSettings GlobalTableReadProvisionedThroughputSettingsPtrInput `pulumi:"readProvisionedThroughputSettings"` @@ -1672,7 +1678,7 @@ func (o GlobalTableReplicaGlobalSecondaryIndexSpecificationOutput) IndexName() p return o.ApplyT(func(v GlobalTableReplicaGlobalSecondaryIndexSpecification) string { return v.IndexName }).(pulumi.StringOutput) } -// Sets the read request settings for a replica global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . +// Sets the read request settings for a replica global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . func (o GlobalTableReplicaGlobalSecondaryIndexSpecificationOutput) ReadOnDemandThroughputSettings() GlobalTableReadOnDemandThroughputSettingsPtrOutput { return o.ApplyT(func(v GlobalTableReplicaGlobalSecondaryIndexSpecification) *GlobalTableReadOnDemandThroughputSettings { return v.ReadOnDemandThroughputSettings @@ -3149,6 +3155,154 @@ func (o GlobalTableTimeToLiveSpecificationPtrOutput) Enabled() pulumi.BoolPtrOut }).(pulumi.BoolPtrOutput) } +type GlobalTableWarmThroughput struct { + ReadUnitsPerSecond *int `pulumi:"readUnitsPerSecond"` + WriteUnitsPerSecond *int `pulumi:"writeUnitsPerSecond"` +} + +// GlobalTableWarmThroughputInput is an input type that accepts GlobalTableWarmThroughputArgs and GlobalTableWarmThroughputOutput values. +// You can construct a concrete instance of `GlobalTableWarmThroughputInput` via: +// +// GlobalTableWarmThroughputArgs{...} +type GlobalTableWarmThroughputInput interface { + pulumi.Input + + ToGlobalTableWarmThroughputOutput() GlobalTableWarmThroughputOutput + ToGlobalTableWarmThroughputOutputWithContext(context.Context) GlobalTableWarmThroughputOutput +} + +type GlobalTableWarmThroughputArgs struct { + ReadUnitsPerSecond pulumi.IntPtrInput `pulumi:"readUnitsPerSecond"` + WriteUnitsPerSecond pulumi.IntPtrInput `pulumi:"writeUnitsPerSecond"` +} + +func (GlobalTableWarmThroughputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GlobalTableWarmThroughput)(nil)).Elem() +} + +func (i GlobalTableWarmThroughputArgs) ToGlobalTableWarmThroughputOutput() GlobalTableWarmThroughputOutput { + return i.ToGlobalTableWarmThroughputOutputWithContext(context.Background()) +} + +func (i GlobalTableWarmThroughputArgs) ToGlobalTableWarmThroughputOutputWithContext(ctx context.Context) GlobalTableWarmThroughputOutput { + return pulumi.ToOutputWithContext(ctx, i).(GlobalTableWarmThroughputOutput) +} + +func (i GlobalTableWarmThroughputArgs) ToGlobalTableWarmThroughputPtrOutput() GlobalTableWarmThroughputPtrOutput { + return i.ToGlobalTableWarmThroughputPtrOutputWithContext(context.Background()) +} + +func (i GlobalTableWarmThroughputArgs) ToGlobalTableWarmThroughputPtrOutputWithContext(ctx context.Context) GlobalTableWarmThroughputPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GlobalTableWarmThroughputOutput).ToGlobalTableWarmThroughputPtrOutputWithContext(ctx) +} + +// GlobalTableWarmThroughputPtrInput is an input type that accepts GlobalTableWarmThroughputArgs, GlobalTableWarmThroughputPtr and GlobalTableWarmThroughputPtrOutput values. +// You can construct a concrete instance of `GlobalTableWarmThroughputPtrInput` via: +// +// GlobalTableWarmThroughputArgs{...} +// +// or: +// +// nil +type GlobalTableWarmThroughputPtrInput interface { + pulumi.Input + + ToGlobalTableWarmThroughputPtrOutput() GlobalTableWarmThroughputPtrOutput + ToGlobalTableWarmThroughputPtrOutputWithContext(context.Context) GlobalTableWarmThroughputPtrOutput +} + +type globalTableWarmThroughputPtrType GlobalTableWarmThroughputArgs + +func GlobalTableWarmThroughputPtr(v *GlobalTableWarmThroughputArgs) GlobalTableWarmThroughputPtrInput { + return (*globalTableWarmThroughputPtrType)(v) +} + +func (*globalTableWarmThroughputPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GlobalTableWarmThroughput)(nil)).Elem() +} + +func (i *globalTableWarmThroughputPtrType) ToGlobalTableWarmThroughputPtrOutput() GlobalTableWarmThroughputPtrOutput { + return i.ToGlobalTableWarmThroughputPtrOutputWithContext(context.Background()) +} + +func (i *globalTableWarmThroughputPtrType) ToGlobalTableWarmThroughputPtrOutputWithContext(ctx context.Context) GlobalTableWarmThroughputPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GlobalTableWarmThroughputPtrOutput) +} + +type GlobalTableWarmThroughputOutput struct{ *pulumi.OutputState } + +func (GlobalTableWarmThroughputOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GlobalTableWarmThroughput)(nil)).Elem() +} + +func (o GlobalTableWarmThroughputOutput) ToGlobalTableWarmThroughputOutput() GlobalTableWarmThroughputOutput { + return o +} + +func (o GlobalTableWarmThroughputOutput) ToGlobalTableWarmThroughputOutputWithContext(ctx context.Context) GlobalTableWarmThroughputOutput { + return o +} + +func (o GlobalTableWarmThroughputOutput) ToGlobalTableWarmThroughputPtrOutput() GlobalTableWarmThroughputPtrOutput { + return o.ToGlobalTableWarmThroughputPtrOutputWithContext(context.Background()) +} + +func (o GlobalTableWarmThroughputOutput) ToGlobalTableWarmThroughputPtrOutputWithContext(ctx context.Context) GlobalTableWarmThroughputPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GlobalTableWarmThroughput) *GlobalTableWarmThroughput { + return &v + }).(GlobalTableWarmThroughputPtrOutput) +} + +func (o GlobalTableWarmThroughputOutput) ReadUnitsPerSecond() pulumi.IntPtrOutput { + return o.ApplyT(func(v GlobalTableWarmThroughput) *int { return v.ReadUnitsPerSecond }).(pulumi.IntPtrOutput) +} + +func (o GlobalTableWarmThroughputOutput) WriteUnitsPerSecond() pulumi.IntPtrOutput { + return o.ApplyT(func(v GlobalTableWarmThroughput) *int { return v.WriteUnitsPerSecond }).(pulumi.IntPtrOutput) +} + +type GlobalTableWarmThroughputPtrOutput struct{ *pulumi.OutputState } + +func (GlobalTableWarmThroughputPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GlobalTableWarmThroughput)(nil)).Elem() +} + +func (o GlobalTableWarmThroughputPtrOutput) ToGlobalTableWarmThroughputPtrOutput() GlobalTableWarmThroughputPtrOutput { + return o +} + +func (o GlobalTableWarmThroughputPtrOutput) ToGlobalTableWarmThroughputPtrOutputWithContext(ctx context.Context) GlobalTableWarmThroughputPtrOutput { + return o +} + +func (o GlobalTableWarmThroughputPtrOutput) Elem() GlobalTableWarmThroughputOutput { + return o.ApplyT(func(v *GlobalTableWarmThroughput) GlobalTableWarmThroughput { + if v != nil { + return *v + } + var ret GlobalTableWarmThroughput + return ret + }).(GlobalTableWarmThroughputOutput) +} + +func (o GlobalTableWarmThroughputPtrOutput) ReadUnitsPerSecond() pulumi.IntPtrOutput { + return o.ApplyT(func(v *GlobalTableWarmThroughput) *int { + if v == nil { + return nil + } + return v.ReadUnitsPerSecond + }).(pulumi.IntPtrOutput) +} + +func (o GlobalTableWarmThroughputPtrOutput) WriteUnitsPerSecond() pulumi.IntPtrOutput { + return o.ApplyT(func(v *GlobalTableWarmThroughput) *int { + if v == nil { + return nil + } + return v.WriteUnitsPerSecond + }).(pulumi.IntPtrOutput) +} + type GlobalTableWriteOnDemandThroughputSettings struct { // Maximum number of write request settings for the specified replica of a global table. MaxWriteRequestUnits *int `pulumi:"maxWriteRequestUnits"` @@ -3862,6 +4016,7 @@ type TableGlobalSecondaryIndex struct { // Represents the provisioned throughput settings for the specified global secondary index. // For current minimum and maximum provisioned throughput values, see [Service, Account, and Table Quotas](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the *Amazon DynamoDB Developer Guide*. ProvisionedThroughput *TableProvisionedThroughput `pulumi:"provisionedThroughput"` + WarmThroughput *TableWarmThroughput `pulumi:"warmThroughput"` } // TableGlobalSecondaryIndexInput is an input type that accepts TableGlobalSecondaryIndexArgs and TableGlobalSecondaryIndexOutput values. @@ -3895,6 +4050,7 @@ type TableGlobalSecondaryIndexArgs struct { // Represents the provisioned throughput settings for the specified global secondary index. // For current minimum and maximum provisioned throughput values, see [Service, Account, and Table Quotas](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the *Amazon DynamoDB Developer Guide*. ProvisionedThroughput TableProvisionedThroughputPtrInput `pulumi:"provisionedThroughput"` + WarmThroughput TableWarmThroughputPtrInput `pulumi:"warmThroughput"` } func (TableGlobalSecondaryIndexArgs) ElementType() reflect.Type { @@ -3990,6 +4146,10 @@ func (o TableGlobalSecondaryIndexOutput) ProvisionedThroughput() TableProvisione return o.ApplyT(func(v TableGlobalSecondaryIndex) *TableProvisionedThroughput { return v.ProvisionedThroughput }).(TableProvisionedThroughputPtrOutput) } +func (o TableGlobalSecondaryIndexOutput) WarmThroughput() TableWarmThroughputPtrOutput { + return o.ApplyT(func(v TableGlobalSecondaryIndex) *TableWarmThroughput { return v.WarmThroughput }).(TableWarmThroughputPtrOutput) +} + type TableGlobalSecondaryIndexArrayOutput struct{ *pulumi.OutputState } func (TableGlobalSecondaryIndexArrayOutput) ElementType() reflect.Type { @@ -6241,6 +6401,154 @@ func (o TableTimeToLiveSpecificationPtrOutput) Enabled() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } +type TableWarmThroughput struct { + ReadUnitsPerSecond *int `pulumi:"readUnitsPerSecond"` + WriteUnitsPerSecond *int `pulumi:"writeUnitsPerSecond"` +} + +// TableWarmThroughputInput is an input type that accepts TableWarmThroughputArgs and TableWarmThroughputOutput values. +// You can construct a concrete instance of `TableWarmThroughputInput` via: +// +// TableWarmThroughputArgs{...} +type TableWarmThroughputInput interface { + pulumi.Input + + ToTableWarmThroughputOutput() TableWarmThroughputOutput + ToTableWarmThroughputOutputWithContext(context.Context) TableWarmThroughputOutput +} + +type TableWarmThroughputArgs struct { + ReadUnitsPerSecond pulumi.IntPtrInput `pulumi:"readUnitsPerSecond"` + WriteUnitsPerSecond pulumi.IntPtrInput `pulumi:"writeUnitsPerSecond"` +} + +func (TableWarmThroughputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TableWarmThroughput)(nil)).Elem() +} + +func (i TableWarmThroughputArgs) ToTableWarmThroughputOutput() TableWarmThroughputOutput { + return i.ToTableWarmThroughputOutputWithContext(context.Background()) +} + +func (i TableWarmThroughputArgs) ToTableWarmThroughputOutputWithContext(ctx context.Context) TableWarmThroughputOutput { + return pulumi.ToOutputWithContext(ctx, i).(TableWarmThroughputOutput) +} + +func (i TableWarmThroughputArgs) ToTableWarmThroughputPtrOutput() TableWarmThroughputPtrOutput { + return i.ToTableWarmThroughputPtrOutputWithContext(context.Background()) +} + +func (i TableWarmThroughputArgs) ToTableWarmThroughputPtrOutputWithContext(ctx context.Context) TableWarmThroughputPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TableWarmThroughputOutput).ToTableWarmThroughputPtrOutputWithContext(ctx) +} + +// TableWarmThroughputPtrInput is an input type that accepts TableWarmThroughputArgs, TableWarmThroughputPtr and TableWarmThroughputPtrOutput values. +// You can construct a concrete instance of `TableWarmThroughputPtrInput` via: +// +// TableWarmThroughputArgs{...} +// +// or: +// +// nil +type TableWarmThroughputPtrInput interface { + pulumi.Input + + ToTableWarmThroughputPtrOutput() TableWarmThroughputPtrOutput + ToTableWarmThroughputPtrOutputWithContext(context.Context) TableWarmThroughputPtrOutput +} + +type tableWarmThroughputPtrType TableWarmThroughputArgs + +func TableWarmThroughputPtr(v *TableWarmThroughputArgs) TableWarmThroughputPtrInput { + return (*tableWarmThroughputPtrType)(v) +} + +func (*tableWarmThroughputPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TableWarmThroughput)(nil)).Elem() +} + +func (i *tableWarmThroughputPtrType) ToTableWarmThroughputPtrOutput() TableWarmThroughputPtrOutput { + return i.ToTableWarmThroughputPtrOutputWithContext(context.Background()) +} + +func (i *tableWarmThroughputPtrType) ToTableWarmThroughputPtrOutputWithContext(ctx context.Context) TableWarmThroughputPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TableWarmThroughputPtrOutput) +} + +type TableWarmThroughputOutput struct{ *pulumi.OutputState } + +func (TableWarmThroughputOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TableWarmThroughput)(nil)).Elem() +} + +func (o TableWarmThroughputOutput) ToTableWarmThroughputOutput() TableWarmThroughputOutput { + return o +} + +func (o TableWarmThroughputOutput) ToTableWarmThroughputOutputWithContext(ctx context.Context) TableWarmThroughputOutput { + return o +} + +func (o TableWarmThroughputOutput) ToTableWarmThroughputPtrOutput() TableWarmThroughputPtrOutput { + return o.ToTableWarmThroughputPtrOutputWithContext(context.Background()) +} + +func (o TableWarmThroughputOutput) ToTableWarmThroughputPtrOutputWithContext(ctx context.Context) TableWarmThroughputPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TableWarmThroughput) *TableWarmThroughput { + return &v + }).(TableWarmThroughputPtrOutput) +} + +func (o TableWarmThroughputOutput) ReadUnitsPerSecond() pulumi.IntPtrOutput { + return o.ApplyT(func(v TableWarmThroughput) *int { return v.ReadUnitsPerSecond }).(pulumi.IntPtrOutput) +} + +func (o TableWarmThroughputOutput) WriteUnitsPerSecond() pulumi.IntPtrOutput { + return o.ApplyT(func(v TableWarmThroughput) *int { return v.WriteUnitsPerSecond }).(pulumi.IntPtrOutput) +} + +type TableWarmThroughputPtrOutput struct{ *pulumi.OutputState } + +func (TableWarmThroughputPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TableWarmThroughput)(nil)).Elem() +} + +func (o TableWarmThroughputPtrOutput) ToTableWarmThroughputPtrOutput() TableWarmThroughputPtrOutput { + return o +} + +func (o TableWarmThroughputPtrOutput) ToTableWarmThroughputPtrOutputWithContext(ctx context.Context) TableWarmThroughputPtrOutput { + return o +} + +func (o TableWarmThroughputPtrOutput) Elem() TableWarmThroughputOutput { + return o.ApplyT(func(v *TableWarmThroughput) TableWarmThroughput { + if v != nil { + return *v + } + var ret TableWarmThroughput + return ret + }).(TableWarmThroughputOutput) +} + +func (o TableWarmThroughputPtrOutput) ReadUnitsPerSecond() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TableWarmThroughput) *int { + if v == nil { + return nil + } + return v.ReadUnitsPerSecond + }).(pulumi.IntPtrOutput) +} + +func (o TableWarmThroughputPtrOutput) WriteUnitsPerSecond() pulumi.IntPtrOutput { + return o.ApplyT(func(v *TableWarmThroughput) *int { + if v == nil { + return nil + } + return v.WriteUnitsPerSecond + }).(pulumi.IntPtrOutput) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*GlobalTableAttributeDefinitionInput)(nil)).Elem(), GlobalTableAttributeDefinitionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GlobalTableAttributeDefinitionArrayInput)(nil)).Elem(), GlobalTableAttributeDefinitionArray{}) @@ -6283,6 +6591,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GlobalTableTargetTrackingScalingPolicyConfigurationPtrInput)(nil)).Elem(), GlobalTableTargetTrackingScalingPolicyConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GlobalTableTimeToLiveSpecificationInput)(nil)).Elem(), GlobalTableTimeToLiveSpecificationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GlobalTableTimeToLiveSpecificationPtrInput)(nil)).Elem(), GlobalTableTimeToLiveSpecificationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GlobalTableWarmThroughputInput)(nil)).Elem(), GlobalTableWarmThroughputArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GlobalTableWarmThroughputPtrInput)(nil)).Elem(), GlobalTableWarmThroughputArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GlobalTableWriteOnDemandThroughputSettingsInput)(nil)).Elem(), GlobalTableWriteOnDemandThroughputSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GlobalTableWriteOnDemandThroughputSettingsPtrInput)(nil)).Elem(), GlobalTableWriteOnDemandThroughputSettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GlobalTableWriteProvisionedThroughputSettingsInput)(nil)).Elem(), GlobalTableWriteProvisionedThroughputSettingsArgs{}) @@ -6322,6 +6632,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*TableStreamSpecificationPtrInput)(nil)).Elem(), TableStreamSpecificationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TableTimeToLiveSpecificationInput)(nil)).Elem(), TableTimeToLiveSpecificationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TableTimeToLiveSpecificationPtrInput)(nil)).Elem(), TableTimeToLiveSpecificationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TableWarmThroughputInput)(nil)).Elem(), TableWarmThroughputArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TableWarmThroughputPtrInput)(nil)).Elem(), TableWarmThroughputArgs{}) pulumi.RegisterOutputType(GlobalTableAttributeDefinitionOutput{}) pulumi.RegisterOutputType(GlobalTableAttributeDefinitionArrayOutput{}) pulumi.RegisterOutputType(GlobalTableCapacityAutoScalingSettingsOutput{}) @@ -6363,6 +6675,8 @@ func init() { pulumi.RegisterOutputType(GlobalTableTargetTrackingScalingPolicyConfigurationPtrOutput{}) pulumi.RegisterOutputType(GlobalTableTimeToLiveSpecificationOutput{}) pulumi.RegisterOutputType(GlobalTableTimeToLiveSpecificationPtrOutput{}) + pulumi.RegisterOutputType(GlobalTableWarmThroughputOutput{}) + pulumi.RegisterOutputType(GlobalTableWarmThroughputPtrOutput{}) pulumi.RegisterOutputType(GlobalTableWriteOnDemandThroughputSettingsOutput{}) pulumi.RegisterOutputType(GlobalTableWriteOnDemandThroughputSettingsPtrOutput{}) pulumi.RegisterOutputType(GlobalTableWriteProvisionedThroughputSettingsOutput{}) @@ -6402,4 +6716,6 @@ func init() { pulumi.RegisterOutputType(TableStreamSpecificationPtrOutput{}) pulumi.RegisterOutputType(TableTimeToLiveSpecificationOutput{}) pulumi.RegisterOutputType(TableTimeToLiveSpecificationPtrOutput{}) + pulumi.RegisterOutputType(TableWarmThroughputOutput{}) + pulumi.RegisterOutputType(TableWarmThroughputPtrOutput{}) } diff --git a/sdk/go/aws/dynamodb/table.go b/sdk/go/aws/dynamodb/table.go index 2243219dc3..d2ee78b1c0 100644 --- a/sdk/go/aws/dynamodb/table.go +++ b/sdk/go/aws/dynamodb/table.go @@ -18,7 +18,7 @@ import ( // You should be aware of the following behaviors when working with DDB tables: // + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). // -// Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. +// Our guidance is to use the latest schema documented for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. // // ## Example Usage // ### Example @@ -344,6 +344,7 @@ type Table struct { // Specifies the Time to Live (TTL) settings for the table. // For detailed information about the limits in DynamoDB, see [Limits in Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the Amazon DynamoDB Developer Guide. TimeToLiveSpecification TableTimeToLiveSpecificationPtrOutput `pulumi:"timeToLiveSpecification"` + WarmThroughput TableWarmThroughputPtrOutput `pulumi:"warmThroughput"` } // NewTable registers a new resource with the given unique name, arguments, and options. @@ -450,6 +451,7 @@ type tableArgs struct { // Specifies the Time to Live (TTL) settings for the table. // For detailed information about the limits in DynamoDB, see [Limits in Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the Amazon DynamoDB Developer Guide. TimeToLiveSpecification *TableTimeToLiveSpecification `pulumi:"timeToLiveSpecification"` + WarmThroughput *TableWarmThroughput `pulumi:"warmThroughput"` } // The set of arguments for constructing a Table resource. @@ -510,6 +512,7 @@ type TableArgs struct { // Specifies the Time to Live (TTL) settings for the table. // For detailed information about the limits in DynamoDB, see [Limits in Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the Amazon DynamoDB Developer Guide. TimeToLiveSpecification TableTimeToLiveSpecificationPtrInput + WarmThroughput TableWarmThroughputPtrInput } func (TableArgs) ElementType() reflect.Type { @@ -687,6 +690,10 @@ func (o TableOutput) TimeToLiveSpecification() TableTimeToLiveSpecificationPtrOu return o.ApplyT(func(v *Table) TableTimeToLiveSpecificationPtrOutput { return v.TimeToLiveSpecification }).(TableTimeToLiveSpecificationPtrOutput) } +func (o TableOutput) WarmThroughput() TableWarmThroughputPtrOutput { + return o.ApplyT(func(v *Table) TableWarmThroughputPtrOutput { return v.WarmThroughput }).(TableWarmThroughputPtrOutput) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*TableInput)(nil)).Elem(), &Table{}) pulumi.RegisterOutputType(TableOutput{}) diff --git a/sdk/go/aws/eks/getNodegroup.go b/sdk/go/aws/eks/getNodegroup.go index 5a01f61c1a..3d4dee1544 100644 --- a/sdk/go/aws/eks/getNodegroup.go +++ b/sdk/go/aws/eks/getNodegroup.go @@ -34,6 +34,8 @@ type LookupNodegroupResult struct { Labels map[string]string `pulumi:"labels"` // An object representing a node group's launch template specification. LaunchTemplate *NodegroupLaunchTemplateSpecification `pulumi:"launchTemplate"` + // The node auto repair configuration for node group. + NodeRepairConfig *NodegroupNodeRepairConfig `pulumi:"nodeRepairConfig"` // The AMI version of the Amazon EKS-optimized AMI to use with your node group. ReleaseVersion *string `pulumi:"releaseVersion"` // The scaling configuration details for the Auto Scaling group that is created for your node group. @@ -108,6 +110,11 @@ func (o LookupNodegroupResultOutput) LaunchTemplate() NodegroupLaunchTemplateSpe return o.ApplyT(func(v LookupNodegroupResult) *NodegroupLaunchTemplateSpecification { return v.LaunchTemplate }).(NodegroupLaunchTemplateSpecificationPtrOutput) } +// The node auto repair configuration for node group. +func (o LookupNodegroupResultOutput) NodeRepairConfig() NodegroupNodeRepairConfigPtrOutput { + return o.ApplyT(func(v LookupNodegroupResult) *NodegroupNodeRepairConfig { return v.NodeRepairConfig }).(NodegroupNodeRepairConfigPtrOutput) +} + // The AMI version of the Amazon EKS-optimized AMI to use with your node group. func (o LookupNodegroupResultOutput) ReleaseVersion() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupNodegroupResult) *string { return v.ReleaseVersion }).(pulumi.StringPtrOutput) diff --git a/sdk/go/aws/eks/nodegroup.go b/sdk/go/aws/eks/nodegroup.go index 4943910bdb..1bbf1ba1eb 100644 --- a/sdk/go/aws/eks/nodegroup.go +++ b/sdk/go/aws/eks/nodegroup.go @@ -115,6 +115,8 @@ type Nodegroup struct { Labels pulumi.StringMapOutput `pulumi:"labels"` // An object representing a node group's launch template specification. LaunchTemplate NodegroupLaunchTemplateSpecificationPtrOutput `pulumi:"launchTemplate"` + // The node auto repair configuration for node group. + NodeRepairConfig NodegroupNodeRepairConfigPtrOutput `pulumi:"nodeRepairConfig"` // The Amazon Resource Name (ARN) of the IAM role to associate with your node group. NodeRole pulumi.StringOutput `pulumi:"nodeRole"` // The unique name to give your node group. @@ -214,6 +216,8 @@ type nodegroupArgs struct { Labels map[string]string `pulumi:"labels"` // An object representing a node group's launch template specification. LaunchTemplate *NodegroupLaunchTemplateSpecification `pulumi:"launchTemplate"` + // The node auto repair configuration for node group. + NodeRepairConfig *NodegroupNodeRepairConfig `pulumi:"nodeRepairConfig"` // The Amazon Resource Name (ARN) of the IAM role to associate with your node group. NodeRole string `pulumi:"nodeRole"` // The unique name to give your node group. @@ -254,6 +258,8 @@ type NodegroupArgs struct { Labels pulumi.StringMapInput // An object representing a node group's launch template specification. LaunchTemplate NodegroupLaunchTemplateSpecificationPtrInput + // The node auto repair configuration for node group. + NodeRepairConfig NodegroupNodeRepairConfigPtrInput // The Amazon Resource Name (ARN) of the IAM role to associate with your node group. NodeRole pulumi.StringInput // The unique name to give your node group. @@ -362,6 +368,11 @@ func (o NodegroupOutput) LaunchTemplate() NodegroupLaunchTemplateSpecificationPt return o.ApplyT(func(v *Nodegroup) NodegroupLaunchTemplateSpecificationPtrOutput { return v.LaunchTemplate }).(NodegroupLaunchTemplateSpecificationPtrOutput) } +// The node auto repair configuration for node group. +func (o NodegroupOutput) NodeRepairConfig() NodegroupNodeRepairConfigPtrOutput { + return o.ApplyT(func(v *Nodegroup) NodegroupNodeRepairConfigPtrOutput { return v.NodeRepairConfig }).(NodegroupNodeRepairConfigPtrOutput) +} + // The Amazon Resource Name (ARN) of the IAM role to associate with your node group. func (o NodegroupOutput) NodeRole() pulumi.StringOutput { return o.ApplyT(func(v *Nodegroup) pulumi.StringOutput { return v.NodeRole }).(pulumi.StringOutput) diff --git a/sdk/go/aws/eks/pulumiTypes.go b/sdk/go/aws/eks/pulumiTypes.go index de3b5ca8df..de82914511 100644 --- a/sdk/go/aws/eks/pulumiTypes.go +++ b/sdk/go/aws/eks/pulumiTypes.go @@ -2843,6 +2843,146 @@ func (o NodegroupLaunchTemplateSpecificationPtrOutput) Version() pulumi.StringPt }).(pulumi.StringPtrOutput) } +// The node auto repair configuration for node group. +type NodegroupNodeRepairConfig struct { + // Set this value to true to enable node auto repair for the node group. + Enabled *bool `pulumi:"enabled"` +} + +// NodegroupNodeRepairConfigInput is an input type that accepts NodegroupNodeRepairConfigArgs and NodegroupNodeRepairConfigOutput values. +// You can construct a concrete instance of `NodegroupNodeRepairConfigInput` via: +// +// NodegroupNodeRepairConfigArgs{...} +type NodegroupNodeRepairConfigInput interface { + pulumi.Input + + ToNodegroupNodeRepairConfigOutput() NodegroupNodeRepairConfigOutput + ToNodegroupNodeRepairConfigOutputWithContext(context.Context) NodegroupNodeRepairConfigOutput +} + +// The node auto repair configuration for node group. +type NodegroupNodeRepairConfigArgs struct { + // Set this value to true to enable node auto repair for the node group. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` +} + +func (NodegroupNodeRepairConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*NodegroupNodeRepairConfig)(nil)).Elem() +} + +func (i NodegroupNodeRepairConfigArgs) ToNodegroupNodeRepairConfigOutput() NodegroupNodeRepairConfigOutput { + return i.ToNodegroupNodeRepairConfigOutputWithContext(context.Background()) +} + +func (i NodegroupNodeRepairConfigArgs) ToNodegroupNodeRepairConfigOutputWithContext(ctx context.Context) NodegroupNodeRepairConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(NodegroupNodeRepairConfigOutput) +} + +func (i NodegroupNodeRepairConfigArgs) ToNodegroupNodeRepairConfigPtrOutput() NodegroupNodeRepairConfigPtrOutput { + return i.ToNodegroupNodeRepairConfigPtrOutputWithContext(context.Background()) +} + +func (i NodegroupNodeRepairConfigArgs) ToNodegroupNodeRepairConfigPtrOutputWithContext(ctx context.Context) NodegroupNodeRepairConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NodegroupNodeRepairConfigOutput).ToNodegroupNodeRepairConfigPtrOutputWithContext(ctx) +} + +// NodegroupNodeRepairConfigPtrInput is an input type that accepts NodegroupNodeRepairConfigArgs, NodegroupNodeRepairConfigPtr and NodegroupNodeRepairConfigPtrOutput values. +// You can construct a concrete instance of `NodegroupNodeRepairConfigPtrInput` via: +// +// NodegroupNodeRepairConfigArgs{...} +// +// or: +// +// nil +type NodegroupNodeRepairConfigPtrInput interface { + pulumi.Input + + ToNodegroupNodeRepairConfigPtrOutput() NodegroupNodeRepairConfigPtrOutput + ToNodegroupNodeRepairConfigPtrOutputWithContext(context.Context) NodegroupNodeRepairConfigPtrOutput +} + +type nodegroupNodeRepairConfigPtrType NodegroupNodeRepairConfigArgs + +func NodegroupNodeRepairConfigPtr(v *NodegroupNodeRepairConfigArgs) NodegroupNodeRepairConfigPtrInput { + return (*nodegroupNodeRepairConfigPtrType)(v) +} + +func (*nodegroupNodeRepairConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**NodegroupNodeRepairConfig)(nil)).Elem() +} + +func (i *nodegroupNodeRepairConfigPtrType) ToNodegroupNodeRepairConfigPtrOutput() NodegroupNodeRepairConfigPtrOutput { + return i.ToNodegroupNodeRepairConfigPtrOutputWithContext(context.Background()) +} + +func (i *nodegroupNodeRepairConfigPtrType) ToNodegroupNodeRepairConfigPtrOutputWithContext(ctx context.Context) NodegroupNodeRepairConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NodegroupNodeRepairConfigPtrOutput) +} + +// The node auto repair configuration for node group. +type NodegroupNodeRepairConfigOutput struct{ *pulumi.OutputState } + +func (NodegroupNodeRepairConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*NodegroupNodeRepairConfig)(nil)).Elem() +} + +func (o NodegroupNodeRepairConfigOutput) ToNodegroupNodeRepairConfigOutput() NodegroupNodeRepairConfigOutput { + return o +} + +func (o NodegroupNodeRepairConfigOutput) ToNodegroupNodeRepairConfigOutputWithContext(ctx context.Context) NodegroupNodeRepairConfigOutput { + return o +} + +func (o NodegroupNodeRepairConfigOutput) ToNodegroupNodeRepairConfigPtrOutput() NodegroupNodeRepairConfigPtrOutput { + return o.ToNodegroupNodeRepairConfigPtrOutputWithContext(context.Background()) +} + +func (o NodegroupNodeRepairConfigOutput) ToNodegroupNodeRepairConfigPtrOutputWithContext(ctx context.Context) NodegroupNodeRepairConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v NodegroupNodeRepairConfig) *NodegroupNodeRepairConfig { + return &v + }).(NodegroupNodeRepairConfigPtrOutput) +} + +// Set this value to true to enable node auto repair for the node group. +func (o NodegroupNodeRepairConfigOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v NodegroupNodeRepairConfig) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +type NodegroupNodeRepairConfigPtrOutput struct{ *pulumi.OutputState } + +func (NodegroupNodeRepairConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**NodegroupNodeRepairConfig)(nil)).Elem() +} + +func (o NodegroupNodeRepairConfigPtrOutput) ToNodegroupNodeRepairConfigPtrOutput() NodegroupNodeRepairConfigPtrOutput { + return o +} + +func (o NodegroupNodeRepairConfigPtrOutput) ToNodegroupNodeRepairConfigPtrOutputWithContext(ctx context.Context) NodegroupNodeRepairConfigPtrOutput { + return o +} + +func (o NodegroupNodeRepairConfigPtrOutput) Elem() NodegroupNodeRepairConfigOutput { + return o.ApplyT(func(v *NodegroupNodeRepairConfig) NodegroupNodeRepairConfig { + if v != nil { + return *v + } + var ret NodegroupNodeRepairConfig + return ret + }).(NodegroupNodeRepairConfigOutput) +} + +// Set this value to true to enable node auto repair for the node group. +func (o NodegroupNodeRepairConfigPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *NodegroupNodeRepairConfig) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + // An object representing a remote access configuration specification for AWS EKS Nodegroup. type NodegroupRemoteAccess struct { // The Amazon EC2 SSH key name that provides access for SSH communication with the nodes in the managed node group. For more information, see [Amazon EC2 key pairs and Linux instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) in the *Amazon Elastic Compute Cloud User Guide for Linux Instances* . For Windows, an Amazon EC2 SSH key is used to obtain the RDP password. For more information, see [Amazon EC2 key pairs and Windows instances](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-key-pairs.html) in the *Amazon Elastic Compute Cloud User Guide for Windows Instances* . @@ -3528,6 +3668,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*LoggingPtrInput)(nil)).Elem(), LoggingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NodegroupLaunchTemplateSpecificationInput)(nil)).Elem(), NodegroupLaunchTemplateSpecificationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NodegroupLaunchTemplateSpecificationPtrInput)(nil)).Elem(), NodegroupLaunchTemplateSpecificationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*NodegroupNodeRepairConfigInput)(nil)).Elem(), NodegroupNodeRepairConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*NodegroupNodeRepairConfigPtrInput)(nil)).Elem(), NodegroupNodeRepairConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NodegroupRemoteAccessInput)(nil)).Elem(), NodegroupRemoteAccessArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NodegroupRemoteAccessPtrInput)(nil)).Elem(), NodegroupRemoteAccessArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NodegroupScalingConfigInput)(nil)).Elem(), NodegroupScalingConfigArgs{}) @@ -3575,6 +3717,8 @@ func init() { pulumi.RegisterOutputType(LoggingPtrOutput{}) pulumi.RegisterOutputType(NodegroupLaunchTemplateSpecificationOutput{}) pulumi.RegisterOutputType(NodegroupLaunchTemplateSpecificationPtrOutput{}) + pulumi.RegisterOutputType(NodegroupNodeRepairConfigOutput{}) + pulumi.RegisterOutputType(NodegroupNodeRepairConfigPtrOutput{}) pulumi.RegisterOutputType(NodegroupRemoteAccessOutput{}) pulumi.RegisterOutputType(NodegroupRemoteAccessPtrOutput{}) pulumi.RegisterOutputType(NodegroupScalingConfigOutput{}) diff --git a/sdk/go/aws/elasticache/getUser.go b/sdk/go/aws/elasticache/getUser.go index a3cfa236a1..bfec1434e0 100644 --- a/sdk/go/aws/elasticache/getUser.go +++ b/sdk/go/aws/elasticache/getUser.go @@ -31,6 +31,8 @@ type LookupUserArgs struct { type LookupUserResult struct { // The Amazon Resource Name (ARN) of the user account. Arn *string `pulumi:"arn"` + // The target cache engine for the user. + Engine *UserEngine `pulumi:"engine"` // Indicates the user status. Can be "active", "modifying" or "deleting". Status *string `pulumi:"status"` // An array of key-value pairs to apply to this user. @@ -84,6 +86,11 @@ func (o LookupUserResultOutput) Arn() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupUserResult) *string { return v.Arn }).(pulumi.StringPtrOutput) } +// The target cache engine for the user. +func (o LookupUserResultOutput) Engine() UserEnginePtrOutput { + return o.ApplyT(func(v LookupUserResult) *UserEngine { return v.Engine }).(UserEnginePtrOutput) +} + // Indicates the user status. Can be "active", "modifying" or "deleting". func (o LookupUserResultOutput) Status() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupUserResult) *string { return v.Status }).(pulumi.StringPtrOutput) diff --git a/sdk/go/aws/elasticache/getUserGroup.go b/sdk/go/aws/elasticache/getUserGroup.go index 127ce37dc7..bb804e7669 100644 --- a/sdk/go/aws/elasticache/getUserGroup.go +++ b/sdk/go/aws/elasticache/getUserGroup.go @@ -31,6 +31,8 @@ type LookupUserGroupArgs struct { type LookupUserGroupResult struct { // The Amazon Resource Name (ARN) of the user account. Arn *string `pulumi:"arn"` + // The target cache engine for the user group. + Engine *UserGroupEngine `pulumi:"engine"` // Indicates user group status. Can be "creating", "active", "modifying", "deleting". Status *string `pulumi:"status"` // An array of key-value pairs to apply to this user. @@ -86,6 +88,11 @@ func (o LookupUserGroupResultOutput) Arn() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupUserGroupResult) *string { return v.Arn }).(pulumi.StringPtrOutput) } +// The target cache engine for the user group. +func (o LookupUserGroupResultOutput) Engine() UserGroupEnginePtrOutput { + return o.ApplyT(func(v LookupUserGroupResult) *UserGroupEngine { return v.Engine }).(UserGroupEnginePtrOutput) +} + // Indicates user group status. Can be "creating", "active", "modifying", "deleting". func (o LookupUserGroupResultOutput) Status() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupUserGroupResult) *string { return v.Status }).(pulumi.StringPtrOutput) diff --git a/sdk/go/aws/elasticache/pulumiEnums.go b/sdk/go/aws/elasticache/pulumiEnums.go index 4cb3ea571e..e7fda76d63 100644 --- a/sdk/go/aws/elasticache/pulumiEnums.go +++ b/sdk/go/aws/elasticache/pulumiEnums.go @@ -508,11 +508,12 @@ func (in *userAuthenticationModePropertiesTypePtr) ToUserAuthenticationModePrope return pulumi.ToOutputWithContext(ctx, in).(UserAuthenticationModePropertiesTypePtrOutput) } -// Must be redis. +// The target cache engine for the user. type UserEngine string const ( - UserEngineRedis = UserEngine("redis") + UserEngineRedis = UserEngine("redis") + UserEngineValkey = UserEngine("valkey") ) func (UserEngine) ElementType() reflect.Type { @@ -638,6 +639,7 @@ func (o UserEnginePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) p // A concrete instance of `UserEngineInput` can be one of the following: // // UserEngineRedis +// UserEngineValkey type UserEngineInput interface { pulumi.Input @@ -672,11 +674,12 @@ func (in *userEnginePtr) ToUserEnginePtrOutputWithContext(ctx context.Context) U return pulumi.ToOutputWithContext(ctx, in).(UserEnginePtrOutput) } -// Must be redis. +// The target cache engine for the user group. type UserGroupEngine string const ( - UserGroupEngineRedis = UserGroupEngine("redis") + UserGroupEngineRedis = UserGroupEngine("redis") + UserGroupEngineValkey = UserGroupEngine("valkey") ) func (UserGroupEngine) ElementType() reflect.Type { @@ -802,6 +805,7 @@ func (o UserGroupEnginePtrOutput) ToStringPtrOutputWithContext(ctx context.Conte // A concrete instance of `UserGroupEngineInput` can be one of the following: // // UserGroupEngineRedis +// UserGroupEngineValkey type UserGroupEngineInput interface { pulumi.Input diff --git a/sdk/go/aws/elasticache/user.go b/sdk/go/aws/elasticache/user.go index f1d1d1aa88..aa5d9aa4c9 100644 --- a/sdk/go/aws/elasticache/user.go +++ b/sdk/go/aws/elasticache/user.go @@ -23,7 +23,7 @@ type User struct { Arn pulumi.StringOutput `pulumi:"arn"` // Specifies the authentication mode to use. Below is an example of the possible JSON values: AuthenticationMode AuthenticationModePropertiesPtrOutput `pulumi:"authenticationMode"` - // Must be redis. + // The target cache engine for the user. Engine UserEngineOutput `pulumi:"engine"` // Indicates a password is not required for this user account. NoPasswordRequired pulumi.BoolPtrOutput `pulumi:"noPasswordRequired"` @@ -53,7 +53,6 @@ func NewUser(ctx *pulumi.Context, return nil, errors.New("invalid value for required argument 'UserId'") } replaceOnChanges := pulumi.ReplaceOnChanges([]string{ - "engine", "userId", "userName", }) @@ -95,7 +94,7 @@ type userArgs struct { AccessString *string `pulumi:"accessString"` // Specifies the authentication mode to use. Below is an example of the possible JSON values: AuthenticationMode *AuthenticationModeProperties `pulumi:"authenticationMode"` - // Must be redis. + // The target cache engine for the user. Engine UserEngine `pulumi:"engine"` // Indicates a password is not required for this user account. NoPasswordRequired *bool `pulumi:"noPasswordRequired"` @@ -115,7 +114,7 @@ type UserArgs struct { AccessString pulumi.StringPtrInput // Specifies the authentication mode to use. Below is an example of the possible JSON values: AuthenticationMode AuthenticationModePropertiesPtrInput - // Must be redis. + // The target cache engine for the user. Engine UserEngineInput // Indicates a password is not required for this user account. NoPasswordRequired pulumi.BoolPtrInput @@ -181,7 +180,7 @@ func (o UserOutput) AuthenticationMode() AuthenticationModePropertiesPtrOutput { return o.ApplyT(func(v *User) AuthenticationModePropertiesPtrOutput { return v.AuthenticationMode }).(AuthenticationModePropertiesPtrOutput) } -// Must be redis. +// The target cache engine for the user. func (o UserOutput) Engine() UserEngineOutput { return o.ApplyT(func(v *User) UserEngineOutput { return v.Engine }).(UserEngineOutput) } diff --git a/sdk/go/aws/elasticache/userGroup.go b/sdk/go/aws/elasticache/userGroup.go index 83532a31ab..1ca867a5a1 100644 --- a/sdk/go/aws/elasticache/userGroup.go +++ b/sdk/go/aws/elasticache/userGroup.go @@ -19,7 +19,7 @@ type UserGroup struct { // The Amazon Resource Name (ARN) of the user account. Arn pulumi.StringOutput `pulumi:"arn"` - // Must be redis. + // The target cache engine for the user group. Engine UserGroupEngineOutput `pulumi:"engine"` // Indicates user group status. Can be "creating", "active", "modifying", "deleting". Status pulumi.StringOutput `pulumi:"status"` @@ -48,7 +48,6 @@ func NewUserGroup(ctx *pulumi.Context, return nil, errors.New("invalid value for required argument 'UserIds'") } replaceOnChanges := pulumi.ReplaceOnChanges([]string{ - "engine", "userGroupId", }) opts = append(opts, replaceOnChanges) @@ -85,7 +84,7 @@ func (UserGroupState) ElementType() reflect.Type { } type userGroupArgs struct { - // Must be redis. + // The target cache engine for the user group. Engine UserGroupEngine `pulumi:"engine"` // An array of key-value pairs to apply to this user. Tags []aws.Tag `pulumi:"tags"` @@ -97,7 +96,7 @@ type userGroupArgs struct { // The set of arguments for constructing a UserGroup resource. type UserGroupArgs struct { - // Must be redis. + // The target cache engine for the user group. Engine UserGroupEngineInput // An array of key-value pairs to apply to this user. Tags aws.TagArrayInput @@ -149,7 +148,7 @@ func (o UserGroupOutput) Arn() pulumi.StringOutput { return o.ApplyT(func(v *UserGroup) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) } -// Must be redis. +// The target cache engine for the user group. func (o UserGroupOutput) Engine() UserGroupEngineOutput { return o.ApplyT(func(v *UserGroup) UserGroupEngineOutput { return v.Engine }).(UserGroupEngineOutput) } diff --git a/sdk/go/aws/elasticloadbalancingv2/getLoadBalancer.go b/sdk/go/aws/elasticloadbalancingv2/getLoadBalancer.go index 9e2fce2e22..773469a829 100644 --- a/sdk/go/aws/elasticloadbalancingv2/getLoadBalancer.go +++ b/sdk/go/aws/elasticloadbalancingv2/getLoadBalancer.go @@ -32,7 +32,8 @@ type LookupLoadBalancerResult struct { // The ID of the Amazon Route 53 hosted zone associated with the load balancer. For example, `Z2P70J7EXAMPLE` . CanonicalHostedZoneId *string `pulumi:"canonicalHostedZoneId"` // The DNS name for the load balancer. For example, `my-load-balancer-424835706.us-west-2.elb.amazonaws.com` . - DnsName *string `pulumi:"dnsName"` + DnsName *string `pulumi:"dnsName"` + // [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . EnablePrefixForIpv6SourceNat *string `pulumi:"enablePrefixForIpv6SourceNat"` // Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic *string `pulumi:"enforceSecurityGroupInboundRulesOnPrivateLinkTraffic"` @@ -122,6 +123,7 @@ func (o LookupLoadBalancerResultOutput) DnsName() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupLoadBalancerResult) *string { return v.DnsName }).(pulumi.StringPtrOutput) } +// [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . func (o LookupLoadBalancerResultOutput) EnablePrefixForIpv6SourceNat() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupLoadBalancerResult) *string { return v.EnablePrefixForIpv6SourceNat }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/elasticloadbalancingv2/loadBalancer.go b/sdk/go/aws/elasticloadbalancingv2/loadBalancer.go index 6783715133..8e3b525199 100644 --- a/sdk/go/aws/elasticloadbalancingv2/loadBalancer.go +++ b/sdk/go/aws/elasticloadbalancingv2/loadBalancer.go @@ -19,7 +19,8 @@ type LoadBalancer struct { // The ID of the Amazon Route 53 hosted zone associated with the load balancer. For example, `Z2P70J7EXAMPLE` . CanonicalHostedZoneId pulumi.StringOutput `pulumi:"canonicalHostedZoneId"` // The DNS name for the load balancer. For example, `my-load-balancer-424835706.us-west-2.elb.amazonaws.com` . - DnsName pulumi.StringOutput `pulumi:"dnsName"` + DnsName pulumi.StringOutput `pulumi:"dnsName"` + // [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . EnablePrefixForIpv6SourceNat pulumi.StringPtrOutput `pulumi:"enablePrefixForIpv6SourceNat"` // Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic pulumi.StringPtrOutput `pulumi:"enforceSecurityGroupInboundRulesOnPrivateLinkTraffic"` @@ -113,6 +114,7 @@ func (LoadBalancerState) ElementType() reflect.Type { } type loadBalancerArgs struct { + // [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . EnablePrefixForIpv6SourceNat *string `pulumi:"enablePrefixForIpv6SourceNat"` // Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic *string `pulumi:"enforceSecurityGroupInboundRulesOnPrivateLinkTraffic"` @@ -156,6 +158,7 @@ type loadBalancerArgs struct { // The set of arguments for constructing a LoadBalancer resource. type LoadBalancerArgs struct { + // [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . EnablePrefixForIpv6SourceNat pulumi.StringPtrInput // Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic pulumi.StringPtrInput @@ -244,6 +247,7 @@ func (o LoadBalancerOutput) DnsName() pulumi.StringOutput { return o.ApplyT(func(v *LoadBalancer) pulumi.StringOutput { return v.DnsName }).(pulumi.StringOutput) } +// [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . func (o LoadBalancerOutput) EnablePrefixForIpv6SourceNat() pulumi.StringPtrOutput { return o.ApplyT(func(v *LoadBalancer) pulumi.StringPtrOutput { return v.EnablePrefixForIpv6SourceNat }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/elasticloadbalancingv2/pulumiTypes.go b/sdk/go/aws/elasticloadbalancingv2/pulumiTypes.go index 76e65b3eac..875e54536a 100644 --- a/sdk/go/aws/elasticloadbalancingv2/pulumiTypes.go +++ b/sdk/go/aws/elasticloadbalancingv2/pulumiTypes.go @@ -5274,7 +5274,8 @@ type LoadBalancerSubnetMapping struct { // [Network Load Balancers] The IPv6 address. IPv6Address *string `pulumi:"iPv6Address"` // [Network Load Balancers] The private IPv4 address for an internal load balancer. - PrivateIPv4Address *string `pulumi:"privateIPv4Address"` + PrivateIPv4Address *string `pulumi:"privateIPv4Address"` + // [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block. SourceNatIpv6Prefix *string `pulumi:"sourceNatIpv6Prefix"` // The ID of the subnet. SubnetId string `pulumi:"subnetId"` @@ -5298,7 +5299,8 @@ type LoadBalancerSubnetMappingArgs struct { // [Network Load Balancers] The IPv6 address. IPv6Address pulumi.StringPtrInput `pulumi:"iPv6Address"` // [Network Load Balancers] The private IPv4 address for an internal load balancer. - PrivateIPv4Address pulumi.StringPtrInput `pulumi:"privateIPv4Address"` + PrivateIPv4Address pulumi.StringPtrInput `pulumi:"privateIPv4Address"` + // [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block. SourceNatIpv6Prefix pulumi.StringPtrInput `pulumi:"sourceNatIpv6Prefix"` // The ID of the subnet. SubnetId pulumi.StringInput `pulumi:"subnetId"` @@ -5371,6 +5373,7 @@ func (o LoadBalancerSubnetMappingOutput) PrivateIPv4Address() pulumi.StringPtrOu return o.ApplyT(func(v LoadBalancerSubnetMapping) *string { return v.PrivateIPv4Address }).(pulumi.StringPtrOutput) } +// [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block. func (o LoadBalancerSubnetMappingOutput) SourceNatIpv6Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v LoadBalancerSubnetMapping) *string { return v.SourceNatIpv6Prefix }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/events/getConnection.go b/sdk/go/aws/events/getConnection.go index 800c0f5c2a..47bd6a1f9e 100644 --- a/sdk/go/aws/events/getConnection.go +++ b/sdk/go/aws/events/getConnection.go @@ -30,6 +30,8 @@ type LookupConnectionArgs struct { type LookupConnectionResult struct { // The arn of the connection resource. Arn *string `pulumi:"arn"` + // A `CreateConnectionAuthRequestParameters` object that contains the authorization parameters to use to authorize with the endpoint. + AuthParameters *ConnectionAuthParameters `pulumi:"authParameters"` // The type of authorization to use for the connection. // // > OAUTH tokens are refreshed when a 401 or 407 response is returned. @@ -87,6 +89,11 @@ func (o LookupConnectionResultOutput) Arn() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupConnectionResult) *string { return v.Arn }).(pulumi.StringPtrOutput) } +// A `CreateConnectionAuthRequestParameters` object that contains the authorization parameters to use to authorize with the endpoint. +func (o LookupConnectionResultOutput) AuthParameters() ConnectionAuthParametersPtrOutput { + return o.ApplyT(func(v LookupConnectionResult) *ConnectionAuthParameters { return v.AuthParameters }).(ConnectionAuthParametersPtrOutput) +} + // The type of authorization to use for the connection. // // > OAUTH tokens are refreshed when a 401 or 407 response is returned. diff --git a/sdk/go/aws/fis/experimentTemplate.go b/sdk/go/aws/fis/experimentTemplate.go index 8b4e997cf3..81d387d2bd 100644 --- a/sdk/go/aws/fis/experimentTemplate.go +++ b/sdk/go/aws/fis/experimentTemplate.go @@ -117,7 +117,8 @@ type ExperimentTemplate struct { // The description for the experiment template. Description pulumi.StringOutput `pulumi:"description"` // The experiment options for an experiment template. - ExperimentOptions ExperimentTemplateExperimentOptionsPtrOutput `pulumi:"experimentOptions"` + ExperimentOptions ExperimentTemplateExperimentOptionsPtrOutput `pulumi:"experimentOptions"` + // Describes the report configuration for the experiment template. ExperimentReportConfiguration ExperimentTemplateExperimentReportConfigurationPtrOutput `pulumi:"experimentReportConfiguration"` // The configuration for experiment logging. LogConfiguration ExperimentTemplateLogConfigurationPtrOutput `pulumi:"logConfiguration"` @@ -196,7 +197,8 @@ type experimentTemplateArgs struct { // The description for the experiment template. Description string `pulumi:"description"` // The experiment options for an experiment template. - ExperimentOptions *ExperimentTemplateExperimentOptions `pulumi:"experimentOptions"` + ExperimentOptions *ExperimentTemplateExperimentOptions `pulumi:"experimentOptions"` + // Describes the report configuration for the experiment template. ExperimentReportConfiguration *ExperimentTemplateExperimentReportConfiguration `pulumi:"experimentReportConfiguration"` // The configuration for experiment logging. LogConfiguration *ExperimentTemplateLogConfiguration `pulumi:"logConfiguration"` @@ -217,7 +219,8 @@ type ExperimentTemplateArgs struct { // The description for the experiment template. Description pulumi.StringInput // The experiment options for an experiment template. - ExperimentOptions ExperimentTemplateExperimentOptionsPtrInput + ExperimentOptions ExperimentTemplateExperimentOptionsPtrInput + // Describes the report configuration for the experiment template. ExperimentReportConfiguration ExperimentTemplateExperimentReportConfigurationPtrInput // The configuration for experiment logging. LogConfiguration ExperimentTemplateLogConfigurationPtrInput @@ -288,6 +291,7 @@ func (o ExperimentTemplateOutput) ExperimentOptions() ExperimentTemplateExperime return o.ApplyT(func(v *ExperimentTemplate) ExperimentTemplateExperimentOptionsPtrOutput { return v.ExperimentOptions }).(ExperimentTemplateExperimentOptionsPtrOutput) } +// Describes the report configuration for the experiment template. func (o ExperimentTemplateOutput) ExperimentReportConfiguration() ExperimentTemplateExperimentReportConfigurationPtrOutput { return o.ApplyT(func(v *ExperimentTemplate) ExperimentTemplateExperimentReportConfigurationPtrOutput { return v.ExperimentReportConfiguration diff --git a/sdk/go/aws/fis/getExperimentTemplate.go b/sdk/go/aws/fis/getExperimentTemplate.go index e939b6ff6e..88df040b60 100644 --- a/sdk/go/aws/fis/getExperimentTemplate.go +++ b/sdk/go/aws/fis/getExperimentTemplate.go @@ -33,7 +33,8 @@ type LookupExperimentTemplateResult struct { // The description for the experiment template. Description *string `pulumi:"description"` // The experiment options for an experiment template. - ExperimentOptions *ExperimentTemplateExperimentOptions `pulumi:"experimentOptions"` + ExperimentOptions *ExperimentTemplateExperimentOptions `pulumi:"experimentOptions"` + // Describes the report configuration for the experiment template. ExperimentReportConfiguration *ExperimentTemplateExperimentReportConfiguration `pulumi:"experimentReportConfiguration"` // The ID of the experiment template. Id *string `pulumi:"id"` @@ -106,6 +107,7 @@ func (o LookupExperimentTemplateResultOutput) ExperimentOptions() ExperimentTemp }).(ExperimentTemplateExperimentOptionsPtrOutput) } +// Describes the report configuration for the experiment template. func (o LookupExperimentTemplateResultOutput) ExperimentReportConfiguration() ExperimentTemplateExperimentReportConfigurationPtrOutput { return o.ApplyT(func(v LookupExperimentTemplateResult) *ExperimentTemplateExperimentReportConfiguration { return v.ExperimentReportConfiguration diff --git a/sdk/go/aws/fis/pulumiTypes.go b/sdk/go/aws/fis/pulumiTypes.go index 897d438685..9f574f4eec 100644 --- a/sdk/go/aws/fis/pulumiTypes.go +++ b/sdk/go/aws/fis/pulumiTypes.go @@ -150,6 +150,7 @@ func (o ExperimentTemplateActionMapOutput) MapIndex(k pulumi.StringInput) Experi } type ExperimentTemplateCloudWatchDashboard struct { + // The Amazon Resource Name (ARN) of the CloudWatch dashboard to include in the experiment report. DashboardIdentifier string `pulumi:"dashboardIdentifier"` } @@ -165,6 +166,7 @@ type ExperimentTemplateCloudWatchDashboardInput interface { } type ExperimentTemplateCloudWatchDashboardArgs struct { + // The Amazon Resource Name (ARN) of the CloudWatch dashboard to include in the experiment report. DashboardIdentifier pulumi.StringInput `pulumi:"dashboardIdentifier"` } @@ -219,6 +221,7 @@ func (o ExperimentTemplateCloudWatchDashboardOutput) ToExperimentTemplateCloudWa return o } +// The Amazon Resource Name (ARN) of the CloudWatch dashboard to include in the experiment report. func (o ExperimentTemplateCloudWatchDashboardOutput) DashboardIdentifier() pulumi.StringOutput { return o.ApplyT(func(v ExperimentTemplateCloudWatchDashboard) string { return v.DashboardIdentifier }).(pulumi.StringOutput) } @@ -404,10 +407,14 @@ func (o ExperimentTemplateExperimentOptionsPtrOutput) EmptyTargetResolutionMode( } type ExperimentTemplateExperimentReportConfiguration struct { - DataSources ExperimentTemplateExperimentReportConfigurationDataSourcesProperties `pulumi:"dataSources"` - Outputs ExperimentTemplateExperimentReportConfigurationOutputsProperties `pulumi:"outputs"` - PostExperimentDuration *string `pulumi:"postExperimentDuration"` - PreExperimentDuration *string `pulumi:"preExperimentDuration"` + // The data sources for the experiment report. + DataSources ExperimentTemplateExperimentReportConfigurationDataSourcesProperties `pulumi:"dataSources"` + // The output destinations of the experiment report. + Outputs ExperimentTemplateExperimentReportConfigurationOutputsProperties `pulumi:"outputs"` + // The duration after the experiment end time for the data sources to include in the report. + PostExperimentDuration *string `pulumi:"postExperimentDuration"` + // The duration before the experiment start time for the data sources to include in the report. + PreExperimentDuration *string `pulumi:"preExperimentDuration"` } // ExperimentTemplateExperimentReportConfigurationInput is an input type that accepts ExperimentTemplateExperimentReportConfigurationArgs and ExperimentTemplateExperimentReportConfigurationOutput values. @@ -422,10 +429,14 @@ type ExperimentTemplateExperimentReportConfigurationInput interface { } type ExperimentTemplateExperimentReportConfigurationArgs struct { - DataSources ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesInput `pulumi:"dataSources"` - Outputs ExperimentTemplateExperimentReportConfigurationOutputsPropertiesInput `pulumi:"outputs"` - PostExperimentDuration pulumi.StringPtrInput `pulumi:"postExperimentDuration"` - PreExperimentDuration pulumi.StringPtrInput `pulumi:"preExperimentDuration"` + // The data sources for the experiment report. + DataSources ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesInput `pulumi:"dataSources"` + // The output destinations of the experiment report. + Outputs ExperimentTemplateExperimentReportConfigurationOutputsPropertiesInput `pulumi:"outputs"` + // The duration after the experiment end time for the data sources to include in the report. + PostExperimentDuration pulumi.StringPtrInput `pulumi:"postExperimentDuration"` + // The duration before the experiment start time for the data sources to include in the report. + PreExperimentDuration pulumi.StringPtrInput `pulumi:"preExperimentDuration"` } func (ExperimentTemplateExperimentReportConfigurationArgs) ElementType() reflect.Type { @@ -505,22 +516,26 @@ func (o ExperimentTemplateExperimentReportConfigurationOutput) ToExperimentTempl }).(ExperimentTemplateExperimentReportConfigurationPtrOutput) } +// The data sources for the experiment report. func (o ExperimentTemplateExperimentReportConfigurationOutput) DataSources() ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesOutput { return o.ApplyT(func(v ExperimentTemplateExperimentReportConfiguration) ExperimentTemplateExperimentReportConfigurationDataSourcesProperties { return v.DataSources }).(ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesOutput) } +// The output destinations of the experiment report. func (o ExperimentTemplateExperimentReportConfigurationOutput) Outputs() ExperimentTemplateExperimentReportConfigurationOutputsPropertiesOutput { return o.ApplyT(func(v ExperimentTemplateExperimentReportConfiguration) ExperimentTemplateExperimentReportConfigurationOutputsProperties { return v.Outputs }).(ExperimentTemplateExperimentReportConfigurationOutputsPropertiesOutput) } +// The duration after the experiment end time for the data sources to include in the report. func (o ExperimentTemplateExperimentReportConfigurationOutput) PostExperimentDuration() pulumi.StringPtrOutput { return o.ApplyT(func(v ExperimentTemplateExperimentReportConfiguration) *string { return v.PostExperimentDuration }).(pulumi.StringPtrOutput) } +// The duration before the experiment start time for the data sources to include in the report. func (o ExperimentTemplateExperimentReportConfigurationOutput) PreExperimentDuration() pulumi.StringPtrOutput { return o.ApplyT(func(v ExperimentTemplateExperimentReportConfiguration) *string { return v.PreExperimentDuration }).(pulumi.StringPtrOutput) } @@ -549,6 +564,7 @@ func (o ExperimentTemplateExperimentReportConfigurationPtrOutput) Elem() Experim }).(ExperimentTemplateExperimentReportConfigurationOutput) } +// The data sources for the experiment report. func (o ExperimentTemplateExperimentReportConfigurationPtrOutput) DataSources() ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesPtrOutput { return o.ApplyT(func(v *ExperimentTemplateExperimentReportConfiguration) *ExperimentTemplateExperimentReportConfigurationDataSourcesProperties { if v == nil { @@ -558,6 +574,7 @@ func (o ExperimentTemplateExperimentReportConfigurationPtrOutput) DataSources() }).(ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesPtrOutput) } +// The output destinations of the experiment report. func (o ExperimentTemplateExperimentReportConfigurationPtrOutput) Outputs() ExperimentTemplateExperimentReportConfigurationOutputsPropertiesPtrOutput { return o.ApplyT(func(v *ExperimentTemplateExperimentReportConfiguration) *ExperimentTemplateExperimentReportConfigurationOutputsProperties { if v == nil { @@ -567,6 +584,7 @@ func (o ExperimentTemplateExperimentReportConfigurationPtrOutput) Outputs() Expe }).(ExperimentTemplateExperimentReportConfigurationOutputsPropertiesPtrOutput) } +// The duration after the experiment end time for the data sources to include in the report. func (o ExperimentTemplateExperimentReportConfigurationPtrOutput) PostExperimentDuration() pulumi.StringPtrOutput { return o.ApplyT(func(v *ExperimentTemplateExperimentReportConfiguration) *string { if v == nil { @@ -576,6 +594,7 @@ func (o ExperimentTemplateExperimentReportConfigurationPtrOutput) PostExperiment }).(pulumi.StringPtrOutput) } +// The duration before the experiment start time for the data sources to include in the report. func (o ExperimentTemplateExperimentReportConfigurationPtrOutput) PreExperimentDuration() pulumi.StringPtrOutput { return o.ApplyT(func(v *ExperimentTemplateExperimentReportConfiguration) *string { if v == nil { @@ -585,6 +604,7 @@ func (o ExperimentTemplateExperimentReportConfigurationPtrOutput) PreExperimentD }).(pulumi.StringPtrOutput) } +// The data sources for the experiment report. type ExperimentTemplateExperimentReportConfigurationDataSourcesProperties struct { CloudWatchDashboards []ExperimentTemplateCloudWatchDashboard `pulumi:"cloudWatchDashboards"` } @@ -600,6 +620,7 @@ type ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesInput i ToExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesOutputWithContext(context.Context) ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesOutput } +// The data sources for the experiment report. type ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesArgs struct { CloudWatchDashboards ExperimentTemplateCloudWatchDashboardArrayInput `pulumi:"cloudWatchDashboards"` } @@ -657,6 +678,7 @@ func (i *experimentTemplateExperimentReportConfigurationDataSourcesPropertiesPtr return pulumi.ToOutputWithContext(ctx, i).(ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesPtrOutput) } +// The data sources for the experiment report. type ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesOutput struct{ *pulumi.OutputState } func (ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesOutput) ElementType() reflect.Type { @@ -720,6 +742,7 @@ func (o ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesPtrO }).(ExperimentTemplateCloudWatchDashboardArrayOutput) } +// The output destinations of the experiment report. type ExperimentTemplateExperimentReportConfigurationOutputsProperties struct { ExperimentReportS3Configuration ExperimentTemplateExperimentReportConfigurationOutputsPropertiesExperimentReportS3ConfigurationProperties `pulumi:"experimentReportS3Configuration"` } @@ -735,6 +758,7 @@ type ExperimentTemplateExperimentReportConfigurationOutputsPropertiesInput inter ToExperimentTemplateExperimentReportConfigurationOutputsPropertiesOutputWithContext(context.Context) ExperimentTemplateExperimentReportConfigurationOutputsPropertiesOutput } +// The output destinations of the experiment report. type ExperimentTemplateExperimentReportConfigurationOutputsPropertiesArgs struct { ExperimentReportS3Configuration ExperimentTemplateExperimentReportConfigurationOutputsPropertiesExperimentReportS3ConfigurationPropertiesInput `pulumi:"experimentReportS3Configuration"` } @@ -792,6 +816,7 @@ func (i *experimentTemplateExperimentReportConfigurationOutputsPropertiesPtrType return pulumi.ToOutputWithContext(ctx, i).(ExperimentTemplateExperimentReportConfigurationOutputsPropertiesPtrOutput) } +// The output destinations of the experiment report. type ExperimentTemplateExperimentReportConfigurationOutputsPropertiesOutput struct{ *pulumi.OutputState } func (ExperimentTemplateExperimentReportConfigurationOutputsPropertiesOutput) ElementType() reflect.Type { diff --git a/sdk/go/aws/lambda/permission.go b/sdk/go/aws/lambda/permission.go index f1dba2db41..2244e79235 100644 --- a/sdk/go/aws/lambda/permission.go +++ b/sdk/go/aws/lambda/permission.go @@ -35,7 +35,7 @@ type Permission struct { FunctionName pulumi.StringOutput `pulumi:"functionName"` // The type of authentication that your function URL uses. Set to ``AWS_IAM`` if you want to restrict access to authenticated users only. Set to ``NONE`` if you want to bypass IAM authentication to create a public endpoint. For more information, see [Security and auth model for Lambda function URLs](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html). FunctionUrlAuthType PermissionFunctionUrlAuthTypePtrOutput `pulumi:"functionUrlAuthType"` - // The AWS-service or AWS-account that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service. + // The AWS-service, AWS-account, IAM user, or IAM role that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service. Principal pulumi.StringOutput `pulumi:"principal"` // The identifier for your organization in AOlong. Use this to grant permissions to all the AWS-accounts under this organization. PrincipalOrgId pulumi.StringPtrOutput `pulumi:"principalOrgId"` @@ -120,7 +120,7 @@ type permissionArgs struct { FunctionName string `pulumi:"functionName"` // The type of authentication that your function URL uses. Set to ``AWS_IAM`` if you want to restrict access to authenticated users only. Set to ``NONE`` if you want to bypass IAM authentication to create a public endpoint. For more information, see [Security and auth model for Lambda function URLs](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html). FunctionUrlAuthType *PermissionFunctionUrlAuthType `pulumi:"functionUrlAuthType"` - // The AWS-service or AWS-account that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service. + // The AWS-service, AWS-account, IAM user, or IAM role that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service. Principal string `pulumi:"principal"` // The identifier for your organization in AOlong. Use this to grant permissions to all the AWS-accounts under this organization. PrincipalOrgId *string `pulumi:"principalOrgId"` @@ -147,7 +147,7 @@ type PermissionArgs struct { FunctionName pulumi.StringInput // The type of authentication that your function URL uses. Set to ``AWS_IAM`` if you want to restrict access to authenticated users only. Set to ``NONE`` if you want to bypass IAM authentication to create a public endpoint. For more information, see [Security and auth model for Lambda function URLs](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html). FunctionUrlAuthType PermissionFunctionUrlAuthTypePtrInput - // The AWS-service or AWS-account that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service. + // The AWS-service, AWS-account, IAM user, or IAM role that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service. Principal pulumi.StringInput // The identifier for your organization in AOlong. Use this to grant permissions to all the AWS-accounts under this organization. PrincipalOrgId pulumi.StringPtrInput @@ -226,7 +226,7 @@ func (o PermissionOutput) FunctionUrlAuthType() PermissionFunctionUrlAuthTypePtr return o.ApplyT(func(v *Permission) PermissionFunctionUrlAuthTypePtrOutput { return v.FunctionUrlAuthType }).(PermissionFunctionUrlAuthTypePtrOutput) } -// The AWS-service or AWS-account that invokes the function. If you specify a service, use “SourceArn“ or “SourceAccount“ to limit who can invoke the function through that service. +// The AWS-service, AWS-account, IAM user, or IAM role that invokes the function. If you specify a service, use “SourceArn“ or “SourceAccount“ to limit who can invoke the function through that service. func (o PermissionOutput) Principal() pulumi.StringOutput { return o.ApplyT(func(v *Permission) pulumi.StringOutput { return v.Principal }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/redshift/integration.go b/sdk/go/aws/redshift/integration.go index 7f231116cd..4970a54966 100644 --- a/sdk/go/aws/redshift/integration.go +++ b/sdk/go/aws/redshift/integration.go @@ -27,11 +27,11 @@ type Integration struct { IntegrationName pulumi.StringPtrOutput `pulumi:"integrationName"` // An KMS key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, the default AWS owned KMS key is used. KmsKeyId pulumi.StringPtrOutput `pulumi:"kmsKeyId"` - // The Amazon Resource Name (ARN) of the database to use as the source for replication, for example, arn:aws:dynamodb:us-east-2:123412341234:table/dynamotable + // The Amazon Resource Name (ARN) of the database to use as the source for replication SourceArn pulumi.StringOutput `pulumi:"sourceArn"` // An array of key-value pairs to apply to this resource. Tags aws.TagArrayOutput `pulumi:"tags"` - // The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication, for example, arn:aws:redshift:us-east-2:123412341234:namespace:e43aab3e-10a3-4ec4-83d4-f227ff9bfbcf + // The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication TargetArn pulumi.StringOutput `pulumi:"targetArn"` } @@ -94,11 +94,11 @@ type integrationArgs struct { IntegrationName *string `pulumi:"integrationName"` // An KMS key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, the default AWS owned KMS key is used. KmsKeyId *string `pulumi:"kmsKeyId"` - // The Amazon Resource Name (ARN) of the database to use as the source for replication, for example, arn:aws:dynamodb:us-east-2:123412341234:table/dynamotable + // The Amazon Resource Name (ARN) of the database to use as the source for replication SourceArn string `pulumi:"sourceArn"` // An array of key-value pairs to apply to this resource. Tags []aws.Tag `pulumi:"tags"` - // The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication, for example, arn:aws:redshift:us-east-2:123412341234:namespace:e43aab3e-10a3-4ec4-83d4-f227ff9bfbcf + // The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication TargetArn string `pulumi:"targetArn"` } @@ -110,11 +110,11 @@ type IntegrationArgs struct { IntegrationName pulumi.StringPtrInput // An KMS key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, the default AWS owned KMS key is used. KmsKeyId pulumi.StringPtrInput - // The Amazon Resource Name (ARN) of the database to use as the source for replication, for example, arn:aws:dynamodb:us-east-2:123412341234:table/dynamotable + // The Amazon Resource Name (ARN) of the database to use as the source for replication SourceArn pulumi.StringInput // An array of key-value pairs to apply to this resource. Tags aws.TagArrayInput - // The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication, for example, arn:aws:redshift:us-east-2:123412341234:namespace:e43aab3e-10a3-4ec4-83d4-f227ff9bfbcf + // The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication TargetArn pulumi.StringInput } @@ -180,7 +180,7 @@ func (o IntegrationOutput) KmsKeyId() pulumi.StringPtrOutput { return o.ApplyT(func(v *Integration) pulumi.StringPtrOutput { return v.KmsKeyId }).(pulumi.StringPtrOutput) } -// The Amazon Resource Name (ARN) of the database to use as the source for replication, for example, arn:aws:dynamodb:us-east-2:123412341234:table/dynamotable +// The Amazon Resource Name (ARN) of the database to use as the source for replication func (o IntegrationOutput) SourceArn() pulumi.StringOutput { return o.ApplyT(func(v *Integration) pulumi.StringOutput { return v.SourceArn }).(pulumi.StringOutput) } @@ -190,7 +190,7 @@ func (o IntegrationOutput) Tags() aws.TagArrayOutput { return o.ApplyT(func(v *Integration) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) } -// The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication, for example, arn:aws:redshift:us-east-2:123412341234:namespace:e43aab3e-10a3-4ec4-83d4-f227ff9bfbcf +// The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication func (o IntegrationOutput) TargetArn() pulumi.StringOutput { return o.ApplyT(func(v *Integration) pulumi.StringOutput { return v.TargetArn }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/redshiftserverless/getWorkgroup.go b/sdk/go/aws/redshiftserverless/getWorkgroup.go index 46c76743fe..73b6913274 100644 --- a/sdk/go/aws/redshiftserverless/getWorkgroup.go +++ b/sdk/go/aws/redshiftserverless/getWorkgroup.go @@ -7,6 +7,7 @@ import ( "context" "reflect" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws" "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -34,6 +35,8 @@ type LookupWorkgroupResult struct { Port *int `pulumi:"port"` // A value that specifies whether the workgroup can be accessible from a public network. PubliclyAccessible *bool `pulumi:"publiclyAccessible"` + // The map of the key-value pairs used to tag the workgroup. + Tags []aws.Tag `pulumi:"tags"` // Definition for workgroup resource Workgroup *WorkgroupType `pulumi:"workgroup"` } @@ -95,6 +98,11 @@ func (o LookupWorkgroupResultOutput) PubliclyAccessible() pulumi.BoolPtrOutput { return o.ApplyT(func(v LookupWorkgroupResult) *bool { return v.PubliclyAccessible }).(pulumi.BoolPtrOutput) } +// The map of the key-value pairs used to tag the workgroup. +func (o LookupWorkgroupResultOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v LookupWorkgroupResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) +} + // Definition for workgroup resource func (o LookupWorkgroupResultOutput) Workgroup() WorkgroupTypePtrOutput { return o.ApplyT(func(v LookupWorkgroupResult) *WorkgroupType { return v.Workgroup }).(WorkgroupTypePtrOutput) diff --git a/sdk/go/aws/sagemaker/cluster.go b/sdk/go/aws/sagemaker/cluster.go index 3988e20d51..367f2bdc4f 100644 --- a/sdk/go/aws/sagemaker/cluster.go +++ b/sdk/go/aws/sagemaker/cluster.go @@ -54,6 +54,7 @@ func NewCluster(ctx *pulumi.Context, "instanceGroups[*].executionRole", "instanceGroups[*].instanceGroupName", "instanceGroups[*].instanceType", + "instanceGroups[*].overrideVpcConfig", "instanceGroups[*].threadsPerCore", "orchestrator", "vpcConfig", diff --git a/sdk/go/aws/sagemaker/pulumiTypes.go b/sdk/go/aws/sagemaker/pulumiTypes.go index 6e62902dce..5b87976bb6 100644 --- a/sdk/go/aws/sagemaker/pulumiTypes.go +++ b/sdk/go/aws/sagemaker/pulumiTypes.go @@ -1248,6 +1248,7 @@ type ClusterInstanceGroup struct { InstanceType string `pulumi:"instanceType"` LifeCycleConfig ClusterLifeCycleConfig `pulumi:"lifeCycleConfig"` OnStartDeepHealthChecks []ClusterDeepHealthCheckType `pulumi:"onStartDeepHealthChecks"` + OverrideVpcConfig *ClusterVpcConfig `pulumi:"overrideVpcConfig"` // The number you specified to TreadsPerCore in CreateCluster for enabling or disabling multithreading. For instance types that support multithreading, you can specify 1 for disabling multithreading and 2 for enabling multithreading. ThreadsPerCore *int `pulumi:"threadsPerCore"` } @@ -1275,6 +1276,7 @@ type ClusterInstanceGroupArgs struct { InstanceType pulumi.StringInput `pulumi:"instanceType"` LifeCycleConfig ClusterLifeCycleConfigInput `pulumi:"lifeCycleConfig"` OnStartDeepHealthChecks ClusterDeepHealthCheckTypeArrayInput `pulumi:"onStartDeepHealthChecks"` + OverrideVpcConfig ClusterVpcConfigPtrInput `pulumi:"overrideVpcConfig"` // The number you specified to TreadsPerCore in CreateCluster for enabling or disabling multithreading. For instance types that support multithreading, you can specify 1 for disabling multithreading and 2 for enabling multithreading. ThreadsPerCore pulumi.IntPtrInput `pulumi:"threadsPerCore"` } @@ -1365,6 +1367,10 @@ func (o ClusterInstanceGroupOutput) OnStartDeepHealthChecks() ClusterDeepHealthC return o.ApplyT(func(v ClusterInstanceGroup) []ClusterDeepHealthCheckType { return v.OnStartDeepHealthChecks }).(ClusterDeepHealthCheckTypeArrayOutput) } +func (o ClusterInstanceGroupOutput) OverrideVpcConfig() ClusterVpcConfigPtrOutput { + return o.ApplyT(func(v ClusterInstanceGroup) *ClusterVpcConfig { return v.OverrideVpcConfig }).(ClusterVpcConfigPtrOutput) +} + // The number you specified to TreadsPerCore in CreateCluster for enabling or disabling multithreading. For instance types that support multithreading, you can specify 1 for disabling multithreading and 2 for enabling multithreading. func (o ClusterInstanceGroupOutput) ThreadsPerCore() pulumi.IntPtrOutput { return o.ApplyT(func(v ClusterInstanceGroup) *int { return v.ThreadsPerCore }).(pulumi.IntPtrOutput) diff --git a/sdk/go/aws/vpclattice/accessLogSubscription.go b/sdk/go/aws/vpclattice/accessLogSubscription.go index 915efbd185..64ae0bd253 100644 --- a/sdk/go/aws/vpclattice/accessLogSubscription.go +++ b/sdk/go/aws/vpclattice/accessLogSubscription.go @@ -28,7 +28,8 @@ type AccessLogSubscription struct { // The ID of the service network or service. ResourceId pulumi.StringOutput `pulumi:"resourceId"` // The ID or Amazon Resource Name (ARN) of the service network or service. - ResourceIdentifier pulumi.StringPtrOutput `pulumi:"resourceIdentifier"` + ResourceIdentifier pulumi.StringPtrOutput `pulumi:"resourceIdentifier"` + ServiceNetworkLogType AccessLogSubscriptionServiceNetworkLogTypePtrOutput `pulumi:"serviceNetworkLogType"` // The tags for the access log subscription. Tags aws.TagArrayOutput `pulumi:"tags"` } @@ -83,7 +84,8 @@ type accessLogSubscriptionArgs struct { // The Amazon Resource Name (ARN) of the destination. The supported destination types are CloudWatch Log groups, Kinesis Data Firehose delivery streams, and Amazon S3 buckets. DestinationArn string `pulumi:"destinationArn"` // The ID or Amazon Resource Name (ARN) of the service network or service. - ResourceIdentifier *string `pulumi:"resourceIdentifier"` + ResourceIdentifier *string `pulumi:"resourceIdentifier"` + ServiceNetworkLogType *AccessLogSubscriptionServiceNetworkLogType `pulumi:"serviceNetworkLogType"` // The tags for the access log subscription. Tags []aws.Tag `pulumi:"tags"` } @@ -93,7 +95,8 @@ type AccessLogSubscriptionArgs struct { // The Amazon Resource Name (ARN) of the destination. The supported destination types are CloudWatch Log groups, Kinesis Data Firehose delivery streams, and Amazon S3 buckets. DestinationArn pulumi.StringInput // The ID or Amazon Resource Name (ARN) of the service network or service. - ResourceIdentifier pulumi.StringPtrInput + ResourceIdentifier pulumi.StringPtrInput + ServiceNetworkLogType AccessLogSubscriptionServiceNetworkLogTypePtrInput // The tags for the access log subscription. Tags aws.TagArrayInput } @@ -165,6 +168,12 @@ func (o AccessLogSubscriptionOutput) ResourceIdentifier() pulumi.StringPtrOutput return o.ApplyT(func(v *AccessLogSubscription) pulumi.StringPtrOutput { return v.ResourceIdentifier }).(pulumi.StringPtrOutput) } +func (o AccessLogSubscriptionOutput) ServiceNetworkLogType() AccessLogSubscriptionServiceNetworkLogTypePtrOutput { + return o.ApplyT(func(v *AccessLogSubscription) AccessLogSubscriptionServiceNetworkLogTypePtrOutput { + return v.ServiceNetworkLogType + }).(AccessLogSubscriptionServiceNetworkLogTypePtrOutput) +} + // The tags for the access log subscription. func (o AccessLogSubscriptionOutput) Tags() aws.TagArrayOutput { return o.ApplyT(func(v *AccessLogSubscription) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) diff --git a/sdk/go/aws/vpclattice/getAccessLogSubscription.go b/sdk/go/aws/vpclattice/getAccessLogSubscription.go index 8359bca62e..703bbdc7ac 100644 --- a/sdk/go/aws/vpclattice/getAccessLogSubscription.go +++ b/sdk/go/aws/vpclattice/getAccessLogSubscription.go @@ -38,7 +38,8 @@ type LookupAccessLogSubscriptionResult struct { // The Amazon Resource Name (ARN) of the access log subscription. ResourceArn *string `pulumi:"resourceArn"` // The ID of the service network or service. - ResourceId *string `pulumi:"resourceId"` + ResourceId *string `pulumi:"resourceId"` + ServiceNetworkLogType *AccessLogSubscriptionServiceNetworkLogType `pulumi:"serviceNetworkLogType"` // The tags for the access log subscription. Tags []aws.Tag `pulumi:"tags"` } @@ -110,6 +111,12 @@ func (o LookupAccessLogSubscriptionResultOutput) ResourceId() pulumi.StringPtrOu return o.ApplyT(func(v LookupAccessLogSubscriptionResult) *string { return v.ResourceId }).(pulumi.StringPtrOutput) } +func (o LookupAccessLogSubscriptionResultOutput) ServiceNetworkLogType() AccessLogSubscriptionServiceNetworkLogTypePtrOutput { + return o.ApplyT(func(v LookupAccessLogSubscriptionResult) *AccessLogSubscriptionServiceNetworkLogType { + return v.ServiceNetworkLogType + }).(AccessLogSubscriptionServiceNetworkLogTypePtrOutput) +} + // The tags for the access log subscription. func (o LookupAccessLogSubscriptionResultOutput) Tags() aws.TagArrayOutput { return o.ApplyT(func(v LookupAccessLogSubscriptionResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) diff --git a/sdk/go/aws/vpclattice/getServiceNetwork.go b/sdk/go/aws/vpclattice/getServiceNetwork.go index eecab1bde0..a113e94272 100644 --- a/sdk/go/aws/vpclattice/getServiceNetwork.go +++ b/sdk/go/aws/vpclattice/getServiceNetwork.go @@ -41,7 +41,8 @@ type LookupServiceNetworkResult struct { // The ID of the service network. Id *string `pulumi:"id"` // The date and time of the last update, specified in ISO-8601 format. - LastUpdatedAt *string `pulumi:"lastUpdatedAt"` + LastUpdatedAt *string `pulumi:"lastUpdatedAt"` + SharingConfig *ServiceNetworkSharingConfig `pulumi:"sharingConfig"` // The tags for the service network. Tags []aws.Tag `pulumi:"tags"` } @@ -116,6 +117,10 @@ func (o LookupServiceNetworkResultOutput) LastUpdatedAt() pulumi.StringPtrOutput return o.ApplyT(func(v LookupServiceNetworkResult) *string { return v.LastUpdatedAt }).(pulumi.StringPtrOutput) } +func (o LookupServiceNetworkResultOutput) SharingConfig() ServiceNetworkSharingConfigPtrOutput { + return o.ApplyT(func(v LookupServiceNetworkResult) *ServiceNetworkSharingConfig { return v.SharingConfig }).(ServiceNetworkSharingConfigPtrOutput) +} + // The tags for the service network. func (o LookupServiceNetworkResultOutput) Tags() aws.TagArrayOutput { return o.ApplyT(func(v LookupServiceNetworkResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) diff --git a/sdk/go/aws/vpclattice/pulumiEnums.go b/sdk/go/aws/vpclattice/pulumiEnums.go index 027ae6d410..10082211cc 100644 --- a/sdk/go/aws/vpclattice/pulumiEnums.go +++ b/sdk/go/aws/vpclattice/pulumiEnums.go @@ -10,6 +10,171 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +type AccessLogSubscriptionServiceNetworkLogType string + +const ( + AccessLogSubscriptionServiceNetworkLogTypeService = AccessLogSubscriptionServiceNetworkLogType("SERVICE") + AccessLogSubscriptionServiceNetworkLogTypeResource = AccessLogSubscriptionServiceNetworkLogType("RESOURCE") +) + +func (AccessLogSubscriptionServiceNetworkLogType) ElementType() reflect.Type { + return reflect.TypeOf((*AccessLogSubscriptionServiceNetworkLogType)(nil)).Elem() +} + +func (e AccessLogSubscriptionServiceNetworkLogType) ToAccessLogSubscriptionServiceNetworkLogTypeOutput() AccessLogSubscriptionServiceNetworkLogTypeOutput { + return pulumi.ToOutput(e).(AccessLogSubscriptionServiceNetworkLogTypeOutput) +} + +func (e AccessLogSubscriptionServiceNetworkLogType) ToAccessLogSubscriptionServiceNetworkLogTypeOutputWithContext(ctx context.Context) AccessLogSubscriptionServiceNetworkLogTypeOutput { + return pulumi.ToOutputWithContext(ctx, e).(AccessLogSubscriptionServiceNetworkLogTypeOutput) +} + +func (e AccessLogSubscriptionServiceNetworkLogType) ToAccessLogSubscriptionServiceNetworkLogTypePtrOutput() AccessLogSubscriptionServiceNetworkLogTypePtrOutput { + return e.ToAccessLogSubscriptionServiceNetworkLogTypePtrOutputWithContext(context.Background()) +} + +func (e AccessLogSubscriptionServiceNetworkLogType) ToAccessLogSubscriptionServiceNetworkLogTypePtrOutputWithContext(ctx context.Context) AccessLogSubscriptionServiceNetworkLogTypePtrOutput { + return AccessLogSubscriptionServiceNetworkLogType(e).ToAccessLogSubscriptionServiceNetworkLogTypeOutputWithContext(ctx).ToAccessLogSubscriptionServiceNetworkLogTypePtrOutputWithContext(ctx) +} + +func (e AccessLogSubscriptionServiceNetworkLogType) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e AccessLogSubscriptionServiceNetworkLogType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e AccessLogSubscriptionServiceNetworkLogType) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e AccessLogSubscriptionServiceNetworkLogType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type AccessLogSubscriptionServiceNetworkLogTypeOutput struct{ *pulumi.OutputState } + +func (AccessLogSubscriptionServiceNetworkLogTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccessLogSubscriptionServiceNetworkLogType)(nil)).Elem() +} + +func (o AccessLogSubscriptionServiceNetworkLogTypeOutput) ToAccessLogSubscriptionServiceNetworkLogTypeOutput() AccessLogSubscriptionServiceNetworkLogTypeOutput { + return o +} + +func (o AccessLogSubscriptionServiceNetworkLogTypeOutput) ToAccessLogSubscriptionServiceNetworkLogTypeOutputWithContext(ctx context.Context) AccessLogSubscriptionServiceNetworkLogTypeOutput { + return o +} + +func (o AccessLogSubscriptionServiceNetworkLogTypeOutput) ToAccessLogSubscriptionServiceNetworkLogTypePtrOutput() AccessLogSubscriptionServiceNetworkLogTypePtrOutput { + return o.ToAccessLogSubscriptionServiceNetworkLogTypePtrOutputWithContext(context.Background()) +} + +func (o AccessLogSubscriptionServiceNetworkLogTypeOutput) ToAccessLogSubscriptionServiceNetworkLogTypePtrOutputWithContext(ctx context.Context) AccessLogSubscriptionServiceNetworkLogTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccessLogSubscriptionServiceNetworkLogType) *AccessLogSubscriptionServiceNetworkLogType { + return &v + }).(AccessLogSubscriptionServiceNetworkLogTypePtrOutput) +} + +func (o AccessLogSubscriptionServiceNetworkLogTypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o AccessLogSubscriptionServiceNetworkLogTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e AccessLogSubscriptionServiceNetworkLogType) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o AccessLogSubscriptionServiceNetworkLogTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o AccessLogSubscriptionServiceNetworkLogTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e AccessLogSubscriptionServiceNetworkLogType) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type AccessLogSubscriptionServiceNetworkLogTypePtrOutput struct{ *pulumi.OutputState } + +func (AccessLogSubscriptionServiceNetworkLogTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccessLogSubscriptionServiceNetworkLogType)(nil)).Elem() +} + +func (o AccessLogSubscriptionServiceNetworkLogTypePtrOutput) ToAccessLogSubscriptionServiceNetworkLogTypePtrOutput() AccessLogSubscriptionServiceNetworkLogTypePtrOutput { + return o +} + +func (o AccessLogSubscriptionServiceNetworkLogTypePtrOutput) ToAccessLogSubscriptionServiceNetworkLogTypePtrOutputWithContext(ctx context.Context) AccessLogSubscriptionServiceNetworkLogTypePtrOutput { + return o +} + +func (o AccessLogSubscriptionServiceNetworkLogTypePtrOutput) Elem() AccessLogSubscriptionServiceNetworkLogTypeOutput { + return o.ApplyT(func(v *AccessLogSubscriptionServiceNetworkLogType) AccessLogSubscriptionServiceNetworkLogType { + if v != nil { + return *v + } + var ret AccessLogSubscriptionServiceNetworkLogType + return ret + }).(AccessLogSubscriptionServiceNetworkLogTypeOutput) +} + +func (o AccessLogSubscriptionServiceNetworkLogTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o AccessLogSubscriptionServiceNetworkLogTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *AccessLogSubscriptionServiceNetworkLogType) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// AccessLogSubscriptionServiceNetworkLogTypeInput is an input type that accepts values of the AccessLogSubscriptionServiceNetworkLogType enum +// A concrete instance of `AccessLogSubscriptionServiceNetworkLogTypeInput` can be one of the following: +// +// AccessLogSubscriptionServiceNetworkLogTypeService +// AccessLogSubscriptionServiceNetworkLogTypeResource +type AccessLogSubscriptionServiceNetworkLogTypeInput interface { + pulumi.Input + + ToAccessLogSubscriptionServiceNetworkLogTypeOutput() AccessLogSubscriptionServiceNetworkLogTypeOutput + ToAccessLogSubscriptionServiceNetworkLogTypeOutputWithContext(context.Context) AccessLogSubscriptionServiceNetworkLogTypeOutput +} + +var accessLogSubscriptionServiceNetworkLogTypePtrType = reflect.TypeOf((**AccessLogSubscriptionServiceNetworkLogType)(nil)).Elem() + +type AccessLogSubscriptionServiceNetworkLogTypePtrInput interface { + pulumi.Input + + ToAccessLogSubscriptionServiceNetworkLogTypePtrOutput() AccessLogSubscriptionServiceNetworkLogTypePtrOutput + ToAccessLogSubscriptionServiceNetworkLogTypePtrOutputWithContext(context.Context) AccessLogSubscriptionServiceNetworkLogTypePtrOutput +} + +type accessLogSubscriptionServiceNetworkLogTypePtr string + +func AccessLogSubscriptionServiceNetworkLogTypePtr(v string) AccessLogSubscriptionServiceNetworkLogTypePtrInput { + return (*accessLogSubscriptionServiceNetworkLogTypePtr)(&v) +} + +func (*accessLogSubscriptionServiceNetworkLogTypePtr) ElementType() reflect.Type { + return accessLogSubscriptionServiceNetworkLogTypePtrType +} + +func (in *accessLogSubscriptionServiceNetworkLogTypePtr) ToAccessLogSubscriptionServiceNetworkLogTypePtrOutput() AccessLogSubscriptionServiceNetworkLogTypePtrOutput { + return pulumi.ToOutput(in).(AccessLogSubscriptionServiceNetworkLogTypePtrOutput) +} + +func (in *accessLogSubscriptionServiceNetworkLogTypePtr) ToAccessLogSubscriptionServiceNetworkLogTypePtrOutputWithContext(ctx context.Context) AccessLogSubscriptionServiceNetworkLogTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(AccessLogSubscriptionServiceNetworkLogTypePtrOutput) +} + // The state of the auth policy. The auth policy is only active when the auth type is set to `AWS _IAM` . If you provide a policy, then authentication and authorization decisions are made based on this policy and the client's IAM policy. If the auth type is `NONE` , then any auth policy you provide will remain inactive. type AuthPolicyStateEnum string @@ -2333,6 +2498,8 @@ func (in *targetGroupTypePtr) ToTargetGroupTypePtrOutputWithContext(ctx context. } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AccessLogSubscriptionServiceNetworkLogTypeInput)(nil)).Elem(), AccessLogSubscriptionServiceNetworkLogType("SERVICE")) + pulumi.RegisterInputType(reflect.TypeOf((*AccessLogSubscriptionServiceNetworkLogTypePtrInput)(nil)).Elem(), AccessLogSubscriptionServiceNetworkLogType("SERVICE")) pulumi.RegisterInputType(reflect.TypeOf((*ListenerProtocolInput)(nil)).Elem(), ListenerProtocol("HTTP")) pulumi.RegisterInputType(reflect.TypeOf((*ListenerProtocolPtrInput)(nil)).Elem(), ListenerProtocol("HTTP")) pulumi.RegisterInputType(reflect.TypeOf((*RuleHttpMatchMethodInput)(nil)).Elem(), RuleHttpMatchMethod("CONNECT")) @@ -2355,6 +2522,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupHealthCheckConfigProtocolVersionPtrInput)(nil)).Elem(), TargetGroupHealthCheckConfigProtocolVersion("HTTP1")) pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupTypeInput)(nil)).Elem(), TargetGroupType("IP")) pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupTypePtrInput)(nil)).Elem(), TargetGroupType("IP")) + pulumi.RegisterOutputType(AccessLogSubscriptionServiceNetworkLogTypeOutput{}) + pulumi.RegisterOutputType(AccessLogSubscriptionServiceNetworkLogTypePtrOutput{}) pulumi.RegisterOutputType(AuthPolicyStateEnumOutput{}) pulumi.RegisterOutputType(AuthPolicyStateEnumPtrOutput{}) pulumi.RegisterOutputType(ListenerProtocolOutput{}) diff --git a/sdk/go/aws/vpclattice/pulumiTypes.go b/sdk/go/aws/vpclattice/pulumiTypes.go index 0b60c7e50d..686f793643 100644 --- a/sdk/go/aws/vpclattice/pulumiTypes.go +++ b/sdk/go/aws/vpclattice/pulumiTypes.go @@ -2046,6 +2046,139 @@ type ServiceNetworkServiceAssociationTag struct { Value string `pulumi:"value"` } +type ServiceNetworkSharingConfig struct { + Enabled bool `pulumi:"enabled"` +} + +// ServiceNetworkSharingConfigInput is an input type that accepts ServiceNetworkSharingConfigArgs and ServiceNetworkSharingConfigOutput values. +// You can construct a concrete instance of `ServiceNetworkSharingConfigInput` via: +// +// ServiceNetworkSharingConfigArgs{...} +type ServiceNetworkSharingConfigInput interface { + pulumi.Input + + ToServiceNetworkSharingConfigOutput() ServiceNetworkSharingConfigOutput + ToServiceNetworkSharingConfigOutputWithContext(context.Context) ServiceNetworkSharingConfigOutput +} + +type ServiceNetworkSharingConfigArgs struct { + Enabled pulumi.BoolInput `pulumi:"enabled"` +} + +func (ServiceNetworkSharingConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceNetworkSharingConfig)(nil)).Elem() +} + +func (i ServiceNetworkSharingConfigArgs) ToServiceNetworkSharingConfigOutput() ServiceNetworkSharingConfigOutput { + return i.ToServiceNetworkSharingConfigOutputWithContext(context.Background()) +} + +func (i ServiceNetworkSharingConfigArgs) ToServiceNetworkSharingConfigOutputWithContext(ctx context.Context) ServiceNetworkSharingConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceNetworkSharingConfigOutput) +} + +func (i ServiceNetworkSharingConfigArgs) ToServiceNetworkSharingConfigPtrOutput() ServiceNetworkSharingConfigPtrOutput { + return i.ToServiceNetworkSharingConfigPtrOutputWithContext(context.Background()) +} + +func (i ServiceNetworkSharingConfigArgs) ToServiceNetworkSharingConfigPtrOutputWithContext(ctx context.Context) ServiceNetworkSharingConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceNetworkSharingConfigOutput).ToServiceNetworkSharingConfigPtrOutputWithContext(ctx) +} + +// ServiceNetworkSharingConfigPtrInput is an input type that accepts ServiceNetworkSharingConfigArgs, ServiceNetworkSharingConfigPtr and ServiceNetworkSharingConfigPtrOutput values. +// You can construct a concrete instance of `ServiceNetworkSharingConfigPtrInput` via: +// +// ServiceNetworkSharingConfigArgs{...} +// +// or: +// +// nil +type ServiceNetworkSharingConfigPtrInput interface { + pulumi.Input + + ToServiceNetworkSharingConfigPtrOutput() ServiceNetworkSharingConfigPtrOutput + ToServiceNetworkSharingConfigPtrOutputWithContext(context.Context) ServiceNetworkSharingConfigPtrOutput +} + +type serviceNetworkSharingConfigPtrType ServiceNetworkSharingConfigArgs + +func ServiceNetworkSharingConfigPtr(v *ServiceNetworkSharingConfigArgs) ServiceNetworkSharingConfigPtrInput { + return (*serviceNetworkSharingConfigPtrType)(v) +} + +func (*serviceNetworkSharingConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceNetworkSharingConfig)(nil)).Elem() +} + +func (i *serviceNetworkSharingConfigPtrType) ToServiceNetworkSharingConfigPtrOutput() ServiceNetworkSharingConfigPtrOutput { + return i.ToServiceNetworkSharingConfigPtrOutputWithContext(context.Background()) +} + +func (i *serviceNetworkSharingConfigPtrType) ToServiceNetworkSharingConfigPtrOutputWithContext(ctx context.Context) ServiceNetworkSharingConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceNetworkSharingConfigPtrOutput) +} + +type ServiceNetworkSharingConfigOutput struct{ *pulumi.OutputState } + +func (ServiceNetworkSharingConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceNetworkSharingConfig)(nil)).Elem() +} + +func (o ServiceNetworkSharingConfigOutput) ToServiceNetworkSharingConfigOutput() ServiceNetworkSharingConfigOutput { + return o +} + +func (o ServiceNetworkSharingConfigOutput) ToServiceNetworkSharingConfigOutputWithContext(ctx context.Context) ServiceNetworkSharingConfigOutput { + return o +} + +func (o ServiceNetworkSharingConfigOutput) ToServiceNetworkSharingConfigPtrOutput() ServiceNetworkSharingConfigPtrOutput { + return o.ToServiceNetworkSharingConfigPtrOutputWithContext(context.Background()) +} + +func (o ServiceNetworkSharingConfigOutput) ToServiceNetworkSharingConfigPtrOutputWithContext(ctx context.Context) ServiceNetworkSharingConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServiceNetworkSharingConfig) *ServiceNetworkSharingConfig { + return &v + }).(ServiceNetworkSharingConfigPtrOutput) +} + +func (o ServiceNetworkSharingConfigOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v ServiceNetworkSharingConfig) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +type ServiceNetworkSharingConfigPtrOutput struct{ *pulumi.OutputState } + +func (ServiceNetworkSharingConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServiceNetworkSharingConfig)(nil)).Elem() +} + +func (o ServiceNetworkSharingConfigPtrOutput) ToServiceNetworkSharingConfigPtrOutput() ServiceNetworkSharingConfigPtrOutput { + return o +} + +func (o ServiceNetworkSharingConfigPtrOutput) ToServiceNetworkSharingConfigPtrOutputWithContext(ctx context.Context) ServiceNetworkSharingConfigPtrOutput { + return o +} + +func (o ServiceNetworkSharingConfigPtrOutput) Elem() ServiceNetworkSharingConfigOutput { + return o.ApplyT(func(v *ServiceNetworkSharingConfig) ServiceNetworkSharingConfig { + if v != nil { + return *v + } + var ret ServiceNetworkSharingConfig + return ret + }).(ServiceNetworkSharingConfigOutput) +} + +func (o ServiceNetworkSharingConfigPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ServiceNetworkSharingConfig) *bool { + if v == nil { + return nil + } + return &v.Enabled + }).(pulumi.BoolPtrOutput) +} + type ServiceNetworkTag struct { // The tag key. Key string `pulumi:"key"` @@ -2908,6 +3041,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ServiceDnsEntryPtrInput)(nil)).Elem(), ServiceDnsEntryArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServiceNetworkServiceAssociationDnsEntryInput)(nil)).Elem(), ServiceNetworkServiceAssociationDnsEntryArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServiceNetworkServiceAssociationDnsEntryPtrInput)(nil)).Elem(), ServiceNetworkServiceAssociationDnsEntryArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceNetworkSharingConfigInput)(nil)).Elem(), ServiceNetworkSharingConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServiceNetworkSharingConfigPtrInput)(nil)).Elem(), ServiceNetworkSharingConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupConfigInput)(nil)).Elem(), TargetGroupConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupConfigPtrInput)(nil)).Elem(), TargetGroupConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupHealthCheckConfigInput)(nil)).Elem(), TargetGroupHealthCheckConfigArgs{}) @@ -2947,6 +3082,8 @@ func init() { pulumi.RegisterOutputType(ServiceDnsEntryPtrOutput{}) pulumi.RegisterOutputType(ServiceNetworkServiceAssociationDnsEntryOutput{}) pulumi.RegisterOutputType(ServiceNetworkServiceAssociationDnsEntryPtrOutput{}) + pulumi.RegisterOutputType(ServiceNetworkSharingConfigOutput{}) + pulumi.RegisterOutputType(ServiceNetworkSharingConfigPtrOutput{}) pulumi.RegisterOutputType(TargetGroupConfigOutput{}) pulumi.RegisterOutputType(TargetGroupConfigPtrOutput{}) pulumi.RegisterOutputType(TargetGroupHealthCheckConfigOutput{}) diff --git a/sdk/go/aws/vpclattice/serviceNetwork.go b/sdk/go/aws/vpclattice/serviceNetwork.go index 3132489e8b..9cd7612d59 100644 --- a/sdk/go/aws/vpclattice/serviceNetwork.go +++ b/sdk/go/aws/vpclattice/serviceNetwork.go @@ -32,7 +32,8 @@ type ServiceNetwork struct { // The name of the service network. The name must be unique to the account. The valid characters are a-z, 0-9, and hyphens (-). You can't use a hyphen as the first or last character, or immediately after another hyphen. // // If you don't specify a name, CloudFormation generates one. However, if you specify a name, and later want to replace the resource, you must specify a new name. - Name pulumi.StringPtrOutput `pulumi:"name"` + Name pulumi.StringPtrOutput `pulumi:"name"` + SharingConfig ServiceNetworkSharingConfigPtrOutput `pulumi:"sharingConfig"` // The tags for the service network. Tags aws.TagArrayOutput `pulumi:"tags"` } @@ -89,7 +90,8 @@ type serviceNetworkArgs struct { // The name of the service network. The name must be unique to the account. The valid characters are a-z, 0-9, and hyphens (-). You can't use a hyphen as the first or last character, or immediately after another hyphen. // // If you don't specify a name, CloudFormation generates one. However, if you specify a name, and later want to replace the resource, you must specify a new name. - Name *string `pulumi:"name"` + Name *string `pulumi:"name"` + SharingConfig *ServiceNetworkSharingConfig `pulumi:"sharingConfig"` // The tags for the service network. Tags []aws.Tag `pulumi:"tags"` } @@ -104,7 +106,8 @@ type ServiceNetworkArgs struct { // The name of the service network. The name must be unique to the account. The valid characters are a-z, 0-9, and hyphens (-). You can't use a hyphen as the first or last character, or immediately after another hyphen. // // If you don't specify a name, CloudFormation generates one. However, if you specify a name, and later want to replace the resource, you must specify a new name. - Name pulumi.StringPtrInput + Name pulumi.StringPtrInput + SharingConfig ServiceNetworkSharingConfigPtrInput // The tags for the service network. Tags aws.TagArrayInput } @@ -181,6 +184,10 @@ func (o ServiceNetworkOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v *ServiceNetwork) pulumi.StringPtrOutput { return v.Name }).(pulumi.StringPtrOutput) } +func (o ServiceNetworkOutput) SharingConfig() ServiceNetworkSharingConfigPtrOutput { + return o.ApplyT(func(v *ServiceNetwork) ServiceNetworkSharingConfigPtrOutput { return v.SharingConfig }).(ServiceNetworkSharingConfigPtrOutput) +} + // The tags for the service network. func (o ServiceNetworkOutput) Tags() aws.TagArrayOutput { return o.ApplyT(func(v *ServiceNetwork) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) diff --git a/sdk/nodejs/accessanalyzer/analyzer.ts b/sdk/nodejs/accessanalyzer/analyzer.ts index 01addd05a9..95b9503de7 100644 --- a/sdk/nodejs/accessanalyzer/analyzer.ts +++ b/sdk/nodejs/accessanalyzer/analyzer.ts @@ -128,7 +128,7 @@ export class Analyzer extends pulumi.CustomResource { resourceInputs["type"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const replaceOnChanges = { replaceOnChanges: ["analyzerConfiguration", "analyzerName", "type"] }; + const replaceOnChanges = { replaceOnChanges: ["analyzerName", "type"] }; opts = pulumi.mergeOptions(opts, replaceOnChanges); super(Analyzer.__pulumiType, name, resourceInputs, opts); } diff --git a/sdk/nodejs/accessanalyzer/getAnalyzer.ts b/sdk/nodejs/accessanalyzer/getAnalyzer.ts index 6bd456a9f9..82e4040c75 100644 --- a/sdk/nodejs/accessanalyzer/getAnalyzer.ts +++ b/sdk/nodejs/accessanalyzer/getAnalyzer.ts @@ -25,6 +25,10 @@ export interface GetAnalyzerArgs { } export interface GetAnalyzerResult { + /** + * The configuration for the analyzer + */ + readonly analyzerConfiguration?: outputs.accessanalyzer.AnalyzerConfigurationProperties; /** * Specifies the archive rules to add for the analyzer. Archive rules automatically archive findings that meet the criteria you define for the rule. */ diff --git a/sdk/nodejs/applicationautoscaling/getScalingPolicy.ts b/sdk/nodejs/applicationautoscaling/getScalingPolicy.ts index 325c367352..bf7a583ec7 100644 --- a/sdk/nodejs/applicationautoscaling/getScalingPolicy.ts +++ b/sdk/nodejs/applicationautoscaling/getScalingPolicy.ts @@ -65,6 +65,7 @@ export interface GetScalingPolicyResult { * ``StepScaling``—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune. */ readonly policyType?: string; + readonly predictiveScalingPolicyConfiguration?: outputs.applicationautoscaling.ScalingPolicyPredictiveScalingPolicyConfiguration; /** * A step scaling policy. */ diff --git a/sdk/nodejs/applicationautoscaling/scalingPolicy.ts b/sdk/nodejs/applicationautoscaling/scalingPolicy.ts index 684e9924fb..a11d32616e 100644 --- a/sdk/nodejs/applicationautoscaling/scalingPolicy.ts +++ b/sdk/nodejs/applicationautoscaling/scalingPolicy.ts @@ -54,6 +54,7 @@ export class ScalingPolicy extends pulumi.CustomResource { * ``StepScaling``—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune. */ public readonly policyType!: pulumi.Output; + public readonly predictiveScalingPolicyConfiguration!: pulumi.Output; /** * The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. * + ECS service - The resource type is ``service`` and the unique identifier is the cluster name and service name. Example: ``service/my-cluster/my-service``. @@ -138,6 +139,7 @@ export class ScalingPolicy extends pulumi.CustomResource { } resourceInputs["policyName"] = args ? args.policyName : undefined; resourceInputs["policyType"] = args ? args.policyType : undefined; + resourceInputs["predictiveScalingPolicyConfiguration"] = args ? args.predictiveScalingPolicyConfiguration : undefined; resourceInputs["resourceId"] = args ? args.resourceId : undefined; resourceInputs["scalableDimension"] = args ? args.scalableDimension : undefined; resourceInputs["scalingTargetId"] = args ? args.scalingTargetId : undefined; @@ -149,6 +151,7 @@ export class ScalingPolicy extends pulumi.CustomResource { resourceInputs["arn"] = undefined /*out*/; resourceInputs["policyName"] = undefined /*out*/; resourceInputs["policyType"] = undefined /*out*/; + resourceInputs["predictiveScalingPolicyConfiguration"] = undefined /*out*/; resourceInputs["resourceId"] = undefined /*out*/; resourceInputs["scalableDimension"] = undefined /*out*/; resourceInputs["scalingTargetId"] = undefined /*out*/; @@ -179,6 +182,7 @@ export interface ScalingPolicyArgs { * ``StepScaling``—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune. */ policyType: pulumi.Input; + predictiveScalingPolicyConfiguration?: pulumi.Input; /** * The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. * + ECS service - The resource type is ``service`` and the unique identifier is the cluster name and service name. Example: ``service/my-cluster/my-service``. diff --git a/sdk/nodejs/applicationsignals/getServiceLevelObjective.ts b/sdk/nodejs/applicationsignals/getServiceLevelObjective.ts index 0ff3da6fb1..6e6fb2a69f 100644 --- a/sdk/nodejs/applicationsignals/getServiceLevelObjective.ts +++ b/sdk/nodejs/applicationsignals/getServiceLevelObjective.ts @@ -29,6 +29,7 @@ export interface GetServiceLevelObjectiveResult { * The ARN of this SLO. */ readonly arn?: string; + readonly burnRateConfigurations?: outputs.applicationsignals.ServiceLevelObjectiveBurnRateConfiguration[]; /** * Epoch time in seconds of the time that this SLO was created */ diff --git a/sdk/nodejs/applicationsignals/serviceLevelObjective.ts b/sdk/nodejs/applicationsignals/serviceLevelObjective.ts index 436154d741..3f9137a207 100644 --- a/sdk/nodejs/applicationsignals/serviceLevelObjective.ts +++ b/sdk/nodejs/applicationsignals/serviceLevelObjective.ts @@ -41,6 +41,7 @@ export class ServiceLevelObjective extends pulumi.CustomResource { * The ARN of this SLO. */ public /*out*/ readonly arn!: pulumi.Output; + public readonly burnRateConfigurations!: pulumi.Output; /** * Epoch time in seconds of the time that this SLO was created */ @@ -91,6 +92,7 @@ export class ServiceLevelObjective extends pulumi.CustomResource { let resourceInputs: pulumi.Inputs = {}; opts = opts || {}; if (!opts.id) { + resourceInputs["burnRateConfigurations"] = args ? args.burnRateConfigurations : undefined; resourceInputs["description"] = args ? args.description : undefined; resourceInputs["goal"] = args ? args.goal : undefined; resourceInputs["name"] = args ? args.name : undefined; @@ -103,6 +105,7 @@ export class ServiceLevelObjective extends pulumi.CustomResource { resourceInputs["lastUpdatedTime"] = undefined /*out*/; } else { resourceInputs["arn"] = undefined /*out*/; + resourceInputs["burnRateConfigurations"] = undefined /*out*/; resourceInputs["createdTime"] = undefined /*out*/; resourceInputs["description"] = undefined /*out*/; resourceInputs["evaluationType"] = undefined /*out*/; @@ -124,6 +127,7 @@ export class ServiceLevelObjective extends pulumi.CustomResource { * The set of arguments for constructing a ServiceLevelObjective resource. */ export interface ServiceLevelObjectiveArgs { + burnRateConfigurations?: pulumi.Input[]>; /** * An optional description for this SLO. Default is 'No description' */ diff --git a/sdk/nodejs/autoscaling/autoScalingGroup.ts b/sdk/nodejs/autoscaling/autoScalingGroup.ts index d56ab948ce..10f66eabd1 100644 --- a/sdk/nodejs/autoscaling/autoScalingGroup.ts +++ b/sdk/nodejs/autoscaling/autoScalingGroup.ts @@ -50,6 +50,7 @@ export class AutoScalingGroup extends pulumi.CustomResource { * The instance capacity distribution across Availability Zones. */ public readonly availabilityZoneDistribution!: pulumi.Output; + public readonly availabilityZoneImpairmentPolicy!: pulumi.Output; /** * A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the ``VPCZoneIdentifier`` property, or for attaching a network interface when an existing network interface ID is specified in a launch template. */ @@ -166,6 +167,7 @@ export class AutoScalingGroup extends pulumi.CustomResource { * The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other AWS service on your behalf. By default, Amazon EC2 Auto Scaling uses a service-linked role named ``AWSServiceRoleForAutoScaling``, which it creates if it does not exist. For more information, see [Service-linked roles](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html) in the *Amazon EC2 Auto Scaling User Guide*. */ public readonly serviceLinkedRoleArn!: pulumi.Output; + public readonly skipZonalShiftValidation!: pulumi.Output; /** * One or more tags. You can tag your Auto Scaling group and propagate the tags to the Amazon EC2 instances it launches. Tags are not propagated to Amazon EBS volumes. To add tags to Amazon EBS volumes, specify the tags in a launch template but use caution. If the launch template specifies an instance tag with a key that is also specified for the Auto Scaling group, Amazon EC2 Auto Scaling overrides the value of that instance tag with the value specified by the Auto Scaling group. For more information, see [Tag Auto Scaling groups and instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-tagging.html) in the *Amazon EC2 Auto Scaling User Guide*. */ @@ -210,6 +212,7 @@ export class AutoScalingGroup extends pulumi.CustomResource { } resourceInputs["autoScalingGroupName"] = args ? args.autoScalingGroupName : undefined; resourceInputs["availabilityZoneDistribution"] = args ? args.availabilityZoneDistribution : undefined; + resourceInputs["availabilityZoneImpairmentPolicy"] = args ? args.availabilityZoneImpairmentPolicy : undefined; resourceInputs["availabilityZones"] = args ? args.availabilityZones : undefined; resourceInputs["capacityRebalance"] = args ? args.capacityRebalance : undefined; resourceInputs["context"] = args ? args.context : undefined; @@ -235,6 +238,7 @@ export class AutoScalingGroup extends pulumi.CustomResource { resourceInputs["notificationConfigurations"] = args ? args.notificationConfigurations : undefined; resourceInputs["placementGroup"] = args ? args.placementGroup : undefined; resourceInputs["serviceLinkedRoleArn"] = args ? args.serviceLinkedRoleArn : undefined; + resourceInputs["skipZonalShiftValidation"] = args ? args.skipZonalShiftValidation : undefined; resourceInputs["tags"] = args ? args.tags : undefined; resourceInputs["targetGroupArns"] = args ? args.targetGroupArns : undefined; resourceInputs["terminationPolicies"] = args ? args.terminationPolicies : undefined; @@ -243,6 +247,7 @@ export class AutoScalingGroup extends pulumi.CustomResource { } else { resourceInputs["autoScalingGroupName"] = undefined /*out*/; resourceInputs["availabilityZoneDistribution"] = undefined /*out*/; + resourceInputs["availabilityZoneImpairmentPolicy"] = undefined /*out*/; resourceInputs["availabilityZones"] = undefined /*out*/; resourceInputs["capacityRebalance"] = undefined /*out*/; resourceInputs["context"] = undefined /*out*/; @@ -268,6 +273,7 @@ export class AutoScalingGroup extends pulumi.CustomResource { resourceInputs["notificationConfigurations"] = undefined /*out*/; resourceInputs["placementGroup"] = undefined /*out*/; resourceInputs["serviceLinkedRoleArn"] = undefined /*out*/; + resourceInputs["skipZonalShiftValidation"] = undefined /*out*/; resourceInputs["tags"] = undefined /*out*/; resourceInputs["targetGroupArns"] = undefined /*out*/; resourceInputs["terminationPolicies"] = undefined /*out*/; @@ -295,6 +301,7 @@ export interface AutoScalingGroupArgs { * The instance capacity distribution across Availability Zones. */ availabilityZoneDistribution?: pulumi.Input; + availabilityZoneImpairmentPolicy?: pulumi.Input; /** * A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the ``VPCZoneIdentifier`` property, or for attaching a network interface when an existing network interface ID is specified in a launch template. */ @@ -411,6 +418,7 @@ export interface AutoScalingGroupArgs { * The Amazon Resource Name (ARN) of the service-linked role that the Auto Scaling group uses to call other AWS service on your behalf. By default, Amazon EC2 Auto Scaling uses a service-linked role named ``AWSServiceRoleForAutoScaling``, which it creates if it does not exist. For more information, see [Service-linked roles](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-service-linked-role.html) in the *Amazon EC2 Auto Scaling User Guide*. */ serviceLinkedRoleArn?: pulumi.Input; + skipZonalShiftValidation?: pulumi.Input; /** * One or more tags. You can tag your Auto Scaling group and propagate the tags to the Amazon EC2 instances it launches. Tags are not propagated to Amazon EBS volumes. To add tags to Amazon EBS volumes, specify the tags in a launch template but use caution. If the launch template specifies an instance tag with a key that is also specified for the Auto Scaling group, Amazon EC2 Auto Scaling overrides the value of that instance tag with the value specified by the Auto Scaling group. For more information, see [Tag Auto Scaling groups and instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-tagging.html) in the *Amazon EC2 Auto Scaling User Guide*. */ diff --git a/sdk/nodejs/autoscaling/getAutoScalingGroup.ts b/sdk/nodejs/autoscaling/getAutoScalingGroup.ts index ec739b170d..3b4292ef68 100644 --- a/sdk/nodejs/autoscaling/getAutoScalingGroup.ts +++ b/sdk/nodejs/autoscaling/getAutoScalingGroup.ts @@ -34,6 +34,7 @@ export interface GetAutoScalingGroupResult { * The instance capacity distribution across Availability Zones. */ readonly availabilityZoneDistribution?: outputs.autoscaling.AutoScalingGroupAvailabilityZoneDistribution; + readonly availabilityZoneImpairmentPolicy?: outputs.autoscaling.AutoScalingGroupAvailabilityZoneImpairmentPolicy; /** * A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the ``VPCZoneIdentifier`` property, or for attaching a network interface when an existing network interface ID is specified in a launch template. */ diff --git a/sdk/nodejs/cloudformation/getTypeActivation.ts b/sdk/nodejs/cloudformation/getTypeActivation.ts index 96caf5f310..585b4e610a 100644 --- a/sdk/nodejs/cloudformation/getTypeActivation.ts +++ b/sdk/nodejs/cloudformation/getTypeActivation.ts @@ -2,6 +2,9 @@ // *** Do not edit by hand unless you're certain you know what you are doing! *** import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; import * as utilities from "../utilities"; /** @@ -27,23 +30,17 @@ export interface GetTypeActivationResult { */ readonly arn?: string; /** - * The Amazon Resource Number (ARN) assigned to the public extension upon publication + * Whether to automatically update the extension in this account and region when a new minor version is published by the extension publisher. Major versions released by the publisher must be manually updated. */ - readonly publicTypeArn?: string; + readonly autoUpdate?: boolean; /** - * The publisher id assigned by CloudFormation for publishing in this region. + * The Major Version of the type you want to enable */ - readonly publisherId?: string; + readonly majorVersion?: string; /** - * The name of the type being registered. - * - * We recommend that type names adhere to the following pattern: company_or_organization::service::type. + * Manually updates a previously-enabled type to a new major or minor version, if available. You can also use this parameter to update the value of AutoUpdateEnabled */ - readonly typeName?: string; - /** - * An alias to assign to the public extension in this account and region. If you specify an alias for the extension, you must then use the alias to refer to the extension in your templates. - */ - readonly typeNameAlias?: string; + readonly versionBump?: enums.cloudformation.TypeActivationVersionBump; } /** * Enable a resource that has been published in the CloudFormation Registry. diff --git a/sdk/nodejs/cloudformation/typeActivation.ts b/sdk/nodejs/cloudformation/typeActivation.ts index 3201280381..0385643e54 100644 --- a/sdk/nodejs/cloudformation/typeActivation.ts +++ b/sdk/nodejs/cloudformation/typeActivation.ts @@ -120,7 +120,7 @@ export class TypeActivation extends pulumi.CustomResource { resourceInputs["versionBump"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const replaceOnChanges = { replaceOnChanges: ["loggingConfig"] }; + const replaceOnChanges = { replaceOnChanges: ["executionRoleArn", "loggingConfig", "publicTypeArn", "publisherId", "type", "typeName", "typeNameAlias"] }; opts = pulumi.mergeOptions(opts, replaceOnChanges); super(TypeActivation.__pulumiType, name, resourceInputs, opts); } diff --git a/sdk/nodejs/connectcampaignsv2/campaign.ts b/sdk/nodejs/connectcampaignsv2/campaign.ts new file mode 100644 index 0000000000..dd7be67878 --- /dev/null +++ b/sdk/nodejs/connectcampaignsv2/campaign.ts @@ -0,0 +1,119 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Definition of AWS::ConnectCampaignsV2::Campaign Resource Type + */ +export class Campaign extends pulumi.CustomResource { + /** + * Get an existing Campaign resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): Campaign { + return new Campaign(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:connectcampaignsv2:Campaign'; + + /** + * Returns true if the given object is an instance of Campaign. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Campaign { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Campaign.__pulumiType; + } + + /** + * Amazon Connect Campaign Arn + */ + public /*out*/ readonly arn!: pulumi.Output; + public readonly channelSubtypeConfig!: pulumi.Output; + public readonly communicationLimitsOverride!: pulumi.Output; + public readonly communicationTimeConfig!: pulumi.Output; + public readonly connectCampaignFlowArn!: pulumi.Output; + public readonly connectInstanceId!: pulumi.Output; + public readonly name!: pulumi.Output; + public readonly schedule!: pulumi.Output; + public readonly source!: pulumi.Output; + /** + * One or more tags. + */ + public readonly tags!: pulumi.Output; + + /** + * Create a Campaign resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: CampaignArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.channelSubtypeConfig === undefined) && !opts.urn) { + throw new Error("Missing required property 'channelSubtypeConfig'"); + } + if ((!args || args.connectInstanceId === undefined) && !opts.urn) { + throw new Error("Missing required property 'connectInstanceId'"); + } + resourceInputs["channelSubtypeConfig"] = args ? args.channelSubtypeConfig : undefined; + resourceInputs["communicationLimitsOverride"] = args ? args.communicationLimitsOverride : undefined; + resourceInputs["communicationTimeConfig"] = args ? args.communicationTimeConfig : undefined; + resourceInputs["connectCampaignFlowArn"] = args ? args.connectCampaignFlowArn : undefined; + resourceInputs["connectInstanceId"] = args ? args.connectInstanceId : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["schedule"] = args ? args.schedule : undefined; + resourceInputs["source"] = args ? args.source : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["arn"] = undefined /*out*/; + } else { + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["channelSubtypeConfig"] = undefined /*out*/; + resourceInputs["communicationLimitsOverride"] = undefined /*out*/; + resourceInputs["communicationTimeConfig"] = undefined /*out*/; + resourceInputs["connectCampaignFlowArn"] = undefined /*out*/; + resourceInputs["connectInstanceId"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["schedule"] = undefined /*out*/; + resourceInputs["source"] = undefined /*out*/; + resourceInputs["tags"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["connectInstanceId"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(Campaign.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a Campaign resource. + */ +export interface CampaignArgs { + channelSubtypeConfig: pulumi.Input; + communicationLimitsOverride?: pulumi.Input; + communicationTimeConfig?: pulumi.Input; + connectCampaignFlowArn?: pulumi.Input; + connectInstanceId: pulumi.Input; + name?: pulumi.Input; + schedule?: pulumi.Input; + source?: pulumi.Input; + /** + * One or more tags. + */ + tags?: pulumi.Input[]>; +} diff --git a/sdk/nodejs/connectcampaignsv2/getCampaign.ts b/sdk/nodejs/connectcampaignsv2/getCampaign.ts new file mode 100644 index 0000000000..2ae68e51ad --- /dev/null +++ b/sdk/nodejs/connectcampaignsv2/getCampaign.ts @@ -0,0 +1,59 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Definition of AWS::ConnectCampaignsV2::Campaign Resource Type + */ +export function getCampaign(args: GetCampaignArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:connectcampaignsv2:getCampaign", { + "arn": args.arn, + }, opts); +} + +export interface GetCampaignArgs { + /** + * Amazon Connect Campaign Arn + */ + arn: string; +} + +export interface GetCampaignResult { + /** + * Amazon Connect Campaign Arn + */ + readonly arn?: string; + readonly channelSubtypeConfig?: outputs.connectcampaignsv2.CampaignChannelSubtypeConfig; + readonly communicationLimitsOverride?: outputs.connectcampaignsv2.CampaignCommunicationLimitsConfig; + readonly communicationTimeConfig?: outputs.connectcampaignsv2.CampaignCommunicationTimeConfig; + readonly connectCampaignFlowArn?: string; + readonly name?: string; + readonly schedule?: outputs.connectcampaignsv2.CampaignSchedule; + readonly source?: outputs.connectcampaignsv2.CampaignSource; + /** + * One or more tags. + */ + readonly tags?: outputs.Tag[]; +} +/** + * Definition of AWS::ConnectCampaignsV2::Campaign Resource Type + */ +export function getCampaignOutput(args: GetCampaignOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("aws-native:connectcampaignsv2:getCampaign", { + "arn": args.arn, + }, opts); +} + +export interface GetCampaignOutputArgs { + /** + * Amazon Connect Campaign Arn + */ + arn: pulumi.Input; +} diff --git a/sdk/nodejs/connectcampaignsv2/index.ts b/sdk/nodejs/connectcampaignsv2/index.ts new file mode 100644 index 0000000000..878b485afa --- /dev/null +++ b/sdk/nodejs/connectcampaignsv2/index.ts @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +// Export members: +export { CampaignArgs } from "./campaign"; +export type Campaign = import("./campaign").Campaign; +export const Campaign: typeof import("./campaign").Campaign = null as any; +utilities.lazyLoad(exports, ["Campaign"], () => require("./campaign")); + +export { GetCampaignArgs, GetCampaignResult, GetCampaignOutputArgs } from "./getCampaign"; +export const getCampaign: typeof import("./getCampaign").getCampaign = null as any; +export const getCampaignOutput: typeof import("./getCampaign").getCampaignOutput = null as any; +utilities.lazyLoad(exports, ["getCampaign","getCampaignOutput"], () => require("./getCampaign")); + + +// Export enums: +export * from "../types/enums/connectcampaignsv2"; + +const _module = { + version: utilities.getVersion(), + construct: (name: string, type: string, urn: string): pulumi.Resource => { + switch (type) { + case "aws-native:connectcampaignsv2:Campaign": + return new Campaign(name, undefined, { urn }) + default: + throw new Error(`unknown resource type ${type}`); + } + }, +}; +pulumi.runtime.registerResourceModule("aws-native", "connectcampaignsv2", _module) diff --git a/sdk/nodejs/dynamodb/getGlobalTable.ts b/sdk/nodejs/dynamodb/getGlobalTable.ts index 92644e6f37..7db90e5a8a 100644 --- a/sdk/nodejs/dynamodb/getGlobalTable.ts +++ b/sdk/nodejs/dynamodb/getGlobalTable.ts @@ -82,8 +82,9 @@ export interface GetGlobalTableResult { * Specifies the time to live (TTL) settings for the table. This setting will be applied to all replicas. */ readonly timeToLiveSpecification?: outputs.dynamodb.GlobalTableTimeToLiveSpecification; + readonly warmThroughput?: outputs.dynamodb.GlobalTableWarmThroughput; /** - * Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + * Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . */ readonly writeOnDemandThroughputSettings?: outputs.dynamodb.GlobalTableWriteOnDemandThroughputSettings; /** diff --git a/sdk/nodejs/dynamodb/getTable.ts b/sdk/nodejs/dynamodb/getTable.ts index b6903d92e1..9198c40c41 100644 --- a/sdk/nodejs/dynamodb/getTable.ts +++ b/sdk/nodejs/dynamodb/getTable.ts @@ -12,7 +12,7 @@ import * as utilities from "../utilities"; * You should be aware of the following behaviors when working with DDB tables: * + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). * - * Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. + * Our guidance is to use the latest schema documented for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. */ export function getTable(args: GetTableArgs, opts?: pulumi.InvokeOptions): Promise { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); @@ -124,13 +124,14 @@ export interface GetTableResult { * For detailed information about the limits in DynamoDB, see [Limits in Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the Amazon DynamoDB Developer Guide. */ readonly timeToLiveSpecification?: outputs.dynamodb.TableTimeToLiveSpecification; + readonly warmThroughput?: outputs.dynamodb.TableWarmThroughput; } /** * The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*. * You should be aware of the following behaviors when working with DDB tables: * + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). * - * Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. + * Our guidance is to use the latest schema documented for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. */ export function getTableOutput(args: GetTableOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); diff --git a/sdk/nodejs/dynamodb/globalTable.ts b/sdk/nodejs/dynamodb/globalTable.ts index 2349f644f0..db5ce6388e 100644 --- a/sdk/nodejs/dynamodb/globalTable.ts +++ b/sdk/nodejs/dynamodb/globalTable.ts @@ -106,8 +106,9 @@ export class GlobalTable extends pulumi.CustomResource { * Specifies the time to live (TTL) settings for the table. This setting will be applied to all replicas. */ public readonly timeToLiveSpecification!: pulumi.Output; + public readonly warmThroughput!: pulumi.Output; /** - * Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + * Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . */ public readonly writeOnDemandThroughputSettings!: pulumi.Output; /** @@ -145,6 +146,7 @@ export class GlobalTable extends pulumi.CustomResource { resourceInputs["streamSpecification"] = args ? args.streamSpecification : undefined; resourceInputs["tableName"] = args ? args.tableName : undefined; resourceInputs["timeToLiveSpecification"] = args ? args.timeToLiveSpecification : undefined; + resourceInputs["warmThroughput"] = args ? args.warmThroughput : undefined; resourceInputs["writeOnDemandThroughputSettings"] = args ? args.writeOnDemandThroughputSettings : undefined; resourceInputs["writeProvisionedThroughputSettings"] = args ? args.writeProvisionedThroughputSettings : undefined; resourceInputs["arn"] = undefined /*out*/; @@ -164,6 +166,7 @@ export class GlobalTable extends pulumi.CustomResource { resourceInputs["tableId"] = undefined /*out*/; resourceInputs["tableName"] = undefined /*out*/; resourceInputs["timeToLiveSpecification"] = undefined /*out*/; + resourceInputs["warmThroughput"] = undefined /*out*/; resourceInputs["writeOnDemandThroughputSettings"] = undefined /*out*/; resourceInputs["writeProvisionedThroughputSettings"] = undefined /*out*/; } @@ -233,8 +236,9 @@ export interface GlobalTableArgs { * Specifies the time to live (TTL) settings for the table. This setting will be applied to all replicas. */ timeToLiveSpecification?: pulumi.Input; + warmThroughput?: pulumi.Input; /** - * Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + * Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . */ writeOnDemandThroughputSettings?: pulumi.Input; /** diff --git a/sdk/nodejs/dynamodb/table.ts b/sdk/nodejs/dynamodb/table.ts index 023caafd06..5aa3a19c85 100644 --- a/sdk/nodejs/dynamodb/table.ts +++ b/sdk/nodejs/dynamodb/table.ts @@ -12,7 +12,7 @@ import * as utilities from "../utilities"; * You should be aware of the following behaviors when working with DDB tables: * + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). * - * Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. + * Our guidance is to use the latest schema documented for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. * * ## Example Usage * ### Example @@ -373,6 +373,7 @@ export class Table extends pulumi.CustomResource { * For detailed information about the limits in DynamoDB, see [Limits in Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the Amazon DynamoDB Developer Guide. */ public readonly timeToLiveSpecification!: pulumi.Output; + public readonly warmThroughput!: pulumi.Output; /** * Create a Table resource with the given unique name, arguments, and options. @@ -407,6 +408,7 @@ export class Table extends pulumi.CustomResource { resourceInputs["tableName"] = args ? args.tableName : undefined; resourceInputs["tags"] = args ? args.tags : undefined; resourceInputs["timeToLiveSpecification"] = args ? args.timeToLiveSpecification : undefined; + resourceInputs["warmThroughput"] = args ? args.warmThroughput : undefined; resourceInputs["arn"] = undefined /*out*/; resourceInputs["streamArn"] = undefined /*out*/; } else { @@ -431,6 +433,7 @@ export class Table extends pulumi.CustomResource { resourceInputs["tableName"] = undefined /*out*/; resourceInputs["tags"] = undefined /*out*/; resourceInputs["timeToLiveSpecification"] = undefined /*out*/; + resourceInputs["warmThroughput"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); const replaceOnChanges = { replaceOnChanges: ["importSourceSpecification", "tableName"] }; @@ -537,4 +540,5 @@ export interface TableArgs { * For detailed information about the limits in DynamoDB, see [Limits in Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the Amazon DynamoDB Developer Guide. */ timeToLiveSpecification?: pulumi.Input; + warmThroughput?: pulumi.Input; } diff --git a/sdk/nodejs/eks/getNodegroup.ts b/sdk/nodejs/eks/getNodegroup.ts index b95441f5f6..fcea275ed8 100644 --- a/sdk/nodejs/eks/getNodegroup.ts +++ b/sdk/nodejs/eks/getNodegroup.ts @@ -35,6 +35,10 @@ export interface GetNodegroupResult { * An object representing a node group's launch template specification. */ readonly launchTemplate?: outputs.eks.NodegroupLaunchTemplateSpecification; + /** + * The node auto repair configuration for node group. + */ + readonly nodeRepairConfig?: outputs.eks.NodegroupNodeRepairConfig; /** * The AMI version of the Amazon EKS-optimized AMI to use with your node group. */ diff --git a/sdk/nodejs/eks/nodegroup.ts b/sdk/nodejs/eks/nodegroup.ts index b215c0cbff..bc04f13ece 100644 --- a/sdk/nodejs/eks/nodegroup.ts +++ b/sdk/nodejs/eks/nodegroup.ts @@ -126,6 +126,10 @@ export class Nodegroup extends pulumi.CustomResource { * An object representing a node group's launch template specification. */ public readonly launchTemplate!: pulumi.Output; + /** + * The node auto repair configuration for node group. + */ + public readonly nodeRepairConfig!: pulumi.Output; /** * The Amazon Resource Name (ARN) of the IAM role to associate with your node group. */ @@ -195,6 +199,7 @@ export class Nodegroup extends pulumi.CustomResource { resourceInputs["instanceTypes"] = args ? args.instanceTypes : undefined; resourceInputs["labels"] = args ? args.labels : undefined; resourceInputs["launchTemplate"] = args ? args.launchTemplate : undefined; + resourceInputs["nodeRepairConfig"] = args ? args.nodeRepairConfig : undefined; resourceInputs["nodeRole"] = args ? args.nodeRole : undefined; resourceInputs["nodegroupName"] = args ? args.nodegroupName : undefined; resourceInputs["releaseVersion"] = args ? args.releaseVersion : undefined; @@ -218,6 +223,7 @@ export class Nodegroup extends pulumi.CustomResource { resourceInputs["instanceTypes"] = undefined /*out*/; resourceInputs["labels"] = undefined /*out*/; resourceInputs["launchTemplate"] = undefined /*out*/; + resourceInputs["nodeRepairConfig"] = undefined /*out*/; resourceInputs["nodeRole"] = undefined /*out*/; resourceInputs["nodegroupName"] = undefined /*out*/; resourceInputs["releaseVersion"] = undefined /*out*/; @@ -272,6 +278,10 @@ export interface NodegroupArgs { * An object representing a node group's launch template specification. */ launchTemplate?: pulumi.Input; + /** + * The node auto repair configuration for node group. + */ + nodeRepairConfig?: pulumi.Input; /** * The Amazon Resource Name (ARN) of the IAM role to associate with your node group. */ diff --git a/sdk/nodejs/elasticache/getUser.ts b/sdk/nodejs/elasticache/getUser.ts index aa76d3a037..83532b23e0 100644 --- a/sdk/nodejs/elasticache/getUser.ts +++ b/sdk/nodejs/elasticache/getUser.ts @@ -29,6 +29,10 @@ export interface GetUserResult { * The Amazon Resource Name (ARN) of the user account. */ readonly arn?: string; + /** + * The target cache engine for the user. + */ + readonly engine?: enums.elasticache.UserEngine; /** * Indicates the user status. Can be "active", "modifying" or "deleting". */ diff --git a/sdk/nodejs/elasticache/getUserGroup.ts b/sdk/nodejs/elasticache/getUserGroup.ts index 6439546301..b5bb6f9f01 100644 --- a/sdk/nodejs/elasticache/getUserGroup.ts +++ b/sdk/nodejs/elasticache/getUserGroup.ts @@ -29,6 +29,10 @@ export interface GetUserGroupResult { * The Amazon Resource Name (ARN) of the user account. */ readonly arn?: string; + /** + * The target cache engine for the user group. + */ + readonly engine?: enums.elasticache.UserGroupEngine; /** * Indicates user group status. Can be "creating", "active", "modifying", "deleting". */ diff --git a/sdk/nodejs/elasticache/user.ts b/sdk/nodejs/elasticache/user.ts index cadf5532cd..c2abb4d23a 100644 --- a/sdk/nodejs/elasticache/user.ts +++ b/sdk/nodejs/elasticache/user.ts @@ -55,7 +55,7 @@ export class User extends pulumi.CustomResource { */ public readonly authenticationMode!: pulumi.Output; /** - * Must be redis. + * The target cache engine for the user. */ public readonly engine!: pulumi.Output; /** @@ -123,7 +123,7 @@ export class User extends pulumi.CustomResource { resourceInputs["userName"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const replaceOnChanges = { replaceOnChanges: ["engine", "userId", "userName"] }; + const replaceOnChanges = { replaceOnChanges: ["userId", "userName"] }; opts = pulumi.mergeOptions(opts, replaceOnChanges); super(User.__pulumiType, name, resourceInputs, opts); } @@ -147,7 +147,7 @@ export interface UserArgs { */ authenticationMode?: pulumi.Input; /** - * Must be redis. + * The target cache engine for the user. */ engine: pulumi.Input; /** diff --git a/sdk/nodejs/elasticache/userGroup.ts b/sdk/nodejs/elasticache/userGroup.ts index d5ad17d250..642e7a89a2 100644 --- a/sdk/nodejs/elasticache/userGroup.ts +++ b/sdk/nodejs/elasticache/userGroup.ts @@ -42,7 +42,7 @@ export class UserGroup extends pulumi.CustomResource { */ public /*out*/ readonly arn!: pulumi.Output; /** - * Must be redis. + * The target cache engine for the user group. */ public readonly engine!: pulumi.Output; /** @@ -97,7 +97,7 @@ export class UserGroup extends pulumi.CustomResource { resourceInputs["userIds"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const replaceOnChanges = { replaceOnChanges: ["engine", "userGroupId"] }; + const replaceOnChanges = { replaceOnChanges: ["userGroupId"] }; opts = pulumi.mergeOptions(opts, replaceOnChanges); super(UserGroup.__pulumiType, name, resourceInputs, opts); } @@ -108,7 +108,7 @@ export class UserGroup extends pulumi.CustomResource { */ export interface UserGroupArgs { /** - * Must be redis. + * The target cache engine for the user group. */ engine: pulumi.Input; /** diff --git a/sdk/nodejs/elasticloadbalancingv2/getLoadBalancer.ts b/sdk/nodejs/elasticloadbalancingv2/getLoadBalancer.ts index 5d3cc27e91..b767beec7a 100644 --- a/sdk/nodejs/elasticloadbalancingv2/getLoadBalancer.ts +++ b/sdk/nodejs/elasticloadbalancingv2/getLoadBalancer.ts @@ -33,6 +33,9 @@ export interface GetLoadBalancerResult { * The DNS name for the load balancer. For example, `my-load-balancer-424835706.us-west-2.elb.amazonaws.com` . */ readonly dnsName?: string; + /** + * [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . + */ readonly enablePrefixForIpv6SourceNat?: string; /** * Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. diff --git a/sdk/nodejs/elasticloadbalancingv2/loadBalancer.ts b/sdk/nodejs/elasticloadbalancingv2/loadBalancer.ts index 4a17b363d6..b522ebd5e6 100644 --- a/sdk/nodejs/elasticloadbalancingv2/loadBalancer.ts +++ b/sdk/nodejs/elasticloadbalancingv2/loadBalancer.ts @@ -45,6 +45,9 @@ export class LoadBalancer extends pulumi.CustomResource { * The DNS name for the load balancer. For example, `my-load-balancer-424835706.us-west-2.elb.amazonaws.com` . */ public /*out*/ readonly dnsName!: pulumi.Output; + /** + * [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . + */ public readonly enablePrefixForIpv6SourceNat!: pulumi.Output; /** * Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. @@ -173,6 +176,9 @@ export class LoadBalancer extends pulumi.CustomResource { * The set of arguments for constructing a LoadBalancer resource. */ export interface LoadBalancerArgs { + /** + * [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . + */ enablePrefixForIpv6SourceNat?: pulumi.Input; /** * Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. diff --git a/sdk/nodejs/events/getConnection.ts b/sdk/nodejs/events/getConnection.ts index 4b5d45ecda..fcbd4097d6 100644 --- a/sdk/nodejs/events/getConnection.ts +++ b/sdk/nodejs/events/getConnection.ts @@ -29,6 +29,10 @@ export interface GetConnectionResult { * The arn of the connection resource. */ readonly arn?: string; + /** + * A `CreateConnectionAuthRequestParameters` object that contains the authorization parameters to use to authorize with the endpoint. + */ + readonly authParameters?: outputs.events.ConnectionAuthParameters; /** * The type of authorization to use for the connection. * diff --git a/sdk/nodejs/fis/experimentTemplate.ts b/sdk/nodejs/fis/experimentTemplate.ts index 04b44fdaa1..6806132259 100644 --- a/sdk/nodejs/fis/experimentTemplate.ts +++ b/sdk/nodejs/fis/experimentTemplate.ts @@ -121,6 +121,9 @@ export class ExperimentTemplate extends pulumi.CustomResource { * The experiment options for an experiment template. */ public readonly experimentOptions!: pulumi.Output; + /** + * Describes the report configuration for the experiment template. + */ public readonly experimentReportConfiguration!: pulumi.Output; /** * The configuration for experiment logging. @@ -214,6 +217,9 @@ export interface ExperimentTemplateArgs { * The experiment options for an experiment template. */ experimentOptions?: pulumi.Input; + /** + * Describes the report configuration for the experiment template. + */ experimentReportConfiguration?: pulumi.Input; /** * The configuration for experiment logging. diff --git a/sdk/nodejs/fis/getExperimentTemplate.ts b/sdk/nodejs/fis/getExperimentTemplate.ts index 3f1be2d2bb..39639562a9 100644 --- a/sdk/nodejs/fis/getExperimentTemplate.ts +++ b/sdk/nodejs/fis/getExperimentTemplate.ts @@ -37,6 +37,9 @@ export interface GetExperimentTemplateResult { * The experiment options for an experiment template. */ readonly experimentOptions?: outputs.fis.ExperimentTemplateExperimentOptions; + /** + * Describes the report configuration for the experiment template. + */ readonly experimentReportConfiguration?: outputs.fis.ExperimentTemplateExperimentReportConfiguration; /** * The ID of the experiment template. diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index e32798b298..def6583916 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -117,6 +117,7 @@ import * as config from "./config"; import * as configuration from "./configuration"; import * as connect from "./connect"; import * as connectcampaigns from "./connectcampaigns"; +import * as connectcampaignsv2 from "./connectcampaignsv2"; import * as controltower from "./controltower"; import * as customerprofiles from "./customerprofiles"; import * as databrew from "./databrew"; @@ -337,6 +338,7 @@ export { configuration, connect, connectcampaigns, + connectcampaignsv2, controltower, customerprofiles, databrew, diff --git a/sdk/nodejs/lambda/permission.ts b/sdk/nodejs/lambda/permission.ts index f10c563d1e..6543101c4b 100644 --- a/sdk/nodejs/lambda/permission.ts +++ b/sdk/nodejs/lambda/permission.ts @@ -64,7 +64,7 @@ export class Permission extends pulumi.CustomResource { */ public readonly functionUrlAuthType!: pulumi.Output; /** - * The AWS-service or AWS-account that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service. + * The AWS-service, AWS-account, IAM user, or IAM role that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service. */ public readonly principal!: pulumi.Output; /** @@ -155,7 +155,7 @@ export interface PermissionArgs { */ functionUrlAuthType?: pulumi.Input; /** - * The AWS-service or AWS-account that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service. + * The AWS-service, AWS-account, IAM user, or IAM role that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service. */ principal: pulumi.Input; /** diff --git a/sdk/nodejs/redshift/integration.ts b/sdk/nodejs/redshift/integration.ts index ab20021e56..05c0d7bfab 100644 --- a/sdk/nodejs/redshift/integration.ts +++ b/sdk/nodejs/redshift/integration.ts @@ -58,7 +58,7 @@ export class Integration extends pulumi.CustomResource { */ public readonly kmsKeyId!: pulumi.Output; /** - * The Amazon Resource Name (ARN) of the database to use as the source for replication, for example, arn:aws:dynamodb:us-east-2:123412341234:table/dynamotable + * The Amazon Resource Name (ARN) of the database to use as the source for replication */ public readonly sourceArn!: pulumi.Output; /** @@ -66,7 +66,7 @@ export class Integration extends pulumi.CustomResource { */ public readonly tags!: pulumi.Output; /** - * The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication, for example, arn:aws:redshift:us-east-2:123412341234:namespace:e43aab3e-10a3-4ec4-83d4-f227ff9bfbcf + * The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication */ public readonly targetArn!: pulumi.Output; @@ -129,7 +129,7 @@ export interface IntegrationArgs { */ kmsKeyId?: pulumi.Input; /** - * The Amazon Resource Name (ARN) of the database to use as the source for replication, for example, arn:aws:dynamodb:us-east-2:123412341234:table/dynamotable + * The Amazon Resource Name (ARN) of the database to use as the source for replication */ sourceArn: pulumi.Input; /** @@ -137,7 +137,7 @@ export interface IntegrationArgs { */ tags?: pulumi.Input[]>; /** - * The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication, for example, arn:aws:redshift:us-east-2:123412341234:namespace:e43aab3e-10a3-4ec4-83d4-f227ff9bfbcf + * The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication */ targetArn: pulumi.Input; } diff --git a/sdk/nodejs/redshiftserverless/getWorkgroup.ts b/sdk/nodejs/redshiftserverless/getWorkgroup.ts index 1150b592c5..40ef25f18c 100644 --- a/sdk/nodejs/redshiftserverless/getWorkgroup.ts +++ b/sdk/nodejs/redshiftserverless/getWorkgroup.ts @@ -37,6 +37,10 @@ export interface GetWorkgroupResult { * A value that specifies whether the workgroup can be accessible from a public network. */ readonly publiclyAccessible?: boolean; + /** + * The map of the key-value pairs used to tag the workgroup. + */ + readonly tags?: outputs.Tag[]; /** * Definition for workgroup resource */ diff --git a/sdk/nodejs/sagemaker/cluster.ts b/sdk/nodejs/sagemaker/cluster.ts index ab93ae7c40..dd0271124a 100644 --- a/sdk/nodejs/sagemaker/cluster.ts +++ b/sdk/nodejs/sagemaker/cluster.ts @@ -115,7 +115,7 @@ export class Cluster extends pulumi.CustomResource { resourceInputs["vpcConfig"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const replaceOnChanges = { replaceOnChanges: ["clusterName", "instanceGroups[*].executionRole", "instanceGroups[*].instanceGroupName", "instanceGroups[*].instanceType", "instanceGroups[*].threadsPerCore", "orchestrator", "vpcConfig"] }; + const replaceOnChanges = { replaceOnChanges: ["clusterName", "instanceGroups[*].executionRole", "instanceGroups[*].instanceGroupName", "instanceGroups[*].instanceType", "instanceGroups[*].overrideVpcConfig", "instanceGroups[*].threadsPerCore", "orchestrator", "vpcConfig"] }; opts = pulumi.mergeOptions(opts, replaceOnChanges); super(Cluster.__pulumiType, name, resourceInputs, opts); } diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index c11d7088da..8cfc27e805 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -545,6 +545,9 @@ "connectcampaigns/campaign.ts", "connectcampaigns/getCampaign.ts", "connectcampaigns/index.ts", + "connectcampaignsv2/campaign.ts", + "connectcampaignsv2/getCampaign.ts", + "connectcampaignsv2/index.ts", "controltower/enabledBaseline.ts", "controltower/enabledControl.ts", "controltower/getEnabledBaseline.ts", @@ -2301,6 +2304,7 @@ "types/enums/codestarnotifications/index.ts", "types/enums/comprehend/index.ts", "types/enums/connect/index.ts", + "types/enums/connectcampaignsv2/index.ts", "types/enums/controltower/index.ts", "types/enums/customerprofiles/index.ts", "types/enums/databrew/index.ts", diff --git a/sdk/nodejs/types/enums/autoscaling/index.ts b/sdk/nodejs/types/enums/autoscaling/index.ts index 0b6a314052..2fe5306bf9 100644 --- a/sdk/nodejs/types/enums/autoscaling/index.ts +++ b/sdk/nodejs/types/enums/autoscaling/index.ts @@ -14,3 +14,10 @@ export const AutoScalingGroupAvailabilityZoneDistributionCapacityDistributionStr * - `balanced-best-effort` - If launches fail in an Availability Zone, Auto Scaling will attempt to launch in another healthy Availability Zone instead. */ export type AutoScalingGroupAvailabilityZoneDistributionCapacityDistributionStrategy = (typeof AutoScalingGroupAvailabilityZoneDistributionCapacityDistributionStrategy)[keyof typeof AutoScalingGroupAvailabilityZoneDistributionCapacityDistributionStrategy]; + +export const AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior = { + IgnoreUnhealthy: "IgnoreUnhealthy", + ReplaceUnhealthy: "ReplaceUnhealthy", +} as const; + +export type AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior = (typeof AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior)[keyof typeof AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior]; diff --git a/sdk/nodejs/types/enums/connectcampaignsv2/index.ts b/sdk/nodejs/types/enums/connectcampaignsv2/index.ts new file mode 100644 index 0000000000..cd3a58d331 --- /dev/null +++ b/sdk/nodejs/types/enums/connectcampaignsv2/index.ts @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + + +export const CampaignCommunicationLimitTimeUnit = { + Day: "DAY", +} as const; + +/** + * The communication limit time unit + */ +export type CampaignCommunicationLimitTimeUnit = (typeof CampaignCommunicationLimitTimeUnit)[keyof typeof CampaignCommunicationLimitTimeUnit]; + +export const CampaignDayOfWeek = { + Monday: "MONDAY", + Tuesday: "TUESDAY", + Wednesday: "WEDNESDAY", + Thursday: "THURSDAY", + Friday: "FRIDAY", + Saturday: "SATURDAY", + Sunday: "SUNDAY", +} as const; + +/** + * Day of week + */ +export type CampaignDayOfWeek = (typeof CampaignDayOfWeek)[keyof typeof CampaignDayOfWeek]; + +export const CampaignLocalTimeZoneDetectionType = { + ZipCode: "ZIP_CODE", + AreaCode: "AREA_CODE", +} as const; + +/** + * Local TimeZone Detection method + */ +export type CampaignLocalTimeZoneDetectionType = (typeof CampaignLocalTimeZoneDetectionType)[keyof typeof CampaignLocalTimeZoneDetectionType]; diff --git a/sdk/nodejs/types/enums/elasticache/index.ts b/sdk/nodejs/types/enums/elasticache/index.ts index e9b8d4fe8f..f5da9a64c9 100644 --- a/sdk/nodejs/types/enums/elasticache/index.ts +++ b/sdk/nodejs/types/enums/elasticache/index.ts @@ -34,18 +34,20 @@ export type UserAuthenticationModePropertiesType = (typeof UserAuthenticationMod export const UserEngine = { Redis: "redis", + Valkey: "valkey", } as const; /** - * Must be redis. + * The target cache engine for the user. */ export type UserEngine = (typeof UserEngine)[keyof typeof UserEngine]; export const UserGroupEngine = { Redis: "redis", + Valkey: "valkey", } as const; /** - * Must be redis. + * The target cache engine for the user group. */ export type UserGroupEngine = (typeof UserGroupEngine)[keyof typeof UserGroupEngine]; diff --git a/sdk/nodejs/types/enums/index.ts b/sdk/nodejs/types/enums/index.ts index 61d140fdfc..a0305713d7 100644 --- a/sdk/nodejs/types/enums/index.ts +++ b/sdk/nodejs/types/enums/index.ts @@ -36,6 +36,7 @@ import * as codestarconnections from "./codestarconnections"; import * as codestarnotifications from "./codestarnotifications"; import * as comprehend from "./comprehend"; import * as connect from "./connect"; +import * as connectcampaignsv2 from "./connectcampaignsv2"; import * as controltower from "./controltower"; import * as customerprofiles from "./customerprofiles"; import * as databrew from "./databrew"; @@ -205,6 +206,7 @@ export { codestarnotifications, comprehend, connect, + connectcampaignsv2, controltower, customerprofiles, databrew, diff --git a/sdk/nodejs/types/enums/vpclattice/index.ts b/sdk/nodejs/types/enums/vpclattice/index.ts index d44e152ccb..6737508c99 100644 --- a/sdk/nodejs/types/enums/vpclattice/index.ts +++ b/sdk/nodejs/types/enums/vpclattice/index.ts @@ -2,6 +2,13 @@ // *** Do not edit by hand unless you're certain you know what you are doing! *** +export const AccessLogSubscriptionServiceNetworkLogType = { + Service: "SERVICE", + Resource: "RESOURCE", +} as const; + +export type AccessLogSubscriptionServiceNetworkLogType = (typeof AccessLogSubscriptionServiceNetworkLogType)[keyof typeof AccessLogSubscriptionServiceNetworkLogType]; + export const AuthPolicyState = { Active: "ACTIVE", Inactive: "INACTIVE", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index b1501ef53e..65bb6bbc8a 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -140,6 +140,24 @@ export interface TagArgs { value: pulumi.Input; } export namespace accessanalyzer { + /** + * The criteria for an analysis rule for an analyzer. + */ + export interface AnalyzerAnalysisRuleCriteriaArgs { + /** + * A list of AWS account IDs to apply to the analysis rule criteria. The accounts cannot include the organization analyzer owner account. Account IDs can only be applied to the analysis rule criteria for organization-level analyzers. + */ + accountIds?: pulumi.Input[]>; + /** + * An array of key-value pairs to match for your resources. You can use the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + * + * For the tag key, you can specify a value that is 1 to 128 characters in length and cannot be prefixed with aws:. + * + * For the tag value, you can specify a value that is 0 to 256 characters in length. If the specified tag value is 0 characters, the rule is applied to all principals with the specified tag key. + */ + resourceTags?: pulumi.Input[]>[]>; + } + /** * An Access Analyzer archive rule. Archive rules automatically archive new findings that meet the criteria you define when you create the rule. */ @@ -159,7 +177,7 @@ export namespace accessanalyzer { */ export interface AnalyzerConfigurationPropertiesArgs { /** - * Specifies the configuration of an unused access analyzer for an AWS organization or account. External access analyzers do not support any configuration. + * Specifies the configuration of an unused access analyzer for an AWS organization or account. */ unusedAccessConfiguration?: pulumi.Input; } @@ -187,15 +205,43 @@ export namespace accessanalyzer { property: pulumi.Input; } + /** + * A key-value pair to associate with a resource. + */ + export interface AnalyzerTagArgs { + /** + * The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + */ + key: pulumi.Input; + /** + * The value for the tag. You can specify a value that is 0 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + */ + value?: pulumi.Input; + } + /** * The Configuration for Unused Access Analyzer */ export interface AnalyzerUnusedAccessConfigurationArgs { /** - * The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 180 days. + * Contains information about rules for the analyzer. + */ + analysisRule?: pulumi.Input; + /** + * The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 365 days. */ unusedAccessAge?: pulumi.Input; } + + /** + * Contains information about rules for the analyzer. + */ + export interface AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs { + /** + * A list of rules for the analyzer containing criteria to exclude from analysis. Entities that meet the rule criteria will not generate findings. + */ + exclusions?: pulumi.Input[]>; + } } export namespace acmpca { @@ -4172,6 +4218,115 @@ export namespace applicationautoscaling { resourceLabel?: pulumi.Input; } + export interface ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs { + metricDataQueries: pulumi.Input[]>; + } + + export interface ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs { + metricDataQueries: pulumi.Input[]>; + } + + export interface ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs { + metricDataQueries: pulumi.Input[]>; + } + + export interface ScalingPolicyPredictiveScalingMetricArgs { + /** + * The dimensions for the metric. + */ + dimensions?: pulumi.Input[]>; + /** + * The name of the metric. + */ + metricName?: pulumi.Input; + /** + * The namespace of the metric. + */ + namespace?: pulumi.Input; + } + + export interface ScalingPolicyPredictiveScalingMetricDataQueryArgs { + /** + * The math expression to perform on the returned data, if this object is performing a math expression. + */ + expression?: pulumi.Input; + /** + * A short name that identifies the object's results in the response. + */ + id?: pulumi.Input; + /** + * A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents. + */ + label?: pulumi.Input; + /** + * Information about the metric data to return. + */ + metricStat?: pulumi.Input; + /** + * Indicates whether to return the timestamps and raw data values of this metric. + */ + returnData?: pulumi.Input; + } + + export interface ScalingPolicyPredictiveScalingMetricDimensionArgs { + /** + * The name of the dimension. + */ + name?: pulumi.Input; + /** + * The value of the dimension. + */ + value?: pulumi.Input; + } + + export interface ScalingPolicyPredictiveScalingMetricSpecificationArgs { + customizedCapacityMetricSpecification?: pulumi.Input; + customizedLoadMetricSpecification?: pulumi.Input; + customizedScalingMetricSpecification?: pulumi.Input; + predefinedLoadMetricSpecification?: pulumi.Input; + predefinedMetricPairSpecification?: pulumi.Input; + predefinedScalingMetricSpecification?: pulumi.Input; + targetValue: pulumi.Input; + } + + export interface ScalingPolicyPredictiveScalingMetricStatArgs { + /** + * The CloudWatch metric to return, including the metric name, namespace, and dimensions. + */ + metric?: pulumi.Input; + /** + * The statistic to return. It can include any CloudWatch statistic or extended statistic. + */ + stat?: pulumi.Input; + /** + * The unit to use for the returned data points. + */ + unit?: pulumi.Input; + } + + export interface ScalingPolicyPredictiveScalingPolicyConfigurationArgs { + maxCapacityBreachBehavior?: pulumi.Input; + maxCapacityBuffer?: pulumi.Input; + metricSpecifications: pulumi.Input[]>; + mode?: pulumi.Input; + schedulingBufferTime?: pulumi.Input; + } + + export interface ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs { + predefinedMetricType: pulumi.Input; + resourceLabel?: pulumi.Input; + } + + export interface ScalingPolicyPredictiveScalingPredefinedMetricPairArgs { + predefinedMetricType: pulumi.Input; + resourceLabel?: pulumi.Input; + } + + export interface ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs { + predefinedMetricType: pulumi.Input; + resourceLabel?: pulumi.Input; + } + /** * ``StepAdjustment`` specifies a step adjustment for the ``StepAdjustments`` property of the [AWS::ApplicationAutoScaling::ScalingPolicy StepScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html) property type. * For the following examples, suppose that you have an alarm with a breach threshold of 50: @@ -4696,6 +4851,18 @@ export namespace applicationinsights { } export namespace applicationsignals { + /** + * This object defines the length of the look-back window used to calculate one burn rate metric for this SLO. The burn rate measures how fast the service is consuming the error budget, relative to the attainment goal of the SLO. A burn rate of exactly 1 indicates that the SLO goal will be met exactly. + * For example, if you specify 60 as the number of minutes in the look-back window, the burn rate is calculated as the following: + * burn rate = error rate over the look-back window / (1 - attainment goal percentage) + */ + export interface ServiceLevelObjectiveBurnRateConfigurationArgs { + /** + * The number of minutes to use as the look-back window. + */ + lookBackWindowMinutes: pulumi.Input; + } + /** * If the interval for this service level objective is a calendar interval, this structure contains the interval specifications. */ @@ -6394,6 +6561,11 @@ export namespace autoscaling { capacityDistributionStrategy?: pulumi.Input; } + export interface AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs { + impairedZoneHealthCheckBehavior: pulumi.Input; + zonalShiftEnabled: pulumi.Input; + } + /** * ``BaselineEbsBandwidthMbpsRequest`` is a property of the ``InstanceRequirements`` property of the [AWS::AutoScaling::AutoScalingGroup LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplateoverrides.html) property type that describes the minimum and maximum baseline bandwidth performance for an instance type, in Mbps. */ @@ -6408,6 +6580,14 @@ export namespace autoscaling { min?: pulumi.Input; } + export interface AutoScalingGroupBaselinePerformanceFactorsRequestArgs { + cpu?: pulumi.Input; + } + + export interface AutoScalingGroupCpuPerformanceFactorRequestArgs { + references?: pulumi.Input[]>; + } + /** * ``InstanceMaintenancePolicy`` is a property of the [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) resource. * For more information, see [Instance maintenance policies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-maintenance-policy.html) in the *Amazon EC2 Auto Scaling User Guide*. @@ -6498,6 +6678,7 @@ export namespace autoscaling { * Default: No minimum or maximum limits */ baselineEbsBandwidthMbps?: pulumi.Input; + baselinePerformanceFactors?: pulumi.Input; /** * Indicates whether burstable performance instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide for Linux Instances*. * Default: ``excluded`` @@ -6899,6 +7080,10 @@ export namespace autoscaling { topicArn: pulumi.Input[]>; } + export interface AutoScalingGroupPerformanceFactorReferenceRequestArgs { + instanceFamily?: pulumi.Input; + } + /** * A structure that specifies a tag for the ``Tags`` property of [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) resource. * For more information, see [Tag Auto Scaling groups and instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html) in the *Amazon EC2 Auto Scaling User Guide*. You can find a sample template snippet in the [Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html#aws-resource-autoscaling-autoscalinggroup--examples) section of the ``AWS::AutoScaling::AutoScalingGroup`` resource. @@ -8141,23 +8326,65 @@ export namespace batch { * The name of the launch template. */ launchTemplateName?: pulumi.Input; + /** + * A launch template to use in place of the default launch template. You must specify either the launch template ID or launch template name in the request, but not both. + * + * You can specify up to ten (10) launch template overrides that are associated to unique instance types or families for each compute environment. + * + * > To unset all override templates for a compute environment, you can pass an empty array to the [UpdateComputeEnvironment.overrides](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) parameter, or not include the `overrides` parameter when submitting the `UpdateComputeEnvironment` API operation. + */ overrides?: pulumi.Input[]>; /** - * The version number of the launch template, `$Latest` , or `$Default` . + * The version number of the launch template, `$Default` , or `$Latest` . + * + * If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. * - * If the value is `$Latest` , the latest version of the launch template is used. If the value is `$Default` , the default version of the launch template is used. + * > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . * - * > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Latest` or `$Default` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + * Default: `$Default` * - * Default: `$Default` . + * Latest: `$Latest` */ version?: pulumi.Input; } export interface ComputeEnvironmentLaunchTemplateSpecificationOverrideArgs { + /** + * The ID of the launch template. + * + * *Note:* If you specify the `launchTemplateId` you can't specify the `launchTemplateName` as well. + */ launchTemplateId?: pulumi.Input; + /** + * The name of the launch template. + * + * *Note:* If you specify the `launchTemplateName` you can't specify the `launchTemplateId` as well. + */ launchTemplateName?: pulumi.Input; + /** + * The instance type or family that this this override launch template should be applied to. + * + * This parameter is required when defining a launch template override. + * + * Information included in this parameter must meet the following requirements: + * + * - Must be a valid Amazon EC2 instance type or family. + * - `optimal` isn't allowed. + * - `targetInstanceTypes` can target only instance types and families that are included within the [`ComputeResource.instanceTypes`](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes) set. `targetInstanceTypes` doesn't need to include all of the instances from the `instanceType` set, but at least a subset. For example, if `ComputeResource.instanceTypes` includes `[m5, g5]` , `targetInstanceTypes` can include `[m5.2xlarge]` and `[m5.large]` but not `[c5.large]` . + * - `targetInstanceTypes` included within the same launch template override or across launch template overrides can't overlap for the same compute environment. For example, you can't define one launch template override to target an instance family and another define an instance type within this same family. + */ targetInstanceTypes?: pulumi.Input[]>; + /** + * The version number of the launch template, `$Default` , or `$Latest` . + * + * If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. + * + * > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + * + * Default: `$Default` + * + * Latest: `$Latest` + */ version?: pulumi.Input; } @@ -17135,6 +17362,235 @@ export namespace connectcampaigns { } +export namespace connectcampaignsv2 { + /** + * Agentless config + */ + export interface CampaignAgentlessConfigArgs { + } + + /** + * The configuration used for answering machine detection during outbound calls + */ + export interface CampaignAnswerMachineDetectionConfigArgs { + /** + * Enables detection of prompts (e.g., beep after after a voicemail greeting) + */ + awaitAnswerMachinePrompt?: pulumi.Input; + /** + * Flag to decided whether outbound calls should have answering machine detection enabled or not + */ + enableAnswerMachineDetection: pulumi.Input; + } + + /** + * The possible types of channel subtype config parameters + */ + export interface CampaignChannelSubtypeConfigArgs { + email?: pulumi.Input; + sms?: pulumi.Input; + telephony?: pulumi.Input; + } + + /** + * Communication Limit + */ + export interface CampaignCommunicationLimitArgs { + frequency: pulumi.Input; + maxCountPerRecipient: pulumi.Input; + unit: pulumi.Input; + } + + /** + * Communication limits + */ + export interface CampaignCommunicationLimitsArgs { + communicationLimitList?: pulumi.Input[]>; + } + + /** + * Communication limits config + */ + export interface CampaignCommunicationLimitsConfigArgs { + allChannelsSubtypes?: pulumi.Input; + } + + /** + * Campaign communication time config + */ + export interface CampaignCommunicationTimeConfigArgs { + email?: pulumi.Input; + localTimeZoneConfig: pulumi.Input; + sms?: pulumi.Input; + telephony?: pulumi.Input; + } + + /** + * Daily Hour + */ + export interface CampaignDailyHourArgs { + key?: pulumi.Input; + value?: pulumi.Input[]>; + } + + /** + * Email Channel Subtype config + */ + export interface CampaignEmailChannelSubtypeConfigArgs { + capacity?: pulumi.Input; + defaultOutboundConfig: pulumi.Input; + outboundMode: pulumi.Input; + } + + /** + * Default SMS outbound config + */ + export interface CampaignEmailOutboundConfigArgs { + connectSourceEmailAddress: pulumi.Input; + sourceEmailAddressDisplayName?: pulumi.Input; + wisdomTemplateArn: pulumi.Input; + } + + /** + * Email Outbound Mode + */ + export interface CampaignEmailOutboundModeArgs { + agentlessConfig?: pulumi.Input; + } + + /** + * Local time zone config + */ + export interface CampaignLocalTimeZoneConfigArgs { + defaultTimeZone?: pulumi.Input; + localTimeZoneDetection?: pulumi.Input[]>; + } + + /** + * Open Hours config + */ + export interface CampaignOpenHoursArgs { + dailyHours: pulumi.Input[]>; + } + + /** + * Predictive config + */ + export interface CampaignPredictiveConfigArgs { + bandwidthAllocation: pulumi.Input; + } + + /** + * Progressive config + */ + export interface CampaignProgressiveConfigArgs { + bandwidthAllocation: pulumi.Input; + } + + /** + * Restricted period + */ + export interface CampaignRestrictedPeriodArgs { + endDate: pulumi.Input; + /** + * The name of a restricted period + */ + name?: pulumi.Input; + startDate: pulumi.Input; + } + + /** + * Restricted period config + */ + export interface CampaignRestrictedPeriodsArgs { + restrictedPeriodList?: pulumi.Input[]>; + } + + /** + * Campaign schedule + */ + export interface CampaignScheduleArgs { + endTime: pulumi.Input; + refreshFrequency?: pulumi.Input; + startTime: pulumi.Input; + } + + /** + * SMS Channel Subtype config + */ + export interface CampaignSmsChannelSubtypeConfigArgs { + capacity?: pulumi.Input; + defaultOutboundConfig: pulumi.Input; + outboundMode: pulumi.Input; + } + + /** + * Default SMS outbound config + */ + export interface CampaignSmsOutboundConfigArgs { + connectSourcePhoneNumberArn: pulumi.Input; + wisdomTemplateArn: pulumi.Input; + } + + /** + * SMS Outbound Mode + */ + export interface CampaignSmsOutboundModeArgs { + agentlessConfig?: pulumi.Input; + } + + /** + * The possible types of channel config parameters + */ + export interface CampaignSourceArgs { + customerProfilesSegmentArn?: pulumi.Input; + } + + /** + * Telephony Channel Subtype config + */ + export interface CampaignTelephonyChannelSubtypeConfigArgs { + capacity?: pulumi.Input; + connectQueueId?: pulumi.Input; + defaultOutboundConfig: pulumi.Input; + outboundMode: pulumi.Input; + } + + /** + * Default Telephone Outbound config + */ + export interface CampaignTelephonyOutboundConfigArgs { + answerMachineDetectionConfig?: pulumi.Input; + connectContactFlowId: pulumi.Input; + connectSourcePhoneNumber?: pulumi.Input; + } + + /** + * Telephony Outbound Mode + */ + export interface CampaignTelephonyOutboundModeArgs { + agentlessConfig?: pulumi.Input; + predictiveConfig?: pulumi.Input; + progressiveConfig?: pulumi.Input; + } + + /** + * Time range in 24 hour format + */ + export interface CampaignTimeRangeArgs { + endTime: pulumi.Input; + startTime: pulumi.Input; + } + + /** + * Time window config + */ + export interface CampaignTimeWindowArgs { + openHours: pulumi.Input; + restrictedPeriods?: pulumi.Input; + } +} + export namespace controltower { export interface EnabledBaselineParameterArgs { /** @@ -19889,8 +20345,9 @@ export namespace dynamodb { * Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. */ projection: pulumi.Input; + warmThroughput?: pulumi.Input; /** - * Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + * Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . */ writeOnDemandThroughputSettings?: pulumi.Input; /** @@ -20004,7 +20461,7 @@ export namespace dynamodb { */ indexName: pulumi.Input; /** - * Sets the read request settings for a replica global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + * Sets the read request settings for a replica global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . */ readOnDemandThroughputSettings?: pulumi.Input; /** @@ -20165,6 +20622,11 @@ export namespace dynamodb { enabled: pulumi.Input; } + export interface GlobalTableWarmThroughputArgs { + readUnitsPerSecond?: pulumi.Input; + writeUnitsPerSecond?: pulumi.Input; + } + export interface GlobalTableWriteOnDemandThroughputSettingsArgs { /** * Maximum number of write request settings for the specified replica of a global table. @@ -20254,6 +20716,7 @@ export namespace dynamodb { * For current minimum and maximum provisioned throughput values, see [Service, Account, and Table Quotas](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the *Amazon DynamoDB Developer Guide*. */ provisionedThroughput?: pulumi.Input; + warmThroughput?: pulumi.Input; } /** @@ -20499,6 +20962,11 @@ export namespace dynamodb { */ enabled: pulumi.Input; } + + export interface TableWarmThroughputArgs { + readUnitsPerSecond?: pulumi.Input; + writeUnitsPerSecond?: pulumi.Input; + } } export namespace ec2 { @@ -26743,6 +27211,16 @@ export namespace eks { version?: pulumi.Input; } + /** + * The node auto repair configuration for node group. + */ + export interface NodegroupNodeRepairConfigArgs { + /** + * Set this value to true to enable node auto repair for the node group. + */ + enabled?: pulumi.Input; + } + /** * An object representing a remote access configuration specification for AWS EKS Nodegroup. */ @@ -27795,6 +28273,9 @@ export namespace elasticloadbalancingv2 { * [Network Load Balancers] The private IPv4 address for an internal load balancer. */ privateIPv4Address?: pulumi.Input; + /** + * [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block. + */ sourceNatIpv6Prefix?: pulumi.Input; /** * The ID of the subnet. @@ -29352,6 +29833,9 @@ export namespace fis { } export interface ExperimentTemplateCloudWatchDashboardArgs { + /** + * The Amazon Resource Name (ARN) of the CloudWatch dashboard to include in the experiment report. + */ dashboardIdentifier: pulumi.Input; } @@ -29367,16 +29851,34 @@ export namespace fis { } export interface ExperimentTemplateExperimentReportConfigurationArgs { + /** + * The data sources for the experiment report. + */ dataSources: pulumi.Input; + /** + * The output destinations of the experiment report. + */ outputs: pulumi.Input; + /** + * The duration after the experiment end time for the data sources to include in the report. + */ postExperimentDuration?: pulumi.Input; + /** + * The duration before the experiment start time for the data sources to include in the report. + */ preExperimentDuration?: pulumi.Input; } + /** + * The data sources for the experiment report. + */ export interface ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesArgs { cloudWatchDashboards?: pulumi.Input[]>; } + /** + * The output destinations of the experiment report. + */ export interface ExperimentTemplateExperimentReportConfigurationOutputsPropertiesArgs { experimentReportS3Configuration: pulumi.Input; } @@ -82546,6 +83048,7 @@ export namespace sagemaker { instanceType: pulumi.Input; lifeCycleConfig: pulumi.Input; onStartDeepHealthChecks?: pulumi.Input[]>; + overrideVpcConfig?: pulumi.Input; /** * The number you specified to TreadsPerCore in CreateCluster for enabling or disabling multithreading. For instance types that support multithreading, you can specify 1 for disabling multithreading and 2 for enabling multithreading. */ @@ -91612,6 +92115,10 @@ export namespace vpclattice { hostedZoneId?: pulumi.Input; } + export interface ServiceNetworkSharingConfigArgs { + enabled: pulumi.Input; + } + export interface TargetGroupConfigArgs { /** * The health check configuration. Not supported if the target group type is `LAMBDA` or `ALB` . diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 0fc3cb53f0..4ebcf4a384 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -35,6 +35,24 @@ export interface Tag { } export namespace accessanalyzer { + /** + * The criteria for an analysis rule for an analyzer. + */ + export interface AnalyzerAnalysisRuleCriteria { + /** + * A list of AWS account IDs to apply to the analysis rule criteria. The accounts cannot include the organization analyzer owner account. Account IDs can only be applied to the analysis rule criteria for organization-level analyzers. + */ + accountIds?: string[]; + /** + * An array of key-value pairs to match for your resources. You can use the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + * + * For the tag key, you can specify a value that is 1 to 128 characters in length and cannot be prefixed with aws:. + * + * For the tag value, you can specify a value that is 0 to 256 characters in length. If the specified tag value is 0 characters, the rule is applied to all principals with the specified tag key. + */ + resourceTags?: outputs.accessanalyzer.AnalyzerTag[][]; + } + /** * An Access Analyzer archive rule. Archive rules automatically archive new findings that meet the criteria you define when you create the rule. */ @@ -54,7 +72,7 @@ export namespace accessanalyzer { */ export interface AnalyzerConfigurationProperties { /** - * Specifies the configuration of an unused access analyzer for an AWS organization or account. External access analyzers do not support any configuration. + * Specifies the configuration of an unused access analyzer for an AWS organization or account. */ unusedAccessConfiguration?: outputs.accessanalyzer.AnalyzerUnusedAccessConfiguration; } @@ -82,16 +100,44 @@ export namespace accessanalyzer { property: string; } + /** + * A key-value pair to associate with a resource. + */ + export interface AnalyzerTag { + /** + * The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + */ + key: string; + /** + * The value for the tag. You can specify a value that is 0 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + */ + value?: string; + } + /** * The Configuration for Unused Access Analyzer */ export interface AnalyzerUnusedAccessConfiguration { /** - * The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 180 days. + * Contains information about rules for the analyzer. + */ + analysisRule?: outputs.accessanalyzer.AnalyzerUnusedAccessConfigurationAnalysisRuleProperties; + /** + * The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 365 days. */ unusedAccessAge?: number; } + /** + * Contains information about rules for the analyzer. + */ + export interface AnalyzerUnusedAccessConfigurationAnalysisRuleProperties { + /** + * A list of rules for the analyzer containing criteria to exclude from analysis. Entities that meet the rule criteria will not generate findings. + */ + exclusions?: outputs.accessanalyzer.AnalyzerAnalysisRuleCriteria[]; + } + } export namespace acmpca { @@ -4094,6 +4140,115 @@ export namespace applicationautoscaling { resourceLabel?: string; } + export interface ScalingPolicyPredictiveScalingCustomizedCapacityMetric { + metricDataQueries: outputs.applicationautoscaling.ScalingPolicyPredictiveScalingMetricDataQuery[]; + } + + export interface ScalingPolicyPredictiveScalingCustomizedLoadMetric { + metricDataQueries: outputs.applicationautoscaling.ScalingPolicyPredictiveScalingMetricDataQuery[]; + } + + export interface ScalingPolicyPredictiveScalingCustomizedScalingMetric { + metricDataQueries: outputs.applicationautoscaling.ScalingPolicyPredictiveScalingMetricDataQuery[]; + } + + export interface ScalingPolicyPredictiveScalingMetric { + /** + * The dimensions for the metric. + */ + dimensions?: outputs.applicationautoscaling.ScalingPolicyPredictiveScalingMetricDimension[]; + /** + * The name of the metric. + */ + metricName?: string; + /** + * The namespace of the metric. + */ + namespace?: string; + } + + export interface ScalingPolicyPredictiveScalingMetricDataQuery { + /** + * The math expression to perform on the returned data, if this object is performing a math expression. + */ + expression?: string; + /** + * A short name that identifies the object's results in the response. + */ + id?: string; + /** + * A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents. + */ + label?: string; + /** + * Information about the metric data to return. + */ + metricStat?: outputs.applicationautoscaling.ScalingPolicyPredictiveScalingMetricStat; + /** + * Indicates whether to return the timestamps and raw data values of this metric. + */ + returnData?: boolean; + } + + export interface ScalingPolicyPredictiveScalingMetricDimension { + /** + * The name of the dimension. + */ + name?: string; + /** + * The value of the dimension. + */ + value?: string; + } + + export interface ScalingPolicyPredictiveScalingMetricSpecification { + customizedCapacityMetricSpecification?: outputs.applicationautoscaling.ScalingPolicyPredictiveScalingCustomizedCapacityMetric; + customizedLoadMetricSpecification?: outputs.applicationautoscaling.ScalingPolicyPredictiveScalingCustomizedLoadMetric; + customizedScalingMetricSpecification?: outputs.applicationautoscaling.ScalingPolicyPredictiveScalingCustomizedScalingMetric; + predefinedLoadMetricSpecification?: outputs.applicationautoscaling.ScalingPolicyPredictiveScalingPredefinedLoadMetric; + predefinedMetricPairSpecification?: outputs.applicationautoscaling.ScalingPolicyPredictiveScalingPredefinedMetricPair; + predefinedScalingMetricSpecification?: outputs.applicationautoscaling.ScalingPolicyPredictiveScalingPredefinedScalingMetric; + targetValue: number; + } + + export interface ScalingPolicyPredictiveScalingMetricStat { + /** + * The CloudWatch metric to return, including the metric name, namespace, and dimensions. + */ + metric?: outputs.applicationautoscaling.ScalingPolicyPredictiveScalingMetric; + /** + * The statistic to return. It can include any CloudWatch statistic or extended statistic. + */ + stat?: string; + /** + * The unit to use for the returned data points. + */ + unit?: string; + } + + export interface ScalingPolicyPredictiveScalingPolicyConfiguration { + maxCapacityBreachBehavior?: string; + maxCapacityBuffer?: number; + metricSpecifications: outputs.applicationautoscaling.ScalingPolicyPredictiveScalingMetricSpecification[]; + mode?: string; + schedulingBufferTime?: number; + } + + export interface ScalingPolicyPredictiveScalingPredefinedLoadMetric { + predefinedMetricType: string; + resourceLabel?: string; + } + + export interface ScalingPolicyPredictiveScalingPredefinedMetricPair { + predefinedMetricType: string; + resourceLabel?: string; + } + + export interface ScalingPolicyPredictiveScalingPredefinedScalingMetric { + predefinedMetricType: string; + resourceLabel?: string; + } + /** * ``StepAdjustment`` specifies a step adjustment for the ``StepAdjustments`` property of the [AWS::ApplicationAutoScaling::ScalingPolicy StepScalingPolicyConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration.html) property type. * For the following examples, suppose that you have an alarm with a breach threshold of 50: @@ -4620,6 +4775,18 @@ export namespace applicationinsights { } export namespace applicationsignals { + /** + * This object defines the length of the look-back window used to calculate one burn rate metric for this SLO. The burn rate measures how fast the service is consuming the error budget, relative to the attainment goal of the SLO. A burn rate of exactly 1 indicates that the SLO goal will be met exactly. + * For example, if you specify 60 as the number of minutes in the look-back window, the burn rate is calculated as the following: + * burn rate = error rate over the look-back window / (1 - attainment goal percentage) + */ + export interface ServiceLevelObjectiveBurnRateConfiguration { + /** + * The number of minutes to use as the look-back window. + */ + lookBackWindowMinutes: number; + } + /** * If the interval for this service level objective is a calendar interval, this structure contains the interval specifications. */ @@ -6335,6 +6502,11 @@ export namespace autoscaling { capacityDistributionStrategy?: enums.autoscaling.AutoScalingGroupAvailabilityZoneDistributionCapacityDistributionStrategy; } + export interface AutoScalingGroupAvailabilityZoneImpairmentPolicy { + impairedZoneHealthCheckBehavior: enums.autoscaling.AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior; + zonalShiftEnabled: boolean; + } + /** * ``BaselineEbsBandwidthMbpsRequest`` is a property of the ``InstanceRequirements`` property of the [AWS::AutoScaling::AutoScalingGroup LaunchTemplateOverrides](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-launchtemplateoverrides.html) property type that describes the minimum and maximum baseline bandwidth performance for an instance type, in Mbps. */ @@ -6349,6 +6521,14 @@ export namespace autoscaling { min?: number; } + export interface AutoScalingGroupBaselinePerformanceFactorsRequest { + cpu?: outputs.autoscaling.AutoScalingGroupCpuPerformanceFactorRequest; + } + + export interface AutoScalingGroupCpuPerformanceFactorRequest { + references?: outputs.autoscaling.AutoScalingGroupPerformanceFactorReferenceRequest[]; + } + /** * ``InstanceMaintenancePolicy`` is a property of the [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) resource. * For more information, see [Instance maintenance policies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-maintenance-policy.html) in the *Amazon EC2 Auto Scaling User Guide*. @@ -6439,6 +6619,7 @@ export namespace autoscaling { * Default: No minimum or maximum limits */ baselineEbsBandwidthMbps?: outputs.autoscaling.AutoScalingGroupBaselineEbsBandwidthMbpsRequest; + baselinePerformanceFactors?: outputs.autoscaling.AutoScalingGroupBaselinePerformanceFactorsRequest; /** * Indicates whether burstable performance instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide for Linux Instances*. * Default: ``excluded`` @@ -6840,6 +7021,10 @@ export namespace autoscaling { topicArn: string[]; } + export interface AutoScalingGroupPerformanceFactorReferenceRequest { + instanceFamily?: string; + } + /** * A structure that specifies a tag for the ``Tags`` property of [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) resource. * For more information, see [Tag Auto Scaling groups and instances](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-tagging.html) in the *Amazon EC2 Auto Scaling User Guide*. You can find a sample template snippet in the [Examples](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html#aws-resource-autoscaling-autoscalinggroup--examples) section of the ``AWS::AutoScaling::AutoScalingGroup`` resource. @@ -8085,23 +8270,65 @@ export namespace batch { * The name of the launch template. */ launchTemplateName?: string; + /** + * A launch template to use in place of the default launch template. You must specify either the launch template ID or launch template name in the request, but not both. + * + * You can specify up to ten (10) launch template overrides that are associated to unique instance types or families for each compute environment. + * + * > To unset all override templates for a compute environment, you can pass an empty array to the [UpdateComputeEnvironment.overrides](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) parameter, or not include the `overrides` parameter when submitting the `UpdateComputeEnvironment` API operation. + */ overrides?: outputs.batch.ComputeEnvironmentLaunchTemplateSpecificationOverride[]; /** - * The version number of the launch template, `$Latest` , or `$Default` . + * The version number of the launch template, `$Default` , or `$Latest` . + * + * If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. * - * If the value is `$Latest` , the latest version of the launch template is used. If the value is `$Default` , the default version of the launch template is used. + * > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . * - * > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Latest` or `$Default` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + * Default: `$Default` * - * Default: `$Default` . + * Latest: `$Latest` */ version?: string; } export interface ComputeEnvironmentLaunchTemplateSpecificationOverride { + /** + * The ID of the launch template. + * + * *Note:* If you specify the `launchTemplateId` you can't specify the `launchTemplateName` as well. + */ launchTemplateId?: string; + /** + * The name of the launch template. + * + * *Note:* If you specify the `launchTemplateName` you can't specify the `launchTemplateId` as well. + */ launchTemplateName?: string; + /** + * The instance type or family that this this override launch template should be applied to. + * + * This parameter is required when defining a launch template override. + * + * Information included in this parameter must meet the following requirements: + * + * - Must be a valid Amazon EC2 instance type or family. + * - `optimal` isn't allowed. + * - `targetInstanceTypes` can target only instance types and families that are included within the [`ComputeResource.instanceTypes`](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes) set. `targetInstanceTypes` doesn't need to include all of the instances from the `instanceType` set, but at least a subset. For example, if `ComputeResource.instanceTypes` includes `[m5, g5]` , `targetInstanceTypes` can include `[m5.2xlarge]` and `[m5.large]` but not `[c5.large]` . + * - `targetInstanceTypes` included within the same launch template override or across launch template overrides can't overlap for the same compute environment. For example, you can't define one launch template override to target an instance family and another define an instance type within this same family. + */ targetInstanceTypes?: string[]; + /** + * The version number of the launch template, `$Default` , or `$Latest` . + * + * If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. + * + * > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + * + * Default: `$Default` + * + * Latest: `$Latest` + */ version?: string; } @@ -17847,6 +18074,236 @@ export namespace connectcampaigns { } +export namespace connectcampaignsv2 { + /** + * Agentless config + */ + export interface CampaignAgentlessConfig { + } + + /** + * The configuration used for answering machine detection during outbound calls + */ + export interface CampaignAnswerMachineDetectionConfig { + /** + * Enables detection of prompts (e.g., beep after after a voicemail greeting) + */ + awaitAnswerMachinePrompt?: boolean; + /** + * Flag to decided whether outbound calls should have answering machine detection enabled or not + */ + enableAnswerMachineDetection: boolean; + } + + /** + * The possible types of channel subtype config parameters + */ + export interface CampaignChannelSubtypeConfig { + email?: outputs.connectcampaignsv2.CampaignEmailChannelSubtypeConfig; + sms?: outputs.connectcampaignsv2.CampaignSmsChannelSubtypeConfig; + telephony?: outputs.connectcampaignsv2.CampaignTelephonyChannelSubtypeConfig; + } + + /** + * Communication Limit + */ + export interface CampaignCommunicationLimit { + frequency: number; + maxCountPerRecipient: number; + unit: enums.connectcampaignsv2.CampaignCommunicationLimitTimeUnit; + } + + /** + * Communication limits + */ + export interface CampaignCommunicationLimits { + communicationLimitList?: outputs.connectcampaignsv2.CampaignCommunicationLimit[]; + } + + /** + * Communication limits config + */ + export interface CampaignCommunicationLimitsConfig { + allChannelsSubtypes?: outputs.connectcampaignsv2.CampaignCommunicationLimits; + } + + /** + * Campaign communication time config + */ + export interface CampaignCommunicationTimeConfig { + email?: outputs.connectcampaignsv2.CampaignTimeWindow; + localTimeZoneConfig: outputs.connectcampaignsv2.CampaignLocalTimeZoneConfig; + sms?: outputs.connectcampaignsv2.CampaignTimeWindow; + telephony?: outputs.connectcampaignsv2.CampaignTimeWindow; + } + + /** + * Daily Hour + */ + export interface CampaignDailyHour { + key?: enums.connectcampaignsv2.CampaignDayOfWeek; + value?: outputs.connectcampaignsv2.CampaignTimeRange[]; + } + + /** + * Email Channel Subtype config + */ + export interface CampaignEmailChannelSubtypeConfig { + capacity?: number; + defaultOutboundConfig: outputs.connectcampaignsv2.CampaignEmailOutboundConfig; + outboundMode: outputs.connectcampaignsv2.CampaignEmailOutboundMode; + } + + /** + * Default SMS outbound config + */ + export interface CampaignEmailOutboundConfig { + connectSourceEmailAddress: string; + sourceEmailAddressDisplayName?: string; + wisdomTemplateArn: string; + } + + /** + * Email Outbound Mode + */ + export interface CampaignEmailOutboundMode { + agentlessConfig?: outputs.connectcampaignsv2.CampaignAgentlessConfig; + } + + /** + * Local time zone config + */ + export interface CampaignLocalTimeZoneConfig { + defaultTimeZone?: string; + localTimeZoneDetection?: enums.connectcampaignsv2.CampaignLocalTimeZoneDetectionType[]; + } + + /** + * Open Hours config + */ + export interface CampaignOpenHours { + dailyHours: outputs.connectcampaignsv2.CampaignDailyHour[]; + } + + /** + * Predictive config + */ + export interface CampaignPredictiveConfig { + bandwidthAllocation: number; + } + + /** + * Progressive config + */ + export interface CampaignProgressiveConfig { + bandwidthAllocation: number; + } + + /** + * Restricted period + */ + export interface CampaignRestrictedPeriod { + endDate: string; + /** + * The name of a restricted period + */ + name?: string; + startDate: string; + } + + /** + * Restricted period config + */ + export interface CampaignRestrictedPeriods { + restrictedPeriodList?: outputs.connectcampaignsv2.CampaignRestrictedPeriod[]; + } + + /** + * Campaign schedule + */ + export interface CampaignSchedule { + endTime: string; + refreshFrequency?: string; + startTime: string; + } + + /** + * SMS Channel Subtype config + */ + export interface CampaignSmsChannelSubtypeConfig { + capacity?: number; + defaultOutboundConfig: outputs.connectcampaignsv2.CampaignSmsOutboundConfig; + outboundMode: outputs.connectcampaignsv2.CampaignSmsOutboundMode; + } + + /** + * Default SMS outbound config + */ + export interface CampaignSmsOutboundConfig { + connectSourcePhoneNumberArn: string; + wisdomTemplateArn: string; + } + + /** + * SMS Outbound Mode + */ + export interface CampaignSmsOutboundMode { + agentlessConfig?: outputs.connectcampaignsv2.CampaignAgentlessConfig; + } + + /** + * The possible types of channel config parameters + */ + export interface CampaignSource { + customerProfilesSegmentArn?: string; + } + + /** + * Telephony Channel Subtype config + */ + export interface CampaignTelephonyChannelSubtypeConfig { + capacity?: number; + connectQueueId?: string; + defaultOutboundConfig: outputs.connectcampaignsv2.CampaignTelephonyOutboundConfig; + outboundMode: outputs.connectcampaignsv2.CampaignTelephonyOutboundMode; + } + + /** + * Default Telephone Outbound config + */ + export interface CampaignTelephonyOutboundConfig { + answerMachineDetectionConfig?: outputs.connectcampaignsv2.CampaignAnswerMachineDetectionConfig; + connectContactFlowId: string; + connectSourcePhoneNumber?: string; + } + + /** + * Telephony Outbound Mode + */ + export interface CampaignTelephonyOutboundMode { + agentlessConfig?: outputs.connectcampaignsv2.CampaignAgentlessConfig; + predictiveConfig?: outputs.connectcampaignsv2.CampaignPredictiveConfig; + progressiveConfig?: outputs.connectcampaignsv2.CampaignProgressiveConfig; + } + + /** + * Time range in 24 hour format + */ + export interface CampaignTimeRange { + endTime: string; + startTime: string; + } + + /** + * Time window config + */ + export interface CampaignTimeWindow { + openHours: outputs.connectcampaignsv2.CampaignOpenHours; + restrictedPeriods?: outputs.connectcampaignsv2.CampaignRestrictedPeriods; + } + +} + export namespace controltower { export interface EnabledBaselineParameter { /** @@ -20688,8 +21145,9 @@ export namespace dynamodb { * Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. */ projection: outputs.dynamodb.GlobalTableProjection; + warmThroughput?: outputs.dynamodb.GlobalTableWarmThroughput; /** - * Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + * Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . */ writeOnDemandThroughputSettings?: outputs.dynamodb.GlobalTableWriteOnDemandThroughputSettings; /** @@ -20803,7 +21261,7 @@ export namespace dynamodb { */ indexName: string; /** - * Sets the read request settings for a replica global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + * Sets the read request settings for a replica global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . */ readOnDemandThroughputSettings?: outputs.dynamodb.GlobalTableReadOnDemandThroughputSettings; /** @@ -20964,6 +21422,11 @@ export namespace dynamodb { enabled: boolean; } + export interface GlobalTableWarmThroughput { + readUnitsPerSecond?: number; + writeUnitsPerSecond?: number; + } + export interface GlobalTableWriteOnDemandThroughputSettings { /** * Maximum number of write request settings for the specified replica of a global table. @@ -21053,6 +21516,7 @@ export namespace dynamodb { * For current minimum and maximum provisioned throughput values, see [Service, Account, and Table Quotas](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the *Amazon DynamoDB Developer Guide*. */ provisionedThroughput?: outputs.dynamodb.TableProvisionedThroughput; + warmThroughput?: outputs.dynamodb.TableWarmThroughput; } /** @@ -21299,6 +21763,11 @@ export namespace dynamodb { enabled: boolean; } + export interface TableWarmThroughput { + readUnitsPerSecond?: number; + writeUnitsPerSecond?: number; + } + } export namespace ec2 { @@ -28100,6 +28569,16 @@ export namespace eks { version?: string; } + /** + * The node auto repair configuration for node group. + */ + export interface NodegroupNodeRepairConfig { + /** + * Set this value to true to enable node auto repair for the node group. + */ + enabled?: boolean; + } + /** * An object representing a remote access configuration specification for AWS EKS Nodegroup. */ @@ -29153,6 +29632,9 @@ export namespace elasticloadbalancingv2 { * [Network Load Balancers] The private IPv4 address for an internal load balancer. */ privateIPv4Address?: string; + /** + * [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block. + */ sourceNatIpv6Prefix?: string; /** * The ID of the subnet. @@ -30731,6 +31213,9 @@ export namespace fis { } export interface ExperimentTemplateCloudWatchDashboard { + /** + * The Amazon Resource Name (ARN) of the CloudWatch dashboard to include in the experiment report. + */ dashboardIdentifier: string; } @@ -30746,16 +31231,34 @@ export namespace fis { } export interface ExperimentTemplateExperimentReportConfiguration { + /** + * The data sources for the experiment report. + */ dataSources: outputs.fis.ExperimentTemplateExperimentReportConfigurationDataSourcesProperties; + /** + * The output destinations of the experiment report. + */ outputs: outputs.fis.ExperimentTemplateExperimentReportConfigurationOutputsProperties; + /** + * The duration after the experiment end time for the data sources to include in the report. + */ postExperimentDuration?: string; + /** + * The duration before the experiment start time for the data sources to include in the report. + */ preExperimentDuration?: string; } + /** + * The data sources for the experiment report. + */ export interface ExperimentTemplateExperimentReportConfigurationDataSourcesProperties { cloudWatchDashboards?: outputs.fis.ExperimentTemplateCloudWatchDashboard[]; } + /** + * The output destinations of the experiment report. + */ export interface ExperimentTemplateExperimentReportConfigurationOutputsProperties { experimentReportS3Configuration: outputs.fis.ExperimentTemplateExperimentReportConfigurationOutputsPropertiesExperimentReportS3ConfigurationProperties; } @@ -84938,6 +85441,7 @@ export namespace sagemaker { instanceType: string; lifeCycleConfig: outputs.sagemaker.ClusterLifeCycleConfig; onStartDeepHealthChecks?: enums.sagemaker.ClusterDeepHealthCheckType[]; + overrideVpcConfig?: outputs.sagemaker.ClusterVpcConfig; /** * The number you specified to TreadsPerCore in CreateCluster for enabling or disabling multithreading. For instance types that support multithreading, you can specify 1 for disabling multithreading and 2 for enabling multithreading. */ @@ -94063,6 +94567,10 @@ export namespace vpclattice { hostedZoneId?: string; } + export interface ServiceNetworkSharingConfig { + enabled: boolean; + } + export interface TargetGroupConfig { /** * The health check configuration. Not supported if the target group type is `LAMBDA` or `ALB` . diff --git a/sdk/nodejs/vpclattice/accessLogSubscription.ts b/sdk/nodejs/vpclattice/accessLogSubscription.ts index 0c214ec3c7..6d21428196 100644 --- a/sdk/nodejs/vpclattice/accessLogSubscription.ts +++ b/sdk/nodejs/vpclattice/accessLogSubscription.ts @@ -61,6 +61,7 @@ export class AccessLogSubscription extends pulumi.CustomResource { * The ID or Amazon Resource Name (ARN) of the service network or service. */ public readonly resourceIdentifier!: pulumi.Output; + public readonly serviceNetworkLogType!: pulumi.Output; /** * The tags for the access log subscription. */ @@ -82,6 +83,7 @@ export class AccessLogSubscription extends pulumi.CustomResource { } resourceInputs["destinationArn"] = args ? args.destinationArn : undefined; resourceInputs["resourceIdentifier"] = args ? args.resourceIdentifier : undefined; + resourceInputs["serviceNetworkLogType"] = args ? args.serviceNetworkLogType : undefined; resourceInputs["tags"] = args ? args.tags : undefined; resourceInputs["arn"] = undefined /*out*/; resourceInputs["awsId"] = undefined /*out*/; @@ -94,6 +96,7 @@ export class AccessLogSubscription extends pulumi.CustomResource { resourceInputs["resourceArn"] = undefined /*out*/; resourceInputs["resourceId"] = undefined /*out*/; resourceInputs["resourceIdentifier"] = undefined /*out*/; + resourceInputs["serviceNetworkLogType"] = undefined /*out*/; resourceInputs["tags"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); @@ -115,6 +118,7 @@ export interface AccessLogSubscriptionArgs { * The ID or Amazon Resource Name (ARN) of the service network or service. */ resourceIdentifier?: pulumi.Input; + serviceNetworkLogType?: pulumi.Input; /** * The tags for the access log subscription. */ diff --git a/sdk/nodejs/vpclattice/getAccessLogSubscription.ts b/sdk/nodejs/vpclattice/getAccessLogSubscription.ts index 8d012c417c..322ccd2051 100644 --- a/sdk/nodejs/vpclattice/getAccessLogSubscription.ts +++ b/sdk/nodejs/vpclattice/getAccessLogSubscription.ts @@ -45,6 +45,7 @@ export interface GetAccessLogSubscriptionResult { * The ID of the service network or service. */ readonly resourceId?: string; + readonly serviceNetworkLogType?: enums.vpclattice.AccessLogSubscriptionServiceNetworkLogType; /** * The tags for the access log subscription. */ diff --git a/sdk/nodejs/vpclattice/getServiceNetwork.ts b/sdk/nodejs/vpclattice/getServiceNetwork.ts index 2e650c13b0..6ab25b2e47 100644 --- a/sdk/nodejs/vpclattice/getServiceNetwork.ts +++ b/sdk/nodejs/vpclattice/getServiceNetwork.ts @@ -48,6 +48,7 @@ export interface GetServiceNetworkResult { * The date and time of the last update, specified in ISO-8601 format. */ readonly lastUpdatedAt?: string; + readonly sharingConfig?: outputs.vpclattice.ServiceNetworkSharingConfig; /** * The tags for the service network. */ diff --git a/sdk/nodejs/vpclattice/serviceNetwork.ts b/sdk/nodejs/vpclattice/serviceNetwork.ts index 7f81670f28..74e51edf57 100644 --- a/sdk/nodejs/vpclattice/serviceNetwork.ts +++ b/sdk/nodejs/vpclattice/serviceNetwork.ts @@ -66,6 +66,7 @@ export class ServiceNetwork extends pulumi.CustomResource { * If you don't specify a name, CloudFormation generates one. However, if you specify a name, and later want to replace the resource, you must specify a new name. */ public readonly name!: pulumi.Output; + public readonly sharingConfig!: pulumi.Output; /** * The tags for the service network. */ @@ -84,6 +85,7 @@ export class ServiceNetwork extends pulumi.CustomResource { if (!opts.id) { resourceInputs["authType"] = args ? args.authType : undefined; resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["sharingConfig"] = args ? args.sharingConfig : undefined; resourceInputs["tags"] = args ? args.tags : undefined; resourceInputs["arn"] = undefined /*out*/; resourceInputs["awsId"] = undefined /*out*/; @@ -96,6 +98,7 @@ export class ServiceNetwork extends pulumi.CustomResource { resourceInputs["createdAt"] = undefined /*out*/; resourceInputs["lastUpdatedAt"] = undefined /*out*/; resourceInputs["name"] = undefined /*out*/; + resourceInputs["sharingConfig"] = undefined /*out*/; resourceInputs["tags"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); @@ -122,6 +125,7 @@ export interface ServiceNetworkArgs { * If you don't specify a name, CloudFormation generates one. However, if you specify a name, and later want to replace the resource, you must specify a new name. */ name?: pulumi.Input; + sharingConfig?: pulumi.Input; /** * The tags for the service network. */ diff --git a/sdk/python/pulumi_aws_native/__init__.py b/sdk/python/pulumi_aws_native/__init__.py index c96feadebf..233a0b2806 100644 --- a/sdk/python/pulumi_aws_native/__init__.py +++ b/sdk/python/pulumi_aws_native/__init__.py @@ -126,6 +126,8 @@ connect = __connect import pulumi_aws_native.connectcampaigns as __connectcampaigns connectcampaigns = __connectcampaigns + import pulumi_aws_native.connectcampaignsv2 as __connectcampaignsv2 + connectcampaignsv2 = __connectcampaignsv2 import pulumi_aws_native.controltower as __controltower controltower = __controltower import pulumi_aws_native.customerprofiles as __customerprofiles @@ -509,6 +511,7 @@ configuration = _utilities.lazy_import('pulumi_aws_native.configuration') connect = _utilities.lazy_import('pulumi_aws_native.connect') connectcampaigns = _utilities.lazy_import('pulumi_aws_native.connectcampaigns') + connectcampaignsv2 = _utilities.lazy_import('pulumi_aws_native.connectcampaignsv2') controltower = _utilities.lazy_import('pulumi_aws_native.controltower') customerprofiles = _utilities.lazy_import('pulumi_aws_native.customerprofiles') databrew = _utilities.lazy_import('pulumi_aws_native.databrew') @@ -1279,6 +1282,14 @@ "aws-native:connectcampaigns:Campaign": "Campaign" } }, + { + "pkg": "aws-native", + "mod": "connectcampaignsv2", + "fqn": "pulumi_aws_native.connectcampaignsv2", + "classes": { + "aws-native:connectcampaignsv2:Campaign": "Campaign" + } + }, { "pkg": "aws-native", "mod": "controltower", diff --git a/sdk/python/pulumi_aws_native/accessanalyzer/_inputs.py b/sdk/python/pulumi_aws_native/accessanalyzer/_inputs.py index 6474e38555..f84e4f8c6e 100644 --- a/sdk/python/pulumi_aws_native/accessanalyzer/_inputs.py +++ b/sdk/python/pulumi_aws_native/accessanalyzer/_inputs.py @@ -15,18 +15,92 @@ from .. import _utilities __all__ = [ + 'AnalyzerAnalysisRuleCriteriaArgs', + 'AnalyzerAnalysisRuleCriteriaArgsDict', 'AnalyzerArchiveRuleArgs', 'AnalyzerArchiveRuleArgsDict', 'AnalyzerConfigurationPropertiesArgs', 'AnalyzerConfigurationPropertiesArgsDict', 'AnalyzerFilterArgs', 'AnalyzerFilterArgsDict', + 'AnalyzerTagArgs', + 'AnalyzerTagArgsDict', + 'AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs', + 'AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgsDict', 'AnalyzerUnusedAccessConfigurationArgs', 'AnalyzerUnusedAccessConfigurationArgsDict', ] MYPY = False +if not MYPY: + class AnalyzerAnalysisRuleCriteriaArgsDict(TypedDict): + """ + The criteria for an analysis rule for an analyzer. + """ + account_ids: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + A list of AWS account IDs to apply to the analysis rule criteria. The accounts cannot include the organization analyzer owner account. Account IDs can only be applied to the analysis rule criteria for organization-level analyzers. + """ + resource_tags: NotRequired[pulumi.Input[Sequence[pulumi.Input[Sequence[pulumi.Input['AnalyzerTagArgsDict']]]]]] + """ + An array of key-value pairs to match for your resources. You can use the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + + For the tag key, you can specify a value that is 1 to 128 characters in length and cannot be prefixed with aws:. + + For the tag value, you can specify a value that is 0 to 256 characters in length. If the specified tag value is 0 characters, the rule is applied to all principals with the specified tag key. + """ +elif False: + AnalyzerAnalysisRuleCriteriaArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AnalyzerAnalysisRuleCriteriaArgs: + def __init__(__self__, *, + account_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + resource_tags: Optional[pulumi.Input[Sequence[pulumi.Input[Sequence[pulumi.Input['AnalyzerTagArgs']]]]]] = None): + """ + The criteria for an analysis rule for an analyzer. + :param pulumi.Input[Sequence[pulumi.Input[str]]] account_ids: A list of AWS account IDs to apply to the analysis rule criteria. The accounts cannot include the organization analyzer owner account. Account IDs can only be applied to the analysis rule criteria for organization-level analyzers. + :param pulumi.Input[Sequence[pulumi.Input[Sequence[pulumi.Input['AnalyzerTagArgs']]]]] resource_tags: An array of key-value pairs to match for your resources. You can use the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + + For the tag key, you can specify a value that is 1 to 128 characters in length and cannot be prefixed with aws:. + + For the tag value, you can specify a value that is 0 to 256 characters in length. If the specified tag value is 0 characters, the rule is applied to all principals with the specified tag key. + """ + if account_ids is not None: + pulumi.set(__self__, "account_ids", account_ids) + if resource_tags is not None: + pulumi.set(__self__, "resource_tags", resource_tags) + + @property + @pulumi.getter(name="accountIds") + def account_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + A list of AWS account IDs to apply to the analysis rule criteria. The accounts cannot include the organization analyzer owner account. Account IDs can only be applied to the analysis rule criteria for organization-level analyzers. + """ + return pulumi.get(self, "account_ids") + + @account_ids.setter + def account_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "account_ids", value) + + @property + @pulumi.getter(name="resourceTags") + def resource_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[Sequence[pulumi.Input['AnalyzerTagArgs']]]]]]: + """ + An array of key-value pairs to match for your resources. You can use the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + + For the tag key, you can specify a value that is 1 to 128 characters in length and cannot be prefixed with aws:. + + For the tag value, you can specify a value that is 0 to 256 characters in length. If the specified tag value is 0 characters, the rule is applied to all principals with the specified tag key. + """ + return pulumi.get(self, "resource_tags") + + @resource_tags.setter + def resource_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[Sequence[pulumi.Input['AnalyzerTagArgs']]]]]]): + pulumi.set(self, "resource_tags", value) + + if not MYPY: class AnalyzerArchiveRuleArgsDict(TypedDict): """ @@ -88,7 +162,7 @@ class AnalyzerConfigurationPropertiesArgsDict(TypedDict): """ unused_access_configuration: NotRequired[pulumi.Input['AnalyzerUnusedAccessConfigurationArgsDict']] """ - Specifies the configuration of an unused access analyzer for an AWS organization or account. External access analyzers do not support any configuration. + Specifies the configuration of an unused access analyzer for an AWS organization or account. """ elif False: AnalyzerConfigurationPropertiesArgsDict: TypeAlias = Mapping[str, Any] @@ -99,7 +173,7 @@ def __init__(__self__, *, unused_access_configuration: Optional[pulumi.Input['AnalyzerUnusedAccessConfigurationArgs']] = None): """ The configuration for the analyzer - :param pulumi.Input['AnalyzerUnusedAccessConfigurationArgs'] unused_access_configuration: Specifies the configuration of an unused access analyzer for an AWS organization or account. External access analyzers do not support any configuration. + :param pulumi.Input['AnalyzerUnusedAccessConfigurationArgs'] unused_access_configuration: Specifies the configuration of an unused access analyzer for an AWS organization or account. """ if unused_access_configuration is not None: pulumi.set(__self__, "unused_access_configuration", unused_access_configuration) @@ -108,7 +182,7 @@ def __init__(__self__, *, @pulumi.getter(name="unusedAccessConfiguration") def unused_access_configuration(self) -> Optional[pulumi.Input['AnalyzerUnusedAccessConfigurationArgs']]: """ - Specifies the configuration of an unused access analyzer for an AWS organization or account. External access analyzers do not support any configuration. + Specifies the configuration of an unused access analyzer for an AWS organization or account. """ return pulumi.get(self, "unused_access_configuration") @@ -228,14 +302,109 @@ def property(self, value: pulumi.Input[str]): pulumi.set(self, "property", value) +if not MYPY: + class AnalyzerTagArgsDict(TypedDict): + """ + A key-value pair to associate with a resource. + """ + key: pulumi.Input[str] + """ + The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + """ + value: NotRequired[pulumi.Input[str]] + """ + The value for the tag. You can specify a value that is 0 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + """ +elif False: + AnalyzerTagArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AnalyzerTagArgs: + def __init__(__self__, *, + key: pulumi.Input[str], + value: Optional[pulumi.Input[str]] = None): + """ + A key-value pair to associate with a resource. + :param pulumi.Input[str] key: The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + :param pulumi.Input[str] value: The value for the tag. You can specify a value that is 0 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + """ + pulumi.set(__self__, "key", key) + if value is not None: + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def key(self) -> pulumi.Input[str]: + """ + The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + """ + return pulumi.get(self, "key") + + @key.setter + def key(self, value: pulumi.Input[str]): + pulumi.set(self, "key", value) + + @property + @pulumi.getter + def value(self) -> Optional[pulumi.Input[str]]: + """ + The value for the tag. You can specify a value that is 0 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "value", value) + + +if not MYPY: + class AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgsDict(TypedDict): + """ + Contains information about rules for the analyzer. + """ + exclusions: NotRequired[pulumi.Input[Sequence[pulumi.Input['AnalyzerAnalysisRuleCriteriaArgsDict']]]] + """ + A list of rules for the analyzer containing criteria to exclude from analysis. Entities that meet the rule criteria will not generate findings. + """ +elif False: + AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs: + def __init__(__self__, *, + exclusions: Optional[pulumi.Input[Sequence[pulumi.Input['AnalyzerAnalysisRuleCriteriaArgs']]]] = None): + """ + Contains information about rules for the analyzer. + :param pulumi.Input[Sequence[pulumi.Input['AnalyzerAnalysisRuleCriteriaArgs']]] exclusions: A list of rules for the analyzer containing criteria to exclude from analysis. Entities that meet the rule criteria will not generate findings. + """ + if exclusions is not None: + pulumi.set(__self__, "exclusions", exclusions) + + @property + @pulumi.getter + def exclusions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AnalyzerAnalysisRuleCriteriaArgs']]]]: + """ + A list of rules for the analyzer containing criteria to exclude from analysis. Entities that meet the rule criteria will not generate findings. + """ + return pulumi.get(self, "exclusions") + + @exclusions.setter + def exclusions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AnalyzerAnalysisRuleCriteriaArgs']]]]): + pulumi.set(self, "exclusions", value) + + if not MYPY: class AnalyzerUnusedAccessConfigurationArgsDict(TypedDict): """ The Configuration for Unused Access Analyzer """ + analysis_rule: NotRequired[pulumi.Input['AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgsDict']] + """ + Contains information about rules for the analyzer. + """ unused_access_age: NotRequired[pulumi.Input[int]] """ - The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 180 days. + The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 365 days. """ elif False: AnalyzerUnusedAccessConfigurationArgsDict: TypeAlias = Mapping[str, Any] @@ -243,19 +412,35 @@ class AnalyzerUnusedAccessConfigurationArgsDict(TypedDict): @pulumi.input_type class AnalyzerUnusedAccessConfigurationArgs: def __init__(__self__, *, + analysis_rule: Optional[pulumi.Input['AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs']] = None, unused_access_age: Optional[pulumi.Input[int]] = None): """ The Configuration for Unused Access Analyzer - :param pulumi.Input[int] unused_access_age: The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 180 days. + :param pulumi.Input['AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs'] analysis_rule: Contains information about rules for the analyzer. + :param pulumi.Input[int] unused_access_age: The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 365 days. """ + if analysis_rule is not None: + pulumi.set(__self__, "analysis_rule", analysis_rule) if unused_access_age is not None: pulumi.set(__self__, "unused_access_age", unused_access_age) + @property + @pulumi.getter(name="analysisRule") + def analysis_rule(self) -> Optional[pulumi.Input['AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs']]: + """ + Contains information about rules for the analyzer. + """ + return pulumi.get(self, "analysis_rule") + + @analysis_rule.setter + def analysis_rule(self, value: Optional[pulumi.Input['AnalyzerUnusedAccessConfigurationAnalysisRulePropertiesArgs']]): + pulumi.set(self, "analysis_rule", value) + @property @pulumi.getter(name="unusedAccessAge") def unused_access_age(self) -> Optional[pulumi.Input[int]]: """ - The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 180 days. + The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 365 days. """ return pulumi.get(self, "unused_access_age") diff --git a/sdk/python/pulumi_aws_native/accessanalyzer/analyzer.py b/sdk/python/pulumi_aws_native/accessanalyzer/analyzer.py index 3aa4b844a3..abee930b3a 100644 --- a/sdk/python/pulumi_aws_native/accessanalyzer/analyzer.py +++ b/sdk/python/pulumi_aws_native/accessanalyzer/analyzer.py @@ -247,7 +247,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'type'") __props__.__dict__["type"] = type __props__.__dict__["arn"] = None - replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["analyzerConfiguration", "analyzerName", "type"]) + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["analyzerName", "type"]) opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) super(Analyzer, __self__).__init__( 'aws-native:accessanalyzer:Analyzer', diff --git a/sdk/python/pulumi_aws_native/accessanalyzer/get_analyzer.py b/sdk/python/pulumi_aws_native/accessanalyzer/get_analyzer.py index 2bb1b750a0..c59adb61db 100644 --- a/sdk/python/pulumi_aws_native/accessanalyzer/get_analyzer.py +++ b/sdk/python/pulumi_aws_native/accessanalyzer/get_analyzer.py @@ -25,7 +25,10 @@ @pulumi.output_type class GetAnalyzerResult: - def __init__(__self__, archive_rules=None, arn=None, tags=None): + def __init__(__self__, analyzer_configuration=None, archive_rules=None, arn=None, tags=None): + if analyzer_configuration and not isinstance(analyzer_configuration, dict): + raise TypeError("Expected argument 'analyzer_configuration' to be a dict") + pulumi.set(__self__, "analyzer_configuration", analyzer_configuration) if archive_rules and not isinstance(archive_rules, list): raise TypeError("Expected argument 'archive_rules' to be a list") pulumi.set(__self__, "archive_rules", archive_rules) @@ -36,6 +39,14 @@ def __init__(__self__, archive_rules=None, arn=None, tags=None): raise TypeError("Expected argument 'tags' to be a list") pulumi.set(__self__, "tags", tags) + @property + @pulumi.getter(name="analyzerConfiguration") + def analyzer_configuration(self) -> Optional['outputs.AnalyzerConfigurationProperties']: + """ + The configuration for the analyzer + """ + return pulumi.get(self, "analyzer_configuration") + @property @pulumi.getter(name="archiveRules") def archive_rules(self) -> Optional[Sequence['outputs.AnalyzerArchiveRule']]: @@ -67,6 +78,7 @@ def __await__(self): if False: yield self return GetAnalyzerResult( + analyzer_configuration=self.analyzer_configuration, archive_rules=self.archive_rules, arn=self.arn, tags=self.tags) @@ -86,6 +98,7 @@ def get_analyzer(arn: Optional[str] = None, __ret__ = pulumi.runtime.invoke('aws-native:accessanalyzer:getAnalyzer', __args__, opts=opts, typ=GetAnalyzerResult).value return AwaitableGetAnalyzerResult( + analyzer_configuration=pulumi.get(__ret__, 'analyzer_configuration'), archive_rules=pulumi.get(__ret__, 'archive_rules'), arn=pulumi.get(__ret__, 'arn'), tags=pulumi.get(__ret__, 'tags')) @@ -102,6 +115,7 @@ def get_analyzer_output(arn: Optional[pulumi.Input[str]] = None, opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('aws-native:accessanalyzer:getAnalyzer', __args__, opts=opts, typ=GetAnalyzerResult) return __ret__.apply(lambda __response__: GetAnalyzerResult( + analyzer_configuration=pulumi.get(__response__, 'analyzer_configuration'), archive_rules=pulumi.get(__response__, 'archive_rules'), arn=pulumi.get(__response__, 'arn'), tags=pulumi.get(__response__, 'tags'))) diff --git a/sdk/python/pulumi_aws_native/accessanalyzer/outputs.py b/sdk/python/pulumi_aws_native/accessanalyzer/outputs.py index bf63ec9584..4104c6ee27 100644 --- a/sdk/python/pulumi_aws_native/accessanalyzer/outputs.py +++ b/sdk/python/pulumi_aws_native/accessanalyzer/outputs.py @@ -16,12 +16,77 @@ from . import outputs __all__ = [ + 'AnalyzerAnalysisRuleCriteria', 'AnalyzerArchiveRule', 'AnalyzerConfigurationProperties', 'AnalyzerFilter', + 'AnalyzerTag', 'AnalyzerUnusedAccessConfiguration', + 'AnalyzerUnusedAccessConfigurationAnalysisRuleProperties', ] +@pulumi.output_type +class AnalyzerAnalysisRuleCriteria(dict): + """ + The criteria for an analysis rule for an analyzer. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "accountIds": + suggest = "account_ids" + elif key == "resourceTags": + suggest = "resource_tags" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AnalyzerAnalysisRuleCriteria. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AnalyzerAnalysisRuleCriteria.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AnalyzerAnalysisRuleCriteria.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + account_ids: Optional[Sequence[str]] = None, + resource_tags: Optional[Sequence[Sequence['outputs.AnalyzerTag']]] = None): + """ + The criteria for an analysis rule for an analyzer. + :param Sequence[str] account_ids: A list of AWS account IDs to apply to the analysis rule criteria. The accounts cannot include the organization analyzer owner account. Account IDs can only be applied to the analysis rule criteria for organization-level analyzers. + :param Sequence[Sequence['AnalyzerTag']] resource_tags: An array of key-value pairs to match for your resources. You can use the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + + For the tag key, you can specify a value that is 1 to 128 characters in length and cannot be prefixed with aws:. + + For the tag value, you can specify a value that is 0 to 256 characters in length. If the specified tag value is 0 characters, the rule is applied to all principals with the specified tag key. + """ + if account_ids is not None: + pulumi.set(__self__, "account_ids", account_ids) + if resource_tags is not None: + pulumi.set(__self__, "resource_tags", resource_tags) + + @property + @pulumi.getter(name="accountIds") + def account_ids(self) -> Optional[Sequence[str]]: + """ + A list of AWS account IDs to apply to the analysis rule criteria. The accounts cannot include the organization analyzer owner account. Account IDs can only be applied to the analysis rule criteria for organization-level analyzers. + """ + return pulumi.get(self, "account_ids") + + @property + @pulumi.getter(name="resourceTags") + def resource_tags(self) -> Optional[Sequence[Sequence['outputs.AnalyzerTag']]]: + """ + An array of key-value pairs to match for your resources. You can use the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + + For the tag key, you can specify a value that is 1 to 128 characters in length and cannot be prefixed with aws:. + + For the tag value, you can specify a value that is 0 to 256 characters in length. If the specified tag value is 0 characters, the rule is applied to all principals with the specified tag key. + """ + return pulumi.get(self, "resource_tags") + + @pulumi.output_type class AnalyzerArchiveRule(dict): """ @@ -98,7 +163,7 @@ def __init__(__self__, *, unused_access_configuration: Optional['outputs.AnalyzerUnusedAccessConfiguration'] = None): """ The configuration for the analyzer - :param 'AnalyzerUnusedAccessConfiguration' unused_access_configuration: Specifies the configuration of an unused access analyzer for an AWS organization or account. External access analyzers do not support any configuration. + :param 'AnalyzerUnusedAccessConfiguration' unused_access_configuration: Specifies the configuration of an unused access analyzer for an AWS organization or account. """ if unused_access_configuration is not None: pulumi.set(__self__, "unused_access_configuration", unused_access_configuration) @@ -107,7 +172,7 @@ def __init__(__self__, *, @pulumi.getter(name="unusedAccessConfiguration") def unused_access_configuration(self) -> Optional['outputs.AnalyzerUnusedAccessConfiguration']: """ - Specifies the configuration of an unused access analyzer for an AWS organization or account. External access analyzers do not support any configuration. + Specifies the configuration of an unused access analyzer for an AWS organization or account. """ return pulumi.get(self, "unused_access_configuration") @@ -178,6 +243,40 @@ def property(self) -> str: return pulumi.get(self, "property") +@pulumi.output_type +class AnalyzerTag(dict): + """ + A key-value pair to associate with a resource. + """ + def __init__(__self__, *, + key: str, + value: Optional[str] = None): + """ + A key-value pair to associate with a resource. + :param str key: The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + :param str value: The value for the tag. You can specify a value that is 0 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + """ + pulumi.set(__self__, "key", key) + if value is not None: + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def key(self) -> str: + """ + The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + """ + return pulumi.get(self, "key") + + @property + @pulumi.getter + def value(self) -> Optional[str]: + """ + The value for the tag. You can specify a value that is 0 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + """ + return pulumi.get(self, "value") + + @pulumi.output_type class AnalyzerUnusedAccessConfiguration(dict): """ @@ -186,7 +285,9 @@ class AnalyzerUnusedAccessConfiguration(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "unusedAccessAge": + if key == "analysisRule": + suggest = "analysis_rule" + elif key == "unusedAccessAge": suggest = "unused_access_age" if suggest: @@ -201,20 +302,55 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, + analysis_rule: Optional['outputs.AnalyzerUnusedAccessConfigurationAnalysisRuleProperties'] = None, unused_access_age: Optional[int] = None): """ The Configuration for Unused Access Analyzer - :param int unused_access_age: The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 180 days. + :param 'AnalyzerUnusedAccessConfigurationAnalysisRuleProperties' analysis_rule: Contains information about rules for the analyzer. + :param int unused_access_age: The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 365 days. """ + if analysis_rule is not None: + pulumi.set(__self__, "analysis_rule", analysis_rule) if unused_access_age is not None: pulumi.set(__self__, "unused_access_age", unused_access_age) + @property + @pulumi.getter(name="analysisRule") + def analysis_rule(self) -> Optional['outputs.AnalyzerUnusedAccessConfigurationAnalysisRuleProperties']: + """ + Contains information about rules for the analyzer. + """ + return pulumi.get(self, "analysis_rule") + @property @pulumi.getter(name="unusedAccessAge") def unused_access_age(self) -> Optional[int]: """ - The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 180 days. + The specified access age in days for which to generate findings for unused access. For example, if you specify 90 days, the analyzer will generate findings for IAM entities within the accounts of the selected organization for any access that hasn't been used in 90 or more days since the analyzer's last scan. You can choose a value between 1 and 365 days. """ return pulumi.get(self, "unused_access_age") +@pulumi.output_type +class AnalyzerUnusedAccessConfigurationAnalysisRuleProperties(dict): + """ + Contains information about rules for the analyzer. + """ + def __init__(__self__, *, + exclusions: Optional[Sequence['outputs.AnalyzerAnalysisRuleCriteria']] = None): + """ + Contains information about rules for the analyzer. + :param Sequence['AnalyzerAnalysisRuleCriteria'] exclusions: A list of rules for the analyzer containing criteria to exclude from analysis. Entities that meet the rule criteria will not generate findings. + """ + if exclusions is not None: + pulumi.set(__self__, "exclusions", exclusions) + + @property + @pulumi.getter + def exclusions(self) -> Optional[Sequence['outputs.AnalyzerAnalysisRuleCriteria']]: + """ + A list of rules for the analyzer containing criteria to exclude from analysis. Entities that meet the rule criteria will not generate findings. + """ + return pulumi.get(self, "exclusions") + + diff --git a/sdk/python/pulumi_aws_native/applicationautoscaling/_inputs.py b/sdk/python/pulumi_aws_native/applicationautoscaling/_inputs.py index 555b030ce3..1396464f6e 100644 --- a/sdk/python/pulumi_aws_native/applicationautoscaling/_inputs.py +++ b/sdk/python/pulumi_aws_native/applicationautoscaling/_inputs.py @@ -27,6 +27,30 @@ 'ScalingPolicyMetricDimensionArgsDict', 'ScalingPolicyPredefinedMetricSpecificationArgs', 'ScalingPolicyPredefinedMetricSpecificationArgsDict', + 'ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs', + 'ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgsDict', + 'ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs', + 'ScalingPolicyPredictiveScalingCustomizedLoadMetricArgsDict', + 'ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs', + 'ScalingPolicyPredictiveScalingCustomizedScalingMetricArgsDict', + 'ScalingPolicyPredictiveScalingMetricDataQueryArgs', + 'ScalingPolicyPredictiveScalingMetricDataQueryArgsDict', + 'ScalingPolicyPredictiveScalingMetricDimensionArgs', + 'ScalingPolicyPredictiveScalingMetricDimensionArgsDict', + 'ScalingPolicyPredictiveScalingMetricSpecificationArgs', + 'ScalingPolicyPredictiveScalingMetricSpecificationArgsDict', + 'ScalingPolicyPredictiveScalingMetricStatArgs', + 'ScalingPolicyPredictiveScalingMetricStatArgsDict', + 'ScalingPolicyPredictiveScalingMetricArgs', + 'ScalingPolicyPredictiveScalingMetricArgsDict', + 'ScalingPolicyPredictiveScalingPolicyConfigurationArgs', + 'ScalingPolicyPredictiveScalingPolicyConfigurationArgsDict', + 'ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs', + 'ScalingPolicyPredictiveScalingPredefinedLoadMetricArgsDict', + 'ScalingPolicyPredictiveScalingPredefinedMetricPairArgs', + 'ScalingPolicyPredictiveScalingPredefinedMetricPairArgsDict', + 'ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs', + 'ScalingPolicyPredictiveScalingPredefinedScalingMetricArgsDict', 'ScalingPolicyStepAdjustmentArgs', 'ScalingPolicyStepAdjustmentArgsDict', 'ScalingPolicyStepScalingPolicyConfigurationArgs', @@ -626,6 +650,659 @@ def resource_label(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "resource_label", value) +if not MYPY: + class ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgsDict(TypedDict): + metric_data_queries: pulumi.Input[Sequence[pulumi.Input['ScalingPolicyPredictiveScalingMetricDataQueryArgsDict']]] +elif False: + ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs: + def __init__(__self__, *, + metric_data_queries: pulumi.Input[Sequence[pulumi.Input['ScalingPolicyPredictiveScalingMetricDataQueryArgs']]]): + pulumi.set(__self__, "metric_data_queries", metric_data_queries) + + @property + @pulumi.getter(name="metricDataQueries") + def metric_data_queries(self) -> pulumi.Input[Sequence[pulumi.Input['ScalingPolicyPredictiveScalingMetricDataQueryArgs']]]: + return pulumi.get(self, "metric_data_queries") + + @metric_data_queries.setter + def metric_data_queries(self, value: pulumi.Input[Sequence[pulumi.Input['ScalingPolicyPredictiveScalingMetricDataQueryArgs']]]): + pulumi.set(self, "metric_data_queries", value) + + +if not MYPY: + class ScalingPolicyPredictiveScalingCustomizedLoadMetricArgsDict(TypedDict): + metric_data_queries: pulumi.Input[Sequence[pulumi.Input['ScalingPolicyPredictiveScalingMetricDataQueryArgsDict']]] +elif False: + ScalingPolicyPredictiveScalingCustomizedLoadMetricArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs: + def __init__(__self__, *, + metric_data_queries: pulumi.Input[Sequence[pulumi.Input['ScalingPolicyPredictiveScalingMetricDataQueryArgs']]]): + pulumi.set(__self__, "metric_data_queries", metric_data_queries) + + @property + @pulumi.getter(name="metricDataQueries") + def metric_data_queries(self) -> pulumi.Input[Sequence[pulumi.Input['ScalingPolicyPredictiveScalingMetricDataQueryArgs']]]: + return pulumi.get(self, "metric_data_queries") + + @metric_data_queries.setter + def metric_data_queries(self, value: pulumi.Input[Sequence[pulumi.Input['ScalingPolicyPredictiveScalingMetricDataQueryArgs']]]): + pulumi.set(self, "metric_data_queries", value) + + +if not MYPY: + class ScalingPolicyPredictiveScalingCustomizedScalingMetricArgsDict(TypedDict): + metric_data_queries: pulumi.Input[Sequence[pulumi.Input['ScalingPolicyPredictiveScalingMetricDataQueryArgsDict']]] +elif False: + ScalingPolicyPredictiveScalingCustomizedScalingMetricArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs: + def __init__(__self__, *, + metric_data_queries: pulumi.Input[Sequence[pulumi.Input['ScalingPolicyPredictiveScalingMetricDataQueryArgs']]]): + pulumi.set(__self__, "metric_data_queries", metric_data_queries) + + @property + @pulumi.getter(name="metricDataQueries") + def metric_data_queries(self) -> pulumi.Input[Sequence[pulumi.Input['ScalingPolicyPredictiveScalingMetricDataQueryArgs']]]: + return pulumi.get(self, "metric_data_queries") + + @metric_data_queries.setter + def metric_data_queries(self, value: pulumi.Input[Sequence[pulumi.Input['ScalingPolicyPredictiveScalingMetricDataQueryArgs']]]): + pulumi.set(self, "metric_data_queries", value) + + +if not MYPY: + class ScalingPolicyPredictiveScalingMetricDataQueryArgsDict(TypedDict): + expression: NotRequired[pulumi.Input[str]] + """ + The math expression to perform on the returned data, if this object is performing a math expression. + """ + id: NotRequired[pulumi.Input[str]] + """ + A short name that identifies the object's results in the response. + """ + label: NotRequired[pulumi.Input[str]] + """ + A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents. + """ + metric_stat: NotRequired[pulumi.Input['ScalingPolicyPredictiveScalingMetricStatArgsDict']] + """ + Information about the metric data to return. + """ + return_data: NotRequired[pulumi.Input[bool]] + """ + Indicates whether to return the timestamps and raw data values of this metric. + """ +elif False: + ScalingPolicyPredictiveScalingMetricDataQueryArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ScalingPolicyPredictiveScalingMetricDataQueryArgs: + def __init__(__self__, *, + expression: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + label: Optional[pulumi.Input[str]] = None, + metric_stat: Optional[pulumi.Input['ScalingPolicyPredictiveScalingMetricStatArgs']] = None, + return_data: Optional[pulumi.Input[bool]] = None): + """ + :param pulumi.Input[str] expression: The math expression to perform on the returned data, if this object is performing a math expression. + :param pulumi.Input[str] id: A short name that identifies the object's results in the response. + :param pulumi.Input[str] label: A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents. + :param pulumi.Input['ScalingPolicyPredictiveScalingMetricStatArgs'] metric_stat: Information about the metric data to return. + :param pulumi.Input[bool] return_data: Indicates whether to return the timestamps and raw data values of this metric. + """ + if expression is not None: + pulumi.set(__self__, "expression", expression) + if id is not None: + pulumi.set(__self__, "id", id) + if label is not None: + pulumi.set(__self__, "label", label) + if metric_stat is not None: + pulumi.set(__self__, "metric_stat", metric_stat) + if return_data is not None: + pulumi.set(__self__, "return_data", return_data) + + @property + @pulumi.getter + def expression(self) -> Optional[pulumi.Input[str]]: + """ + The math expression to perform on the returned data, if this object is performing a math expression. + """ + return pulumi.get(self, "expression") + + @expression.setter + def expression(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "expression", value) + + @property + @pulumi.getter + def id(self) -> Optional[pulumi.Input[str]]: + """ + A short name that identifies the object's results in the response. + """ + return pulumi.get(self, "id") + + @id.setter + def id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "id", value) + + @property + @pulumi.getter + def label(self) -> Optional[pulumi.Input[str]]: + """ + A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents. + """ + return pulumi.get(self, "label") + + @label.setter + def label(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "label", value) + + @property + @pulumi.getter(name="metricStat") + def metric_stat(self) -> Optional[pulumi.Input['ScalingPolicyPredictiveScalingMetricStatArgs']]: + """ + Information about the metric data to return. + """ + return pulumi.get(self, "metric_stat") + + @metric_stat.setter + def metric_stat(self, value: Optional[pulumi.Input['ScalingPolicyPredictiveScalingMetricStatArgs']]): + pulumi.set(self, "metric_stat", value) + + @property + @pulumi.getter(name="returnData") + def return_data(self) -> Optional[pulumi.Input[bool]]: + """ + Indicates whether to return the timestamps and raw data values of this metric. + """ + return pulumi.get(self, "return_data") + + @return_data.setter + def return_data(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "return_data", value) + + +if not MYPY: + class ScalingPolicyPredictiveScalingMetricDimensionArgsDict(TypedDict): + name: NotRequired[pulumi.Input[str]] + """ + The name of the dimension. + """ + value: NotRequired[pulumi.Input[str]] + """ + The value of the dimension. + """ +elif False: + ScalingPolicyPredictiveScalingMetricDimensionArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ScalingPolicyPredictiveScalingMetricDimensionArgs: + def __init__(__self__, *, + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] name: The name of the dimension. + :param pulumi.Input[str] value: The value of the dimension. + """ + if name is not None: + pulumi.set(__self__, "name", name) + if value is not None: + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the dimension. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def value(self) -> Optional[pulumi.Input[str]]: + """ + The value of the dimension. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "value", value) + + +if not MYPY: + class ScalingPolicyPredictiveScalingMetricSpecificationArgsDict(TypedDict): + target_value: pulumi.Input[float] + customized_capacity_metric_specification: NotRequired[pulumi.Input['ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgsDict']] + customized_load_metric_specification: NotRequired[pulumi.Input['ScalingPolicyPredictiveScalingCustomizedLoadMetricArgsDict']] + customized_scaling_metric_specification: NotRequired[pulumi.Input['ScalingPolicyPredictiveScalingCustomizedScalingMetricArgsDict']] + predefined_load_metric_specification: NotRequired[pulumi.Input['ScalingPolicyPredictiveScalingPredefinedLoadMetricArgsDict']] + predefined_metric_pair_specification: NotRequired[pulumi.Input['ScalingPolicyPredictiveScalingPredefinedMetricPairArgsDict']] + predefined_scaling_metric_specification: NotRequired[pulumi.Input['ScalingPolicyPredictiveScalingPredefinedScalingMetricArgsDict']] +elif False: + ScalingPolicyPredictiveScalingMetricSpecificationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ScalingPolicyPredictiveScalingMetricSpecificationArgs: + def __init__(__self__, *, + target_value: pulumi.Input[float], + customized_capacity_metric_specification: Optional[pulumi.Input['ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs']] = None, + customized_load_metric_specification: Optional[pulumi.Input['ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs']] = None, + customized_scaling_metric_specification: Optional[pulumi.Input['ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs']] = None, + predefined_load_metric_specification: Optional[pulumi.Input['ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs']] = None, + predefined_metric_pair_specification: Optional[pulumi.Input['ScalingPolicyPredictiveScalingPredefinedMetricPairArgs']] = None, + predefined_scaling_metric_specification: Optional[pulumi.Input['ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs']] = None): + pulumi.set(__self__, "target_value", target_value) + if customized_capacity_metric_specification is not None: + pulumi.set(__self__, "customized_capacity_metric_specification", customized_capacity_metric_specification) + if customized_load_metric_specification is not None: + pulumi.set(__self__, "customized_load_metric_specification", customized_load_metric_specification) + if customized_scaling_metric_specification is not None: + pulumi.set(__self__, "customized_scaling_metric_specification", customized_scaling_metric_specification) + if predefined_load_metric_specification is not None: + pulumi.set(__self__, "predefined_load_metric_specification", predefined_load_metric_specification) + if predefined_metric_pair_specification is not None: + pulumi.set(__self__, "predefined_metric_pair_specification", predefined_metric_pair_specification) + if predefined_scaling_metric_specification is not None: + pulumi.set(__self__, "predefined_scaling_metric_specification", predefined_scaling_metric_specification) + + @property + @pulumi.getter(name="targetValue") + def target_value(self) -> pulumi.Input[float]: + return pulumi.get(self, "target_value") + + @target_value.setter + def target_value(self, value: pulumi.Input[float]): + pulumi.set(self, "target_value", value) + + @property + @pulumi.getter(name="customizedCapacityMetricSpecification") + def customized_capacity_metric_specification(self) -> Optional[pulumi.Input['ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs']]: + return pulumi.get(self, "customized_capacity_metric_specification") + + @customized_capacity_metric_specification.setter + def customized_capacity_metric_specification(self, value: Optional[pulumi.Input['ScalingPolicyPredictiveScalingCustomizedCapacityMetricArgs']]): + pulumi.set(self, "customized_capacity_metric_specification", value) + + @property + @pulumi.getter(name="customizedLoadMetricSpecification") + def customized_load_metric_specification(self) -> Optional[pulumi.Input['ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs']]: + return pulumi.get(self, "customized_load_metric_specification") + + @customized_load_metric_specification.setter + def customized_load_metric_specification(self, value: Optional[pulumi.Input['ScalingPolicyPredictiveScalingCustomizedLoadMetricArgs']]): + pulumi.set(self, "customized_load_metric_specification", value) + + @property + @pulumi.getter(name="customizedScalingMetricSpecification") + def customized_scaling_metric_specification(self) -> Optional[pulumi.Input['ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs']]: + return pulumi.get(self, "customized_scaling_metric_specification") + + @customized_scaling_metric_specification.setter + def customized_scaling_metric_specification(self, value: Optional[pulumi.Input['ScalingPolicyPredictiveScalingCustomizedScalingMetricArgs']]): + pulumi.set(self, "customized_scaling_metric_specification", value) + + @property + @pulumi.getter(name="predefinedLoadMetricSpecification") + def predefined_load_metric_specification(self) -> Optional[pulumi.Input['ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs']]: + return pulumi.get(self, "predefined_load_metric_specification") + + @predefined_load_metric_specification.setter + def predefined_load_metric_specification(self, value: Optional[pulumi.Input['ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs']]): + pulumi.set(self, "predefined_load_metric_specification", value) + + @property + @pulumi.getter(name="predefinedMetricPairSpecification") + def predefined_metric_pair_specification(self) -> Optional[pulumi.Input['ScalingPolicyPredictiveScalingPredefinedMetricPairArgs']]: + return pulumi.get(self, "predefined_metric_pair_specification") + + @predefined_metric_pair_specification.setter + def predefined_metric_pair_specification(self, value: Optional[pulumi.Input['ScalingPolicyPredictiveScalingPredefinedMetricPairArgs']]): + pulumi.set(self, "predefined_metric_pair_specification", value) + + @property + @pulumi.getter(name="predefinedScalingMetricSpecification") + def predefined_scaling_metric_specification(self) -> Optional[pulumi.Input['ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs']]: + return pulumi.get(self, "predefined_scaling_metric_specification") + + @predefined_scaling_metric_specification.setter + def predefined_scaling_metric_specification(self, value: Optional[pulumi.Input['ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs']]): + pulumi.set(self, "predefined_scaling_metric_specification", value) + + +if not MYPY: + class ScalingPolicyPredictiveScalingMetricStatArgsDict(TypedDict): + metric: NotRequired[pulumi.Input['ScalingPolicyPredictiveScalingMetricArgsDict']] + """ + The CloudWatch metric to return, including the metric name, namespace, and dimensions. + """ + stat: NotRequired[pulumi.Input[str]] + """ + The statistic to return. It can include any CloudWatch statistic or extended statistic. + """ + unit: NotRequired[pulumi.Input[str]] + """ + The unit to use for the returned data points. + """ +elif False: + ScalingPolicyPredictiveScalingMetricStatArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ScalingPolicyPredictiveScalingMetricStatArgs: + def __init__(__self__, *, + metric: Optional[pulumi.Input['ScalingPolicyPredictiveScalingMetricArgs']] = None, + stat: Optional[pulumi.Input[str]] = None, + unit: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input['ScalingPolicyPredictiveScalingMetricArgs'] metric: The CloudWatch metric to return, including the metric name, namespace, and dimensions. + :param pulumi.Input[str] stat: The statistic to return. It can include any CloudWatch statistic or extended statistic. + :param pulumi.Input[str] unit: The unit to use for the returned data points. + """ + if metric is not None: + pulumi.set(__self__, "metric", metric) + if stat is not None: + pulumi.set(__self__, "stat", stat) + if unit is not None: + pulumi.set(__self__, "unit", unit) + + @property + @pulumi.getter + def metric(self) -> Optional[pulumi.Input['ScalingPolicyPredictiveScalingMetricArgs']]: + """ + The CloudWatch metric to return, including the metric name, namespace, and dimensions. + """ + return pulumi.get(self, "metric") + + @metric.setter + def metric(self, value: Optional[pulumi.Input['ScalingPolicyPredictiveScalingMetricArgs']]): + pulumi.set(self, "metric", value) + + @property + @pulumi.getter + def stat(self) -> Optional[pulumi.Input[str]]: + """ + The statistic to return. It can include any CloudWatch statistic or extended statistic. + """ + return pulumi.get(self, "stat") + + @stat.setter + def stat(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "stat", value) + + @property + @pulumi.getter + def unit(self) -> Optional[pulumi.Input[str]]: + """ + The unit to use for the returned data points. + """ + return pulumi.get(self, "unit") + + @unit.setter + def unit(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "unit", value) + + +if not MYPY: + class ScalingPolicyPredictiveScalingMetricArgsDict(TypedDict): + dimensions: NotRequired[pulumi.Input[Sequence[pulumi.Input['ScalingPolicyPredictiveScalingMetricDimensionArgsDict']]]] + """ + The dimensions for the metric. + """ + metric_name: NotRequired[pulumi.Input[str]] + """ + The name of the metric. + """ + namespace: NotRequired[pulumi.Input[str]] + """ + The namespace of the metric. + """ +elif False: + ScalingPolicyPredictiveScalingMetricArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ScalingPolicyPredictiveScalingMetricArgs: + def __init__(__self__, *, + dimensions: Optional[pulumi.Input[Sequence[pulumi.Input['ScalingPolicyPredictiveScalingMetricDimensionArgs']]]] = None, + metric_name: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['ScalingPolicyPredictiveScalingMetricDimensionArgs']]] dimensions: The dimensions for the metric. + :param pulumi.Input[str] metric_name: The name of the metric. + :param pulumi.Input[str] namespace: The namespace of the metric. + """ + if dimensions is not None: + pulumi.set(__self__, "dimensions", dimensions) + if metric_name is not None: + pulumi.set(__self__, "metric_name", metric_name) + if namespace is not None: + pulumi.set(__self__, "namespace", namespace) + + @property + @pulumi.getter + def dimensions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ScalingPolicyPredictiveScalingMetricDimensionArgs']]]]: + """ + The dimensions for the metric. + """ + return pulumi.get(self, "dimensions") + + @dimensions.setter + def dimensions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ScalingPolicyPredictiveScalingMetricDimensionArgs']]]]): + pulumi.set(self, "dimensions", value) + + @property + @pulumi.getter(name="metricName") + def metric_name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the metric. + """ + return pulumi.get(self, "metric_name") + + @metric_name.setter + def metric_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "metric_name", value) + + @property + @pulumi.getter + def namespace(self) -> Optional[pulumi.Input[str]]: + """ + The namespace of the metric. + """ + return pulumi.get(self, "namespace") + + @namespace.setter + def namespace(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "namespace", value) + + +if not MYPY: + class ScalingPolicyPredictiveScalingPolicyConfigurationArgsDict(TypedDict): + metric_specifications: pulumi.Input[Sequence[pulumi.Input['ScalingPolicyPredictiveScalingMetricSpecificationArgsDict']]] + max_capacity_breach_behavior: NotRequired[pulumi.Input[str]] + max_capacity_buffer: NotRequired[pulumi.Input[int]] + mode: NotRequired[pulumi.Input[str]] + scheduling_buffer_time: NotRequired[pulumi.Input[int]] +elif False: + ScalingPolicyPredictiveScalingPolicyConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ScalingPolicyPredictiveScalingPolicyConfigurationArgs: + def __init__(__self__, *, + metric_specifications: pulumi.Input[Sequence[pulumi.Input['ScalingPolicyPredictiveScalingMetricSpecificationArgs']]], + max_capacity_breach_behavior: Optional[pulumi.Input[str]] = None, + max_capacity_buffer: Optional[pulumi.Input[int]] = None, + mode: Optional[pulumi.Input[str]] = None, + scheduling_buffer_time: Optional[pulumi.Input[int]] = None): + pulumi.set(__self__, "metric_specifications", metric_specifications) + if max_capacity_breach_behavior is not None: + pulumi.set(__self__, "max_capacity_breach_behavior", max_capacity_breach_behavior) + if max_capacity_buffer is not None: + pulumi.set(__self__, "max_capacity_buffer", max_capacity_buffer) + if mode is not None: + pulumi.set(__self__, "mode", mode) + if scheduling_buffer_time is not None: + pulumi.set(__self__, "scheduling_buffer_time", scheduling_buffer_time) + + @property + @pulumi.getter(name="metricSpecifications") + def metric_specifications(self) -> pulumi.Input[Sequence[pulumi.Input['ScalingPolicyPredictiveScalingMetricSpecificationArgs']]]: + return pulumi.get(self, "metric_specifications") + + @metric_specifications.setter + def metric_specifications(self, value: pulumi.Input[Sequence[pulumi.Input['ScalingPolicyPredictiveScalingMetricSpecificationArgs']]]): + pulumi.set(self, "metric_specifications", value) + + @property + @pulumi.getter(name="maxCapacityBreachBehavior") + def max_capacity_breach_behavior(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "max_capacity_breach_behavior") + + @max_capacity_breach_behavior.setter + def max_capacity_breach_behavior(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "max_capacity_breach_behavior", value) + + @property + @pulumi.getter(name="maxCapacityBuffer") + def max_capacity_buffer(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "max_capacity_buffer") + + @max_capacity_buffer.setter + def max_capacity_buffer(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "max_capacity_buffer", value) + + @property + @pulumi.getter + def mode(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "mode") + + @mode.setter + def mode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "mode", value) + + @property + @pulumi.getter(name="schedulingBufferTime") + def scheduling_buffer_time(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "scheduling_buffer_time") + + @scheduling_buffer_time.setter + def scheduling_buffer_time(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "scheduling_buffer_time", value) + + +if not MYPY: + class ScalingPolicyPredictiveScalingPredefinedLoadMetricArgsDict(TypedDict): + predefined_metric_type: pulumi.Input[str] + resource_label: NotRequired[pulumi.Input[str]] +elif False: + ScalingPolicyPredictiveScalingPredefinedLoadMetricArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ScalingPolicyPredictiveScalingPredefinedLoadMetricArgs: + def __init__(__self__, *, + predefined_metric_type: pulumi.Input[str], + resource_label: Optional[pulumi.Input[str]] = None): + pulumi.set(__self__, "predefined_metric_type", predefined_metric_type) + if resource_label is not None: + pulumi.set(__self__, "resource_label", resource_label) + + @property + @pulumi.getter(name="predefinedMetricType") + def predefined_metric_type(self) -> pulumi.Input[str]: + return pulumi.get(self, "predefined_metric_type") + + @predefined_metric_type.setter + def predefined_metric_type(self, value: pulumi.Input[str]): + pulumi.set(self, "predefined_metric_type", value) + + @property + @pulumi.getter(name="resourceLabel") + def resource_label(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "resource_label") + + @resource_label.setter + def resource_label(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "resource_label", value) + + +if not MYPY: + class ScalingPolicyPredictiveScalingPredefinedMetricPairArgsDict(TypedDict): + predefined_metric_type: pulumi.Input[str] + resource_label: NotRequired[pulumi.Input[str]] +elif False: + ScalingPolicyPredictiveScalingPredefinedMetricPairArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ScalingPolicyPredictiveScalingPredefinedMetricPairArgs: + def __init__(__self__, *, + predefined_metric_type: pulumi.Input[str], + resource_label: Optional[pulumi.Input[str]] = None): + pulumi.set(__self__, "predefined_metric_type", predefined_metric_type) + if resource_label is not None: + pulumi.set(__self__, "resource_label", resource_label) + + @property + @pulumi.getter(name="predefinedMetricType") + def predefined_metric_type(self) -> pulumi.Input[str]: + return pulumi.get(self, "predefined_metric_type") + + @predefined_metric_type.setter + def predefined_metric_type(self, value: pulumi.Input[str]): + pulumi.set(self, "predefined_metric_type", value) + + @property + @pulumi.getter(name="resourceLabel") + def resource_label(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "resource_label") + + @resource_label.setter + def resource_label(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "resource_label", value) + + +if not MYPY: + class ScalingPolicyPredictiveScalingPredefinedScalingMetricArgsDict(TypedDict): + predefined_metric_type: pulumi.Input[str] + resource_label: NotRequired[pulumi.Input[str]] +elif False: + ScalingPolicyPredictiveScalingPredefinedScalingMetricArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ScalingPolicyPredictiveScalingPredefinedScalingMetricArgs: + def __init__(__self__, *, + predefined_metric_type: pulumi.Input[str], + resource_label: Optional[pulumi.Input[str]] = None): + pulumi.set(__self__, "predefined_metric_type", predefined_metric_type) + if resource_label is not None: + pulumi.set(__self__, "resource_label", resource_label) + + @property + @pulumi.getter(name="predefinedMetricType") + def predefined_metric_type(self) -> pulumi.Input[str]: + return pulumi.get(self, "predefined_metric_type") + + @predefined_metric_type.setter + def predefined_metric_type(self, value: pulumi.Input[str]): + pulumi.set(self, "predefined_metric_type", value) + + @property + @pulumi.getter(name="resourceLabel") + def resource_label(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "resource_label") + + @resource_label.setter + def resource_label(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "resource_label", value) + + if not MYPY: class ScalingPolicyStepAdjustmentArgsDict(TypedDict): """ diff --git a/sdk/python/pulumi_aws_native/applicationautoscaling/get_scaling_policy.py b/sdk/python/pulumi_aws_native/applicationautoscaling/get_scaling_policy.py index 0991cfa9a9..05c84b792a 100644 --- a/sdk/python/pulumi_aws_native/applicationautoscaling/get_scaling_policy.py +++ b/sdk/python/pulumi_aws_native/applicationautoscaling/get_scaling_policy.py @@ -24,13 +24,16 @@ @pulumi.output_type class GetScalingPolicyResult: - def __init__(__self__, arn=None, policy_type=None, step_scaling_policy_configuration=None, target_tracking_scaling_policy_configuration=None): + def __init__(__self__, arn=None, policy_type=None, predictive_scaling_policy_configuration=None, step_scaling_policy_configuration=None, target_tracking_scaling_policy_configuration=None): if arn and not isinstance(arn, str): raise TypeError("Expected argument 'arn' to be a str") pulumi.set(__self__, "arn", arn) if policy_type and not isinstance(policy_type, str): raise TypeError("Expected argument 'policy_type' to be a str") pulumi.set(__self__, "policy_type", policy_type) + if predictive_scaling_policy_configuration and not isinstance(predictive_scaling_policy_configuration, dict): + raise TypeError("Expected argument 'predictive_scaling_policy_configuration' to be a dict") + pulumi.set(__self__, "predictive_scaling_policy_configuration", predictive_scaling_policy_configuration) if step_scaling_policy_configuration and not isinstance(step_scaling_policy_configuration, dict): raise TypeError("Expected argument 'step_scaling_policy_configuration' to be a dict") pulumi.set(__self__, "step_scaling_policy_configuration", step_scaling_policy_configuration) @@ -57,6 +60,11 @@ def policy_type(self) -> Optional[str]: """ return pulumi.get(self, "policy_type") + @property + @pulumi.getter(name="predictiveScalingPolicyConfiguration") + def predictive_scaling_policy_configuration(self) -> Optional['outputs.ScalingPolicyPredictiveScalingPolicyConfiguration']: + return pulumi.get(self, "predictive_scaling_policy_configuration") + @property @pulumi.getter(name="stepScalingPolicyConfiguration") def step_scaling_policy_configuration(self) -> Optional['outputs.ScalingPolicyStepScalingPolicyConfiguration']: @@ -82,6 +90,7 @@ def __await__(self): return GetScalingPolicyResult( arn=self.arn, policy_type=self.policy_type, + predictive_scaling_policy_configuration=self.predictive_scaling_policy_configuration, step_scaling_policy_configuration=self.step_scaling_policy_configuration, target_tracking_scaling_policy_configuration=self.target_tracking_scaling_policy_configuration) @@ -129,6 +138,7 @@ def get_scaling_policy(arn: Optional[str] = None, return AwaitableGetScalingPolicyResult( arn=pulumi.get(__ret__, 'arn'), policy_type=pulumi.get(__ret__, 'policy_type'), + predictive_scaling_policy_configuration=pulumi.get(__ret__, 'predictive_scaling_policy_configuration'), step_scaling_policy_configuration=pulumi.get(__ret__, 'step_scaling_policy_configuration'), target_tracking_scaling_policy_configuration=pulumi.get(__ret__, 'target_tracking_scaling_policy_configuration')) def get_scaling_policy_output(arn: Optional[pulumi.Input[str]] = None, @@ -173,5 +183,6 @@ def get_scaling_policy_output(arn: Optional[pulumi.Input[str]] = None, return __ret__.apply(lambda __response__: GetScalingPolicyResult( arn=pulumi.get(__response__, 'arn'), policy_type=pulumi.get(__response__, 'policy_type'), + predictive_scaling_policy_configuration=pulumi.get(__response__, 'predictive_scaling_policy_configuration'), step_scaling_policy_configuration=pulumi.get(__response__, 'step_scaling_policy_configuration'), target_tracking_scaling_policy_configuration=pulumi.get(__response__, 'target_tracking_scaling_policy_configuration'))) diff --git a/sdk/python/pulumi_aws_native/applicationautoscaling/outputs.py b/sdk/python/pulumi_aws_native/applicationautoscaling/outputs.py index 69051c1b70..e64ea7e469 100644 --- a/sdk/python/pulumi_aws_native/applicationautoscaling/outputs.py +++ b/sdk/python/pulumi_aws_native/applicationautoscaling/outputs.py @@ -22,6 +22,18 @@ 'ScalingPolicyCustomizedMetricSpecification', 'ScalingPolicyMetricDimension', 'ScalingPolicyPredefinedMetricSpecification', + 'ScalingPolicyPredictiveScalingCustomizedCapacityMetric', + 'ScalingPolicyPredictiveScalingCustomizedLoadMetric', + 'ScalingPolicyPredictiveScalingCustomizedScalingMetric', + 'ScalingPolicyPredictiveScalingMetric', + 'ScalingPolicyPredictiveScalingMetricDataQuery', + 'ScalingPolicyPredictiveScalingMetricDimension', + 'ScalingPolicyPredictiveScalingMetricSpecification', + 'ScalingPolicyPredictiveScalingMetricStat', + 'ScalingPolicyPredictiveScalingPolicyConfiguration', + 'ScalingPolicyPredictiveScalingPredefinedLoadMetric', + 'ScalingPolicyPredictiveScalingPredefinedMetricPair', + 'ScalingPolicyPredictiveScalingPredefinedScalingMetric', 'ScalingPolicyStepAdjustment', 'ScalingPolicyStepScalingPolicyConfiguration', 'ScalingPolicyTargetTrackingMetric', @@ -497,6 +509,586 @@ def resource_label(self) -> Optional[str]: return pulumi.get(self, "resource_label") +@pulumi.output_type +class ScalingPolicyPredictiveScalingCustomizedCapacityMetric(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "metricDataQueries": + suggest = "metric_data_queries" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ScalingPolicyPredictiveScalingCustomizedCapacityMetric. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ScalingPolicyPredictiveScalingCustomizedCapacityMetric.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ScalingPolicyPredictiveScalingCustomizedCapacityMetric.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + metric_data_queries: Sequence['outputs.ScalingPolicyPredictiveScalingMetricDataQuery']): + pulumi.set(__self__, "metric_data_queries", metric_data_queries) + + @property + @pulumi.getter(name="metricDataQueries") + def metric_data_queries(self) -> Sequence['outputs.ScalingPolicyPredictiveScalingMetricDataQuery']: + return pulumi.get(self, "metric_data_queries") + + +@pulumi.output_type +class ScalingPolicyPredictiveScalingCustomizedLoadMetric(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "metricDataQueries": + suggest = "metric_data_queries" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ScalingPolicyPredictiveScalingCustomizedLoadMetric. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ScalingPolicyPredictiveScalingCustomizedLoadMetric.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ScalingPolicyPredictiveScalingCustomizedLoadMetric.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + metric_data_queries: Sequence['outputs.ScalingPolicyPredictiveScalingMetricDataQuery']): + pulumi.set(__self__, "metric_data_queries", metric_data_queries) + + @property + @pulumi.getter(name="metricDataQueries") + def metric_data_queries(self) -> Sequence['outputs.ScalingPolicyPredictiveScalingMetricDataQuery']: + return pulumi.get(self, "metric_data_queries") + + +@pulumi.output_type +class ScalingPolicyPredictiveScalingCustomizedScalingMetric(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "metricDataQueries": + suggest = "metric_data_queries" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ScalingPolicyPredictiveScalingCustomizedScalingMetric. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ScalingPolicyPredictiveScalingCustomizedScalingMetric.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ScalingPolicyPredictiveScalingCustomizedScalingMetric.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + metric_data_queries: Sequence['outputs.ScalingPolicyPredictiveScalingMetricDataQuery']): + pulumi.set(__self__, "metric_data_queries", metric_data_queries) + + @property + @pulumi.getter(name="metricDataQueries") + def metric_data_queries(self) -> Sequence['outputs.ScalingPolicyPredictiveScalingMetricDataQuery']: + return pulumi.get(self, "metric_data_queries") + + +@pulumi.output_type +class ScalingPolicyPredictiveScalingMetric(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "metricName": + suggest = "metric_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ScalingPolicyPredictiveScalingMetric. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ScalingPolicyPredictiveScalingMetric.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ScalingPolicyPredictiveScalingMetric.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + dimensions: Optional[Sequence['outputs.ScalingPolicyPredictiveScalingMetricDimension']] = None, + metric_name: Optional[str] = None, + namespace: Optional[str] = None): + """ + :param Sequence['ScalingPolicyPredictiveScalingMetricDimension'] dimensions: The dimensions for the metric. + :param str metric_name: The name of the metric. + :param str namespace: The namespace of the metric. + """ + if dimensions is not None: + pulumi.set(__self__, "dimensions", dimensions) + if metric_name is not None: + pulumi.set(__self__, "metric_name", metric_name) + if namespace is not None: + pulumi.set(__self__, "namespace", namespace) + + @property + @pulumi.getter + def dimensions(self) -> Optional[Sequence['outputs.ScalingPolicyPredictiveScalingMetricDimension']]: + """ + The dimensions for the metric. + """ + return pulumi.get(self, "dimensions") + + @property + @pulumi.getter(name="metricName") + def metric_name(self) -> Optional[str]: + """ + The name of the metric. + """ + return pulumi.get(self, "metric_name") + + @property + @pulumi.getter + def namespace(self) -> Optional[str]: + """ + The namespace of the metric. + """ + return pulumi.get(self, "namespace") + + +@pulumi.output_type +class ScalingPolicyPredictiveScalingMetricDataQuery(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "metricStat": + suggest = "metric_stat" + elif key == "returnData": + suggest = "return_data" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ScalingPolicyPredictiveScalingMetricDataQuery. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ScalingPolicyPredictiveScalingMetricDataQuery.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ScalingPolicyPredictiveScalingMetricDataQuery.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + expression: Optional[str] = None, + id: Optional[str] = None, + label: Optional[str] = None, + metric_stat: Optional['outputs.ScalingPolicyPredictiveScalingMetricStat'] = None, + return_data: Optional[bool] = None): + """ + :param str expression: The math expression to perform on the returned data, if this object is performing a math expression. + :param str id: A short name that identifies the object's results in the response. + :param str label: A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents. + :param 'ScalingPolicyPredictiveScalingMetricStat' metric_stat: Information about the metric data to return. + :param bool return_data: Indicates whether to return the timestamps and raw data values of this metric. + """ + if expression is not None: + pulumi.set(__self__, "expression", expression) + if id is not None: + pulumi.set(__self__, "id", id) + if label is not None: + pulumi.set(__self__, "label", label) + if metric_stat is not None: + pulumi.set(__self__, "metric_stat", metric_stat) + if return_data is not None: + pulumi.set(__self__, "return_data", return_data) + + @property + @pulumi.getter + def expression(self) -> Optional[str]: + """ + The math expression to perform on the returned data, if this object is performing a math expression. + """ + return pulumi.get(self, "expression") + + @property + @pulumi.getter + def id(self) -> Optional[str]: + """ + A short name that identifies the object's results in the response. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter + def label(self) -> Optional[str]: + """ + A human-readable label for this metric or expression. This is especially useful if this is a math expression, so that you know what the value represents. + """ + return pulumi.get(self, "label") + + @property + @pulumi.getter(name="metricStat") + def metric_stat(self) -> Optional['outputs.ScalingPolicyPredictiveScalingMetricStat']: + """ + Information about the metric data to return. + """ + return pulumi.get(self, "metric_stat") + + @property + @pulumi.getter(name="returnData") + def return_data(self) -> Optional[bool]: + """ + Indicates whether to return the timestamps and raw data values of this metric. + """ + return pulumi.get(self, "return_data") + + +@pulumi.output_type +class ScalingPolicyPredictiveScalingMetricDimension(dict): + def __init__(__self__, *, + name: Optional[str] = None, + value: Optional[str] = None): + """ + :param str name: The name of the dimension. + :param str value: The value of the dimension. + """ + if name is not None: + pulumi.set(__self__, "name", name) + if value is not None: + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + The name of the dimension. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def value(self) -> Optional[str]: + """ + The value of the dimension. + """ + return pulumi.get(self, "value") + + +@pulumi.output_type +class ScalingPolicyPredictiveScalingMetricSpecification(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "targetValue": + suggest = "target_value" + elif key == "customizedCapacityMetricSpecification": + suggest = "customized_capacity_metric_specification" + elif key == "customizedLoadMetricSpecification": + suggest = "customized_load_metric_specification" + elif key == "customizedScalingMetricSpecification": + suggest = "customized_scaling_metric_specification" + elif key == "predefinedLoadMetricSpecification": + suggest = "predefined_load_metric_specification" + elif key == "predefinedMetricPairSpecification": + suggest = "predefined_metric_pair_specification" + elif key == "predefinedScalingMetricSpecification": + suggest = "predefined_scaling_metric_specification" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ScalingPolicyPredictiveScalingMetricSpecification. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ScalingPolicyPredictiveScalingMetricSpecification.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ScalingPolicyPredictiveScalingMetricSpecification.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + target_value: float, + customized_capacity_metric_specification: Optional['outputs.ScalingPolicyPredictiveScalingCustomizedCapacityMetric'] = None, + customized_load_metric_specification: Optional['outputs.ScalingPolicyPredictiveScalingCustomizedLoadMetric'] = None, + customized_scaling_metric_specification: Optional['outputs.ScalingPolicyPredictiveScalingCustomizedScalingMetric'] = None, + predefined_load_metric_specification: Optional['outputs.ScalingPolicyPredictiveScalingPredefinedLoadMetric'] = None, + predefined_metric_pair_specification: Optional['outputs.ScalingPolicyPredictiveScalingPredefinedMetricPair'] = None, + predefined_scaling_metric_specification: Optional['outputs.ScalingPolicyPredictiveScalingPredefinedScalingMetric'] = None): + pulumi.set(__self__, "target_value", target_value) + if customized_capacity_metric_specification is not None: + pulumi.set(__self__, "customized_capacity_metric_specification", customized_capacity_metric_specification) + if customized_load_metric_specification is not None: + pulumi.set(__self__, "customized_load_metric_specification", customized_load_metric_specification) + if customized_scaling_metric_specification is not None: + pulumi.set(__self__, "customized_scaling_metric_specification", customized_scaling_metric_specification) + if predefined_load_metric_specification is not None: + pulumi.set(__self__, "predefined_load_metric_specification", predefined_load_metric_specification) + if predefined_metric_pair_specification is not None: + pulumi.set(__self__, "predefined_metric_pair_specification", predefined_metric_pair_specification) + if predefined_scaling_metric_specification is not None: + pulumi.set(__self__, "predefined_scaling_metric_specification", predefined_scaling_metric_specification) + + @property + @pulumi.getter(name="targetValue") + def target_value(self) -> float: + return pulumi.get(self, "target_value") + + @property + @pulumi.getter(name="customizedCapacityMetricSpecification") + def customized_capacity_metric_specification(self) -> Optional['outputs.ScalingPolicyPredictiveScalingCustomizedCapacityMetric']: + return pulumi.get(self, "customized_capacity_metric_specification") + + @property + @pulumi.getter(name="customizedLoadMetricSpecification") + def customized_load_metric_specification(self) -> Optional['outputs.ScalingPolicyPredictiveScalingCustomizedLoadMetric']: + return pulumi.get(self, "customized_load_metric_specification") + + @property + @pulumi.getter(name="customizedScalingMetricSpecification") + def customized_scaling_metric_specification(self) -> Optional['outputs.ScalingPolicyPredictiveScalingCustomizedScalingMetric']: + return pulumi.get(self, "customized_scaling_metric_specification") + + @property + @pulumi.getter(name="predefinedLoadMetricSpecification") + def predefined_load_metric_specification(self) -> Optional['outputs.ScalingPolicyPredictiveScalingPredefinedLoadMetric']: + return pulumi.get(self, "predefined_load_metric_specification") + + @property + @pulumi.getter(name="predefinedMetricPairSpecification") + def predefined_metric_pair_specification(self) -> Optional['outputs.ScalingPolicyPredictiveScalingPredefinedMetricPair']: + return pulumi.get(self, "predefined_metric_pair_specification") + + @property + @pulumi.getter(name="predefinedScalingMetricSpecification") + def predefined_scaling_metric_specification(self) -> Optional['outputs.ScalingPolicyPredictiveScalingPredefinedScalingMetric']: + return pulumi.get(self, "predefined_scaling_metric_specification") + + +@pulumi.output_type +class ScalingPolicyPredictiveScalingMetricStat(dict): + def __init__(__self__, *, + metric: Optional['outputs.ScalingPolicyPredictiveScalingMetric'] = None, + stat: Optional[str] = None, + unit: Optional[str] = None): + """ + :param 'ScalingPolicyPredictiveScalingMetric' metric: The CloudWatch metric to return, including the metric name, namespace, and dimensions. + :param str stat: The statistic to return. It can include any CloudWatch statistic or extended statistic. + :param str unit: The unit to use for the returned data points. + """ + if metric is not None: + pulumi.set(__self__, "metric", metric) + if stat is not None: + pulumi.set(__self__, "stat", stat) + if unit is not None: + pulumi.set(__self__, "unit", unit) + + @property + @pulumi.getter + def metric(self) -> Optional['outputs.ScalingPolicyPredictiveScalingMetric']: + """ + The CloudWatch metric to return, including the metric name, namespace, and dimensions. + """ + return pulumi.get(self, "metric") + + @property + @pulumi.getter + def stat(self) -> Optional[str]: + """ + The statistic to return. It can include any CloudWatch statistic or extended statistic. + """ + return pulumi.get(self, "stat") + + @property + @pulumi.getter + def unit(self) -> Optional[str]: + """ + The unit to use for the returned data points. + """ + return pulumi.get(self, "unit") + + +@pulumi.output_type +class ScalingPolicyPredictiveScalingPolicyConfiguration(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "metricSpecifications": + suggest = "metric_specifications" + elif key == "maxCapacityBreachBehavior": + suggest = "max_capacity_breach_behavior" + elif key == "maxCapacityBuffer": + suggest = "max_capacity_buffer" + elif key == "schedulingBufferTime": + suggest = "scheduling_buffer_time" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ScalingPolicyPredictiveScalingPolicyConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ScalingPolicyPredictiveScalingPolicyConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ScalingPolicyPredictiveScalingPolicyConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + metric_specifications: Sequence['outputs.ScalingPolicyPredictiveScalingMetricSpecification'], + max_capacity_breach_behavior: Optional[str] = None, + max_capacity_buffer: Optional[int] = None, + mode: Optional[str] = None, + scheduling_buffer_time: Optional[int] = None): + pulumi.set(__self__, "metric_specifications", metric_specifications) + if max_capacity_breach_behavior is not None: + pulumi.set(__self__, "max_capacity_breach_behavior", max_capacity_breach_behavior) + if max_capacity_buffer is not None: + pulumi.set(__self__, "max_capacity_buffer", max_capacity_buffer) + if mode is not None: + pulumi.set(__self__, "mode", mode) + if scheduling_buffer_time is not None: + pulumi.set(__self__, "scheduling_buffer_time", scheduling_buffer_time) + + @property + @pulumi.getter(name="metricSpecifications") + def metric_specifications(self) -> Sequence['outputs.ScalingPolicyPredictiveScalingMetricSpecification']: + return pulumi.get(self, "metric_specifications") + + @property + @pulumi.getter(name="maxCapacityBreachBehavior") + def max_capacity_breach_behavior(self) -> Optional[str]: + return pulumi.get(self, "max_capacity_breach_behavior") + + @property + @pulumi.getter(name="maxCapacityBuffer") + def max_capacity_buffer(self) -> Optional[int]: + return pulumi.get(self, "max_capacity_buffer") + + @property + @pulumi.getter + def mode(self) -> Optional[str]: + return pulumi.get(self, "mode") + + @property + @pulumi.getter(name="schedulingBufferTime") + def scheduling_buffer_time(self) -> Optional[int]: + return pulumi.get(self, "scheduling_buffer_time") + + +@pulumi.output_type +class ScalingPolicyPredictiveScalingPredefinedLoadMetric(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "predefinedMetricType": + suggest = "predefined_metric_type" + elif key == "resourceLabel": + suggest = "resource_label" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ScalingPolicyPredictiveScalingPredefinedLoadMetric. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ScalingPolicyPredictiveScalingPredefinedLoadMetric.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ScalingPolicyPredictiveScalingPredefinedLoadMetric.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + predefined_metric_type: str, + resource_label: Optional[str] = None): + pulumi.set(__self__, "predefined_metric_type", predefined_metric_type) + if resource_label is not None: + pulumi.set(__self__, "resource_label", resource_label) + + @property + @pulumi.getter(name="predefinedMetricType") + def predefined_metric_type(self) -> str: + return pulumi.get(self, "predefined_metric_type") + + @property + @pulumi.getter(name="resourceLabel") + def resource_label(self) -> Optional[str]: + return pulumi.get(self, "resource_label") + + +@pulumi.output_type +class ScalingPolicyPredictiveScalingPredefinedMetricPair(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "predefinedMetricType": + suggest = "predefined_metric_type" + elif key == "resourceLabel": + suggest = "resource_label" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ScalingPolicyPredictiveScalingPredefinedMetricPair. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ScalingPolicyPredictiveScalingPredefinedMetricPair.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ScalingPolicyPredictiveScalingPredefinedMetricPair.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + predefined_metric_type: str, + resource_label: Optional[str] = None): + pulumi.set(__self__, "predefined_metric_type", predefined_metric_type) + if resource_label is not None: + pulumi.set(__self__, "resource_label", resource_label) + + @property + @pulumi.getter(name="predefinedMetricType") + def predefined_metric_type(self) -> str: + return pulumi.get(self, "predefined_metric_type") + + @property + @pulumi.getter(name="resourceLabel") + def resource_label(self) -> Optional[str]: + return pulumi.get(self, "resource_label") + + +@pulumi.output_type +class ScalingPolicyPredictiveScalingPredefinedScalingMetric(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "predefinedMetricType": + suggest = "predefined_metric_type" + elif key == "resourceLabel": + suggest = "resource_label" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ScalingPolicyPredictiveScalingPredefinedScalingMetric. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ScalingPolicyPredictiveScalingPredefinedScalingMetric.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ScalingPolicyPredictiveScalingPredefinedScalingMetric.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + predefined_metric_type: str, + resource_label: Optional[str] = None): + pulumi.set(__self__, "predefined_metric_type", predefined_metric_type) + if resource_label is not None: + pulumi.set(__self__, "resource_label", resource_label) + + @property + @pulumi.getter(name="predefinedMetricType") + def predefined_metric_type(self) -> str: + return pulumi.get(self, "predefined_metric_type") + + @property + @pulumi.getter(name="resourceLabel") + def resource_label(self) -> Optional[str]: + return pulumi.get(self, "resource_label") + + @pulumi.output_type class ScalingPolicyStepAdjustment(dict): """ diff --git a/sdk/python/pulumi_aws_native/applicationautoscaling/scaling_policy.py b/sdk/python/pulumi_aws_native/applicationautoscaling/scaling_policy.py index b9a18f8d1c..3e94f31993 100644 --- a/sdk/python/pulumi_aws_native/applicationautoscaling/scaling_policy.py +++ b/sdk/python/pulumi_aws_native/applicationautoscaling/scaling_policy.py @@ -23,6 +23,7 @@ class ScalingPolicyArgs: def __init__(__self__, *, policy_type: pulumi.Input[str], policy_name: Optional[pulumi.Input[str]] = None, + predictive_scaling_policy_configuration: Optional[pulumi.Input['ScalingPolicyPredictiveScalingPolicyConfigurationArgs']] = None, resource_id: Optional[pulumi.Input[str]] = None, scalable_dimension: Optional[pulumi.Input[str]] = None, scaling_target_id: Optional[pulumi.Input[str]] = None, @@ -90,6 +91,8 @@ def __init__(__self__, *, pulumi.set(__self__, "policy_type", policy_type) if policy_name is not None: pulumi.set(__self__, "policy_name", policy_name) + if predictive_scaling_policy_configuration is not None: + pulumi.set(__self__, "predictive_scaling_policy_configuration", predictive_scaling_policy_configuration) if resource_id is not None: pulumi.set(__self__, "resource_id", resource_id) if scalable_dimension is not None: @@ -131,6 +134,15 @@ def policy_name(self) -> Optional[pulumi.Input[str]]: def policy_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "policy_name", value) + @property + @pulumi.getter(name="predictiveScalingPolicyConfiguration") + def predictive_scaling_policy_configuration(self) -> Optional[pulumi.Input['ScalingPolicyPredictiveScalingPolicyConfigurationArgs']]: + return pulumi.get(self, "predictive_scaling_policy_configuration") + + @predictive_scaling_policy_configuration.setter + def predictive_scaling_policy_configuration(self, value: Optional[pulumi.Input['ScalingPolicyPredictiveScalingPolicyConfigurationArgs']]): + pulumi.set(self, "predictive_scaling_policy_configuration", value) + @property @pulumi.getter(name="resourceId") def resource_id(self) -> Optional[pulumi.Input[str]]: @@ -254,6 +266,7 @@ def __init__(__self__, opts: Optional[pulumi.ResourceOptions] = None, policy_name: Optional[pulumi.Input[str]] = None, policy_type: Optional[pulumi.Input[str]] = None, + predictive_scaling_policy_configuration: Optional[pulumi.Input[Union['ScalingPolicyPredictiveScalingPolicyConfigurationArgs', 'ScalingPolicyPredictiveScalingPolicyConfigurationArgsDict']]] = None, resource_id: Optional[pulumi.Input[str]] = None, scalable_dimension: Optional[pulumi.Input[str]] = None, scaling_target_id: Optional[pulumi.Input[str]] = None, @@ -350,6 +363,7 @@ def _internal_init(__self__, opts: Optional[pulumi.ResourceOptions] = None, policy_name: Optional[pulumi.Input[str]] = None, policy_type: Optional[pulumi.Input[str]] = None, + predictive_scaling_policy_configuration: Optional[pulumi.Input[Union['ScalingPolicyPredictiveScalingPolicyConfigurationArgs', 'ScalingPolicyPredictiveScalingPolicyConfigurationArgsDict']]] = None, resource_id: Optional[pulumi.Input[str]] = None, scalable_dimension: Optional[pulumi.Input[str]] = None, scaling_target_id: Optional[pulumi.Input[str]] = None, @@ -369,6 +383,7 @@ def _internal_init(__self__, if policy_type is None and not opts.urn: raise TypeError("Missing required property 'policy_type'") __props__.__dict__["policy_type"] = policy_type + __props__.__dict__["predictive_scaling_policy_configuration"] = predictive_scaling_policy_configuration __props__.__dict__["resource_id"] = resource_id __props__.__dict__["scalable_dimension"] = scalable_dimension __props__.__dict__["scaling_target_id"] = scaling_target_id @@ -403,6 +418,7 @@ def get(resource_name: str, __props__.__dict__["arn"] = None __props__.__dict__["policy_name"] = None __props__.__dict__["policy_type"] = None + __props__.__dict__["predictive_scaling_policy_configuration"] = None __props__.__dict__["resource_id"] = None __props__.__dict__["scalable_dimension"] = None __props__.__dict__["scaling_target_id"] = None @@ -439,6 +455,11 @@ def policy_type(self) -> pulumi.Output[str]: """ return pulumi.get(self, "policy_type") + @property + @pulumi.getter(name="predictiveScalingPolicyConfiguration") + def predictive_scaling_policy_configuration(self) -> pulumi.Output[Optional['outputs.ScalingPolicyPredictiveScalingPolicyConfiguration']]: + return pulumi.get(self, "predictive_scaling_policy_configuration") + @property @pulumi.getter(name="resourceId") def resource_id(self) -> pulumi.Output[Optional[str]]: diff --git a/sdk/python/pulumi_aws_native/applicationsignals/_inputs.py b/sdk/python/pulumi_aws_native/applicationsignals/_inputs.py index bd6b8409b3..c4dd62cf5c 100644 --- a/sdk/python/pulumi_aws_native/applicationsignals/_inputs.py +++ b/sdk/python/pulumi_aws_native/applicationsignals/_inputs.py @@ -16,6 +16,8 @@ from ._enums import * __all__ = [ + 'ServiceLevelObjectiveBurnRateConfigurationArgs', + 'ServiceLevelObjectiveBurnRateConfigurationArgsDict', 'ServiceLevelObjectiveCalendarIntervalArgs', 'ServiceLevelObjectiveCalendarIntervalArgsDict', 'ServiceLevelObjectiveDimensionArgs', @@ -46,6 +48,45 @@ MYPY = False +if not MYPY: + class ServiceLevelObjectiveBurnRateConfigurationArgsDict(TypedDict): + """ + This object defines the length of the look-back window used to calculate one burn rate metric for this SLO. The burn rate measures how fast the service is consuming the error budget, relative to the attainment goal of the SLO. A burn rate of exactly 1 indicates that the SLO goal will be met exactly. + For example, if you specify 60 as the number of minutes in the look-back window, the burn rate is calculated as the following: + burn rate = error rate over the look-back window / (1 - attainment goal percentage) + """ + look_back_window_minutes: pulumi.Input[int] + """ + The number of minutes to use as the look-back window. + """ +elif False: + ServiceLevelObjectiveBurnRateConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ServiceLevelObjectiveBurnRateConfigurationArgs: + def __init__(__self__, *, + look_back_window_minutes: pulumi.Input[int]): + """ + This object defines the length of the look-back window used to calculate one burn rate metric for this SLO. The burn rate measures how fast the service is consuming the error budget, relative to the attainment goal of the SLO. A burn rate of exactly 1 indicates that the SLO goal will be met exactly. + For example, if you specify 60 as the number of minutes in the look-back window, the burn rate is calculated as the following: + burn rate = error rate over the look-back window / (1 - attainment goal percentage) + :param pulumi.Input[int] look_back_window_minutes: The number of minutes to use as the look-back window. + """ + pulumi.set(__self__, "look_back_window_minutes", look_back_window_minutes) + + @property + @pulumi.getter(name="lookBackWindowMinutes") + def look_back_window_minutes(self) -> pulumi.Input[int]: + """ + The number of minutes to use as the look-back window. + """ + return pulumi.get(self, "look_back_window_minutes") + + @look_back_window_minutes.setter + def look_back_window_minutes(self, value: pulumi.Input[int]): + pulumi.set(self, "look_back_window_minutes", value) + + if not MYPY: class ServiceLevelObjectiveCalendarIntervalArgsDict(TypedDict): """ diff --git a/sdk/python/pulumi_aws_native/applicationsignals/get_service_level_objective.py b/sdk/python/pulumi_aws_native/applicationsignals/get_service_level_objective.py index bcb2e739c3..0bd0d97e01 100644 --- a/sdk/python/pulumi_aws_native/applicationsignals/get_service_level_objective.py +++ b/sdk/python/pulumi_aws_native/applicationsignals/get_service_level_objective.py @@ -26,10 +26,13 @@ @pulumi.output_type class GetServiceLevelObjectiveResult: - def __init__(__self__, arn=None, created_time=None, description=None, evaluation_type=None, goal=None, last_updated_time=None, request_based_sli=None, sli=None, tags=None): + def __init__(__self__, arn=None, burn_rate_configurations=None, created_time=None, description=None, evaluation_type=None, goal=None, last_updated_time=None, request_based_sli=None, sli=None, tags=None): if arn and not isinstance(arn, str): raise TypeError("Expected argument 'arn' to be a str") pulumi.set(__self__, "arn", arn) + if burn_rate_configurations and not isinstance(burn_rate_configurations, list): + raise TypeError("Expected argument 'burn_rate_configurations' to be a list") + pulumi.set(__self__, "burn_rate_configurations", burn_rate_configurations) if created_time and not isinstance(created_time, int): raise TypeError("Expected argument 'created_time' to be a int") pulumi.set(__self__, "created_time", created_time) @@ -63,6 +66,11 @@ def arn(self) -> Optional[str]: """ return pulumi.get(self, "arn") + @property + @pulumi.getter(name="burnRateConfigurations") + def burn_rate_configurations(self) -> Optional[Sequence['outputs.ServiceLevelObjectiveBurnRateConfiguration']]: + return pulumi.get(self, "burn_rate_configurations") + @property @pulumi.getter(name="createdTime") def created_time(self) -> Optional[int]: @@ -137,6 +145,7 @@ def __await__(self): yield self return GetServiceLevelObjectiveResult( arn=self.arn, + burn_rate_configurations=self.burn_rate_configurations, created_time=self.created_time, description=self.description, evaluation_type=self.evaluation_type, @@ -162,6 +171,7 @@ def get_service_level_objective(arn: Optional[str] = None, return AwaitableGetServiceLevelObjectiveResult( arn=pulumi.get(__ret__, 'arn'), + burn_rate_configurations=pulumi.get(__ret__, 'burn_rate_configurations'), created_time=pulumi.get(__ret__, 'created_time'), description=pulumi.get(__ret__, 'description'), evaluation_type=pulumi.get(__ret__, 'evaluation_type'), @@ -184,6 +194,7 @@ def get_service_level_objective_output(arn: Optional[pulumi.Input[str]] = None, __ret__ = pulumi.runtime.invoke_output('aws-native:applicationsignals:getServiceLevelObjective', __args__, opts=opts, typ=GetServiceLevelObjectiveResult) return __ret__.apply(lambda __response__: GetServiceLevelObjectiveResult( arn=pulumi.get(__response__, 'arn'), + burn_rate_configurations=pulumi.get(__response__, 'burn_rate_configurations'), created_time=pulumi.get(__response__, 'created_time'), description=pulumi.get(__response__, 'description'), evaluation_type=pulumi.get(__response__, 'evaluation_type'), diff --git a/sdk/python/pulumi_aws_native/applicationsignals/outputs.py b/sdk/python/pulumi_aws_native/applicationsignals/outputs.py index 05838f1e7b..cdfd7352ba 100644 --- a/sdk/python/pulumi_aws_native/applicationsignals/outputs.py +++ b/sdk/python/pulumi_aws_native/applicationsignals/outputs.py @@ -17,6 +17,7 @@ from ._enums import * __all__ = [ + 'ServiceLevelObjectiveBurnRateConfiguration', 'ServiceLevelObjectiveCalendarInterval', 'ServiceLevelObjectiveDimension', 'ServiceLevelObjectiveGoal', @@ -32,6 +33,49 @@ 'ServiceLevelObjectiveSliMetric', ] +@pulumi.output_type +class ServiceLevelObjectiveBurnRateConfiguration(dict): + """ + This object defines the length of the look-back window used to calculate one burn rate metric for this SLO. The burn rate measures how fast the service is consuming the error budget, relative to the attainment goal of the SLO. A burn rate of exactly 1 indicates that the SLO goal will be met exactly. + For example, if you specify 60 as the number of minutes in the look-back window, the burn rate is calculated as the following: + burn rate = error rate over the look-back window / (1 - attainment goal percentage) + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "lookBackWindowMinutes": + suggest = "look_back_window_minutes" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ServiceLevelObjectiveBurnRateConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ServiceLevelObjectiveBurnRateConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ServiceLevelObjectiveBurnRateConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + look_back_window_minutes: int): + """ + This object defines the length of the look-back window used to calculate one burn rate metric for this SLO. The burn rate measures how fast the service is consuming the error budget, relative to the attainment goal of the SLO. A burn rate of exactly 1 indicates that the SLO goal will be met exactly. + For example, if you specify 60 as the number of minutes in the look-back window, the burn rate is calculated as the following: + burn rate = error rate over the look-back window / (1 - attainment goal percentage) + :param int look_back_window_minutes: The number of minutes to use as the look-back window. + """ + pulumi.set(__self__, "look_back_window_minutes", look_back_window_minutes) + + @property + @pulumi.getter(name="lookBackWindowMinutes") + def look_back_window_minutes(self) -> int: + """ + The number of minutes to use as the look-back window. + """ + return pulumi.get(self, "look_back_window_minutes") + + @pulumi.output_type class ServiceLevelObjectiveCalendarInterval(dict): """ diff --git a/sdk/python/pulumi_aws_native/applicationsignals/service_level_objective.py b/sdk/python/pulumi_aws_native/applicationsignals/service_level_objective.py index ec9f22db0d..aa6aa48161 100644 --- a/sdk/python/pulumi_aws_native/applicationsignals/service_level_objective.py +++ b/sdk/python/pulumi_aws_native/applicationsignals/service_level_objective.py @@ -24,6 +24,7 @@ @pulumi.input_type class ServiceLevelObjectiveArgs: def __init__(__self__, *, + burn_rate_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['ServiceLevelObjectiveBurnRateConfigurationArgs']]]] = None, description: Optional[pulumi.Input[str]] = None, goal: Optional[pulumi.Input['ServiceLevelObjectiveGoalArgs']] = None, name: Optional[pulumi.Input[str]] = None, @@ -41,6 +42,8 @@ def __init__(__self__, *, Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values. """ + if burn_rate_configurations is not None: + pulumi.set(__self__, "burn_rate_configurations", burn_rate_configurations) if description is not None: pulumi.set(__self__, "description", description) if goal is not None: @@ -54,6 +57,15 @@ def __init__(__self__, *, if tags is not None: pulumi.set(__self__, "tags", tags) + @property + @pulumi.getter(name="burnRateConfigurations") + def burn_rate_configurations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ServiceLevelObjectiveBurnRateConfigurationArgs']]]]: + return pulumi.get(self, "burn_rate_configurations") + + @burn_rate_configurations.setter + def burn_rate_configurations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ServiceLevelObjectiveBurnRateConfigurationArgs']]]]): + pulumi.set(self, "burn_rate_configurations", value) + @property @pulumi.getter def description(self) -> Optional[pulumi.Input[str]]: @@ -134,6 +146,7 @@ class ServiceLevelObjective(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + burn_rate_configurations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServiceLevelObjectiveBurnRateConfigurationArgs', 'ServiceLevelObjectiveBurnRateConfigurationArgsDict']]]]] = None, description: Optional[pulumi.Input[str]] = None, goal: Optional[pulumi.Input[Union['ServiceLevelObjectiveGoalArgs', 'ServiceLevelObjectiveGoalArgsDict']]] = None, name: Optional[pulumi.Input[str]] = None, @@ -179,6 +192,7 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + burn_rate_configurations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServiceLevelObjectiveBurnRateConfigurationArgs', 'ServiceLevelObjectiveBurnRateConfigurationArgsDict']]]]] = None, description: Optional[pulumi.Input[str]] = None, goal: Optional[pulumi.Input[Union['ServiceLevelObjectiveGoalArgs', 'ServiceLevelObjectiveGoalArgsDict']]] = None, name: Optional[pulumi.Input[str]] = None, @@ -194,6 +208,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ServiceLevelObjectiveArgs.__new__(ServiceLevelObjectiveArgs) + __props__.__dict__["burn_rate_configurations"] = burn_rate_configurations __props__.__dict__["description"] = description __props__.__dict__["goal"] = goal __props__.__dict__["name"] = name @@ -229,6 +244,7 @@ def get(resource_name: str, __props__ = ServiceLevelObjectiveArgs.__new__(ServiceLevelObjectiveArgs) __props__.__dict__["arn"] = None + __props__.__dict__["burn_rate_configurations"] = None __props__.__dict__["created_time"] = None __props__.__dict__["description"] = None __props__.__dict__["evaluation_type"] = None @@ -248,6 +264,11 @@ def arn(self) -> pulumi.Output[str]: """ return pulumi.get(self, "arn") + @property + @pulumi.getter(name="burnRateConfigurations") + def burn_rate_configurations(self) -> pulumi.Output[Optional[Sequence['outputs.ServiceLevelObjectiveBurnRateConfiguration']]]: + return pulumi.get(self, "burn_rate_configurations") + @property @pulumi.getter(name="createdTime") def created_time(self) -> pulumi.Output[int]: diff --git a/sdk/python/pulumi_aws_native/autoscaling/_enums.py b/sdk/python/pulumi_aws_native/autoscaling/_enums.py index 797a9d0788..5355481e6f 100644 --- a/sdk/python/pulumi_aws_native/autoscaling/_enums.py +++ b/sdk/python/pulumi_aws_native/autoscaling/_enums.py @@ -6,6 +6,7 @@ __all__ = [ 'AutoScalingGroupAvailabilityZoneDistributionCapacityDistributionStrategy', + 'AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior', ] @@ -18,3 +19,8 @@ class AutoScalingGroupAvailabilityZoneDistributionCapacityDistributionStrategy(s """ BALANCED_BEST_EFFORT = "balanced-best-effort" BALANCED_ONLY = "balanced-only" + + +class AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior(str, Enum): + IGNORE_UNHEALTHY = "IgnoreUnhealthy" + REPLACE_UNHEALTHY = "ReplaceUnhealthy" diff --git a/sdk/python/pulumi_aws_native/autoscaling/_inputs.py b/sdk/python/pulumi_aws_native/autoscaling/_inputs.py index fa1b33cb03..2500378dad 100644 --- a/sdk/python/pulumi_aws_native/autoscaling/_inputs.py +++ b/sdk/python/pulumi_aws_native/autoscaling/_inputs.py @@ -22,8 +22,14 @@ 'AutoScalingGroupAcceleratorTotalMemoryMiBRequestArgsDict', 'AutoScalingGroupAvailabilityZoneDistributionArgs', 'AutoScalingGroupAvailabilityZoneDistributionArgsDict', + 'AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs', + 'AutoScalingGroupAvailabilityZoneImpairmentPolicyArgsDict', 'AutoScalingGroupBaselineEbsBandwidthMbpsRequestArgs', 'AutoScalingGroupBaselineEbsBandwidthMbpsRequestArgsDict', + 'AutoScalingGroupBaselinePerformanceFactorsRequestArgs', + 'AutoScalingGroupBaselinePerformanceFactorsRequestArgsDict', + 'AutoScalingGroupCpuPerformanceFactorRequestArgs', + 'AutoScalingGroupCpuPerformanceFactorRequestArgsDict', 'AutoScalingGroupInstanceMaintenancePolicyArgs', 'AutoScalingGroupInstanceMaintenancePolicyArgsDict', 'AutoScalingGroupInstanceRequirementsArgs', @@ -52,6 +58,8 @@ 'AutoScalingGroupNetworkInterfaceCountRequestArgsDict', 'AutoScalingGroupNotificationConfigurationArgs', 'AutoScalingGroupNotificationConfigurationArgsDict', + 'AutoScalingGroupPerformanceFactorReferenceRequestArgs', + 'AutoScalingGroupPerformanceFactorReferenceRequestArgsDict', 'AutoScalingGroupTagPropertyArgs', 'AutoScalingGroupTagPropertyArgsDict', 'AutoScalingGroupTotalLocalStorageGbRequestArgs', @@ -261,6 +269,40 @@ def capacity_distribution_strategy(self, value: Optional[pulumi.Input['AutoScali pulumi.set(self, "capacity_distribution_strategy", value) +if not MYPY: + class AutoScalingGroupAvailabilityZoneImpairmentPolicyArgsDict(TypedDict): + impaired_zone_health_check_behavior: pulumi.Input['AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior'] + zonal_shift_enabled: pulumi.Input[bool] +elif False: + AutoScalingGroupAvailabilityZoneImpairmentPolicyArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs: + def __init__(__self__, *, + impaired_zone_health_check_behavior: pulumi.Input['AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior'], + zonal_shift_enabled: pulumi.Input[bool]): + pulumi.set(__self__, "impaired_zone_health_check_behavior", impaired_zone_health_check_behavior) + pulumi.set(__self__, "zonal_shift_enabled", zonal_shift_enabled) + + @property + @pulumi.getter(name="impairedZoneHealthCheckBehavior") + def impaired_zone_health_check_behavior(self) -> pulumi.Input['AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior']: + return pulumi.get(self, "impaired_zone_health_check_behavior") + + @impaired_zone_health_check_behavior.setter + def impaired_zone_health_check_behavior(self, value: pulumi.Input['AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior']): + pulumi.set(self, "impaired_zone_health_check_behavior", value) + + @property + @pulumi.getter(name="zonalShiftEnabled") + def zonal_shift_enabled(self) -> pulumi.Input[bool]: + return pulumi.get(self, "zonal_shift_enabled") + + @zonal_shift_enabled.setter + def zonal_shift_enabled(self, value: pulumi.Input[bool]): + pulumi.set(self, "zonal_shift_enabled", value) + + if not MYPY: class AutoScalingGroupBaselineEbsBandwidthMbpsRequestArgsDict(TypedDict): """ @@ -317,6 +359,52 @@ def min(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "min", value) +if not MYPY: + class AutoScalingGroupBaselinePerformanceFactorsRequestArgsDict(TypedDict): + cpu: NotRequired[pulumi.Input['AutoScalingGroupCpuPerformanceFactorRequestArgsDict']] +elif False: + AutoScalingGroupBaselinePerformanceFactorsRequestArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AutoScalingGroupBaselinePerformanceFactorsRequestArgs: + def __init__(__self__, *, + cpu: Optional[pulumi.Input['AutoScalingGroupCpuPerformanceFactorRequestArgs']] = None): + if cpu is not None: + pulumi.set(__self__, "cpu", cpu) + + @property + @pulumi.getter + def cpu(self) -> Optional[pulumi.Input['AutoScalingGroupCpuPerformanceFactorRequestArgs']]: + return pulumi.get(self, "cpu") + + @cpu.setter + def cpu(self, value: Optional[pulumi.Input['AutoScalingGroupCpuPerformanceFactorRequestArgs']]): + pulumi.set(self, "cpu", value) + + +if not MYPY: + class AutoScalingGroupCpuPerformanceFactorRequestArgsDict(TypedDict): + references: NotRequired[pulumi.Input[Sequence[pulumi.Input['AutoScalingGroupPerformanceFactorReferenceRequestArgsDict']]]] +elif False: + AutoScalingGroupCpuPerformanceFactorRequestArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AutoScalingGroupCpuPerformanceFactorRequestArgs: + def __init__(__self__, *, + references: Optional[pulumi.Input[Sequence[pulumi.Input['AutoScalingGroupPerformanceFactorReferenceRequestArgs']]]] = None): + if references is not None: + pulumi.set(__self__, "references", references) + + @property + @pulumi.getter + def references(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AutoScalingGroupPerformanceFactorReferenceRequestArgs']]]]: + return pulumi.get(self, "references") + + @references.setter + def references(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AutoScalingGroupPerformanceFactorReferenceRequestArgs']]]]): + pulumi.set(self, "references", value) + + if not MYPY: class AutoScalingGroupInstanceMaintenancePolicyArgsDict(TypedDict): """ @@ -461,6 +549,7 @@ class AutoScalingGroupInstanceRequirementsArgsDict(TypedDict): The minimum and maximum baseline bandwidth performance for an instance type, in Mbps. For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide for Linux Instances*. Default: No minimum or maximum limits """ + baseline_performance_factors: NotRequired[pulumi.Input['AutoScalingGroupBaselinePerformanceFactorsRequestArgsDict']] burstable_performance: NotRequired[pulumi.Input[str]] """ Indicates whether burstable performance instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide for Linux Instances*. @@ -567,6 +656,7 @@ def __init__(__self__, *, allowed_instance_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, bare_metal: Optional[pulumi.Input[str]] = None, baseline_ebs_bandwidth_mbps: Optional[pulumi.Input['AutoScalingGroupBaselineEbsBandwidthMbpsRequestArgs']] = None, + baseline_performance_factors: Optional[pulumi.Input['AutoScalingGroupBaselinePerformanceFactorsRequestArgs']] = None, burstable_performance: Optional[pulumi.Input[str]] = None, cpu_manufacturers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, excluded_instance_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, @@ -698,6 +788,8 @@ def __init__(__self__, *, pulumi.set(__self__, "bare_metal", bare_metal) if baseline_ebs_bandwidth_mbps is not None: pulumi.set(__self__, "baseline_ebs_bandwidth_mbps", baseline_ebs_bandwidth_mbps) + if baseline_performance_factors is not None: + pulumi.set(__self__, "baseline_performance_factors", baseline_performance_factors) if burstable_performance is not None: pulumi.set(__self__, "burstable_performance", burstable_performance) if cpu_manufacturers is not None: @@ -876,6 +968,15 @@ def baseline_ebs_bandwidth_mbps(self) -> Optional[pulumi.Input['AutoScalingGroup def baseline_ebs_bandwidth_mbps(self, value: Optional[pulumi.Input['AutoScalingGroupBaselineEbsBandwidthMbpsRequestArgs']]): pulumi.set(self, "baseline_ebs_bandwidth_mbps", value) + @property + @pulumi.getter(name="baselinePerformanceFactors") + def baseline_performance_factors(self) -> Optional[pulumi.Input['AutoScalingGroupBaselinePerformanceFactorsRequestArgs']]: + return pulumi.get(self, "baseline_performance_factors") + + @baseline_performance_factors.setter + def baseline_performance_factors(self, value: Optional[pulumi.Input['AutoScalingGroupBaselinePerformanceFactorsRequestArgs']]): + pulumi.set(self, "baseline_performance_factors", value) + @property @pulumi.getter(name="burstablePerformance") def burstable_performance(self) -> Optional[pulumi.Input[str]]: @@ -2210,6 +2311,29 @@ def notification_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[ pulumi.set(self, "notification_types", value) +if not MYPY: + class AutoScalingGroupPerformanceFactorReferenceRequestArgsDict(TypedDict): + instance_family: NotRequired[pulumi.Input[str]] +elif False: + AutoScalingGroupPerformanceFactorReferenceRequestArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AutoScalingGroupPerformanceFactorReferenceRequestArgs: + def __init__(__self__, *, + instance_family: Optional[pulumi.Input[str]] = None): + if instance_family is not None: + pulumi.set(__self__, "instance_family", instance_family) + + @property + @pulumi.getter(name="instanceFamily") + def instance_family(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "instance_family") + + @instance_family.setter + def instance_family(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "instance_family", value) + + if not MYPY: class AutoScalingGroupTagPropertyArgsDict(TypedDict): """ diff --git a/sdk/python/pulumi_aws_native/autoscaling/auto_scaling_group.py b/sdk/python/pulumi_aws_native/autoscaling/auto_scaling_group.py index afe4f6bbc5..14d3ccc9b1 100644 --- a/sdk/python/pulumi_aws_native/autoscaling/auto_scaling_group.py +++ b/sdk/python/pulumi_aws_native/autoscaling/auto_scaling_group.py @@ -26,6 +26,7 @@ def __init__(__self__, *, min_size: pulumi.Input[str], auto_scaling_group_name: Optional[pulumi.Input[str]] = None, availability_zone_distribution: Optional[pulumi.Input['AutoScalingGroupAvailabilityZoneDistributionArgs']] = None, + availability_zone_impairment_policy: Optional[pulumi.Input['AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs']] = None, availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, capacity_rebalance: Optional[pulumi.Input[bool]] = None, context: Optional[pulumi.Input[str]] = None, @@ -49,6 +50,7 @@ def __init__(__self__, *, notification_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['AutoScalingGroupNotificationConfigurationArgs']]]] = None, placement_group: Optional[pulumi.Input[str]] = None, service_linked_role_arn: Optional[pulumi.Input[str]] = None, + skip_zonal_shift_validation: Optional[pulumi.Input[bool]] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input['AutoScalingGroupTagPropertyArgs']]]] = None, target_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, termination_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, @@ -119,6 +121,8 @@ def __init__(__self__, *, pulumi.set(__self__, "auto_scaling_group_name", auto_scaling_group_name) if availability_zone_distribution is not None: pulumi.set(__self__, "availability_zone_distribution", availability_zone_distribution) + if availability_zone_impairment_policy is not None: + pulumi.set(__self__, "availability_zone_impairment_policy", availability_zone_impairment_policy) if availability_zones is not None: pulumi.set(__self__, "availability_zones", availability_zones) if capacity_rebalance is not None: @@ -165,6 +169,8 @@ def __init__(__self__, *, pulumi.set(__self__, "placement_group", placement_group) if service_linked_role_arn is not None: pulumi.set(__self__, "service_linked_role_arn", service_linked_role_arn) + if skip_zonal_shift_validation is not None: + pulumi.set(__self__, "skip_zonal_shift_validation", skip_zonal_shift_validation) if tags is not None: pulumi.set(__self__, "tags", tags) if target_group_arns is not None: @@ -227,6 +233,15 @@ def availability_zone_distribution(self) -> Optional[pulumi.Input['AutoScalingGr def availability_zone_distribution(self, value: Optional[pulumi.Input['AutoScalingGroupAvailabilityZoneDistributionArgs']]): pulumi.set(self, "availability_zone_distribution", value) + @property + @pulumi.getter(name="availabilityZoneImpairmentPolicy") + def availability_zone_impairment_policy(self) -> Optional[pulumi.Input['AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs']]: + return pulumi.get(self, "availability_zone_impairment_policy") + + @availability_zone_impairment_policy.setter + def availability_zone_impairment_policy(self, value: Optional[pulumi.Input['AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs']]): + pulumi.set(self, "availability_zone_impairment_policy", value) + @property @pulumi.getter(name="availabilityZones") def availability_zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: @@ -518,6 +533,15 @@ def service_linked_role_arn(self) -> Optional[pulumi.Input[str]]: def service_linked_role_arn(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "service_linked_role_arn", value) + @property + @pulumi.getter(name="skipZonalShiftValidation") + def skip_zonal_shift_validation(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "skip_zonal_shift_validation") + + @skip_zonal_shift_validation.setter + def skip_zonal_shift_validation(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "skip_zonal_shift_validation", value) + @property @pulumi.getter def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AutoScalingGroupTagPropertyArgs']]]]: @@ -590,6 +614,7 @@ def __init__(__self__, opts: Optional[pulumi.ResourceOptions] = None, auto_scaling_group_name: Optional[pulumi.Input[str]] = None, availability_zone_distribution: Optional[pulumi.Input[Union['AutoScalingGroupAvailabilityZoneDistributionArgs', 'AutoScalingGroupAvailabilityZoneDistributionArgsDict']]] = None, + availability_zone_impairment_policy: Optional[pulumi.Input[Union['AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs', 'AutoScalingGroupAvailabilityZoneImpairmentPolicyArgsDict']]] = None, availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, capacity_rebalance: Optional[pulumi.Input[bool]] = None, context: Optional[pulumi.Input[str]] = None, @@ -615,6 +640,7 @@ def __init__(__self__, notification_configurations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['AutoScalingGroupNotificationConfigurationArgs', 'AutoScalingGroupNotificationConfigurationArgsDict']]]]] = None, placement_group: Optional[pulumi.Input[str]] = None, service_linked_role_arn: Optional[pulumi.Input[str]] = None, + skip_zonal_shift_validation: Optional[pulumi.Input[bool]] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['AutoScalingGroupTagPropertyArgs', 'AutoScalingGroupTagPropertyArgsDict']]]]] = None, target_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, termination_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, @@ -715,6 +741,7 @@ def _internal_init(__self__, opts: Optional[pulumi.ResourceOptions] = None, auto_scaling_group_name: Optional[pulumi.Input[str]] = None, availability_zone_distribution: Optional[pulumi.Input[Union['AutoScalingGroupAvailabilityZoneDistributionArgs', 'AutoScalingGroupAvailabilityZoneDistributionArgsDict']]] = None, + availability_zone_impairment_policy: Optional[pulumi.Input[Union['AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs', 'AutoScalingGroupAvailabilityZoneImpairmentPolicyArgsDict']]] = None, availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, capacity_rebalance: Optional[pulumi.Input[bool]] = None, context: Optional[pulumi.Input[str]] = None, @@ -740,6 +767,7 @@ def _internal_init(__self__, notification_configurations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['AutoScalingGroupNotificationConfigurationArgs', 'AutoScalingGroupNotificationConfigurationArgsDict']]]]] = None, placement_group: Optional[pulumi.Input[str]] = None, service_linked_role_arn: Optional[pulumi.Input[str]] = None, + skip_zonal_shift_validation: Optional[pulumi.Input[bool]] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['AutoScalingGroupTagPropertyArgs', 'AutoScalingGroupTagPropertyArgsDict']]]]] = None, target_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, termination_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, @@ -756,6 +784,7 @@ def _internal_init(__self__, __props__.__dict__["auto_scaling_group_name"] = auto_scaling_group_name __props__.__dict__["availability_zone_distribution"] = availability_zone_distribution + __props__.__dict__["availability_zone_impairment_policy"] = availability_zone_impairment_policy __props__.__dict__["availability_zones"] = availability_zones __props__.__dict__["capacity_rebalance"] = capacity_rebalance __props__.__dict__["context"] = context @@ -785,6 +814,7 @@ def _internal_init(__self__, __props__.__dict__["notification_configurations"] = notification_configurations __props__.__dict__["placement_group"] = placement_group __props__.__dict__["service_linked_role_arn"] = service_linked_role_arn + __props__.__dict__["skip_zonal_shift_validation"] = skip_zonal_shift_validation __props__.__dict__["tags"] = tags __props__.__dict__["target_group_arns"] = target_group_arns __props__.__dict__["termination_policies"] = termination_policies @@ -816,6 +846,7 @@ def get(resource_name: str, __props__.__dict__["auto_scaling_group_name"] = None __props__.__dict__["availability_zone_distribution"] = None + __props__.__dict__["availability_zone_impairment_policy"] = None __props__.__dict__["availability_zones"] = None __props__.__dict__["capacity_rebalance"] = None __props__.__dict__["context"] = None @@ -841,6 +872,7 @@ def get(resource_name: str, __props__.__dict__["notification_configurations"] = None __props__.__dict__["placement_group"] = None __props__.__dict__["service_linked_role_arn"] = None + __props__.__dict__["skip_zonal_shift_validation"] = None __props__.__dict__["tags"] = None __props__.__dict__["target_group_arns"] = None __props__.__dict__["termination_policies"] = None @@ -866,6 +898,11 @@ def availability_zone_distribution(self) -> pulumi.Output[Optional['outputs.Auto """ return pulumi.get(self, "availability_zone_distribution") + @property + @pulumi.getter(name="availabilityZoneImpairmentPolicy") + def availability_zone_impairment_policy(self) -> pulumi.Output[Optional['outputs.AutoScalingGroupAvailabilityZoneImpairmentPolicy']]: + return pulumi.get(self, "availability_zone_impairment_policy") + @property @pulumi.getter(name="availabilityZones") def availability_zones(self) -> pulumi.Output[Optional[Sequence[str]]]: @@ -1082,6 +1119,11 @@ def service_linked_role_arn(self) -> pulumi.Output[Optional[str]]: """ return pulumi.get(self, "service_linked_role_arn") + @property + @pulumi.getter(name="skipZonalShiftValidation") + def skip_zonal_shift_validation(self) -> pulumi.Output[Optional[bool]]: + return pulumi.get(self, "skip_zonal_shift_validation") + @property @pulumi.getter def tags(self) -> pulumi.Output[Optional[Sequence['outputs.AutoScalingGroupTagProperty']]]: diff --git a/sdk/python/pulumi_aws_native/autoscaling/get_auto_scaling_group.py b/sdk/python/pulumi_aws_native/autoscaling/get_auto_scaling_group.py index a6a6903cb2..da2d2be67b 100644 --- a/sdk/python/pulumi_aws_native/autoscaling/get_auto_scaling_group.py +++ b/sdk/python/pulumi_aws_native/autoscaling/get_auto_scaling_group.py @@ -25,10 +25,13 @@ @pulumi.output_type class GetAutoScalingGroupResult: - def __init__(__self__, availability_zone_distribution=None, availability_zones=None, capacity_rebalance=None, context=None, cooldown=None, default_instance_warmup=None, desired_capacity=None, desired_capacity_type=None, health_check_grace_period=None, health_check_type=None, instance_maintenance_policy=None, launch_configuration_name=None, launch_template=None, lifecycle_hook_specification_list=None, load_balancer_names=None, max_instance_lifetime=None, max_size=None, metrics_collection=None, min_size=None, mixed_instances_policy=None, new_instances_protected_from_scale_in=None, notification_configuration=None, notification_configurations=None, placement_group=None, service_linked_role_arn=None, tags=None, target_group_arns=None, termination_policies=None, traffic_sources=None, vpc_zone_identifier=None): + def __init__(__self__, availability_zone_distribution=None, availability_zone_impairment_policy=None, availability_zones=None, capacity_rebalance=None, context=None, cooldown=None, default_instance_warmup=None, desired_capacity=None, desired_capacity_type=None, health_check_grace_period=None, health_check_type=None, instance_maintenance_policy=None, launch_configuration_name=None, launch_template=None, lifecycle_hook_specification_list=None, load_balancer_names=None, max_instance_lifetime=None, max_size=None, metrics_collection=None, min_size=None, mixed_instances_policy=None, new_instances_protected_from_scale_in=None, notification_configuration=None, notification_configurations=None, placement_group=None, service_linked_role_arn=None, tags=None, target_group_arns=None, termination_policies=None, traffic_sources=None, vpc_zone_identifier=None): if availability_zone_distribution and not isinstance(availability_zone_distribution, dict): raise TypeError("Expected argument 'availability_zone_distribution' to be a dict") pulumi.set(__self__, "availability_zone_distribution", availability_zone_distribution) + if availability_zone_impairment_policy and not isinstance(availability_zone_impairment_policy, dict): + raise TypeError("Expected argument 'availability_zone_impairment_policy' to be a dict") + pulumi.set(__self__, "availability_zone_impairment_policy", availability_zone_impairment_policy) if availability_zones and not isinstance(availability_zones, list): raise TypeError("Expected argument 'availability_zones' to be a list") pulumi.set(__self__, "availability_zones", availability_zones) @@ -125,6 +128,11 @@ def availability_zone_distribution(self) -> Optional['outputs.AutoScalingGroupAv """ return pulumi.get(self, "availability_zone_distribution") + @property + @pulumi.getter(name="availabilityZoneImpairmentPolicy") + def availability_zone_impairment_policy(self) -> Optional['outputs.AutoScalingGroupAvailabilityZoneImpairmentPolicy']: + return pulumi.get(self, "availability_zone_impairment_policy") + @property @pulumi.getter(name="availabilityZones") def availability_zones(self) -> Optional[Sequence[str]]: @@ -384,6 +392,7 @@ def __await__(self): yield self return GetAutoScalingGroupResult( availability_zone_distribution=self.availability_zone_distribution, + availability_zone_impairment_policy=self.availability_zone_impairment_policy, availability_zones=self.availability_zones, capacity_rebalance=self.capacity_rebalance, context=self.context, @@ -435,6 +444,7 @@ def get_auto_scaling_group(auto_scaling_group_name: Optional[str] = None, return AwaitableGetAutoScalingGroupResult( availability_zone_distribution=pulumi.get(__ret__, 'availability_zone_distribution'), + availability_zone_impairment_policy=pulumi.get(__ret__, 'availability_zone_impairment_policy'), availability_zones=pulumi.get(__ret__, 'availability_zones'), capacity_rebalance=pulumi.get(__ret__, 'capacity_rebalance'), context=pulumi.get(__ret__, 'context'), @@ -483,6 +493,7 @@ def get_auto_scaling_group_output(auto_scaling_group_name: Optional[pulumi.Input __ret__ = pulumi.runtime.invoke_output('aws-native:autoscaling:getAutoScalingGroup', __args__, opts=opts, typ=GetAutoScalingGroupResult) return __ret__.apply(lambda __response__: GetAutoScalingGroupResult( availability_zone_distribution=pulumi.get(__response__, 'availability_zone_distribution'), + availability_zone_impairment_policy=pulumi.get(__response__, 'availability_zone_impairment_policy'), availability_zones=pulumi.get(__response__, 'availability_zones'), capacity_rebalance=pulumi.get(__response__, 'capacity_rebalance'), context=pulumi.get(__response__, 'context'), diff --git a/sdk/python/pulumi_aws_native/autoscaling/outputs.py b/sdk/python/pulumi_aws_native/autoscaling/outputs.py index 2718fdcf0a..76c63f2200 100644 --- a/sdk/python/pulumi_aws_native/autoscaling/outputs.py +++ b/sdk/python/pulumi_aws_native/autoscaling/outputs.py @@ -20,7 +20,10 @@ 'AutoScalingGroupAcceleratorCountRequest', 'AutoScalingGroupAcceleratorTotalMemoryMiBRequest', 'AutoScalingGroupAvailabilityZoneDistribution', + 'AutoScalingGroupAvailabilityZoneImpairmentPolicy', 'AutoScalingGroupBaselineEbsBandwidthMbpsRequest', + 'AutoScalingGroupBaselinePerformanceFactorsRequest', + 'AutoScalingGroupCpuPerformanceFactorRequest', 'AutoScalingGroupInstanceMaintenancePolicy', 'AutoScalingGroupInstanceRequirements', 'AutoScalingGroupInstancesDistribution', @@ -35,6 +38,7 @@ 'AutoScalingGroupNetworkBandwidthGbpsRequest', 'AutoScalingGroupNetworkInterfaceCountRequest', 'AutoScalingGroupNotificationConfiguration', + 'AutoScalingGroupPerformanceFactorReferenceRequest', 'AutoScalingGroupTagProperty', 'AutoScalingGroupTotalLocalStorageGbRequest', 'AutoScalingGroupTrafficSourceIdentifier', @@ -175,6 +179,44 @@ def capacity_distribution_strategy(self) -> Optional['AutoScalingGroupAvailabili return pulumi.get(self, "capacity_distribution_strategy") +@pulumi.output_type +class AutoScalingGroupAvailabilityZoneImpairmentPolicy(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "impairedZoneHealthCheckBehavior": + suggest = "impaired_zone_health_check_behavior" + elif key == "zonalShiftEnabled": + suggest = "zonal_shift_enabled" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AutoScalingGroupAvailabilityZoneImpairmentPolicy. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AutoScalingGroupAvailabilityZoneImpairmentPolicy.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AutoScalingGroupAvailabilityZoneImpairmentPolicy.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + impaired_zone_health_check_behavior: 'AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior', + zonal_shift_enabled: bool): + pulumi.set(__self__, "impaired_zone_health_check_behavior", impaired_zone_health_check_behavior) + pulumi.set(__self__, "zonal_shift_enabled", zonal_shift_enabled) + + @property + @pulumi.getter(name="impairedZoneHealthCheckBehavior") + def impaired_zone_health_check_behavior(self) -> 'AutoScalingGroupAvailabilityZoneImpairmentPolicyImpairedZoneHealthCheckBehavior': + return pulumi.get(self, "impaired_zone_health_check_behavior") + + @property + @pulumi.getter(name="zonalShiftEnabled") + def zonal_shift_enabled(self) -> bool: + return pulumi.get(self, "zonal_shift_enabled") + + @pulumi.output_type class AutoScalingGroupBaselineEbsBandwidthMbpsRequest(dict): """ @@ -210,6 +252,32 @@ def min(self) -> Optional[int]: return pulumi.get(self, "min") +@pulumi.output_type +class AutoScalingGroupBaselinePerformanceFactorsRequest(dict): + def __init__(__self__, *, + cpu: Optional['outputs.AutoScalingGroupCpuPerformanceFactorRequest'] = None): + if cpu is not None: + pulumi.set(__self__, "cpu", cpu) + + @property + @pulumi.getter + def cpu(self) -> Optional['outputs.AutoScalingGroupCpuPerformanceFactorRequest']: + return pulumi.get(self, "cpu") + + +@pulumi.output_type +class AutoScalingGroupCpuPerformanceFactorRequest(dict): + def __init__(__self__, *, + references: Optional[Sequence['outputs.AutoScalingGroupPerformanceFactorReferenceRequest']] = None): + if references is not None: + pulumi.set(__self__, "references", references) + + @property + @pulumi.getter + def references(self) -> Optional[Sequence['outputs.AutoScalingGroupPerformanceFactorReferenceRequest']]: + return pulumi.get(self, "references") + + @pulumi.output_type class AutoScalingGroupInstanceMaintenancePolicy(dict): """ @@ -305,6 +373,8 @@ def __key_warning(key: str): suggest = "bare_metal" elif key == "baselineEbsBandwidthMbps": suggest = "baseline_ebs_bandwidth_mbps" + elif key == "baselinePerformanceFactors": + suggest = "baseline_performance_factors" elif key == "burstablePerformance": suggest = "burstable_performance" elif key == "cpuManufacturers": @@ -356,6 +426,7 @@ def __init__(__self__, *, allowed_instance_types: Optional[Sequence[str]] = None, bare_metal: Optional[str] = None, baseline_ebs_bandwidth_mbps: Optional['outputs.AutoScalingGroupBaselineEbsBandwidthMbpsRequest'] = None, + baseline_performance_factors: Optional['outputs.AutoScalingGroupBaselinePerformanceFactorsRequest'] = None, burstable_performance: Optional[str] = None, cpu_manufacturers: Optional[Sequence[str]] = None, excluded_instance_types: Optional[Sequence[str]] = None, @@ -487,6 +558,8 @@ def __init__(__self__, *, pulumi.set(__self__, "bare_metal", bare_metal) if baseline_ebs_bandwidth_mbps is not None: pulumi.set(__self__, "baseline_ebs_bandwidth_mbps", baseline_ebs_bandwidth_mbps) + if baseline_performance_factors is not None: + pulumi.set(__self__, "baseline_performance_factors", baseline_performance_factors) if burstable_performance is not None: pulumi.set(__self__, "burstable_performance", burstable_performance) if cpu_manufacturers is not None: @@ -625,6 +698,11 @@ def baseline_ebs_bandwidth_mbps(self) -> Optional['outputs.AutoScalingGroupBasel """ return pulumi.get(self, "baseline_ebs_bandwidth_mbps") + @property + @pulumi.getter(name="baselinePerformanceFactors") + def baseline_performance_factors(self) -> Optional['outputs.AutoScalingGroupBaselinePerformanceFactorsRequest']: + return pulumi.get(self, "baseline_performance_factors") + @property @pulumi.getter(name="burstablePerformance") def burstable_performance(self) -> Optional[str]: @@ -1652,6 +1730,36 @@ def notification_types(self) -> Optional[Sequence[str]]: return pulumi.get(self, "notification_types") +@pulumi.output_type +class AutoScalingGroupPerformanceFactorReferenceRequest(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "instanceFamily": + suggest = "instance_family" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AutoScalingGroupPerformanceFactorReferenceRequest. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AutoScalingGroupPerformanceFactorReferenceRequest.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AutoScalingGroupPerformanceFactorReferenceRequest.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + instance_family: Optional[str] = None): + if instance_family is not None: + pulumi.set(__self__, "instance_family", instance_family) + + @property + @pulumi.getter(name="instanceFamily") + def instance_family(self) -> Optional[str]: + return pulumi.get(self, "instance_family") + + @pulumi.output_type class AutoScalingGroupTagProperty(dict): """ diff --git a/sdk/python/pulumi_aws_native/batch/_inputs.py b/sdk/python/pulumi_aws_native/batch/_inputs.py index 8218d22a53..444845b17e 100644 --- a/sdk/python/pulumi_aws_native/batch/_inputs.py +++ b/sdk/python/pulumi_aws_native/batch/_inputs.py @@ -885,9 +885,42 @@ def kubernetes_namespace(self, value: pulumi.Input[str]): if not MYPY: class ComputeEnvironmentLaunchTemplateSpecificationOverrideArgsDict(TypedDict): launch_template_id: NotRequired[pulumi.Input[str]] + """ + The ID of the launch template. + + *Note:* If you specify the `launchTemplateId` you can't specify the `launchTemplateName` as well. + """ launch_template_name: NotRequired[pulumi.Input[str]] + """ + The name of the launch template. + + *Note:* If you specify the `launchTemplateName` you can't specify the `launchTemplateId` as well. + """ target_instance_types: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + The instance type or family that this this override launch template should be applied to. + + This parameter is required when defining a launch template override. + + Information included in this parameter must meet the following requirements: + + - Must be a valid Amazon EC2 instance type or family. + - `optimal` isn't allowed. + - `targetInstanceTypes` can target only instance types and families that are included within the [`ComputeResource.instanceTypes`](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes) set. `targetInstanceTypes` doesn't need to include all of the instances from the `instanceType` set, but at least a subset. For example, if `ComputeResource.instanceTypes` includes `[m5, g5]` , `targetInstanceTypes` can include `[m5.2xlarge]` and `[m5.large]` but not `[c5.large]` . + - `targetInstanceTypes` included within the same launch template override or across launch template overrides can't overlap for the same compute environment. For example, you can't define one launch template override to target an instance family and another define an instance type within this same family. + """ version: NotRequired[pulumi.Input[str]] + """ + The version number of the launch template, `$Default` , or `$Latest` . + + If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. + + > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + + Default: `$Default` + + Latest: `$Latest` + """ elif False: ComputeEnvironmentLaunchTemplateSpecificationOverrideArgsDict: TypeAlias = Mapping[str, Any] @@ -898,6 +931,33 @@ def __init__(__self__, *, launch_template_name: Optional[pulumi.Input[str]] = None, target_instance_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, version: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] launch_template_id: The ID of the launch template. + + *Note:* If you specify the `launchTemplateId` you can't specify the `launchTemplateName` as well. + :param pulumi.Input[str] launch_template_name: The name of the launch template. + + *Note:* If you specify the `launchTemplateName` you can't specify the `launchTemplateId` as well. + :param pulumi.Input[Sequence[pulumi.Input[str]]] target_instance_types: The instance type or family that this this override launch template should be applied to. + + This parameter is required when defining a launch template override. + + Information included in this parameter must meet the following requirements: + + - Must be a valid Amazon EC2 instance type or family. + - `optimal` isn't allowed. + - `targetInstanceTypes` can target only instance types and families that are included within the [`ComputeResource.instanceTypes`](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes) set. `targetInstanceTypes` doesn't need to include all of the instances from the `instanceType` set, but at least a subset. For example, if `ComputeResource.instanceTypes` includes `[m5, g5]` , `targetInstanceTypes` can include `[m5.2xlarge]` and `[m5.large]` but not `[c5.large]` . + - `targetInstanceTypes` included within the same launch template override or across launch template overrides can't overlap for the same compute environment. For example, you can't define one launch template override to target an instance family and another define an instance type within this same family. + :param pulumi.Input[str] version: The version number of the launch template, `$Default` , or `$Latest` . + + If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. + + > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + + Default: `$Default` + + Latest: `$Latest` + """ if launch_template_id is not None: pulumi.set(__self__, "launch_template_id", launch_template_id) if launch_template_name is not None: @@ -910,6 +970,11 @@ def __init__(__self__, *, @property @pulumi.getter(name="launchTemplateId") def launch_template_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the launch template. + + *Note:* If you specify the `launchTemplateId` you can't specify the `launchTemplateName` as well. + """ return pulumi.get(self, "launch_template_id") @launch_template_id.setter @@ -919,6 +984,11 @@ def launch_template_id(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="launchTemplateName") def launch_template_name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the launch template. + + *Note:* If you specify the `launchTemplateName` you can't specify the `launchTemplateId` as well. + """ return pulumi.get(self, "launch_template_name") @launch_template_name.setter @@ -928,6 +998,18 @@ def launch_template_name(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="targetInstanceTypes") def target_instance_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The instance type or family that this this override launch template should be applied to. + + This parameter is required when defining a launch template override. + + Information included in this parameter must meet the following requirements: + + - Must be a valid Amazon EC2 instance type or family. + - `optimal` isn't allowed. + - `targetInstanceTypes` can target only instance types and families that are included within the [`ComputeResource.instanceTypes`](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes) set. `targetInstanceTypes` doesn't need to include all of the instances from the `instanceType` set, but at least a subset. For example, if `ComputeResource.instanceTypes` includes `[m5, g5]` , `targetInstanceTypes` can include `[m5.2xlarge]` and `[m5.large]` but not `[c5.large]` . + - `targetInstanceTypes` included within the same launch template override or across launch template overrides can't overlap for the same compute environment. For example, you can't define one launch template override to target an instance family and another define an instance type within this same family. + """ return pulumi.get(self, "target_instance_types") @target_instance_types.setter @@ -937,6 +1019,17 @@ def target_instance_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Inp @property @pulumi.getter def version(self) -> Optional[pulumi.Input[str]]: + """ + The version number of the launch template, `$Default` , or `$Latest` . + + If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. + + > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + + Default: `$Default` + + Latest: `$Latest` + """ return pulumi.get(self, "version") @version.setter @@ -955,15 +1048,24 @@ class ComputeEnvironmentLaunchTemplateSpecificationArgsDict(TypedDict): The name of the launch template. """ overrides: NotRequired[pulumi.Input[Sequence[pulumi.Input['ComputeEnvironmentLaunchTemplateSpecificationOverrideArgsDict']]]] + """ + A launch template to use in place of the default launch template. You must specify either the launch template ID or launch template name in the request, but not both. + + You can specify up to ten (10) launch template overrides that are associated to unique instance types or families for each compute environment. + + > To unset all override templates for a compute environment, you can pass an empty array to the [UpdateComputeEnvironment.overrides](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) parameter, or not include the `overrides` parameter when submitting the `UpdateComputeEnvironment` API operation. + """ version: NotRequired[pulumi.Input[str]] """ - The version number of the launch template, `$Latest` , or `$Default` . + The version number of the launch template, `$Default` , or `$Latest` . + + If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. - If the value is `$Latest` , the latest version of the launch template is used. If the value is `$Default` , the default version of the launch template is used. + > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . - > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Latest` or `$Default` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + Default: `$Default` - Default: `$Default` . + Latest: `$Latest` """ elif False: ComputeEnvironmentLaunchTemplateSpecificationArgsDict: TypeAlias = Mapping[str, Any] @@ -978,13 +1080,20 @@ def __init__(__self__, *, """ :param pulumi.Input[str] launch_template_id: The ID of the launch template. :param pulumi.Input[str] launch_template_name: The name of the launch template. - :param pulumi.Input[str] version: The version number of the launch template, `$Latest` , or `$Default` . + :param pulumi.Input[Sequence[pulumi.Input['ComputeEnvironmentLaunchTemplateSpecificationOverrideArgs']]] overrides: A launch template to use in place of the default launch template. You must specify either the launch template ID or launch template name in the request, but not both. - If the value is `$Latest` , the latest version of the launch template is used. If the value is `$Default` , the default version of the launch template is used. + You can specify up to ten (10) launch template overrides that are associated to unique instance types or families for each compute environment. - > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Latest` or `$Default` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + > To unset all override templates for a compute environment, you can pass an empty array to the [UpdateComputeEnvironment.overrides](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) parameter, or not include the `overrides` parameter when submitting the `UpdateComputeEnvironment` API operation. + :param pulumi.Input[str] version: The version number of the launch template, `$Default` , or `$Latest` . - Default: `$Default` . + If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. + + > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + + Default: `$Default` + + Latest: `$Latest` """ if launch_template_id is not None: pulumi.set(__self__, "launch_template_id", launch_template_id) @@ -1022,6 +1131,13 @@ def launch_template_name(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter def overrides(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ComputeEnvironmentLaunchTemplateSpecificationOverrideArgs']]]]: + """ + A launch template to use in place of the default launch template. You must specify either the launch template ID or launch template name in the request, but not both. + + You can specify up to ten (10) launch template overrides that are associated to unique instance types or families for each compute environment. + + > To unset all override templates for a compute environment, you can pass an empty array to the [UpdateComputeEnvironment.overrides](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) parameter, or not include the `overrides` parameter when submitting the `UpdateComputeEnvironment` API operation. + """ return pulumi.get(self, "overrides") @overrides.setter @@ -1032,13 +1148,15 @@ def overrides(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ComputeE @pulumi.getter def version(self) -> Optional[pulumi.Input[str]]: """ - The version number of the launch template, `$Latest` , or `$Default` . + The version number of the launch template, `$Default` , or `$Latest` . + + If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. - If the value is `$Latest` , the latest version of the launch template is used. If the value is `$Default` , the default version of the launch template is used. + > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . - > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Latest` or `$Default` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + Default: `$Default` - Default: `$Default` . + Latest: `$Latest` """ return pulumi.get(self, "version") diff --git a/sdk/python/pulumi_aws_native/batch/outputs.py b/sdk/python/pulumi_aws_native/batch/outputs.py index 19e2e1580f..69a4053880 100644 --- a/sdk/python/pulumi_aws_native/batch/outputs.py +++ b/sdk/python/pulumi_aws_native/batch/outputs.py @@ -655,13 +655,20 @@ def __init__(__self__, *, """ :param str launch_template_id: The ID of the launch template. :param str launch_template_name: The name of the launch template. - :param str version: The version number of the launch template, `$Latest` , or `$Default` . + :param Sequence['ComputeEnvironmentLaunchTemplateSpecificationOverride'] overrides: A launch template to use in place of the default launch template. You must specify either the launch template ID or launch template name in the request, but not both. - If the value is `$Latest` , the latest version of the launch template is used. If the value is `$Default` , the default version of the launch template is used. + You can specify up to ten (10) launch template overrides that are associated to unique instance types or families for each compute environment. - > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Latest` or `$Default` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + > To unset all override templates for a compute environment, you can pass an empty array to the [UpdateComputeEnvironment.overrides](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) parameter, or not include the `overrides` parameter when submitting the `UpdateComputeEnvironment` API operation. + :param str version: The version number of the launch template, `$Default` , or `$Latest` . - Default: `$Default` . + If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. + + > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + + Default: `$Default` + + Latest: `$Latest` """ if launch_template_id is not None: pulumi.set(__self__, "launch_template_id", launch_template_id) @@ -691,19 +698,28 @@ def launch_template_name(self) -> Optional[str]: @property @pulumi.getter def overrides(self) -> Optional[Sequence['outputs.ComputeEnvironmentLaunchTemplateSpecificationOverride']]: + """ + A launch template to use in place of the default launch template. You must specify either the launch template ID or launch template name in the request, but not both. + + You can specify up to ten (10) launch template overrides that are associated to unique instance types or families for each compute environment. + + > To unset all override templates for a compute environment, you can pass an empty array to the [UpdateComputeEnvironment.overrides](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) parameter, or not include the `overrides` parameter when submitting the `UpdateComputeEnvironment` API operation. + """ return pulumi.get(self, "overrides") @property @pulumi.getter def version(self) -> Optional[str]: """ - The version number of the launch template, `$Latest` , or `$Default` . + The version number of the launch template, `$Default` , or `$Latest` . + + If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. - If the value is `$Latest` , the latest version of the launch template is used. If the value is `$Default` , the default version of the launch template is used. + > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . - > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Latest` or `$Default` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + Default: `$Default` - Default: `$Default` . + Latest: `$Latest` """ return pulumi.get(self, "version") @@ -736,6 +752,33 @@ def __init__(__self__, *, launch_template_name: Optional[str] = None, target_instance_types: Optional[Sequence[str]] = None, version: Optional[str] = None): + """ + :param str launch_template_id: The ID of the launch template. + + *Note:* If you specify the `launchTemplateId` you can't specify the `launchTemplateName` as well. + :param str launch_template_name: The name of the launch template. + + *Note:* If you specify the `launchTemplateName` you can't specify the `launchTemplateId` as well. + :param Sequence[str] target_instance_types: The instance type or family that this this override launch template should be applied to. + + This parameter is required when defining a launch template override. + + Information included in this parameter must meet the following requirements: + + - Must be a valid Amazon EC2 instance type or family. + - `optimal` isn't allowed. + - `targetInstanceTypes` can target only instance types and families that are included within the [`ComputeResource.instanceTypes`](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes) set. `targetInstanceTypes` doesn't need to include all of the instances from the `instanceType` set, but at least a subset. For example, if `ComputeResource.instanceTypes` includes `[m5, g5]` , `targetInstanceTypes` can include `[m5.2xlarge]` and `[m5.large]` but not `[c5.large]` . + - `targetInstanceTypes` included within the same launch template override or across launch template overrides can't overlap for the same compute environment. For example, you can't define one launch template override to target an instance family and another define an instance type within this same family. + :param str version: The version number of the launch template, `$Default` , or `$Latest` . + + If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. + + > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + + Default: `$Default` + + Latest: `$Latest` + """ if launch_template_id is not None: pulumi.set(__self__, "launch_template_id", launch_template_id) if launch_template_name is not None: @@ -748,21 +791,54 @@ def __init__(__self__, *, @property @pulumi.getter(name="launchTemplateId") def launch_template_id(self) -> Optional[str]: + """ + The ID of the launch template. + + *Note:* If you specify the `launchTemplateId` you can't specify the `launchTemplateName` as well. + """ return pulumi.get(self, "launch_template_id") @property @pulumi.getter(name="launchTemplateName") def launch_template_name(self) -> Optional[str]: + """ + The name of the launch template. + + *Note:* If you specify the `launchTemplateName` you can't specify the `launchTemplateId` as well. + """ return pulumi.get(self, "launch_template_name") @property @pulumi.getter(name="targetInstanceTypes") def target_instance_types(self) -> Optional[Sequence[str]]: + """ + The instance type or family that this this override launch template should be applied to. + + This parameter is required when defining a launch template override. + + Information included in this parameter must meet the following requirements: + + - Must be a valid Amazon EC2 instance type or family. + - `optimal` isn't allowed. + - `targetInstanceTypes` can target only instance types and families that are included within the [`ComputeResource.instanceTypes`](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes) set. `targetInstanceTypes` doesn't need to include all of the instances from the `instanceType` set, but at least a subset. For example, if `ComputeResource.instanceTypes` includes `[m5, g5]` , `targetInstanceTypes` can include `[m5.2xlarge]` and `[m5.large]` but not `[c5.large]` . + - `targetInstanceTypes` included within the same launch template override or across launch template overrides can't overlap for the same compute environment. For example, you can't define one launch template override to target an instance family and another define an instance type within this same family. + """ return pulumi.get(self, "target_instance_types") @property @pulumi.getter def version(self) -> Optional[str]: + """ + The version number of the launch template, `$Default` , or `$Latest` . + + If the value is `$Default` , the default version of the launch template is used. If the value is `$Latest` , the latest version of the launch template is used. + + > If the AMI ID that's used in a compute environment is from the launch template, the AMI isn't changed when the compute environment is updated. It's only changed if the `updateToLatestImageVersion` parameter for the compute environment is set to `true` . During an infrastructure update, if either `$Default` or `$Latest` is specified, AWS Batch re-evaluates the launch template version, and it might use a different version of the launch template. This is the case even if the launch template isn't specified in the update. When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see [Updating compute environments](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) in the *AWS Batch User Guide* . + + Default: `$Default` + + Latest: `$Latest` + """ return pulumi.get(self, "version") diff --git a/sdk/python/pulumi_aws_native/cloudformation/get_type_activation.py b/sdk/python/pulumi_aws_native/cloudformation/get_type_activation.py index 662aa3c412..5482594a73 100644 --- a/sdk/python/pulumi_aws_native/cloudformation/get_type_activation.py +++ b/sdk/python/pulumi_aws_native/cloudformation/get_type_activation.py @@ -13,6 +13,7 @@ else: from typing_extensions import NotRequired, TypedDict, TypeAlias from .. import _utilities +from ._enums import * __all__ = [ 'GetTypeActivationResult', @@ -23,22 +24,19 @@ @pulumi.output_type class GetTypeActivationResult: - def __init__(__self__, arn=None, public_type_arn=None, publisher_id=None, type_name=None, type_name_alias=None): + def __init__(__self__, arn=None, auto_update=None, major_version=None, version_bump=None): if arn and not isinstance(arn, str): raise TypeError("Expected argument 'arn' to be a str") pulumi.set(__self__, "arn", arn) - if public_type_arn and not isinstance(public_type_arn, str): - raise TypeError("Expected argument 'public_type_arn' to be a str") - pulumi.set(__self__, "public_type_arn", public_type_arn) - if publisher_id and not isinstance(publisher_id, str): - raise TypeError("Expected argument 'publisher_id' to be a str") - pulumi.set(__self__, "publisher_id", publisher_id) - if type_name and not isinstance(type_name, str): - raise TypeError("Expected argument 'type_name' to be a str") - pulumi.set(__self__, "type_name", type_name) - if type_name_alias and not isinstance(type_name_alias, str): - raise TypeError("Expected argument 'type_name_alias' to be a str") - pulumi.set(__self__, "type_name_alias", type_name_alias) + if auto_update and not isinstance(auto_update, bool): + raise TypeError("Expected argument 'auto_update' to be a bool") + pulumi.set(__self__, "auto_update", auto_update) + if major_version and not isinstance(major_version, str): + raise TypeError("Expected argument 'major_version' to be a str") + pulumi.set(__self__, "major_version", major_version) + if version_bump and not isinstance(version_bump, str): + raise TypeError("Expected argument 'version_bump' to be a str") + pulumi.set(__self__, "version_bump", version_bump) @property @pulumi.getter @@ -49,38 +47,28 @@ def arn(self) -> Optional[str]: return pulumi.get(self, "arn") @property - @pulumi.getter(name="publicTypeArn") - def public_type_arn(self) -> Optional[str]: + @pulumi.getter(name="autoUpdate") + def auto_update(self) -> Optional[bool]: """ - The Amazon Resource Number (ARN) assigned to the public extension upon publication + Whether to automatically update the extension in this account and region when a new minor version is published by the extension publisher. Major versions released by the publisher must be manually updated. """ - return pulumi.get(self, "public_type_arn") + return pulumi.get(self, "auto_update") @property - @pulumi.getter(name="publisherId") - def publisher_id(self) -> Optional[str]: + @pulumi.getter(name="majorVersion") + def major_version(self) -> Optional[str]: """ - The publisher id assigned by CloudFormation for publishing in this region. + The Major Version of the type you want to enable """ - return pulumi.get(self, "publisher_id") + return pulumi.get(self, "major_version") @property - @pulumi.getter(name="typeName") - def type_name(self) -> Optional[str]: + @pulumi.getter(name="versionBump") + def version_bump(self) -> Optional['TypeActivationVersionBump']: """ - The name of the type being registered. - - We recommend that type names adhere to the following pattern: company_or_organization::service::type. - """ - return pulumi.get(self, "type_name") - - @property - @pulumi.getter(name="typeNameAlias") - def type_name_alias(self) -> Optional[str]: - """ - An alias to assign to the public extension in this account and region. If you specify an alias for the extension, you must then use the alias to refer to the extension in your templates. + Manually updates a previously-enabled type to a new major or minor version, if available. You can also use this parameter to update the value of AutoUpdateEnabled """ - return pulumi.get(self, "type_name_alias") + return pulumi.get(self, "version_bump") class AwaitableGetTypeActivationResult(GetTypeActivationResult): @@ -90,10 +78,9 @@ def __await__(self): yield self return GetTypeActivationResult( arn=self.arn, - public_type_arn=self.public_type_arn, - publisher_id=self.publisher_id, - type_name=self.type_name, - type_name_alias=self.type_name_alias) + auto_update=self.auto_update, + major_version=self.major_version, + version_bump=self.version_bump) def get_type_activation(arn: Optional[str] = None, @@ -111,10 +98,9 @@ def get_type_activation(arn: Optional[str] = None, return AwaitableGetTypeActivationResult( arn=pulumi.get(__ret__, 'arn'), - public_type_arn=pulumi.get(__ret__, 'public_type_arn'), - publisher_id=pulumi.get(__ret__, 'publisher_id'), - type_name=pulumi.get(__ret__, 'type_name'), - type_name_alias=pulumi.get(__ret__, 'type_name_alias')) + auto_update=pulumi.get(__ret__, 'auto_update'), + major_version=pulumi.get(__ret__, 'major_version'), + version_bump=pulumi.get(__ret__, 'version_bump')) def get_type_activation_output(arn: Optional[pulumi.Input[str]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetTypeActivationResult]: """ @@ -129,7 +115,6 @@ def get_type_activation_output(arn: Optional[pulumi.Input[str]] = None, __ret__ = pulumi.runtime.invoke_output('aws-native:cloudformation:getTypeActivation', __args__, opts=opts, typ=GetTypeActivationResult) return __ret__.apply(lambda __response__: GetTypeActivationResult( arn=pulumi.get(__response__, 'arn'), - public_type_arn=pulumi.get(__response__, 'public_type_arn'), - publisher_id=pulumi.get(__response__, 'publisher_id'), - type_name=pulumi.get(__response__, 'type_name'), - type_name_alias=pulumi.get(__response__, 'type_name_alias'))) + auto_update=pulumi.get(__response__, 'auto_update'), + major_version=pulumi.get(__response__, 'major_version'), + version_bump=pulumi.get(__response__, 'version_bump'))) diff --git a/sdk/python/pulumi_aws_native/cloudformation/type_activation.py b/sdk/python/pulumi_aws_native/cloudformation/type_activation.py index d99bc32f0e..9436dd121e 100644 --- a/sdk/python/pulumi_aws_native/cloudformation/type_activation.py +++ b/sdk/python/pulumi_aws_native/cloudformation/type_activation.py @@ -279,7 +279,7 @@ def _internal_init(__self__, __props__.__dict__["type_name_alias"] = type_name_alias __props__.__dict__["version_bump"] = version_bump __props__.__dict__["arn"] = None - replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["loggingConfig"]) + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["executionRoleArn", "loggingConfig", "publicTypeArn", "publisherId", "type", "typeName", "typeNameAlias"]) opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) super(TypeActivation, __self__).__init__( 'aws-native:cloudformation:TypeActivation', diff --git a/sdk/python/pulumi_aws_native/connectcampaignsv2/__init__.py b/sdk/python/pulumi_aws_native/connectcampaignsv2/__init__.py new file mode 100644 index 0000000000..e7c32ecd0c --- /dev/null +++ b/sdk/python/pulumi_aws_native/connectcampaignsv2/__init__.py @@ -0,0 +1,12 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +from .. import _utilities +import typing +# Export this package's modules as members: +from ._enums import * +from .campaign import * +from .get_campaign import * +from ._inputs import * +from . import outputs diff --git a/sdk/python/pulumi_aws_native/connectcampaignsv2/_enums.py b/sdk/python/pulumi_aws_native/connectcampaignsv2/_enums.py new file mode 100644 index 0000000000..7a28d2006e --- /dev/null +++ b/sdk/python/pulumi_aws_native/connectcampaignsv2/_enums.py @@ -0,0 +1,39 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +from enum import Enum + +__all__ = [ + 'CampaignCommunicationLimitTimeUnit', + 'CampaignDayOfWeek', + 'CampaignLocalTimeZoneDetectionType', +] + + +class CampaignCommunicationLimitTimeUnit(str, Enum): + """ + The communication limit time unit + """ + DAY = "DAY" + + +class CampaignDayOfWeek(str, Enum): + """ + Day of week + """ + MONDAY = "MONDAY" + TUESDAY = "TUESDAY" + WEDNESDAY = "WEDNESDAY" + THURSDAY = "THURSDAY" + FRIDAY = "FRIDAY" + SATURDAY = "SATURDAY" + SUNDAY = "SUNDAY" + + +class CampaignLocalTimeZoneDetectionType(str, Enum): + """ + Local TimeZone Detection method + """ + ZIP_CODE = "ZIP_CODE" + AREA_CODE = "AREA_CODE" diff --git a/sdk/python/pulumi_aws_native/connectcampaignsv2/_inputs.py b/sdk/python/pulumi_aws_native/connectcampaignsv2/_inputs.py new file mode 100644 index 0000000000..95e3dd5750 --- /dev/null +++ b/sdk/python/pulumi_aws_native/connectcampaignsv2/_inputs.py @@ -0,0 +1,1233 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from ._enums import * + +__all__ = [ + 'CampaignAgentlessConfigArgs', + 'CampaignAgentlessConfigArgsDict', + 'CampaignAnswerMachineDetectionConfigArgs', + 'CampaignAnswerMachineDetectionConfigArgsDict', + 'CampaignChannelSubtypeConfigArgs', + 'CampaignChannelSubtypeConfigArgsDict', + 'CampaignCommunicationLimitsConfigArgs', + 'CampaignCommunicationLimitsConfigArgsDict', + 'CampaignCommunicationLimitsArgs', + 'CampaignCommunicationLimitsArgsDict', + 'CampaignCommunicationLimitArgs', + 'CampaignCommunicationLimitArgsDict', + 'CampaignCommunicationTimeConfigArgs', + 'CampaignCommunicationTimeConfigArgsDict', + 'CampaignDailyHourArgs', + 'CampaignDailyHourArgsDict', + 'CampaignEmailChannelSubtypeConfigArgs', + 'CampaignEmailChannelSubtypeConfigArgsDict', + 'CampaignEmailOutboundConfigArgs', + 'CampaignEmailOutboundConfigArgsDict', + 'CampaignEmailOutboundModeArgs', + 'CampaignEmailOutboundModeArgsDict', + 'CampaignLocalTimeZoneConfigArgs', + 'CampaignLocalTimeZoneConfigArgsDict', + 'CampaignOpenHoursArgs', + 'CampaignOpenHoursArgsDict', + 'CampaignPredictiveConfigArgs', + 'CampaignPredictiveConfigArgsDict', + 'CampaignProgressiveConfigArgs', + 'CampaignProgressiveConfigArgsDict', + 'CampaignRestrictedPeriodsArgs', + 'CampaignRestrictedPeriodsArgsDict', + 'CampaignRestrictedPeriodArgs', + 'CampaignRestrictedPeriodArgsDict', + 'CampaignScheduleArgs', + 'CampaignScheduleArgsDict', + 'CampaignSmsChannelSubtypeConfigArgs', + 'CampaignSmsChannelSubtypeConfigArgsDict', + 'CampaignSmsOutboundConfigArgs', + 'CampaignSmsOutboundConfigArgsDict', + 'CampaignSmsOutboundModeArgs', + 'CampaignSmsOutboundModeArgsDict', + 'CampaignSourceArgs', + 'CampaignSourceArgsDict', + 'CampaignTelephonyChannelSubtypeConfigArgs', + 'CampaignTelephonyChannelSubtypeConfigArgsDict', + 'CampaignTelephonyOutboundConfigArgs', + 'CampaignTelephonyOutboundConfigArgsDict', + 'CampaignTelephonyOutboundModeArgs', + 'CampaignTelephonyOutboundModeArgsDict', + 'CampaignTimeRangeArgs', + 'CampaignTimeRangeArgsDict', + 'CampaignTimeWindowArgs', + 'CampaignTimeWindowArgsDict', +] + +MYPY = False + +if not MYPY: + class CampaignAgentlessConfigArgsDict(TypedDict): + """ + Agentless config + """ + pass +elif False: + CampaignAgentlessConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignAgentlessConfigArgs: + def __init__(__self__): + """ + Agentless config + """ + pass + + +if not MYPY: + class CampaignAnswerMachineDetectionConfigArgsDict(TypedDict): + """ + The configuration used for answering machine detection during outbound calls + """ + enable_answer_machine_detection: pulumi.Input[bool] + """ + Flag to decided whether outbound calls should have answering machine detection enabled or not + """ + await_answer_machine_prompt: NotRequired[pulumi.Input[bool]] + """ + Enables detection of prompts (e.g., beep after after a voicemail greeting) + """ +elif False: + CampaignAnswerMachineDetectionConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignAnswerMachineDetectionConfigArgs: + def __init__(__self__, *, + enable_answer_machine_detection: pulumi.Input[bool], + await_answer_machine_prompt: Optional[pulumi.Input[bool]] = None): + """ + The configuration used for answering machine detection during outbound calls + :param pulumi.Input[bool] enable_answer_machine_detection: Flag to decided whether outbound calls should have answering machine detection enabled or not + :param pulumi.Input[bool] await_answer_machine_prompt: Enables detection of prompts (e.g., beep after after a voicemail greeting) + """ + pulumi.set(__self__, "enable_answer_machine_detection", enable_answer_machine_detection) + if await_answer_machine_prompt is not None: + pulumi.set(__self__, "await_answer_machine_prompt", await_answer_machine_prompt) + + @property + @pulumi.getter(name="enableAnswerMachineDetection") + def enable_answer_machine_detection(self) -> pulumi.Input[bool]: + """ + Flag to decided whether outbound calls should have answering machine detection enabled or not + """ + return pulumi.get(self, "enable_answer_machine_detection") + + @enable_answer_machine_detection.setter + def enable_answer_machine_detection(self, value: pulumi.Input[bool]): + pulumi.set(self, "enable_answer_machine_detection", value) + + @property + @pulumi.getter(name="awaitAnswerMachinePrompt") + def await_answer_machine_prompt(self) -> Optional[pulumi.Input[bool]]: + """ + Enables detection of prompts (e.g., beep after after a voicemail greeting) + """ + return pulumi.get(self, "await_answer_machine_prompt") + + @await_answer_machine_prompt.setter + def await_answer_machine_prompt(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "await_answer_machine_prompt", value) + + +if not MYPY: + class CampaignChannelSubtypeConfigArgsDict(TypedDict): + """ + The possible types of channel subtype config parameters + """ + email: NotRequired[pulumi.Input['CampaignEmailChannelSubtypeConfigArgsDict']] + sms: NotRequired[pulumi.Input['CampaignSmsChannelSubtypeConfigArgsDict']] + telephony: NotRequired[pulumi.Input['CampaignTelephonyChannelSubtypeConfigArgsDict']] +elif False: + CampaignChannelSubtypeConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignChannelSubtypeConfigArgs: + def __init__(__self__, *, + email: Optional[pulumi.Input['CampaignEmailChannelSubtypeConfigArgs']] = None, + sms: Optional[pulumi.Input['CampaignSmsChannelSubtypeConfigArgs']] = None, + telephony: Optional[pulumi.Input['CampaignTelephonyChannelSubtypeConfigArgs']] = None): + """ + The possible types of channel subtype config parameters + """ + if email is not None: + pulumi.set(__self__, "email", email) + if sms is not None: + pulumi.set(__self__, "sms", sms) + if telephony is not None: + pulumi.set(__self__, "telephony", telephony) + + @property + @pulumi.getter + def email(self) -> Optional[pulumi.Input['CampaignEmailChannelSubtypeConfigArgs']]: + return pulumi.get(self, "email") + + @email.setter + def email(self, value: Optional[pulumi.Input['CampaignEmailChannelSubtypeConfigArgs']]): + pulumi.set(self, "email", value) + + @property + @pulumi.getter + def sms(self) -> Optional[pulumi.Input['CampaignSmsChannelSubtypeConfigArgs']]: + return pulumi.get(self, "sms") + + @sms.setter + def sms(self, value: Optional[pulumi.Input['CampaignSmsChannelSubtypeConfigArgs']]): + pulumi.set(self, "sms", value) + + @property + @pulumi.getter + def telephony(self) -> Optional[pulumi.Input['CampaignTelephonyChannelSubtypeConfigArgs']]: + return pulumi.get(self, "telephony") + + @telephony.setter + def telephony(self, value: Optional[pulumi.Input['CampaignTelephonyChannelSubtypeConfigArgs']]): + pulumi.set(self, "telephony", value) + + +if not MYPY: + class CampaignCommunicationLimitsConfigArgsDict(TypedDict): + """ + Communication limits config + """ + all_channels_subtypes: NotRequired[pulumi.Input['CampaignCommunicationLimitsArgsDict']] +elif False: + CampaignCommunicationLimitsConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignCommunicationLimitsConfigArgs: + def __init__(__self__, *, + all_channels_subtypes: Optional[pulumi.Input['CampaignCommunicationLimitsArgs']] = None): + """ + Communication limits config + """ + if all_channels_subtypes is not None: + pulumi.set(__self__, "all_channels_subtypes", all_channels_subtypes) + + @property + @pulumi.getter(name="allChannelsSubtypes") + def all_channels_subtypes(self) -> Optional[pulumi.Input['CampaignCommunicationLimitsArgs']]: + return pulumi.get(self, "all_channels_subtypes") + + @all_channels_subtypes.setter + def all_channels_subtypes(self, value: Optional[pulumi.Input['CampaignCommunicationLimitsArgs']]): + pulumi.set(self, "all_channels_subtypes", value) + + +if not MYPY: + class CampaignCommunicationLimitsArgsDict(TypedDict): + """ + Communication limits + """ + communication_limit_list: NotRequired[pulumi.Input[Sequence[pulumi.Input['CampaignCommunicationLimitArgsDict']]]] +elif False: + CampaignCommunicationLimitsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignCommunicationLimitsArgs: + def __init__(__self__, *, + communication_limit_list: Optional[pulumi.Input[Sequence[pulumi.Input['CampaignCommunicationLimitArgs']]]] = None): + """ + Communication limits + """ + if communication_limit_list is not None: + pulumi.set(__self__, "communication_limit_list", communication_limit_list) + + @property + @pulumi.getter(name="communicationLimitList") + def communication_limit_list(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['CampaignCommunicationLimitArgs']]]]: + return pulumi.get(self, "communication_limit_list") + + @communication_limit_list.setter + def communication_limit_list(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['CampaignCommunicationLimitArgs']]]]): + pulumi.set(self, "communication_limit_list", value) + + +if not MYPY: + class CampaignCommunicationLimitArgsDict(TypedDict): + """ + Communication Limit + """ + frequency: pulumi.Input[int] + max_count_per_recipient: pulumi.Input[int] + unit: pulumi.Input['CampaignCommunicationLimitTimeUnit'] +elif False: + CampaignCommunicationLimitArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignCommunicationLimitArgs: + def __init__(__self__, *, + frequency: pulumi.Input[int], + max_count_per_recipient: pulumi.Input[int], + unit: pulumi.Input['CampaignCommunicationLimitTimeUnit']): + """ + Communication Limit + """ + pulumi.set(__self__, "frequency", frequency) + pulumi.set(__self__, "max_count_per_recipient", max_count_per_recipient) + pulumi.set(__self__, "unit", unit) + + @property + @pulumi.getter + def frequency(self) -> pulumi.Input[int]: + return pulumi.get(self, "frequency") + + @frequency.setter + def frequency(self, value: pulumi.Input[int]): + pulumi.set(self, "frequency", value) + + @property + @pulumi.getter(name="maxCountPerRecipient") + def max_count_per_recipient(self) -> pulumi.Input[int]: + return pulumi.get(self, "max_count_per_recipient") + + @max_count_per_recipient.setter + def max_count_per_recipient(self, value: pulumi.Input[int]): + pulumi.set(self, "max_count_per_recipient", value) + + @property + @pulumi.getter + def unit(self) -> pulumi.Input['CampaignCommunicationLimitTimeUnit']: + return pulumi.get(self, "unit") + + @unit.setter + def unit(self, value: pulumi.Input['CampaignCommunicationLimitTimeUnit']): + pulumi.set(self, "unit", value) + + +if not MYPY: + class CampaignCommunicationTimeConfigArgsDict(TypedDict): + """ + Campaign communication time config + """ + local_time_zone_config: pulumi.Input['CampaignLocalTimeZoneConfigArgsDict'] + email: NotRequired[pulumi.Input['CampaignTimeWindowArgsDict']] + sms: NotRequired[pulumi.Input['CampaignTimeWindowArgsDict']] + telephony: NotRequired[pulumi.Input['CampaignTimeWindowArgsDict']] +elif False: + CampaignCommunicationTimeConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignCommunicationTimeConfigArgs: + def __init__(__self__, *, + local_time_zone_config: pulumi.Input['CampaignLocalTimeZoneConfigArgs'], + email: Optional[pulumi.Input['CampaignTimeWindowArgs']] = None, + sms: Optional[pulumi.Input['CampaignTimeWindowArgs']] = None, + telephony: Optional[pulumi.Input['CampaignTimeWindowArgs']] = None): + """ + Campaign communication time config + """ + pulumi.set(__self__, "local_time_zone_config", local_time_zone_config) + if email is not None: + pulumi.set(__self__, "email", email) + if sms is not None: + pulumi.set(__self__, "sms", sms) + if telephony is not None: + pulumi.set(__self__, "telephony", telephony) + + @property + @pulumi.getter(name="localTimeZoneConfig") + def local_time_zone_config(self) -> pulumi.Input['CampaignLocalTimeZoneConfigArgs']: + return pulumi.get(self, "local_time_zone_config") + + @local_time_zone_config.setter + def local_time_zone_config(self, value: pulumi.Input['CampaignLocalTimeZoneConfigArgs']): + pulumi.set(self, "local_time_zone_config", value) + + @property + @pulumi.getter + def email(self) -> Optional[pulumi.Input['CampaignTimeWindowArgs']]: + return pulumi.get(self, "email") + + @email.setter + def email(self, value: Optional[pulumi.Input['CampaignTimeWindowArgs']]): + pulumi.set(self, "email", value) + + @property + @pulumi.getter + def sms(self) -> Optional[pulumi.Input['CampaignTimeWindowArgs']]: + return pulumi.get(self, "sms") + + @sms.setter + def sms(self, value: Optional[pulumi.Input['CampaignTimeWindowArgs']]): + pulumi.set(self, "sms", value) + + @property + @pulumi.getter + def telephony(self) -> Optional[pulumi.Input['CampaignTimeWindowArgs']]: + return pulumi.get(self, "telephony") + + @telephony.setter + def telephony(self, value: Optional[pulumi.Input['CampaignTimeWindowArgs']]): + pulumi.set(self, "telephony", value) + + +if not MYPY: + class CampaignDailyHourArgsDict(TypedDict): + """ + Daily Hour + """ + key: NotRequired[pulumi.Input['CampaignDayOfWeek']] + value: NotRequired[pulumi.Input[Sequence[pulumi.Input['CampaignTimeRangeArgsDict']]]] +elif False: + CampaignDailyHourArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignDailyHourArgs: + def __init__(__self__, *, + key: Optional[pulumi.Input['CampaignDayOfWeek']] = None, + value: Optional[pulumi.Input[Sequence[pulumi.Input['CampaignTimeRangeArgs']]]] = None): + """ + Daily Hour + """ + if key is not None: + pulumi.set(__self__, "key", key) + if value is not None: + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def key(self) -> Optional[pulumi.Input['CampaignDayOfWeek']]: + return pulumi.get(self, "key") + + @key.setter + def key(self, value: Optional[pulumi.Input['CampaignDayOfWeek']]): + pulumi.set(self, "key", value) + + @property + @pulumi.getter + def value(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['CampaignTimeRangeArgs']]]]: + return pulumi.get(self, "value") + + @value.setter + def value(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['CampaignTimeRangeArgs']]]]): + pulumi.set(self, "value", value) + + +if not MYPY: + class CampaignEmailChannelSubtypeConfigArgsDict(TypedDict): + """ + Email Channel Subtype config + """ + default_outbound_config: pulumi.Input['CampaignEmailOutboundConfigArgsDict'] + outbound_mode: pulumi.Input['CampaignEmailOutboundModeArgsDict'] + capacity: NotRequired[pulumi.Input[float]] +elif False: + CampaignEmailChannelSubtypeConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignEmailChannelSubtypeConfigArgs: + def __init__(__self__, *, + default_outbound_config: pulumi.Input['CampaignEmailOutboundConfigArgs'], + outbound_mode: pulumi.Input['CampaignEmailOutboundModeArgs'], + capacity: Optional[pulumi.Input[float]] = None): + """ + Email Channel Subtype config + """ + pulumi.set(__self__, "default_outbound_config", default_outbound_config) + pulumi.set(__self__, "outbound_mode", outbound_mode) + if capacity is not None: + pulumi.set(__self__, "capacity", capacity) + + @property + @pulumi.getter(name="defaultOutboundConfig") + def default_outbound_config(self) -> pulumi.Input['CampaignEmailOutboundConfigArgs']: + return pulumi.get(self, "default_outbound_config") + + @default_outbound_config.setter + def default_outbound_config(self, value: pulumi.Input['CampaignEmailOutboundConfigArgs']): + pulumi.set(self, "default_outbound_config", value) + + @property + @pulumi.getter(name="outboundMode") + def outbound_mode(self) -> pulumi.Input['CampaignEmailOutboundModeArgs']: + return pulumi.get(self, "outbound_mode") + + @outbound_mode.setter + def outbound_mode(self, value: pulumi.Input['CampaignEmailOutboundModeArgs']): + pulumi.set(self, "outbound_mode", value) + + @property + @pulumi.getter + def capacity(self) -> Optional[pulumi.Input[float]]: + return pulumi.get(self, "capacity") + + @capacity.setter + def capacity(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "capacity", value) + + +if not MYPY: + class CampaignEmailOutboundConfigArgsDict(TypedDict): + """ + Default SMS outbound config + """ + connect_source_email_address: pulumi.Input[str] + wisdom_template_arn: pulumi.Input[str] + source_email_address_display_name: NotRequired[pulumi.Input[str]] +elif False: + CampaignEmailOutboundConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignEmailOutboundConfigArgs: + def __init__(__self__, *, + connect_source_email_address: pulumi.Input[str], + wisdom_template_arn: pulumi.Input[str], + source_email_address_display_name: Optional[pulumi.Input[str]] = None): + """ + Default SMS outbound config + """ + pulumi.set(__self__, "connect_source_email_address", connect_source_email_address) + pulumi.set(__self__, "wisdom_template_arn", wisdom_template_arn) + if source_email_address_display_name is not None: + pulumi.set(__self__, "source_email_address_display_name", source_email_address_display_name) + + @property + @pulumi.getter(name="connectSourceEmailAddress") + def connect_source_email_address(self) -> pulumi.Input[str]: + return pulumi.get(self, "connect_source_email_address") + + @connect_source_email_address.setter + def connect_source_email_address(self, value: pulumi.Input[str]): + pulumi.set(self, "connect_source_email_address", value) + + @property + @pulumi.getter(name="wisdomTemplateArn") + def wisdom_template_arn(self) -> pulumi.Input[str]: + return pulumi.get(self, "wisdom_template_arn") + + @wisdom_template_arn.setter + def wisdom_template_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "wisdom_template_arn", value) + + @property + @pulumi.getter(name="sourceEmailAddressDisplayName") + def source_email_address_display_name(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "source_email_address_display_name") + + @source_email_address_display_name.setter + def source_email_address_display_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "source_email_address_display_name", value) + + +if not MYPY: + class CampaignEmailOutboundModeArgsDict(TypedDict): + """ + Email Outbound Mode + """ + agentless_config: NotRequired[pulumi.Input['CampaignAgentlessConfigArgsDict']] +elif False: + CampaignEmailOutboundModeArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignEmailOutboundModeArgs: + def __init__(__self__, *, + agentless_config: Optional[pulumi.Input['CampaignAgentlessConfigArgs']] = None): + """ + Email Outbound Mode + """ + if agentless_config is not None: + pulumi.set(__self__, "agentless_config", agentless_config) + + @property + @pulumi.getter(name="agentlessConfig") + def agentless_config(self) -> Optional[pulumi.Input['CampaignAgentlessConfigArgs']]: + return pulumi.get(self, "agentless_config") + + @agentless_config.setter + def agentless_config(self, value: Optional[pulumi.Input['CampaignAgentlessConfigArgs']]): + pulumi.set(self, "agentless_config", value) + + +if not MYPY: + class CampaignLocalTimeZoneConfigArgsDict(TypedDict): + """ + Local time zone config + """ + default_time_zone: NotRequired[pulumi.Input[str]] + local_time_zone_detection: NotRequired[pulumi.Input[Sequence[pulumi.Input['CampaignLocalTimeZoneDetectionType']]]] +elif False: + CampaignLocalTimeZoneConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignLocalTimeZoneConfigArgs: + def __init__(__self__, *, + default_time_zone: Optional[pulumi.Input[str]] = None, + local_time_zone_detection: Optional[pulumi.Input[Sequence[pulumi.Input['CampaignLocalTimeZoneDetectionType']]]] = None): + """ + Local time zone config + """ + if default_time_zone is not None: + pulumi.set(__self__, "default_time_zone", default_time_zone) + if local_time_zone_detection is not None: + pulumi.set(__self__, "local_time_zone_detection", local_time_zone_detection) + + @property + @pulumi.getter(name="defaultTimeZone") + def default_time_zone(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "default_time_zone") + + @default_time_zone.setter + def default_time_zone(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "default_time_zone", value) + + @property + @pulumi.getter(name="localTimeZoneDetection") + def local_time_zone_detection(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['CampaignLocalTimeZoneDetectionType']]]]: + return pulumi.get(self, "local_time_zone_detection") + + @local_time_zone_detection.setter + def local_time_zone_detection(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['CampaignLocalTimeZoneDetectionType']]]]): + pulumi.set(self, "local_time_zone_detection", value) + + +if not MYPY: + class CampaignOpenHoursArgsDict(TypedDict): + """ + Open Hours config + """ + daily_hours: pulumi.Input[Sequence[pulumi.Input['CampaignDailyHourArgsDict']]] +elif False: + CampaignOpenHoursArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignOpenHoursArgs: + def __init__(__self__, *, + daily_hours: pulumi.Input[Sequence[pulumi.Input['CampaignDailyHourArgs']]]): + """ + Open Hours config + """ + pulumi.set(__self__, "daily_hours", daily_hours) + + @property + @pulumi.getter(name="dailyHours") + def daily_hours(self) -> pulumi.Input[Sequence[pulumi.Input['CampaignDailyHourArgs']]]: + return pulumi.get(self, "daily_hours") + + @daily_hours.setter + def daily_hours(self, value: pulumi.Input[Sequence[pulumi.Input['CampaignDailyHourArgs']]]): + pulumi.set(self, "daily_hours", value) + + +if not MYPY: + class CampaignPredictiveConfigArgsDict(TypedDict): + """ + Predictive config + """ + bandwidth_allocation: pulumi.Input[float] +elif False: + CampaignPredictiveConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignPredictiveConfigArgs: + def __init__(__self__, *, + bandwidth_allocation: pulumi.Input[float]): + """ + Predictive config + """ + pulumi.set(__self__, "bandwidth_allocation", bandwidth_allocation) + + @property + @pulumi.getter(name="bandwidthAllocation") + def bandwidth_allocation(self) -> pulumi.Input[float]: + return pulumi.get(self, "bandwidth_allocation") + + @bandwidth_allocation.setter + def bandwidth_allocation(self, value: pulumi.Input[float]): + pulumi.set(self, "bandwidth_allocation", value) + + +if not MYPY: + class CampaignProgressiveConfigArgsDict(TypedDict): + """ + Progressive config + """ + bandwidth_allocation: pulumi.Input[float] +elif False: + CampaignProgressiveConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignProgressiveConfigArgs: + def __init__(__self__, *, + bandwidth_allocation: pulumi.Input[float]): + """ + Progressive config + """ + pulumi.set(__self__, "bandwidth_allocation", bandwidth_allocation) + + @property + @pulumi.getter(name="bandwidthAllocation") + def bandwidth_allocation(self) -> pulumi.Input[float]: + return pulumi.get(self, "bandwidth_allocation") + + @bandwidth_allocation.setter + def bandwidth_allocation(self, value: pulumi.Input[float]): + pulumi.set(self, "bandwidth_allocation", value) + + +if not MYPY: + class CampaignRestrictedPeriodsArgsDict(TypedDict): + """ + Restricted period config + """ + restricted_period_list: NotRequired[pulumi.Input[Sequence[pulumi.Input['CampaignRestrictedPeriodArgsDict']]]] +elif False: + CampaignRestrictedPeriodsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignRestrictedPeriodsArgs: + def __init__(__self__, *, + restricted_period_list: Optional[pulumi.Input[Sequence[pulumi.Input['CampaignRestrictedPeriodArgs']]]] = None): + """ + Restricted period config + """ + if restricted_period_list is not None: + pulumi.set(__self__, "restricted_period_list", restricted_period_list) + + @property + @pulumi.getter(name="restrictedPeriodList") + def restricted_period_list(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['CampaignRestrictedPeriodArgs']]]]: + return pulumi.get(self, "restricted_period_list") + + @restricted_period_list.setter + def restricted_period_list(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['CampaignRestrictedPeriodArgs']]]]): + pulumi.set(self, "restricted_period_list", value) + + +if not MYPY: + class CampaignRestrictedPeriodArgsDict(TypedDict): + """ + Restricted period + """ + end_date: pulumi.Input[str] + start_date: pulumi.Input[str] + name: NotRequired[pulumi.Input[str]] + """ + The name of a restricted period + """ +elif False: + CampaignRestrictedPeriodArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignRestrictedPeriodArgs: + def __init__(__self__, *, + end_date: pulumi.Input[str], + start_date: pulumi.Input[str], + name: Optional[pulumi.Input[str]] = None): + """ + Restricted period + :param pulumi.Input[str] name: The name of a restricted period + """ + pulumi.set(__self__, "end_date", end_date) + pulumi.set(__self__, "start_date", start_date) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter(name="endDate") + def end_date(self) -> pulumi.Input[str]: + return pulumi.get(self, "end_date") + + @end_date.setter + def end_date(self, value: pulumi.Input[str]): + pulumi.set(self, "end_date", value) + + @property + @pulumi.getter(name="startDate") + def start_date(self) -> pulumi.Input[str]: + return pulumi.get(self, "start_date") + + @start_date.setter + def start_date(self, value: pulumi.Input[str]): + pulumi.set(self, "start_date", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of a restricted period + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + +if not MYPY: + class CampaignScheduleArgsDict(TypedDict): + """ + Campaign schedule + """ + end_time: pulumi.Input[str] + start_time: pulumi.Input[str] + refresh_frequency: NotRequired[pulumi.Input[str]] +elif False: + CampaignScheduleArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignScheduleArgs: + def __init__(__self__, *, + end_time: pulumi.Input[str], + start_time: pulumi.Input[str], + refresh_frequency: Optional[pulumi.Input[str]] = None): + """ + Campaign schedule + """ + pulumi.set(__self__, "end_time", end_time) + pulumi.set(__self__, "start_time", start_time) + if refresh_frequency is not None: + pulumi.set(__self__, "refresh_frequency", refresh_frequency) + + @property + @pulumi.getter(name="endTime") + def end_time(self) -> pulumi.Input[str]: + return pulumi.get(self, "end_time") + + @end_time.setter + def end_time(self, value: pulumi.Input[str]): + pulumi.set(self, "end_time", value) + + @property + @pulumi.getter(name="startTime") + def start_time(self) -> pulumi.Input[str]: + return pulumi.get(self, "start_time") + + @start_time.setter + def start_time(self, value: pulumi.Input[str]): + pulumi.set(self, "start_time", value) + + @property + @pulumi.getter(name="refreshFrequency") + def refresh_frequency(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "refresh_frequency") + + @refresh_frequency.setter + def refresh_frequency(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "refresh_frequency", value) + + +if not MYPY: + class CampaignSmsChannelSubtypeConfigArgsDict(TypedDict): + """ + SMS Channel Subtype config + """ + default_outbound_config: pulumi.Input['CampaignSmsOutboundConfigArgsDict'] + outbound_mode: pulumi.Input['CampaignSmsOutboundModeArgsDict'] + capacity: NotRequired[pulumi.Input[float]] +elif False: + CampaignSmsChannelSubtypeConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignSmsChannelSubtypeConfigArgs: + def __init__(__self__, *, + default_outbound_config: pulumi.Input['CampaignSmsOutboundConfigArgs'], + outbound_mode: pulumi.Input['CampaignSmsOutboundModeArgs'], + capacity: Optional[pulumi.Input[float]] = None): + """ + SMS Channel Subtype config + """ + pulumi.set(__self__, "default_outbound_config", default_outbound_config) + pulumi.set(__self__, "outbound_mode", outbound_mode) + if capacity is not None: + pulumi.set(__self__, "capacity", capacity) + + @property + @pulumi.getter(name="defaultOutboundConfig") + def default_outbound_config(self) -> pulumi.Input['CampaignSmsOutboundConfigArgs']: + return pulumi.get(self, "default_outbound_config") + + @default_outbound_config.setter + def default_outbound_config(self, value: pulumi.Input['CampaignSmsOutboundConfigArgs']): + pulumi.set(self, "default_outbound_config", value) + + @property + @pulumi.getter(name="outboundMode") + def outbound_mode(self) -> pulumi.Input['CampaignSmsOutboundModeArgs']: + return pulumi.get(self, "outbound_mode") + + @outbound_mode.setter + def outbound_mode(self, value: pulumi.Input['CampaignSmsOutboundModeArgs']): + pulumi.set(self, "outbound_mode", value) + + @property + @pulumi.getter + def capacity(self) -> Optional[pulumi.Input[float]]: + return pulumi.get(self, "capacity") + + @capacity.setter + def capacity(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "capacity", value) + + +if not MYPY: + class CampaignSmsOutboundConfigArgsDict(TypedDict): + """ + Default SMS outbound config + """ + connect_source_phone_number_arn: pulumi.Input[str] + wisdom_template_arn: pulumi.Input[str] +elif False: + CampaignSmsOutboundConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignSmsOutboundConfigArgs: + def __init__(__self__, *, + connect_source_phone_number_arn: pulumi.Input[str], + wisdom_template_arn: pulumi.Input[str]): + """ + Default SMS outbound config + """ + pulumi.set(__self__, "connect_source_phone_number_arn", connect_source_phone_number_arn) + pulumi.set(__self__, "wisdom_template_arn", wisdom_template_arn) + + @property + @pulumi.getter(name="connectSourcePhoneNumberArn") + def connect_source_phone_number_arn(self) -> pulumi.Input[str]: + return pulumi.get(self, "connect_source_phone_number_arn") + + @connect_source_phone_number_arn.setter + def connect_source_phone_number_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "connect_source_phone_number_arn", value) + + @property + @pulumi.getter(name="wisdomTemplateArn") + def wisdom_template_arn(self) -> pulumi.Input[str]: + return pulumi.get(self, "wisdom_template_arn") + + @wisdom_template_arn.setter + def wisdom_template_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "wisdom_template_arn", value) + + +if not MYPY: + class CampaignSmsOutboundModeArgsDict(TypedDict): + """ + SMS Outbound Mode + """ + agentless_config: NotRequired[pulumi.Input['CampaignAgentlessConfigArgsDict']] +elif False: + CampaignSmsOutboundModeArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignSmsOutboundModeArgs: + def __init__(__self__, *, + agentless_config: Optional[pulumi.Input['CampaignAgentlessConfigArgs']] = None): + """ + SMS Outbound Mode + """ + if agentless_config is not None: + pulumi.set(__self__, "agentless_config", agentless_config) + + @property + @pulumi.getter(name="agentlessConfig") + def agentless_config(self) -> Optional[pulumi.Input['CampaignAgentlessConfigArgs']]: + return pulumi.get(self, "agentless_config") + + @agentless_config.setter + def agentless_config(self, value: Optional[pulumi.Input['CampaignAgentlessConfigArgs']]): + pulumi.set(self, "agentless_config", value) + + +if not MYPY: + class CampaignSourceArgsDict(TypedDict): + """ + The possible types of channel config parameters + """ + customer_profiles_segment_arn: NotRequired[pulumi.Input[str]] +elif False: + CampaignSourceArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignSourceArgs: + def __init__(__self__, *, + customer_profiles_segment_arn: Optional[pulumi.Input[str]] = None): + """ + The possible types of channel config parameters + """ + if customer_profiles_segment_arn is not None: + pulumi.set(__self__, "customer_profiles_segment_arn", customer_profiles_segment_arn) + + @property + @pulumi.getter(name="customerProfilesSegmentArn") + def customer_profiles_segment_arn(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "customer_profiles_segment_arn") + + @customer_profiles_segment_arn.setter + def customer_profiles_segment_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "customer_profiles_segment_arn", value) + + +if not MYPY: + class CampaignTelephonyChannelSubtypeConfigArgsDict(TypedDict): + """ + Telephony Channel Subtype config + """ + default_outbound_config: pulumi.Input['CampaignTelephonyOutboundConfigArgsDict'] + outbound_mode: pulumi.Input['CampaignTelephonyOutboundModeArgsDict'] + capacity: NotRequired[pulumi.Input[float]] + connect_queue_id: NotRequired[pulumi.Input[str]] +elif False: + CampaignTelephonyChannelSubtypeConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignTelephonyChannelSubtypeConfigArgs: + def __init__(__self__, *, + default_outbound_config: pulumi.Input['CampaignTelephonyOutboundConfigArgs'], + outbound_mode: pulumi.Input['CampaignTelephonyOutboundModeArgs'], + capacity: Optional[pulumi.Input[float]] = None, + connect_queue_id: Optional[pulumi.Input[str]] = None): + """ + Telephony Channel Subtype config + """ + pulumi.set(__self__, "default_outbound_config", default_outbound_config) + pulumi.set(__self__, "outbound_mode", outbound_mode) + if capacity is not None: + pulumi.set(__self__, "capacity", capacity) + if connect_queue_id is not None: + pulumi.set(__self__, "connect_queue_id", connect_queue_id) + + @property + @pulumi.getter(name="defaultOutboundConfig") + def default_outbound_config(self) -> pulumi.Input['CampaignTelephonyOutboundConfigArgs']: + return pulumi.get(self, "default_outbound_config") + + @default_outbound_config.setter + def default_outbound_config(self, value: pulumi.Input['CampaignTelephonyOutboundConfigArgs']): + pulumi.set(self, "default_outbound_config", value) + + @property + @pulumi.getter(name="outboundMode") + def outbound_mode(self) -> pulumi.Input['CampaignTelephonyOutboundModeArgs']: + return pulumi.get(self, "outbound_mode") + + @outbound_mode.setter + def outbound_mode(self, value: pulumi.Input['CampaignTelephonyOutboundModeArgs']): + pulumi.set(self, "outbound_mode", value) + + @property + @pulumi.getter + def capacity(self) -> Optional[pulumi.Input[float]]: + return pulumi.get(self, "capacity") + + @capacity.setter + def capacity(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "capacity", value) + + @property + @pulumi.getter(name="connectQueueId") + def connect_queue_id(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "connect_queue_id") + + @connect_queue_id.setter + def connect_queue_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "connect_queue_id", value) + + +if not MYPY: + class CampaignTelephonyOutboundConfigArgsDict(TypedDict): + """ + Default Telephone Outbound config + """ + connect_contact_flow_id: pulumi.Input[str] + answer_machine_detection_config: NotRequired[pulumi.Input['CampaignAnswerMachineDetectionConfigArgsDict']] + connect_source_phone_number: NotRequired[pulumi.Input[str]] +elif False: + CampaignTelephonyOutboundConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignTelephonyOutboundConfigArgs: + def __init__(__self__, *, + connect_contact_flow_id: pulumi.Input[str], + answer_machine_detection_config: Optional[pulumi.Input['CampaignAnswerMachineDetectionConfigArgs']] = None, + connect_source_phone_number: Optional[pulumi.Input[str]] = None): + """ + Default Telephone Outbound config + """ + pulumi.set(__self__, "connect_contact_flow_id", connect_contact_flow_id) + if answer_machine_detection_config is not None: + pulumi.set(__self__, "answer_machine_detection_config", answer_machine_detection_config) + if connect_source_phone_number is not None: + pulumi.set(__self__, "connect_source_phone_number", connect_source_phone_number) + + @property + @pulumi.getter(name="connectContactFlowId") + def connect_contact_flow_id(self) -> pulumi.Input[str]: + return pulumi.get(self, "connect_contact_flow_id") + + @connect_contact_flow_id.setter + def connect_contact_flow_id(self, value: pulumi.Input[str]): + pulumi.set(self, "connect_contact_flow_id", value) + + @property + @pulumi.getter(name="answerMachineDetectionConfig") + def answer_machine_detection_config(self) -> Optional[pulumi.Input['CampaignAnswerMachineDetectionConfigArgs']]: + return pulumi.get(self, "answer_machine_detection_config") + + @answer_machine_detection_config.setter + def answer_machine_detection_config(self, value: Optional[pulumi.Input['CampaignAnswerMachineDetectionConfigArgs']]): + pulumi.set(self, "answer_machine_detection_config", value) + + @property + @pulumi.getter(name="connectSourcePhoneNumber") + def connect_source_phone_number(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "connect_source_phone_number") + + @connect_source_phone_number.setter + def connect_source_phone_number(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "connect_source_phone_number", value) + + +if not MYPY: + class CampaignTelephonyOutboundModeArgsDict(TypedDict): + """ + Telephony Outbound Mode + """ + agentless_config: NotRequired[pulumi.Input['CampaignAgentlessConfigArgsDict']] + predictive_config: NotRequired[pulumi.Input['CampaignPredictiveConfigArgsDict']] + progressive_config: NotRequired[pulumi.Input['CampaignProgressiveConfigArgsDict']] +elif False: + CampaignTelephonyOutboundModeArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignTelephonyOutboundModeArgs: + def __init__(__self__, *, + agentless_config: Optional[pulumi.Input['CampaignAgentlessConfigArgs']] = None, + predictive_config: Optional[pulumi.Input['CampaignPredictiveConfigArgs']] = None, + progressive_config: Optional[pulumi.Input['CampaignProgressiveConfigArgs']] = None): + """ + Telephony Outbound Mode + """ + if agentless_config is not None: + pulumi.set(__self__, "agentless_config", agentless_config) + if predictive_config is not None: + pulumi.set(__self__, "predictive_config", predictive_config) + if progressive_config is not None: + pulumi.set(__self__, "progressive_config", progressive_config) + + @property + @pulumi.getter(name="agentlessConfig") + def agentless_config(self) -> Optional[pulumi.Input['CampaignAgentlessConfigArgs']]: + return pulumi.get(self, "agentless_config") + + @agentless_config.setter + def agentless_config(self, value: Optional[pulumi.Input['CampaignAgentlessConfigArgs']]): + pulumi.set(self, "agentless_config", value) + + @property + @pulumi.getter(name="predictiveConfig") + def predictive_config(self) -> Optional[pulumi.Input['CampaignPredictiveConfigArgs']]: + return pulumi.get(self, "predictive_config") + + @predictive_config.setter + def predictive_config(self, value: Optional[pulumi.Input['CampaignPredictiveConfigArgs']]): + pulumi.set(self, "predictive_config", value) + + @property + @pulumi.getter(name="progressiveConfig") + def progressive_config(self) -> Optional[pulumi.Input['CampaignProgressiveConfigArgs']]: + return pulumi.get(self, "progressive_config") + + @progressive_config.setter + def progressive_config(self, value: Optional[pulumi.Input['CampaignProgressiveConfigArgs']]): + pulumi.set(self, "progressive_config", value) + + +if not MYPY: + class CampaignTimeRangeArgsDict(TypedDict): + """ + Time range in 24 hour format + """ + end_time: pulumi.Input[str] + start_time: pulumi.Input[str] +elif False: + CampaignTimeRangeArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignTimeRangeArgs: + def __init__(__self__, *, + end_time: pulumi.Input[str], + start_time: pulumi.Input[str]): + """ + Time range in 24 hour format + """ + pulumi.set(__self__, "end_time", end_time) + pulumi.set(__self__, "start_time", start_time) + + @property + @pulumi.getter(name="endTime") + def end_time(self) -> pulumi.Input[str]: + return pulumi.get(self, "end_time") + + @end_time.setter + def end_time(self, value: pulumi.Input[str]): + pulumi.set(self, "end_time", value) + + @property + @pulumi.getter(name="startTime") + def start_time(self) -> pulumi.Input[str]: + return pulumi.get(self, "start_time") + + @start_time.setter + def start_time(self, value: pulumi.Input[str]): + pulumi.set(self, "start_time", value) + + +if not MYPY: + class CampaignTimeWindowArgsDict(TypedDict): + """ + Time window config + """ + open_hours: pulumi.Input['CampaignOpenHoursArgsDict'] + restricted_periods: NotRequired[pulumi.Input['CampaignRestrictedPeriodsArgsDict']] +elif False: + CampaignTimeWindowArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CampaignTimeWindowArgs: + def __init__(__self__, *, + open_hours: pulumi.Input['CampaignOpenHoursArgs'], + restricted_periods: Optional[pulumi.Input['CampaignRestrictedPeriodsArgs']] = None): + """ + Time window config + """ + pulumi.set(__self__, "open_hours", open_hours) + if restricted_periods is not None: + pulumi.set(__self__, "restricted_periods", restricted_periods) + + @property + @pulumi.getter(name="openHours") + def open_hours(self) -> pulumi.Input['CampaignOpenHoursArgs']: + return pulumi.get(self, "open_hours") + + @open_hours.setter + def open_hours(self, value: pulumi.Input['CampaignOpenHoursArgs']): + pulumi.set(self, "open_hours", value) + + @property + @pulumi.getter(name="restrictedPeriods") + def restricted_periods(self) -> Optional[pulumi.Input['CampaignRestrictedPeriodsArgs']]: + return pulumi.get(self, "restricted_periods") + + @restricted_periods.setter + def restricted_periods(self, value: Optional[pulumi.Input['CampaignRestrictedPeriodsArgs']]): + pulumi.set(self, "restricted_periods", value) + + diff --git a/sdk/python/pulumi_aws_native/connectcampaignsv2/campaign.py b/sdk/python/pulumi_aws_native/connectcampaignsv2/campaign.py new file mode 100644 index 0000000000..47be71810d --- /dev/null +++ b/sdk/python/pulumi_aws_native/connectcampaignsv2/campaign.py @@ -0,0 +1,311 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from .. import _inputs as _root_inputs +from .. import outputs as _root_outputs +from ._enums import * +from ._inputs import * + +__all__ = ['CampaignArgs', 'Campaign'] + +@pulumi.input_type +class CampaignArgs: + def __init__(__self__, *, + channel_subtype_config: pulumi.Input['CampaignChannelSubtypeConfigArgs'], + connect_instance_id: pulumi.Input[str], + communication_limits_override: Optional[pulumi.Input['CampaignCommunicationLimitsConfigArgs']] = None, + communication_time_config: Optional[pulumi.Input['CampaignCommunicationTimeConfigArgs']] = None, + connect_campaign_flow_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + schedule: Optional[pulumi.Input['CampaignScheduleArgs']] = None, + source: Optional[pulumi.Input['CampaignSourceArgs']] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None): + """ + The set of arguments for constructing a Campaign resource. + :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: One or more tags. + """ + pulumi.set(__self__, "channel_subtype_config", channel_subtype_config) + pulumi.set(__self__, "connect_instance_id", connect_instance_id) + if communication_limits_override is not None: + pulumi.set(__self__, "communication_limits_override", communication_limits_override) + if communication_time_config is not None: + pulumi.set(__self__, "communication_time_config", communication_time_config) + if connect_campaign_flow_arn is not None: + pulumi.set(__self__, "connect_campaign_flow_arn", connect_campaign_flow_arn) + if name is not None: + pulumi.set(__self__, "name", name) + if schedule is not None: + pulumi.set(__self__, "schedule", schedule) + if source is not None: + pulumi.set(__self__, "source", source) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="channelSubtypeConfig") + def channel_subtype_config(self) -> pulumi.Input['CampaignChannelSubtypeConfigArgs']: + return pulumi.get(self, "channel_subtype_config") + + @channel_subtype_config.setter + def channel_subtype_config(self, value: pulumi.Input['CampaignChannelSubtypeConfigArgs']): + pulumi.set(self, "channel_subtype_config", value) + + @property + @pulumi.getter(name="connectInstanceId") + def connect_instance_id(self) -> pulumi.Input[str]: + return pulumi.get(self, "connect_instance_id") + + @connect_instance_id.setter + def connect_instance_id(self, value: pulumi.Input[str]): + pulumi.set(self, "connect_instance_id", value) + + @property + @pulumi.getter(name="communicationLimitsOverride") + def communication_limits_override(self) -> Optional[pulumi.Input['CampaignCommunicationLimitsConfigArgs']]: + return pulumi.get(self, "communication_limits_override") + + @communication_limits_override.setter + def communication_limits_override(self, value: Optional[pulumi.Input['CampaignCommunicationLimitsConfigArgs']]): + pulumi.set(self, "communication_limits_override", value) + + @property + @pulumi.getter(name="communicationTimeConfig") + def communication_time_config(self) -> Optional[pulumi.Input['CampaignCommunicationTimeConfigArgs']]: + return pulumi.get(self, "communication_time_config") + + @communication_time_config.setter + def communication_time_config(self, value: Optional[pulumi.Input['CampaignCommunicationTimeConfigArgs']]): + pulumi.set(self, "communication_time_config", value) + + @property + @pulumi.getter(name="connectCampaignFlowArn") + def connect_campaign_flow_arn(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "connect_campaign_flow_arn") + + @connect_campaign_flow_arn.setter + def connect_campaign_flow_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "connect_campaign_flow_arn", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def schedule(self) -> Optional[pulumi.Input['CampaignScheduleArgs']]: + return pulumi.get(self, "schedule") + + @schedule.setter + def schedule(self, value: Optional[pulumi.Input['CampaignScheduleArgs']]): + pulumi.set(self, "schedule", value) + + @property + @pulumi.getter + def source(self) -> Optional[pulumi.Input['CampaignSourceArgs']]: + return pulumi.get(self, "source") + + @source.setter + def source(self, value: Optional[pulumi.Input['CampaignSourceArgs']]): + pulumi.set(self, "source", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]]: + """ + One or more tags. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]]): + pulumi.set(self, "tags", value) + + +class Campaign(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + channel_subtype_config: Optional[pulumi.Input[Union['CampaignChannelSubtypeConfigArgs', 'CampaignChannelSubtypeConfigArgsDict']]] = None, + communication_limits_override: Optional[pulumi.Input[Union['CampaignCommunicationLimitsConfigArgs', 'CampaignCommunicationLimitsConfigArgsDict']]] = None, + communication_time_config: Optional[pulumi.Input[Union['CampaignCommunicationTimeConfigArgs', 'CampaignCommunicationTimeConfigArgsDict']]] = None, + connect_campaign_flow_arn: Optional[pulumi.Input[str]] = None, + connect_instance_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + schedule: Optional[pulumi.Input[Union['CampaignScheduleArgs', 'CampaignScheduleArgsDict']]] = None, + source: Optional[pulumi.Input[Union['CampaignSourceArgs', 'CampaignSourceArgsDict']]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.TagArgs', '_root_inputs.TagArgsDict']]]]] = None, + __props__=None): + """ + Definition of AWS::ConnectCampaignsV2::Campaign Resource Type + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.TagArgs', '_root_inputs.TagArgsDict']]]] tags: One or more tags. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: CampaignArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Definition of AWS::ConnectCampaignsV2::Campaign Resource Type + + :param str resource_name: The name of the resource. + :param CampaignArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(CampaignArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + channel_subtype_config: Optional[pulumi.Input[Union['CampaignChannelSubtypeConfigArgs', 'CampaignChannelSubtypeConfigArgsDict']]] = None, + communication_limits_override: Optional[pulumi.Input[Union['CampaignCommunicationLimitsConfigArgs', 'CampaignCommunicationLimitsConfigArgsDict']]] = None, + communication_time_config: Optional[pulumi.Input[Union['CampaignCommunicationTimeConfigArgs', 'CampaignCommunicationTimeConfigArgsDict']]] = None, + connect_campaign_flow_arn: Optional[pulumi.Input[str]] = None, + connect_instance_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + schedule: Optional[pulumi.Input[Union['CampaignScheduleArgs', 'CampaignScheduleArgsDict']]] = None, + source: Optional[pulumi.Input[Union['CampaignSourceArgs', 'CampaignSourceArgsDict']]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.TagArgs', '_root_inputs.TagArgsDict']]]]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = CampaignArgs.__new__(CampaignArgs) + + if channel_subtype_config is None and not opts.urn: + raise TypeError("Missing required property 'channel_subtype_config'") + __props__.__dict__["channel_subtype_config"] = channel_subtype_config + __props__.__dict__["communication_limits_override"] = communication_limits_override + __props__.__dict__["communication_time_config"] = communication_time_config + __props__.__dict__["connect_campaign_flow_arn"] = connect_campaign_flow_arn + if connect_instance_id is None and not opts.urn: + raise TypeError("Missing required property 'connect_instance_id'") + __props__.__dict__["connect_instance_id"] = connect_instance_id + __props__.__dict__["name"] = name + __props__.__dict__["schedule"] = schedule + __props__.__dict__["source"] = source + __props__.__dict__["tags"] = tags + __props__.__dict__["arn"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["connectInstanceId"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(Campaign, __self__).__init__( + 'aws-native:connectcampaignsv2:Campaign', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'Campaign': + """ + Get an existing Campaign resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = CampaignArgs.__new__(CampaignArgs) + + __props__.__dict__["arn"] = None + __props__.__dict__["channel_subtype_config"] = None + __props__.__dict__["communication_limits_override"] = None + __props__.__dict__["communication_time_config"] = None + __props__.__dict__["connect_campaign_flow_arn"] = None + __props__.__dict__["connect_instance_id"] = None + __props__.__dict__["name"] = None + __props__.__dict__["schedule"] = None + __props__.__dict__["source"] = None + __props__.__dict__["tags"] = None + return Campaign(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + Amazon Connect Campaign Arn + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="channelSubtypeConfig") + def channel_subtype_config(self) -> pulumi.Output['outputs.CampaignChannelSubtypeConfig']: + return pulumi.get(self, "channel_subtype_config") + + @property + @pulumi.getter(name="communicationLimitsOverride") + def communication_limits_override(self) -> pulumi.Output[Optional['outputs.CampaignCommunicationLimitsConfig']]: + return pulumi.get(self, "communication_limits_override") + + @property + @pulumi.getter(name="communicationTimeConfig") + def communication_time_config(self) -> pulumi.Output[Optional['outputs.CampaignCommunicationTimeConfig']]: + return pulumi.get(self, "communication_time_config") + + @property + @pulumi.getter(name="connectCampaignFlowArn") + def connect_campaign_flow_arn(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "connect_campaign_flow_arn") + + @property + @pulumi.getter(name="connectInstanceId") + def connect_instance_id(self) -> pulumi.Output[str]: + return pulumi.get(self, "connect_instance_id") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + return pulumi.get(self, "name") + + @property + @pulumi.getter + def schedule(self) -> pulumi.Output[Optional['outputs.CampaignSchedule']]: + return pulumi.get(self, "schedule") + + @property + @pulumi.getter + def source(self) -> pulumi.Output[Optional['outputs.CampaignSource']]: + return pulumi.get(self, "source") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: + """ + One or more tags. + """ + return pulumi.get(self, "tags") + diff --git a/sdk/python/pulumi_aws_native/connectcampaignsv2/get_campaign.py b/sdk/python/pulumi_aws_native/connectcampaignsv2/get_campaign.py new file mode 100644 index 0000000000..94f7c01428 --- /dev/null +++ b/sdk/python/pulumi_aws_native/connectcampaignsv2/get_campaign.py @@ -0,0 +1,171 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from .. import outputs as _root_outputs +from ._enums import * + +__all__ = [ + 'GetCampaignResult', + 'AwaitableGetCampaignResult', + 'get_campaign', + 'get_campaign_output', +] + +@pulumi.output_type +class GetCampaignResult: + def __init__(__self__, arn=None, channel_subtype_config=None, communication_limits_override=None, communication_time_config=None, connect_campaign_flow_arn=None, name=None, schedule=None, source=None, tags=None): + if arn and not isinstance(arn, str): + raise TypeError("Expected argument 'arn' to be a str") + pulumi.set(__self__, "arn", arn) + if channel_subtype_config and not isinstance(channel_subtype_config, dict): + raise TypeError("Expected argument 'channel_subtype_config' to be a dict") + pulumi.set(__self__, "channel_subtype_config", channel_subtype_config) + if communication_limits_override and not isinstance(communication_limits_override, dict): + raise TypeError("Expected argument 'communication_limits_override' to be a dict") + pulumi.set(__self__, "communication_limits_override", communication_limits_override) + if communication_time_config and not isinstance(communication_time_config, dict): + raise TypeError("Expected argument 'communication_time_config' to be a dict") + pulumi.set(__self__, "communication_time_config", communication_time_config) + if connect_campaign_flow_arn and not isinstance(connect_campaign_flow_arn, str): + raise TypeError("Expected argument 'connect_campaign_flow_arn' to be a str") + pulumi.set(__self__, "connect_campaign_flow_arn", connect_campaign_flow_arn) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if schedule and not isinstance(schedule, dict): + raise TypeError("Expected argument 'schedule' to be a dict") + pulumi.set(__self__, "schedule", schedule) + if source and not isinstance(source, dict): + raise TypeError("Expected argument 'source' to be a dict") + pulumi.set(__self__, "source", source) + if tags and not isinstance(tags, list): + raise TypeError("Expected argument 'tags' to be a list") + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter + def arn(self) -> Optional[str]: + """ + Amazon Connect Campaign Arn + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="channelSubtypeConfig") + def channel_subtype_config(self) -> Optional['outputs.CampaignChannelSubtypeConfig']: + return pulumi.get(self, "channel_subtype_config") + + @property + @pulumi.getter(name="communicationLimitsOverride") + def communication_limits_override(self) -> Optional['outputs.CampaignCommunicationLimitsConfig']: + return pulumi.get(self, "communication_limits_override") + + @property + @pulumi.getter(name="communicationTimeConfig") + def communication_time_config(self) -> Optional['outputs.CampaignCommunicationTimeConfig']: + return pulumi.get(self, "communication_time_config") + + @property + @pulumi.getter(name="connectCampaignFlowArn") + def connect_campaign_flow_arn(self) -> Optional[str]: + return pulumi.get(self, "connect_campaign_flow_arn") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + return pulumi.get(self, "name") + + @property + @pulumi.getter + def schedule(self) -> Optional['outputs.CampaignSchedule']: + return pulumi.get(self, "schedule") + + @property + @pulumi.getter + def source(self) -> Optional['outputs.CampaignSource']: + return pulumi.get(self, "source") + + @property + @pulumi.getter + def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: + """ + One or more tags. + """ + return pulumi.get(self, "tags") + + +class AwaitableGetCampaignResult(GetCampaignResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetCampaignResult( + arn=self.arn, + channel_subtype_config=self.channel_subtype_config, + communication_limits_override=self.communication_limits_override, + communication_time_config=self.communication_time_config, + connect_campaign_flow_arn=self.connect_campaign_flow_arn, + name=self.name, + schedule=self.schedule, + source=self.source, + tags=self.tags) + + +def get_campaign(arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetCampaignResult: + """ + Definition of AWS::ConnectCampaignsV2::Campaign Resource Type + + + :param str arn: Amazon Connect Campaign Arn + """ + __args__ = dict() + __args__['arn'] = arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:connectcampaignsv2:getCampaign', __args__, opts=opts, typ=GetCampaignResult).value + + return AwaitableGetCampaignResult( + arn=pulumi.get(__ret__, 'arn'), + channel_subtype_config=pulumi.get(__ret__, 'channel_subtype_config'), + communication_limits_override=pulumi.get(__ret__, 'communication_limits_override'), + communication_time_config=pulumi.get(__ret__, 'communication_time_config'), + connect_campaign_flow_arn=pulumi.get(__ret__, 'connect_campaign_flow_arn'), + name=pulumi.get(__ret__, 'name'), + schedule=pulumi.get(__ret__, 'schedule'), + source=pulumi.get(__ret__, 'source'), + tags=pulumi.get(__ret__, 'tags')) +def get_campaign_output(arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetCampaignResult]: + """ + Definition of AWS::ConnectCampaignsV2::Campaign Resource Type + + + :param str arn: Amazon Connect Campaign Arn + """ + __args__ = dict() + __args__['arn'] = arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('aws-native:connectcampaignsv2:getCampaign', __args__, opts=opts, typ=GetCampaignResult) + return __ret__.apply(lambda __response__: GetCampaignResult( + arn=pulumi.get(__response__, 'arn'), + channel_subtype_config=pulumi.get(__response__, 'channel_subtype_config'), + communication_limits_override=pulumi.get(__response__, 'communication_limits_override'), + communication_time_config=pulumi.get(__response__, 'communication_time_config'), + connect_campaign_flow_arn=pulumi.get(__response__, 'connect_campaign_flow_arn'), + name=pulumi.get(__response__, 'name'), + schedule=pulumi.get(__response__, 'schedule'), + source=pulumi.get(__response__, 'source'), + tags=pulumi.get(__response__, 'tags'))) diff --git a/sdk/python/pulumi_aws_native/connectcampaignsv2/outputs.py b/sdk/python/pulumi_aws_native/connectcampaignsv2/outputs.py new file mode 100644 index 0000000000..00128d2cc0 --- /dev/null +++ b/sdk/python/pulumi_aws_native/connectcampaignsv2/outputs.py @@ -0,0 +1,1224 @@ +# coding=utf-8 +# *** WARNING: this file was generated by pulumi-language-python. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._enums import * + +__all__ = [ + 'CampaignAgentlessConfig', + 'CampaignAnswerMachineDetectionConfig', + 'CampaignChannelSubtypeConfig', + 'CampaignCommunicationLimit', + 'CampaignCommunicationLimits', + 'CampaignCommunicationLimitsConfig', + 'CampaignCommunicationTimeConfig', + 'CampaignDailyHour', + 'CampaignEmailChannelSubtypeConfig', + 'CampaignEmailOutboundConfig', + 'CampaignEmailOutboundMode', + 'CampaignLocalTimeZoneConfig', + 'CampaignOpenHours', + 'CampaignPredictiveConfig', + 'CampaignProgressiveConfig', + 'CampaignRestrictedPeriod', + 'CampaignRestrictedPeriods', + 'CampaignSchedule', + 'CampaignSmsChannelSubtypeConfig', + 'CampaignSmsOutboundConfig', + 'CampaignSmsOutboundMode', + 'CampaignSource', + 'CampaignTelephonyChannelSubtypeConfig', + 'CampaignTelephonyOutboundConfig', + 'CampaignTelephonyOutboundMode', + 'CampaignTimeRange', + 'CampaignTimeWindow', +] + +@pulumi.output_type +class CampaignAgentlessConfig(dict): + """ + Agentless config + """ + def __init__(__self__): + """ + Agentless config + """ + pass + + +@pulumi.output_type +class CampaignAnswerMachineDetectionConfig(dict): + """ + The configuration used for answering machine detection during outbound calls + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "enableAnswerMachineDetection": + suggest = "enable_answer_machine_detection" + elif key == "awaitAnswerMachinePrompt": + suggest = "await_answer_machine_prompt" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CampaignAnswerMachineDetectionConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CampaignAnswerMachineDetectionConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CampaignAnswerMachineDetectionConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + enable_answer_machine_detection: bool, + await_answer_machine_prompt: Optional[bool] = None): + """ + The configuration used for answering machine detection during outbound calls + :param bool enable_answer_machine_detection: Flag to decided whether outbound calls should have answering machine detection enabled or not + :param bool await_answer_machine_prompt: Enables detection of prompts (e.g., beep after after a voicemail greeting) + """ + pulumi.set(__self__, "enable_answer_machine_detection", enable_answer_machine_detection) + if await_answer_machine_prompt is not None: + pulumi.set(__self__, "await_answer_machine_prompt", await_answer_machine_prompt) + + @property + @pulumi.getter(name="enableAnswerMachineDetection") + def enable_answer_machine_detection(self) -> bool: + """ + Flag to decided whether outbound calls should have answering machine detection enabled or not + """ + return pulumi.get(self, "enable_answer_machine_detection") + + @property + @pulumi.getter(name="awaitAnswerMachinePrompt") + def await_answer_machine_prompt(self) -> Optional[bool]: + """ + Enables detection of prompts (e.g., beep after after a voicemail greeting) + """ + return pulumi.get(self, "await_answer_machine_prompt") + + +@pulumi.output_type +class CampaignChannelSubtypeConfig(dict): + """ + The possible types of channel subtype config parameters + """ + def __init__(__self__, *, + email: Optional['outputs.CampaignEmailChannelSubtypeConfig'] = None, + sms: Optional['outputs.CampaignSmsChannelSubtypeConfig'] = None, + telephony: Optional['outputs.CampaignTelephonyChannelSubtypeConfig'] = None): + """ + The possible types of channel subtype config parameters + """ + if email is not None: + pulumi.set(__self__, "email", email) + if sms is not None: + pulumi.set(__self__, "sms", sms) + if telephony is not None: + pulumi.set(__self__, "telephony", telephony) + + @property + @pulumi.getter + def email(self) -> Optional['outputs.CampaignEmailChannelSubtypeConfig']: + return pulumi.get(self, "email") + + @property + @pulumi.getter + def sms(self) -> Optional['outputs.CampaignSmsChannelSubtypeConfig']: + return pulumi.get(self, "sms") + + @property + @pulumi.getter + def telephony(self) -> Optional['outputs.CampaignTelephonyChannelSubtypeConfig']: + return pulumi.get(self, "telephony") + + +@pulumi.output_type +class CampaignCommunicationLimit(dict): + """ + Communication Limit + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "maxCountPerRecipient": + suggest = "max_count_per_recipient" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CampaignCommunicationLimit. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CampaignCommunicationLimit.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CampaignCommunicationLimit.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + frequency: int, + max_count_per_recipient: int, + unit: 'CampaignCommunicationLimitTimeUnit'): + """ + Communication Limit + """ + pulumi.set(__self__, "frequency", frequency) + pulumi.set(__self__, "max_count_per_recipient", max_count_per_recipient) + pulumi.set(__self__, "unit", unit) + + @property + @pulumi.getter + def frequency(self) -> int: + return pulumi.get(self, "frequency") + + @property + @pulumi.getter(name="maxCountPerRecipient") + def max_count_per_recipient(self) -> int: + return pulumi.get(self, "max_count_per_recipient") + + @property + @pulumi.getter + def unit(self) -> 'CampaignCommunicationLimitTimeUnit': + return pulumi.get(self, "unit") + + +@pulumi.output_type +class CampaignCommunicationLimits(dict): + """ + Communication limits + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "communicationLimitList": + suggest = "communication_limit_list" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CampaignCommunicationLimits. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CampaignCommunicationLimits.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CampaignCommunicationLimits.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + communication_limit_list: Optional[Sequence['outputs.CampaignCommunicationLimit']] = None): + """ + Communication limits + """ + if communication_limit_list is not None: + pulumi.set(__self__, "communication_limit_list", communication_limit_list) + + @property + @pulumi.getter(name="communicationLimitList") + def communication_limit_list(self) -> Optional[Sequence['outputs.CampaignCommunicationLimit']]: + return pulumi.get(self, "communication_limit_list") + + +@pulumi.output_type +class CampaignCommunicationLimitsConfig(dict): + """ + Communication limits config + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "allChannelsSubtypes": + suggest = "all_channels_subtypes" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CampaignCommunicationLimitsConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CampaignCommunicationLimitsConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CampaignCommunicationLimitsConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + all_channels_subtypes: Optional['outputs.CampaignCommunicationLimits'] = None): + """ + Communication limits config + """ + if all_channels_subtypes is not None: + pulumi.set(__self__, "all_channels_subtypes", all_channels_subtypes) + + @property + @pulumi.getter(name="allChannelsSubtypes") + def all_channels_subtypes(self) -> Optional['outputs.CampaignCommunicationLimits']: + return pulumi.get(self, "all_channels_subtypes") + + +@pulumi.output_type +class CampaignCommunicationTimeConfig(dict): + """ + Campaign communication time config + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "localTimeZoneConfig": + suggest = "local_time_zone_config" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CampaignCommunicationTimeConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CampaignCommunicationTimeConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CampaignCommunicationTimeConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + local_time_zone_config: 'outputs.CampaignLocalTimeZoneConfig', + email: Optional['outputs.CampaignTimeWindow'] = None, + sms: Optional['outputs.CampaignTimeWindow'] = None, + telephony: Optional['outputs.CampaignTimeWindow'] = None): + """ + Campaign communication time config + """ + pulumi.set(__self__, "local_time_zone_config", local_time_zone_config) + if email is not None: + pulumi.set(__self__, "email", email) + if sms is not None: + pulumi.set(__self__, "sms", sms) + if telephony is not None: + pulumi.set(__self__, "telephony", telephony) + + @property + @pulumi.getter(name="localTimeZoneConfig") + def local_time_zone_config(self) -> 'outputs.CampaignLocalTimeZoneConfig': + return pulumi.get(self, "local_time_zone_config") + + @property + @pulumi.getter + def email(self) -> Optional['outputs.CampaignTimeWindow']: + return pulumi.get(self, "email") + + @property + @pulumi.getter + def sms(self) -> Optional['outputs.CampaignTimeWindow']: + return pulumi.get(self, "sms") + + @property + @pulumi.getter + def telephony(self) -> Optional['outputs.CampaignTimeWindow']: + return pulumi.get(self, "telephony") + + +@pulumi.output_type +class CampaignDailyHour(dict): + """ + Daily Hour + """ + def __init__(__self__, *, + key: Optional['CampaignDayOfWeek'] = None, + value: Optional[Sequence['outputs.CampaignTimeRange']] = None): + """ + Daily Hour + """ + if key is not None: + pulumi.set(__self__, "key", key) + if value is not None: + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def key(self) -> Optional['CampaignDayOfWeek']: + return pulumi.get(self, "key") + + @property + @pulumi.getter + def value(self) -> Optional[Sequence['outputs.CampaignTimeRange']]: + return pulumi.get(self, "value") + + +@pulumi.output_type +class CampaignEmailChannelSubtypeConfig(dict): + """ + Email Channel Subtype config + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "defaultOutboundConfig": + suggest = "default_outbound_config" + elif key == "outboundMode": + suggest = "outbound_mode" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CampaignEmailChannelSubtypeConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CampaignEmailChannelSubtypeConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CampaignEmailChannelSubtypeConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + default_outbound_config: 'outputs.CampaignEmailOutboundConfig', + outbound_mode: 'outputs.CampaignEmailOutboundMode', + capacity: Optional[float] = None): + """ + Email Channel Subtype config + """ + pulumi.set(__self__, "default_outbound_config", default_outbound_config) + pulumi.set(__self__, "outbound_mode", outbound_mode) + if capacity is not None: + pulumi.set(__self__, "capacity", capacity) + + @property + @pulumi.getter(name="defaultOutboundConfig") + def default_outbound_config(self) -> 'outputs.CampaignEmailOutboundConfig': + return pulumi.get(self, "default_outbound_config") + + @property + @pulumi.getter(name="outboundMode") + def outbound_mode(self) -> 'outputs.CampaignEmailOutboundMode': + return pulumi.get(self, "outbound_mode") + + @property + @pulumi.getter + def capacity(self) -> Optional[float]: + return pulumi.get(self, "capacity") + + +@pulumi.output_type +class CampaignEmailOutboundConfig(dict): + """ + Default SMS outbound config + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "connectSourceEmailAddress": + suggest = "connect_source_email_address" + elif key == "wisdomTemplateArn": + suggest = "wisdom_template_arn" + elif key == "sourceEmailAddressDisplayName": + suggest = "source_email_address_display_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CampaignEmailOutboundConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CampaignEmailOutboundConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CampaignEmailOutboundConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + connect_source_email_address: str, + wisdom_template_arn: str, + source_email_address_display_name: Optional[str] = None): + """ + Default SMS outbound config + """ + pulumi.set(__self__, "connect_source_email_address", connect_source_email_address) + pulumi.set(__self__, "wisdom_template_arn", wisdom_template_arn) + if source_email_address_display_name is not None: + pulumi.set(__self__, "source_email_address_display_name", source_email_address_display_name) + + @property + @pulumi.getter(name="connectSourceEmailAddress") + def connect_source_email_address(self) -> str: + return pulumi.get(self, "connect_source_email_address") + + @property + @pulumi.getter(name="wisdomTemplateArn") + def wisdom_template_arn(self) -> str: + return pulumi.get(self, "wisdom_template_arn") + + @property + @pulumi.getter(name="sourceEmailAddressDisplayName") + def source_email_address_display_name(self) -> Optional[str]: + return pulumi.get(self, "source_email_address_display_name") + + +@pulumi.output_type +class CampaignEmailOutboundMode(dict): + """ + Email Outbound Mode + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "agentlessConfig": + suggest = "agentless_config" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CampaignEmailOutboundMode. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CampaignEmailOutboundMode.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CampaignEmailOutboundMode.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + agentless_config: Optional['outputs.CampaignAgentlessConfig'] = None): + """ + Email Outbound Mode + """ + if agentless_config is not None: + pulumi.set(__self__, "agentless_config", agentless_config) + + @property + @pulumi.getter(name="agentlessConfig") + def agentless_config(self) -> Optional['outputs.CampaignAgentlessConfig']: + return pulumi.get(self, "agentless_config") + + +@pulumi.output_type +class CampaignLocalTimeZoneConfig(dict): + """ + Local time zone config + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "defaultTimeZone": + suggest = "default_time_zone" + elif key == "localTimeZoneDetection": + suggest = "local_time_zone_detection" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CampaignLocalTimeZoneConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CampaignLocalTimeZoneConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CampaignLocalTimeZoneConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + default_time_zone: Optional[str] = None, + local_time_zone_detection: Optional[Sequence['CampaignLocalTimeZoneDetectionType']] = None): + """ + Local time zone config + """ + if default_time_zone is not None: + pulumi.set(__self__, "default_time_zone", default_time_zone) + if local_time_zone_detection is not None: + pulumi.set(__self__, "local_time_zone_detection", local_time_zone_detection) + + @property + @pulumi.getter(name="defaultTimeZone") + def default_time_zone(self) -> Optional[str]: + return pulumi.get(self, "default_time_zone") + + @property + @pulumi.getter(name="localTimeZoneDetection") + def local_time_zone_detection(self) -> Optional[Sequence['CampaignLocalTimeZoneDetectionType']]: + return pulumi.get(self, "local_time_zone_detection") + + +@pulumi.output_type +class CampaignOpenHours(dict): + """ + Open Hours config + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "dailyHours": + suggest = "daily_hours" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CampaignOpenHours. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CampaignOpenHours.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CampaignOpenHours.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + daily_hours: Sequence['outputs.CampaignDailyHour']): + """ + Open Hours config + """ + pulumi.set(__self__, "daily_hours", daily_hours) + + @property + @pulumi.getter(name="dailyHours") + def daily_hours(self) -> Sequence['outputs.CampaignDailyHour']: + return pulumi.get(self, "daily_hours") + + +@pulumi.output_type +class CampaignPredictiveConfig(dict): + """ + Predictive config + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "bandwidthAllocation": + suggest = "bandwidth_allocation" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CampaignPredictiveConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CampaignPredictiveConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CampaignPredictiveConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + bandwidth_allocation: float): + """ + Predictive config + """ + pulumi.set(__self__, "bandwidth_allocation", bandwidth_allocation) + + @property + @pulumi.getter(name="bandwidthAllocation") + def bandwidth_allocation(self) -> float: + return pulumi.get(self, "bandwidth_allocation") + + +@pulumi.output_type +class CampaignProgressiveConfig(dict): + """ + Progressive config + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "bandwidthAllocation": + suggest = "bandwidth_allocation" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CampaignProgressiveConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CampaignProgressiveConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CampaignProgressiveConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + bandwidth_allocation: float): + """ + Progressive config + """ + pulumi.set(__self__, "bandwidth_allocation", bandwidth_allocation) + + @property + @pulumi.getter(name="bandwidthAllocation") + def bandwidth_allocation(self) -> float: + return pulumi.get(self, "bandwidth_allocation") + + +@pulumi.output_type +class CampaignRestrictedPeriod(dict): + """ + Restricted period + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "endDate": + suggest = "end_date" + elif key == "startDate": + suggest = "start_date" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CampaignRestrictedPeriod. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CampaignRestrictedPeriod.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CampaignRestrictedPeriod.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + end_date: str, + start_date: str, + name: Optional[str] = None): + """ + Restricted period + :param str name: The name of a restricted period + """ + pulumi.set(__self__, "end_date", end_date) + pulumi.set(__self__, "start_date", start_date) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter(name="endDate") + def end_date(self) -> str: + return pulumi.get(self, "end_date") + + @property + @pulumi.getter(name="startDate") + def start_date(self) -> str: + return pulumi.get(self, "start_date") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + The name of a restricted period + """ + return pulumi.get(self, "name") + + +@pulumi.output_type +class CampaignRestrictedPeriods(dict): + """ + Restricted period config + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "restrictedPeriodList": + suggest = "restricted_period_list" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CampaignRestrictedPeriods. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CampaignRestrictedPeriods.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CampaignRestrictedPeriods.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + restricted_period_list: Optional[Sequence['outputs.CampaignRestrictedPeriod']] = None): + """ + Restricted period config + """ + if restricted_period_list is not None: + pulumi.set(__self__, "restricted_period_list", restricted_period_list) + + @property + @pulumi.getter(name="restrictedPeriodList") + def restricted_period_list(self) -> Optional[Sequence['outputs.CampaignRestrictedPeriod']]: + return pulumi.get(self, "restricted_period_list") + + +@pulumi.output_type +class CampaignSchedule(dict): + """ + Campaign schedule + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "endTime": + suggest = "end_time" + elif key == "startTime": + suggest = "start_time" + elif key == "refreshFrequency": + suggest = "refresh_frequency" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CampaignSchedule. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CampaignSchedule.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CampaignSchedule.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + end_time: str, + start_time: str, + refresh_frequency: Optional[str] = None): + """ + Campaign schedule + """ + pulumi.set(__self__, "end_time", end_time) + pulumi.set(__self__, "start_time", start_time) + if refresh_frequency is not None: + pulumi.set(__self__, "refresh_frequency", refresh_frequency) + + @property + @pulumi.getter(name="endTime") + def end_time(self) -> str: + return pulumi.get(self, "end_time") + + @property + @pulumi.getter(name="startTime") + def start_time(self) -> str: + return pulumi.get(self, "start_time") + + @property + @pulumi.getter(name="refreshFrequency") + def refresh_frequency(self) -> Optional[str]: + return pulumi.get(self, "refresh_frequency") + + +@pulumi.output_type +class CampaignSmsChannelSubtypeConfig(dict): + """ + SMS Channel Subtype config + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "defaultOutboundConfig": + suggest = "default_outbound_config" + elif key == "outboundMode": + suggest = "outbound_mode" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CampaignSmsChannelSubtypeConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CampaignSmsChannelSubtypeConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CampaignSmsChannelSubtypeConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + default_outbound_config: 'outputs.CampaignSmsOutboundConfig', + outbound_mode: 'outputs.CampaignSmsOutboundMode', + capacity: Optional[float] = None): + """ + SMS Channel Subtype config + """ + pulumi.set(__self__, "default_outbound_config", default_outbound_config) + pulumi.set(__self__, "outbound_mode", outbound_mode) + if capacity is not None: + pulumi.set(__self__, "capacity", capacity) + + @property + @pulumi.getter(name="defaultOutboundConfig") + def default_outbound_config(self) -> 'outputs.CampaignSmsOutboundConfig': + return pulumi.get(self, "default_outbound_config") + + @property + @pulumi.getter(name="outboundMode") + def outbound_mode(self) -> 'outputs.CampaignSmsOutboundMode': + return pulumi.get(self, "outbound_mode") + + @property + @pulumi.getter + def capacity(self) -> Optional[float]: + return pulumi.get(self, "capacity") + + +@pulumi.output_type +class CampaignSmsOutboundConfig(dict): + """ + Default SMS outbound config + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "connectSourcePhoneNumberArn": + suggest = "connect_source_phone_number_arn" + elif key == "wisdomTemplateArn": + suggest = "wisdom_template_arn" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CampaignSmsOutboundConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CampaignSmsOutboundConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CampaignSmsOutboundConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + connect_source_phone_number_arn: str, + wisdom_template_arn: str): + """ + Default SMS outbound config + """ + pulumi.set(__self__, "connect_source_phone_number_arn", connect_source_phone_number_arn) + pulumi.set(__self__, "wisdom_template_arn", wisdom_template_arn) + + @property + @pulumi.getter(name="connectSourcePhoneNumberArn") + def connect_source_phone_number_arn(self) -> str: + return pulumi.get(self, "connect_source_phone_number_arn") + + @property + @pulumi.getter(name="wisdomTemplateArn") + def wisdom_template_arn(self) -> str: + return pulumi.get(self, "wisdom_template_arn") + + +@pulumi.output_type +class CampaignSmsOutboundMode(dict): + """ + SMS Outbound Mode + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "agentlessConfig": + suggest = "agentless_config" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CampaignSmsOutboundMode. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CampaignSmsOutboundMode.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CampaignSmsOutboundMode.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + agentless_config: Optional['outputs.CampaignAgentlessConfig'] = None): + """ + SMS Outbound Mode + """ + if agentless_config is not None: + pulumi.set(__self__, "agentless_config", agentless_config) + + @property + @pulumi.getter(name="agentlessConfig") + def agentless_config(self) -> Optional['outputs.CampaignAgentlessConfig']: + return pulumi.get(self, "agentless_config") + + +@pulumi.output_type +class CampaignSource(dict): + """ + The possible types of channel config parameters + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "customerProfilesSegmentArn": + suggest = "customer_profiles_segment_arn" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CampaignSource. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CampaignSource.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CampaignSource.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + customer_profiles_segment_arn: Optional[str] = None): + """ + The possible types of channel config parameters + """ + if customer_profiles_segment_arn is not None: + pulumi.set(__self__, "customer_profiles_segment_arn", customer_profiles_segment_arn) + + @property + @pulumi.getter(name="customerProfilesSegmentArn") + def customer_profiles_segment_arn(self) -> Optional[str]: + return pulumi.get(self, "customer_profiles_segment_arn") + + +@pulumi.output_type +class CampaignTelephonyChannelSubtypeConfig(dict): + """ + Telephony Channel Subtype config + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "defaultOutboundConfig": + suggest = "default_outbound_config" + elif key == "outboundMode": + suggest = "outbound_mode" + elif key == "connectQueueId": + suggest = "connect_queue_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CampaignTelephonyChannelSubtypeConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CampaignTelephonyChannelSubtypeConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CampaignTelephonyChannelSubtypeConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + default_outbound_config: 'outputs.CampaignTelephonyOutboundConfig', + outbound_mode: 'outputs.CampaignTelephonyOutboundMode', + capacity: Optional[float] = None, + connect_queue_id: Optional[str] = None): + """ + Telephony Channel Subtype config + """ + pulumi.set(__self__, "default_outbound_config", default_outbound_config) + pulumi.set(__self__, "outbound_mode", outbound_mode) + if capacity is not None: + pulumi.set(__self__, "capacity", capacity) + if connect_queue_id is not None: + pulumi.set(__self__, "connect_queue_id", connect_queue_id) + + @property + @pulumi.getter(name="defaultOutboundConfig") + def default_outbound_config(self) -> 'outputs.CampaignTelephonyOutboundConfig': + return pulumi.get(self, "default_outbound_config") + + @property + @pulumi.getter(name="outboundMode") + def outbound_mode(self) -> 'outputs.CampaignTelephonyOutboundMode': + return pulumi.get(self, "outbound_mode") + + @property + @pulumi.getter + def capacity(self) -> Optional[float]: + return pulumi.get(self, "capacity") + + @property + @pulumi.getter(name="connectQueueId") + def connect_queue_id(self) -> Optional[str]: + return pulumi.get(self, "connect_queue_id") + + +@pulumi.output_type +class CampaignTelephonyOutboundConfig(dict): + """ + Default Telephone Outbound config + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "connectContactFlowId": + suggest = "connect_contact_flow_id" + elif key == "answerMachineDetectionConfig": + suggest = "answer_machine_detection_config" + elif key == "connectSourcePhoneNumber": + suggest = "connect_source_phone_number" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CampaignTelephonyOutboundConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CampaignTelephonyOutboundConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CampaignTelephonyOutboundConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + connect_contact_flow_id: str, + answer_machine_detection_config: Optional['outputs.CampaignAnswerMachineDetectionConfig'] = None, + connect_source_phone_number: Optional[str] = None): + """ + Default Telephone Outbound config + """ + pulumi.set(__self__, "connect_contact_flow_id", connect_contact_flow_id) + if answer_machine_detection_config is not None: + pulumi.set(__self__, "answer_machine_detection_config", answer_machine_detection_config) + if connect_source_phone_number is not None: + pulumi.set(__self__, "connect_source_phone_number", connect_source_phone_number) + + @property + @pulumi.getter(name="connectContactFlowId") + def connect_contact_flow_id(self) -> str: + return pulumi.get(self, "connect_contact_flow_id") + + @property + @pulumi.getter(name="answerMachineDetectionConfig") + def answer_machine_detection_config(self) -> Optional['outputs.CampaignAnswerMachineDetectionConfig']: + return pulumi.get(self, "answer_machine_detection_config") + + @property + @pulumi.getter(name="connectSourcePhoneNumber") + def connect_source_phone_number(self) -> Optional[str]: + return pulumi.get(self, "connect_source_phone_number") + + +@pulumi.output_type +class CampaignTelephonyOutboundMode(dict): + """ + Telephony Outbound Mode + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "agentlessConfig": + suggest = "agentless_config" + elif key == "predictiveConfig": + suggest = "predictive_config" + elif key == "progressiveConfig": + suggest = "progressive_config" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CampaignTelephonyOutboundMode. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CampaignTelephonyOutboundMode.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CampaignTelephonyOutboundMode.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + agentless_config: Optional['outputs.CampaignAgentlessConfig'] = None, + predictive_config: Optional['outputs.CampaignPredictiveConfig'] = None, + progressive_config: Optional['outputs.CampaignProgressiveConfig'] = None): + """ + Telephony Outbound Mode + """ + if agentless_config is not None: + pulumi.set(__self__, "agentless_config", agentless_config) + if predictive_config is not None: + pulumi.set(__self__, "predictive_config", predictive_config) + if progressive_config is not None: + pulumi.set(__self__, "progressive_config", progressive_config) + + @property + @pulumi.getter(name="agentlessConfig") + def agentless_config(self) -> Optional['outputs.CampaignAgentlessConfig']: + return pulumi.get(self, "agentless_config") + + @property + @pulumi.getter(name="predictiveConfig") + def predictive_config(self) -> Optional['outputs.CampaignPredictiveConfig']: + return pulumi.get(self, "predictive_config") + + @property + @pulumi.getter(name="progressiveConfig") + def progressive_config(self) -> Optional['outputs.CampaignProgressiveConfig']: + return pulumi.get(self, "progressive_config") + + +@pulumi.output_type +class CampaignTimeRange(dict): + """ + Time range in 24 hour format + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "endTime": + suggest = "end_time" + elif key == "startTime": + suggest = "start_time" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CampaignTimeRange. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CampaignTimeRange.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CampaignTimeRange.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + end_time: str, + start_time: str): + """ + Time range in 24 hour format + """ + pulumi.set(__self__, "end_time", end_time) + pulumi.set(__self__, "start_time", start_time) + + @property + @pulumi.getter(name="endTime") + def end_time(self) -> str: + return pulumi.get(self, "end_time") + + @property + @pulumi.getter(name="startTime") + def start_time(self) -> str: + return pulumi.get(self, "start_time") + + +@pulumi.output_type +class CampaignTimeWindow(dict): + """ + Time window config + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "openHours": + suggest = "open_hours" + elif key == "restrictedPeriods": + suggest = "restricted_periods" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CampaignTimeWindow. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CampaignTimeWindow.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CampaignTimeWindow.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + open_hours: 'outputs.CampaignOpenHours', + restricted_periods: Optional['outputs.CampaignRestrictedPeriods'] = None): + """ + Time window config + """ + pulumi.set(__self__, "open_hours", open_hours) + if restricted_periods is not None: + pulumi.set(__self__, "restricted_periods", restricted_periods) + + @property + @pulumi.getter(name="openHours") + def open_hours(self) -> 'outputs.CampaignOpenHours': + return pulumi.get(self, "open_hours") + + @property + @pulumi.getter(name="restrictedPeriods") + def restricted_periods(self) -> Optional['outputs.CampaignRestrictedPeriods']: + return pulumi.get(self, "restricted_periods") + + diff --git a/sdk/python/pulumi_aws_native/dynamodb/_inputs.py b/sdk/python/pulumi_aws_native/dynamodb/_inputs.py index 21ff9a7c56..4d70ca2c05 100644 --- a/sdk/python/pulumi_aws_native/dynamodb/_inputs.py +++ b/sdk/python/pulumi_aws_native/dynamodb/_inputs.py @@ -58,6 +58,8 @@ 'GlobalTableTargetTrackingScalingPolicyConfigurationArgsDict', 'GlobalTableTimeToLiveSpecificationArgs', 'GlobalTableTimeToLiveSpecificationArgsDict', + 'GlobalTableWarmThroughputArgs', + 'GlobalTableWarmThroughputArgsDict', 'GlobalTableWriteOnDemandThroughputSettingsArgs', 'GlobalTableWriteOnDemandThroughputSettingsArgsDict', 'GlobalTableWriteProvisionedThroughputSettingsArgs', @@ -98,6 +100,8 @@ 'TableStreamSpecificationArgsDict', 'TableTimeToLiveSpecificationArgs', 'TableTimeToLiveSpecificationArgsDict', + 'TableWarmThroughputArgs', + 'TableWarmThroughputArgsDict', ] MYPY = False @@ -317,9 +321,10 @@ class GlobalTableGlobalSecondaryIndexArgsDict(TypedDict): """ Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. """ + warm_throughput: NotRequired[pulumi.Input['GlobalTableWarmThroughputArgsDict']] write_on_demand_throughput_settings: NotRequired[pulumi.Input['GlobalTableWriteOnDemandThroughputSettingsArgsDict']] """ - Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . """ write_provisioned_throughput_settings: NotRequired[pulumi.Input['GlobalTableWriteProvisionedThroughputSettingsArgsDict']] """ @@ -334,6 +339,7 @@ def __init__(__self__, *, index_name: pulumi.Input[str], key_schema: pulumi.Input[Sequence[pulumi.Input['GlobalTableKeySchemaArgs']]], projection: pulumi.Input['GlobalTableProjectionArgs'], + warm_throughput: Optional[pulumi.Input['GlobalTableWarmThroughputArgs']] = None, write_on_demand_throughput_settings: Optional[pulumi.Input['GlobalTableWriteOnDemandThroughputSettingsArgs']] = None, write_provisioned_throughput_settings: Optional[pulumi.Input['GlobalTableWriteProvisionedThroughputSettingsArgs']] = None): """ @@ -347,12 +353,14 @@ def __init__(__self__, *, > > The sort key of an item is also known as its *range attribute* . The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. :param pulumi.Input['GlobalTableProjectionArgs'] projection: Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. - :param pulumi.Input['GlobalTableWriteOnDemandThroughputSettingsArgs'] write_on_demand_throughput_settings: Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + :param pulumi.Input['GlobalTableWriteOnDemandThroughputSettingsArgs'] write_on_demand_throughput_settings: Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . :param pulumi.Input['GlobalTableWriteProvisionedThroughputSettingsArgs'] write_provisioned_throughput_settings: Defines write capacity settings for the global secondary index. You must specify a value for this property if the table's `BillingMode` is `PROVISIONED` . All replicas will have the same write capacity settings for this global secondary index. """ pulumi.set(__self__, "index_name", index_name) pulumi.set(__self__, "key_schema", key_schema) pulumi.set(__self__, "projection", projection) + if warm_throughput is not None: + pulumi.set(__self__, "warm_throughput", warm_throughput) if write_on_demand_throughput_settings is not None: pulumi.set(__self__, "write_on_demand_throughput_settings", write_on_demand_throughput_settings) if write_provisioned_throughput_settings is not None: @@ -401,11 +409,20 @@ def projection(self) -> pulumi.Input['GlobalTableProjectionArgs']: def projection(self, value: pulumi.Input['GlobalTableProjectionArgs']): pulumi.set(self, "projection", value) + @property + @pulumi.getter(name="warmThroughput") + def warm_throughput(self) -> Optional[pulumi.Input['GlobalTableWarmThroughputArgs']]: + return pulumi.get(self, "warm_throughput") + + @warm_throughput.setter + def warm_throughput(self, value: Optional[pulumi.Input['GlobalTableWarmThroughputArgs']]): + pulumi.set(self, "warm_throughput", value) + @property @pulumi.getter(name="writeOnDemandThroughputSettings") def write_on_demand_throughput_settings(self) -> Optional[pulumi.Input['GlobalTableWriteOnDemandThroughputSettingsArgs']]: """ - Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . """ return pulumi.get(self, "write_on_demand_throughput_settings") @@ -842,7 +859,7 @@ class GlobalTableReplicaGlobalSecondaryIndexSpecificationArgsDict(TypedDict): """ read_on_demand_throughput_settings: NotRequired[pulumi.Input['GlobalTableReadOnDemandThroughputSettingsArgsDict']] """ - Sets the read request settings for a replica global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + Sets the read request settings for a replica global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . """ read_provisioned_throughput_settings: NotRequired[pulumi.Input['GlobalTableReadProvisionedThroughputSettingsArgsDict']] """ @@ -861,7 +878,7 @@ def __init__(__self__, *, """ :param pulumi.Input[str] index_name: The name of the global secondary index. The name must be unique among all other indexes on this table. :param pulumi.Input['GlobalTableContributorInsightsSpecificationArgs'] contributor_insights_specification: Updates the status for contributor insights for a specific table or index. CloudWatch Contributor Insights for DynamoDB graphs display the partition key and (if applicable) sort key of frequently accessed items and frequently throttled items in plaintext. If you require the use of AWS Key Management Service (KMS) to encrypt this table’s partition key and sort key data with an AWS managed key or customer managed key, you should not enable CloudWatch Contributor Insights for DynamoDB for this table. - :param pulumi.Input['GlobalTableReadOnDemandThroughputSettingsArgs'] read_on_demand_throughput_settings: Sets the read request settings for a replica global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + :param pulumi.Input['GlobalTableReadOnDemandThroughputSettingsArgs'] read_on_demand_throughput_settings: Sets the read request settings for a replica global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . :param pulumi.Input['GlobalTableReadProvisionedThroughputSettingsArgs'] read_provisioned_throughput_settings: Allows you to specify the read capacity settings for a replica global secondary index when the `BillingMode` is set to `PROVISIONED` . """ pulumi.set(__self__, "index_name", index_name) @@ -900,7 +917,7 @@ def contributor_insights_specification(self, value: Optional[pulumi.Input['Globa @pulumi.getter(name="readOnDemandThroughputSettings") def read_on_demand_throughput_settings(self) -> Optional[pulumi.Input['GlobalTableReadOnDemandThroughputSettingsArgs']]: """ - Sets the read request settings for a replica global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + Sets the read request settings for a replica global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . """ return pulumi.get(self, "read_on_demand_throughput_settings") @@ -1610,6 +1627,42 @@ def attribute_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "attribute_name", value) +if not MYPY: + class GlobalTableWarmThroughputArgsDict(TypedDict): + read_units_per_second: NotRequired[pulumi.Input[int]] + write_units_per_second: NotRequired[pulumi.Input[int]] +elif False: + GlobalTableWarmThroughputArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class GlobalTableWarmThroughputArgs: + def __init__(__self__, *, + read_units_per_second: Optional[pulumi.Input[int]] = None, + write_units_per_second: Optional[pulumi.Input[int]] = None): + if read_units_per_second is not None: + pulumi.set(__self__, "read_units_per_second", read_units_per_second) + if write_units_per_second is not None: + pulumi.set(__self__, "write_units_per_second", write_units_per_second) + + @property + @pulumi.getter(name="readUnitsPerSecond") + def read_units_per_second(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "read_units_per_second") + + @read_units_per_second.setter + def read_units_per_second(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "read_units_per_second", value) + + @property + @pulumi.getter(name="writeUnitsPerSecond") + def write_units_per_second(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "write_units_per_second") + + @write_units_per_second.setter + def write_units_per_second(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "write_units_per_second", value) + + if not MYPY: class GlobalTableWriteOnDemandThroughputSettingsArgsDict(TypedDict): max_write_request_units: NotRequired[pulumi.Input[int]] @@ -1863,6 +1916,7 @@ class TableGlobalSecondaryIndexArgsDict(TypedDict): Represents the provisioned throughput settings for the specified global secondary index. For current minimum and maximum provisioned throughput values, see [Service, Account, and Table Quotas](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the *Amazon DynamoDB Developer Guide*. """ + warm_throughput: NotRequired[pulumi.Input['TableWarmThroughputArgsDict']] elif False: TableGlobalSecondaryIndexArgsDict: TypeAlias = Mapping[str, Any] @@ -1874,7 +1928,8 @@ def __init__(__self__, *, projection: pulumi.Input['TableProjectionArgs'], contributor_insights_specification: Optional[pulumi.Input['TableContributorInsightsSpecificationArgs']] = None, on_demand_throughput: Optional[pulumi.Input['TableOnDemandThroughputArgs']] = None, - provisioned_throughput: Optional[pulumi.Input['TableProvisionedThroughputArgs']] = None): + provisioned_throughput: Optional[pulumi.Input['TableProvisionedThroughputArgs']] = None, + warm_throughput: Optional[pulumi.Input['TableWarmThroughputArgs']] = None): """ Represents the properties of a global secondary index. :param pulumi.Input[str] index_name: The name of the global secondary index. The name must be unique among all other indexes on this table. @@ -1899,6 +1954,8 @@ def __init__(__self__, *, pulumi.set(__self__, "on_demand_throughput", on_demand_throughput) if provisioned_throughput is not None: pulumi.set(__self__, "provisioned_throughput", provisioned_throughput) + if warm_throughput is not None: + pulumi.set(__self__, "warm_throughput", warm_throughput) @property @pulumi.getter(name="indexName") @@ -1978,6 +2035,15 @@ def provisioned_throughput(self) -> Optional[pulumi.Input['TableProvisionedThrou def provisioned_throughput(self, value: Optional[pulumi.Input['TableProvisionedThroughputArgs']]): pulumi.set(self, "provisioned_throughput", value) + @property + @pulumi.getter(name="warmThroughput") + def warm_throughput(self) -> Optional[pulumi.Input['TableWarmThroughputArgs']]: + return pulumi.get(self, "warm_throughput") + + @warm_throughput.setter + def warm_throughput(self, value: Optional[pulumi.Input['TableWarmThroughputArgs']]): + pulumi.set(self, "warm_throughput", value) + if not MYPY: class TableImportSourceSpecificationArgsDict(TypedDict): @@ -2897,3 +2963,39 @@ def attribute_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "attribute_name", value) +if not MYPY: + class TableWarmThroughputArgsDict(TypedDict): + read_units_per_second: NotRequired[pulumi.Input[int]] + write_units_per_second: NotRequired[pulumi.Input[int]] +elif False: + TableWarmThroughputArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class TableWarmThroughputArgs: + def __init__(__self__, *, + read_units_per_second: Optional[pulumi.Input[int]] = None, + write_units_per_second: Optional[pulumi.Input[int]] = None): + if read_units_per_second is not None: + pulumi.set(__self__, "read_units_per_second", read_units_per_second) + if write_units_per_second is not None: + pulumi.set(__self__, "write_units_per_second", write_units_per_second) + + @property + @pulumi.getter(name="readUnitsPerSecond") + def read_units_per_second(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "read_units_per_second") + + @read_units_per_second.setter + def read_units_per_second(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "read_units_per_second", value) + + @property + @pulumi.getter(name="writeUnitsPerSecond") + def write_units_per_second(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "write_units_per_second") + + @write_units_per_second.setter + def write_units_per_second(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "write_units_per_second", value) + + diff --git a/sdk/python/pulumi_aws_native/dynamodb/get_global_table.py b/sdk/python/pulumi_aws_native/dynamodb/get_global_table.py index e8063d947b..10363d817f 100644 --- a/sdk/python/pulumi_aws_native/dynamodb/get_global_table.py +++ b/sdk/python/pulumi_aws_native/dynamodb/get_global_table.py @@ -25,7 +25,7 @@ @pulumi.output_type class GetGlobalTableResult: - def __init__(__self__, arn=None, attribute_definitions=None, billing_mode=None, global_secondary_indexes=None, replicas=None, sse_specification=None, stream_arn=None, stream_specification=None, table_id=None, time_to_live_specification=None, write_on_demand_throughput_settings=None, write_provisioned_throughput_settings=None): + def __init__(__self__, arn=None, attribute_definitions=None, billing_mode=None, global_secondary_indexes=None, replicas=None, sse_specification=None, stream_arn=None, stream_specification=None, table_id=None, time_to_live_specification=None, warm_throughput=None, write_on_demand_throughput_settings=None, write_provisioned_throughput_settings=None): if arn and not isinstance(arn, str): raise TypeError("Expected argument 'arn' to be a str") pulumi.set(__self__, "arn", arn) @@ -56,6 +56,9 @@ def __init__(__self__, arn=None, attribute_definitions=None, billing_mode=None, if time_to_live_specification and not isinstance(time_to_live_specification, dict): raise TypeError("Expected argument 'time_to_live_specification' to be a dict") pulumi.set(__self__, "time_to_live_specification", time_to_live_specification) + if warm_throughput and not isinstance(warm_throughput, dict): + raise TypeError("Expected argument 'warm_throughput' to be a dict") + pulumi.set(__self__, "warm_throughput", warm_throughput) if write_on_demand_throughput_settings and not isinstance(write_on_demand_throughput_settings, dict): raise TypeError("Expected argument 'write_on_demand_throughput_settings' to be a dict") pulumi.set(__self__, "write_on_demand_throughput_settings", write_on_demand_throughput_settings) @@ -158,11 +161,16 @@ def time_to_live_specification(self) -> Optional['outputs.GlobalTableTimeToLiveS """ return pulumi.get(self, "time_to_live_specification") + @property + @pulumi.getter(name="warmThroughput") + def warm_throughput(self) -> Optional['outputs.GlobalTableWarmThroughput']: + return pulumi.get(self, "warm_throughput") + @property @pulumi.getter(name="writeOnDemandThroughputSettings") def write_on_demand_throughput_settings(self) -> Optional['outputs.GlobalTableWriteOnDemandThroughputSettings']: """ - Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . """ return pulumi.get(self, "write_on_demand_throughput_settings") @@ -191,6 +199,7 @@ def __await__(self): stream_specification=self.stream_specification, table_id=self.table_id, time_to_live_specification=self.time_to_live_specification, + warm_throughput=self.warm_throughput, write_on_demand_throughput_settings=self.write_on_demand_throughput_settings, write_provisioned_throughput_settings=self.write_provisioned_throughput_settings) @@ -221,6 +230,7 @@ def get_global_table(table_name: Optional[str] = None, stream_specification=pulumi.get(__ret__, 'stream_specification'), table_id=pulumi.get(__ret__, 'table_id'), time_to_live_specification=pulumi.get(__ret__, 'time_to_live_specification'), + warm_throughput=pulumi.get(__ret__, 'warm_throughput'), write_on_demand_throughput_settings=pulumi.get(__ret__, 'write_on_demand_throughput_settings'), write_provisioned_throughput_settings=pulumi.get(__ret__, 'write_provisioned_throughput_settings')) def get_global_table_output(table_name: Optional[pulumi.Input[str]] = None, @@ -248,5 +258,6 @@ def get_global_table_output(table_name: Optional[pulumi.Input[str]] = None, stream_specification=pulumi.get(__response__, 'stream_specification'), table_id=pulumi.get(__response__, 'table_id'), time_to_live_specification=pulumi.get(__response__, 'time_to_live_specification'), + warm_throughput=pulumi.get(__response__, 'warm_throughput'), write_on_demand_throughput_settings=pulumi.get(__response__, 'write_on_demand_throughput_settings'), write_provisioned_throughput_settings=pulumi.get(__response__, 'write_provisioned_throughput_settings'))) diff --git a/sdk/python/pulumi_aws_native/dynamodb/get_table.py b/sdk/python/pulumi_aws_native/dynamodb/get_table.py index 9cb59dfcf9..6e1f10045c 100644 --- a/sdk/python/pulumi_aws_native/dynamodb/get_table.py +++ b/sdk/python/pulumi_aws_native/dynamodb/get_table.py @@ -26,7 +26,7 @@ @pulumi.output_type class GetTableResult: - def __init__(__self__, arn=None, attribute_definitions=None, billing_mode=None, contributor_insights_specification=None, deletion_protection_enabled=None, global_secondary_indexes=None, key_schema=None, kinesis_stream_specification=None, local_secondary_indexes=None, on_demand_throughput=None, point_in_time_recovery_specification=None, provisioned_throughput=None, resource_policy=None, sse_specification=None, stream_arn=None, stream_specification=None, table_class=None, tags=None, time_to_live_specification=None): + def __init__(__self__, arn=None, attribute_definitions=None, billing_mode=None, contributor_insights_specification=None, deletion_protection_enabled=None, global_secondary_indexes=None, key_schema=None, kinesis_stream_specification=None, local_secondary_indexes=None, on_demand_throughput=None, point_in_time_recovery_specification=None, provisioned_throughput=None, resource_policy=None, sse_specification=None, stream_arn=None, stream_specification=None, table_class=None, tags=None, time_to_live_specification=None, warm_throughput=None): if arn and not isinstance(arn, str): raise TypeError("Expected argument 'arn' to be a str") pulumi.set(__self__, "arn", arn) @@ -84,6 +84,9 @@ def __init__(__self__, arn=None, attribute_definitions=None, billing_mode=None, if time_to_live_specification and not isinstance(time_to_live_specification, dict): raise TypeError("Expected argument 'time_to_live_specification' to be a dict") pulumi.set(__self__, "time_to_live_specification", time_to_live_specification) + if warm_throughput and not isinstance(warm_throughput, dict): + raise TypeError("Expected argument 'warm_throughput' to be a dict") + pulumi.set(__self__, "warm_throughput", warm_throughput) @property @pulumi.getter @@ -255,6 +258,11 @@ def time_to_live_specification(self) -> Optional['outputs.TableTimeToLiveSpecifi """ return pulumi.get(self, "time_to_live_specification") + @property + @pulumi.getter(name="warmThroughput") + def warm_throughput(self) -> Optional['outputs.TableWarmThroughput']: + return pulumi.get(self, "warm_throughput") + class AwaitableGetTableResult(GetTableResult): # pylint: disable=using-constant-test @@ -280,7 +288,8 @@ def __await__(self): stream_specification=self.stream_specification, table_class=self.table_class, tags=self.tags, - time_to_live_specification=self.time_to_live_specification) + time_to_live_specification=self.time_to_live_specification, + warm_throughput=self.warm_throughput) def get_table(table_name: Optional[str] = None, @@ -290,7 +299,7 @@ def get_table(table_name: Optional[str] = None, You should be aware of the following behaviors when working with DDB tables: + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). - Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. + Our guidance is to use the latest schema documented for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. :param str table_name: A name for the table. If you don't specify a name, CFNlong generates a unique physical ID and uses that ID for the table name. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html). @@ -320,7 +329,8 @@ def get_table(table_name: Optional[str] = None, stream_specification=pulumi.get(__ret__, 'stream_specification'), table_class=pulumi.get(__ret__, 'table_class'), tags=pulumi.get(__ret__, 'tags'), - time_to_live_specification=pulumi.get(__ret__, 'time_to_live_specification')) + time_to_live_specification=pulumi.get(__ret__, 'time_to_live_specification'), + warm_throughput=pulumi.get(__ret__, 'warm_throughput')) def get_table_output(table_name: Optional[pulumi.Input[str]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetTableResult]: """ @@ -328,7 +338,7 @@ def get_table_output(table_name: Optional[pulumi.Input[str]] = None, You should be aware of the following behaviors when working with DDB tables: + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). - Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. + Our guidance is to use the latest schema documented for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. :param str table_name: A name for the table. If you don't specify a name, CFNlong generates a unique physical ID and uses that ID for the table name. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html). @@ -357,4 +367,5 @@ def get_table_output(table_name: Optional[pulumi.Input[str]] = None, stream_specification=pulumi.get(__response__, 'stream_specification'), table_class=pulumi.get(__response__, 'table_class'), tags=pulumi.get(__response__, 'tags'), - time_to_live_specification=pulumi.get(__response__, 'time_to_live_specification'))) + time_to_live_specification=pulumi.get(__response__, 'time_to_live_specification'), + warm_throughput=pulumi.get(__response__, 'warm_throughput'))) diff --git a/sdk/python/pulumi_aws_native/dynamodb/global_table.py b/sdk/python/pulumi_aws_native/dynamodb/global_table.py index 872a84cd84..da95548f24 100644 --- a/sdk/python/pulumi_aws_native/dynamodb/global_table.py +++ b/sdk/python/pulumi_aws_native/dynamodb/global_table.py @@ -32,6 +32,7 @@ def __init__(__self__, *, stream_specification: Optional[pulumi.Input['GlobalTableStreamSpecificationArgs']] = None, table_name: Optional[pulumi.Input[str]] = None, time_to_live_specification: Optional[pulumi.Input['GlobalTableTimeToLiveSpecificationArgs']] = None, + warm_throughput: Optional[pulumi.Input['GlobalTableWarmThroughputArgs']] = None, write_on_demand_throughput_settings: Optional[pulumi.Input['GlobalTableWriteOnDemandThroughputSettingsArgs']] = None, write_provisioned_throughput_settings: Optional[pulumi.Input['GlobalTableWriteProvisionedThroughputSettingsArgs']] = None): """ @@ -61,7 +62,7 @@ def __init__(__self__, *, > If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. :param pulumi.Input['GlobalTableTimeToLiveSpecificationArgs'] time_to_live_specification: Specifies the time to live (TTL) settings for the table. This setting will be applied to all replicas. - :param pulumi.Input['GlobalTableWriteOnDemandThroughputSettingsArgs'] write_on_demand_throughput_settings: Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + :param pulumi.Input['GlobalTableWriteOnDemandThroughputSettingsArgs'] write_on_demand_throughput_settings: Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . :param pulumi.Input['GlobalTableWriteProvisionedThroughputSettingsArgs'] write_provisioned_throughput_settings: Specifies an auto scaling policy for write capacity. This policy will be applied to all replicas. This setting must be specified if `BillingMode` is set to `PROVISIONED` . """ pulumi.set(__self__, "attribute_definitions", attribute_definitions) @@ -81,6 +82,8 @@ def __init__(__self__, *, pulumi.set(__self__, "table_name", table_name) if time_to_live_specification is not None: pulumi.set(__self__, "time_to_live_specification", time_to_live_specification) + if warm_throughput is not None: + pulumi.set(__self__, "warm_throughput", warm_throughput) if write_on_demand_throughput_settings is not None: pulumi.set(__self__, "write_on_demand_throughput_settings", write_on_demand_throughput_settings) if write_provisioned_throughput_settings is not None: @@ -221,11 +224,20 @@ def time_to_live_specification(self) -> Optional[pulumi.Input['GlobalTableTimeTo def time_to_live_specification(self, value: Optional[pulumi.Input['GlobalTableTimeToLiveSpecificationArgs']]): pulumi.set(self, "time_to_live_specification", value) + @property + @pulumi.getter(name="warmThroughput") + def warm_throughput(self) -> Optional[pulumi.Input['GlobalTableWarmThroughputArgs']]: + return pulumi.get(self, "warm_throughput") + + @warm_throughput.setter + def warm_throughput(self, value: Optional[pulumi.Input['GlobalTableWarmThroughputArgs']]): + pulumi.set(self, "warm_throughput", value) + @property @pulumi.getter(name="writeOnDemandThroughputSettings") def write_on_demand_throughput_settings(self) -> Optional[pulumi.Input['GlobalTableWriteOnDemandThroughputSettingsArgs']]: """ - Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . """ return pulumi.get(self, "write_on_demand_throughput_settings") @@ -261,6 +273,7 @@ def __init__(__self__, stream_specification: Optional[pulumi.Input[Union['GlobalTableStreamSpecificationArgs', 'GlobalTableStreamSpecificationArgsDict']]] = None, table_name: Optional[pulumi.Input[str]] = None, time_to_live_specification: Optional[pulumi.Input[Union['GlobalTableTimeToLiveSpecificationArgs', 'GlobalTableTimeToLiveSpecificationArgsDict']]] = None, + warm_throughput: Optional[pulumi.Input[Union['GlobalTableWarmThroughputArgs', 'GlobalTableWarmThroughputArgsDict']]] = None, write_on_demand_throughput_settings: Optional[pulumi.Input[Union['GlobalTableWriteOnDemandThroughputSettingsArgs', 'GlobalTableWriteOnDemandThroughputSettingsArgsDict']]] = None, write_provisioned_throughput_settings: Optional[pulumi.Input[Union['GlobalTableWriteProvisionedThroughputSettingsArgs', 'GlobalTableWriteProvisionedThroughputSettingsArgsDict']]] = None, __props__=None): @@ -294,7 +307,7 @@ def __init__(__self__, > If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. :param pulumi.Input[Union['GlobalTableTimeToLiveSpecificationArgs', 'GlobalTableTimeToLiveSpecificationArgsDict']] time_to_live_specification: Specifies the time to live (TTL) settings for the table. This setting will be applied to all replicas. - :param pulumi.Input[Union['GlobalTableWriteOnDemandThroughputSettingsArgs', 'GlobalTableWriteOnDemandThroughputSettingsArgsDict']] write_on_demand_throughput_settings: Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + :param pulumi.Input[Union['GlobalTableWriteOnDemandThroughputSettingsArgs', 'GlobalTableWriteOnDemandThroughputSettingsArgsDict']] write_on_demand_throughput_settings: Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . :param pulumi.Input[Union['GlobalTableWriteProvisionedThroughputSettingsArgs', 'GlobalTableWriteProvisionedThroughputSettingsArgsDict']] write_provisioned_throughput_settings: Specifies an auto scaling policy for write capacity. This policy will be applied to all replicas. This setting must be specified if `BillingMode` is set to `PROVISIONED` . """ ... @@ -331,6 +344,7 @@ def _internal_init(__self__, stream_specification: Optional[pulumi.Input[Union['GlobalTableStreamSpecificationArgs', 'GlobalTableStreamSpecificationArgsDict']]] = None, table_name: Optional[pulumi.Input[str]] = None, time_to_live_specification: Optional[pulumi.Input[Union['GlobalTableTimeToLiveSpecificationArgs', 'GlobalTableTimeToLiveSpecificationArgsDict']]] = None, + warm_throughput: Optional[pulumi.Input[Union['GlobalTableWarmThroughputArgs', 'GlobalTableWarmThroughputArgsDict']]] = None, write_on_demand_throughput_settings: Optional[pulumi.Input[Union['GlobalTableWriteOnDemandThroughputSettingsArgs', 'GlobalTableWriteOnDemandThroughputSettingsArgsDict']]] = None, write_provisioned_throughput_settings: Optional[pulumi.Input[Union['GlobalTableWriteProvisionedThroughputSettingsArgs', 'GlobalTableWriteProvisionedThroughputSettingsArgsDict']]] = None, __props__=None): @@ -358,6 +372,7 @@ def _internal_init(__self__, __props__.__dict__["stream_specification"] = stream_specification __props__.__dict__["table_name"] = table_name __props__.__dict__["time_to_live_specification"] = time_to_live_specification + __props__.__dict__["warm_throughput"] = warm_throughput __props__.__dict__["write_on_demand_throughput_settings"] = write_on_demand_throughput_settings __props__.__dict__["write_provisioned_throughput_settings"] = write_provisioned_throughput_settings __props__.__dict__["arn"] = None @@ -400,6 +415,7 @@ def get(resource_name: str, __props__.__dict__["table_id"] = None __props__.__dict__["table_name"] = None __props__.__dict__["time_to_live_specification"] = None + __props__.__dict__["warm_throughput"] = None __props__.__dict__["write_on_demand_throughput_settings"] = None __props__.__dict__["write_provisioned_throughput_settings"] = None return GlobalTable(resource_name, opts=opts, __props__=__props__) @@ -525,11 +541,16 @@ def time_to_live_specification(self) -> pulumi.Output[Optional['outputs.GlobalTa """ return pulumi.get(self, "time_to_live_specification") + @property + @pulumi.getter(name="warmThroughput") + def warm_throughput(self) -> pulumi.Output[Optional['outputs.GlobalTableWarmThroughput']]: + return pulumi.get(self, "warm_throughput") + @property @pulumi.getter(name="writeOnDemandThroughputSettings") def write_on_demand_throughput_settings(self) -> pulumi.Output[Optional['outputs.GlobalTableWriteOnDemandThroughputSettings']]: """ - Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . """ return pulumi.get(self, "write_on_demand_throughput_settings") diff --git a/sdk/python/pulumi_aws_native/dynamodb/outputs.py b/sdk/python/pulumi_aws_native/dynamodb/outputs.py index 2ecfbbfd06..5813f29f2f 100644 --- a/sdk/python/pulumi_aws_native/dynamodb/outputs.py +++ b/sdk/python/pulumi_aws_native/dynamodb/outputs.py @@ -38,6 +38,7 @@ 'GlobalTableTag', 'GlobalTableTargetTrackingScalingPolicyConfiguration', 'GlobalTableTimeToLiveSpecification', + 'GlobalTableWarmThroughput', 'GlobalTableWriteOnDemandThroughputSettings', 'GlobalTableWriteProvisionedThroughputSettings', 'TableAttributeDefinition', @@ -58,6 +59,7 @@ 'TableSseSpecification', 'TableStreamSpecification', 'TableTimeToLiveSpecification', + 'TableWarmThroughput', ] @pulumi.output_type @@ -226,6 +228,8 @@ def __key_warning(key: str): suggest = "index_name" elif key == "keySchema": suggest = "key_schema" + elif key == "warmThroughput": + suggest = "warm_throughput" elif key == "writeOnDemandThroughputSettings": suggest = "write_on_demand_throughput_settings" elif key == "writeProvisionedThroughputSettings": @@ -246,6 +250,7 @@ def __init__(__self__, *, index_name: str, key_schema: Sequence['outputs.GlobalTableKeySchema'], projection: 'outputs.GlobalTableProjection', + warm_throughput: Optional['outputs.GlobalTableWarmThroughput'] = None, write_on_demand_throughput_settings: Optional['outputs.GlobalTableWriteOnDemandThroughputSettings'] = None, write_provisioned_throughput_settings: Optional['outputs.GlobalTableWriteProvisionedThroughputSettings'] = None): """ @@ -259,12 +264,14 @@ def __init__(__self__, *, > > The sort key of an item is also known as its *range attribute* . The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. :param 'GlobalTableProjection' projection: Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. - :param 'GlobalTableWriteOnDemandThroughputSettings' write_on_demand_throughput_settings: Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + :param 'GlobalTableWriteOnDemandThroughputSettings' write_on_demand_throughput_settings: Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . :param 'GlobalTableWriteProvisionedThroughputSettings' write_provisioned_throughput_settings: Defines write capacity settings for the global secondary index. You must specify a value for this property if the table's `BillingMode` is `PROVISIONED` . All replicas will have the same write capacity settings for this global secondary index. """ pulumi.set(__self__, "index_name", index_name) pulumi.set(__self__, "key_schema", key_schema) pulumi.set(__self__, "projection", projection) + if warm_throughput is not None: + pulumi.set(__self__, "warm_throughput", warm_throughput) if write_on_demand_throughput_settings is not None: pulumi.set(__self__, "write_on_demand_throughput_settings", write_on_demand_throughput_settings) if write_provisioned_throughput_settings is not None: @@ -301,11 +308,16 @@ def projection(self) -> 'outputs.GlobalTableProjection': """ return pulumi.get(self, "projection") + @property + @pulumi.getter(name="warmThroughput") + def warm_throughput(self) -> Optional['outputs.GlobalTableWarmThroughput']: + return pulumi.get(self, "warm_throughput") + @property @pulumi.getter(name="writeOnDemandThroughputSettings") def write_on_demand_throughput_settings(self) -> Optional['outputs.GlobalTableWriteOnDemandThroughputSettings']: """ - Sets the write request settings for a global table or a global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + Sets the write request settings for a global table or a global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . """ return pulumi.get(self, "write_on_demand_throughput_settings") @@ -723,7 +735,7 @@ def __init__(__self__, *, """ :param str index_name: The name of the global secondary index. The name must be unique among all other indexes on this table. :param 'GlobalTableContributorInsightsSpecification' contributor_insights_specification: Updates the status for contributor insights for a specific table or index. CloudWatch Contributor Insights for DynamoDB graphs display the partition key and (if applicable) sort key of frequently accessed items and frequently throttled items in plaintext. If you require the use of AWS Key Management Service (KMS) to encrypt this table’s partition key and sort key data with an AWS managed key or customer managed key, you should not enable CloudWatch Contributor Insights for DynamoDB for this table. - :param 'GlobalTableReadOnDemandThroughputSettings' read_on_demand_throughput_settings: Sets the read request settings for a replica global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + :param 'GlobalTableReadOnDemandThroughputSettings' read_on_demand_throughput_settings: Sets the read request settings for a replica global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . :param 'GlobalTableReadProvisionedThroughputSettings' read_provisioned_throughput_settings: Allows you to specify the read capacity settings for a replica global secondary index when the `BillingMode` is set to `PROVISIONED` . """ pulumi.set(__self__, "index_name", index_name) @@ -754,7 +766,7 @@ def contributor_insights_specification(self) -> Optional['outputs.GlobalTableCon @pulumi.getter(name="readOnDemandThroughputSettings") def read_on_demand_throughput_settings(self) -> Optional['outputs.GlobalTableReadOnDemandThroughputSettings']: """ - Sets the read request settings for a replica global secondary index. You can only specify this setting if your resource uses the `PAY_PER_REQUEST` `BillingMode` . + Sets the read request settings for a replica global secondary index. You must specify this setting if you set the `BillingMode` to `PAY_PER_REQUEST` . """ return pulumi.get(self, "read_on_demand_throughput_settings") @@ -1342,6 +1354,46 @@ def attribute_name(self) -> Optional[str]: return pulumi.get(self, "attribute_name") +@pulumi.output_type +class GlobalTableWarmThroughput(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "readUnitsPerSecond": + suggest = "read_units_per_second" + elif key == "writeUnitsPerSecond": + suggest = "write_units_per_second" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in GlobalTableWarmThroughput. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + GlobalTableWarmThroughput.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + GlobalTableWarmThroughput.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + read_units_per_second: Optional[int] = None, + write_units_per_second: Optional[int] = None): + if read_units_per_second is not None: + pulumi.set(__self__, "read_units_per_second", read_units_per_second) + if write_units_per_second is not None: + pulumi.set(__self__, "write_units_per_second", write_units_per_second) + + @property + @pulumi.getter(name="readUnitsPerSecond") + def read_units_per_second(self) -> Optional[int]: + return pulumi.get(self, "read_units_per_second") + + @property + @pulumi.getter(name="writeUnitsPerSecond") + def write_units_per_second(self) -> Optional[int]: + return pulumi.get(self, "write_units_per_second") + + @pulumi.output_type class GlobalTableWriteOnDemandThroughputSettings(dict): @staticmethod @@ -1564,6 +1616,8 @@ def __key_warning(key: str): suggest = "on_demand_throughput" elif key == "provisionedThroughput": suggest = "provisioned_throughput" + elif key == "warmThroughput": + suggest = "warm_throughput" if suggest: pulumi.log.warn(f"Key '{key}' not found in TableGlobalSecondaryIndex. Access the value via the '{suggest}' property getter instead.") @@ -1582,7 +1636,8 @@ def __init__(__self__, *, projection: 'outputs.TableProjection', contributor_insights_specification: Optional['outputs.TableContributorInsightsSpecification'] = None, on_demand_throughput: Optional['outputs.TableOnDemandThroughput'] = None, - provisioned_throughput: Optional['outputs.TableProvisionedThroughput'] = None): + provisioned_throughput: Optional['outputs.TableProvisionedThroughput'] = None, + warm_throughput: Optional['outputs.TableWarmThroughput'] = None): """ Represents the properties of a global secondary index. :param str index_name: The name of the global secondary index. The name must be unique among all other indexes on this table. @@ -1607,6 +1662,8 @@ def __init__(__self__, *, pulumi.set(__self__, "on_demand_throughput", on_demand_throughput) if provisioned_throughput is not None: pulumi.set(__self__, "provisioned_throughput", provisioned_throughput) + if warm_throughput is not None: + pulumi.set(__self__, "warm_throughput", warm_throughput) @property @pulumi.getter(name="indexName") @@ -1662,6 +1719,11 @@ def provisioned_throughput(self) -> Optional['outputs.TableProvisionedThroughput """ return pulumi.get(self, "provisioned_throughput") + @property + @pulumi.getter(name="warmThroughput") + def warm_throughput(self) -> Optional['outputs.TableWarmThroughput']: + return pulumi.get(self, "warm_throughput") + @pulumi.output_type class TableImportSourceSpecification(dict): @@ -2491,3 +2553,43 @@ def attribute_name(self) -> Optional[str]: return pulumi.get(self, "attribute_name") +@pulumi.output_type +class TableWarmThroughput(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "readUnitsPerSecond": + suggest = "read_units_per_second" + elif key == "writeUnitsPerSecond": + suggest = "write_units_per_second" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in TableWarmThroughput. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + TableWarmThroughput.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + TableWarmThroughput.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + read_units_per_second: Optional[int] = None, + write_units_per_second: Optional[int] = None): + if read_units_per_second is not None: + pulumi.set(__self__, "read_units_per_second", read_units_per_second) + if write_units_per_second is not None: + pulumi.set(__self__, "write_units_per_second", write_units_per_second) + + @property + @pulumi.getter(name="readUnitsPerSecond") + def read_units_per_second(self) -> Optional[int]: + return pulumi.get(self, "read_units_per_second") + + @property + @pulumi.getter(name="writeUnitsPerSecond") + def write_units_per_second(self) -> Optional[int]: + return pulumi.get(self, "write_units_per_second") + + diff --git a/sdk/python/pulumi_aws_native/dynamodb/table.py b/sdk/python/pulumi_aws_native/dynamodb/table.py index dd24f9c296..a26622ed3d 100644 --- a/sdk/python/pulumi_aws_native/dynamodb/table.py +++ b/sdk/python/pulumi_aws_native/dynamodb/table.py @@ -42,7 +42,8 @@ def __init__(__self__, *, table_class: Optional[pulumi.Input[str]] = None, table_name: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None, - time_to_live_specification: Optional[pulumi.Input['TableTimeToLiveSpecificationArgs']] = None): + time_to_live_specification: Optional[pulumi.Input['TableTimeToLiveSpecificationArgs']] = None, + warm_throughput: Optional[pulumi.Input['TableWarmThroughputArgs']] = None): """ The set of arguments for constructing a Table resource. :param pulumi.Input[Union[Sequence[pulumi.Input['TableKeySchemaArgs']], Any]] key_schema: Specifies the attributes that make up the primary key for the table. The attributes in the ``KeySchema`` property must also be defined in the ``AttributeDefinitions`` property. @@ -120,6 +121,8 @@ def __init__(__self__, *, pulumi.set(__self__, "tags", tags) if time_to_live_specification is not None: pulumi.set(__self__, "time_to_live_specification", time_to_live_specification) + if warm_throughput is not None: + pulumi.set(__self__, "warm_throughput", warm_throughput) @property @pulumi.getter(name="keySchema") @@ -367,6 +370,15 @@ def time_to_live_specification(self) -> Optional[pulumi.Input['TableTimeToLiveSp def time_to_live_specification(self, value: Optional[pulumi.Input['TableTimeToLiveSpecificationArgs']]): pulumi.set(self, "time_to_live_specification", value) + @property + @pulumi.getter(name="warmThroughput") + def warm_throughput(self) -> Optional[pulumi.Input['TableWarmThroughputArgs']]: + return pulumi.get(self, "warm_throughput") + + @warm_throughput.setter + def warm_throughput(self, value: Optional[pulumi.Input['TableWarmThroughputArgs']]): + pulumi.set(self, "warm_throughput", value) + class Table(pulumi.CustomResource): @overload @@ -392,13 +404,14 @@ def __init__(__self__, table_name: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.TagArgs', '_root_inputs.TagArgsDict']]]]] = None, time_to_live_specification: Optional[pulumi.Input[Union['TableTimeToLiveSpecificationArgs', 'TableTimeToLiveSpecificationArgsDict']]] = None, + warm_throughput: Optional[pulumi.Input[Union['TableWarmThroughputArgs', 'TableWarmThroughputArgsDict']]] = None, __props__=None): """ The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*. You should be aware of the following behaviors when working with DDB tables: + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). - Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. + Our guidance is to use the latest schema documented for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. ## Example Usage ### Example @@ -677,7 +690,7 @@ def __init__(__self__, You should be aware of the following behaviors when working with DDB tables: + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). - Our guidance is to use the latest schema documented here for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. + Our guidance is to use the latest schema documented for your CFNlong templates. This schema supports the provisioning of all table settings below. When using this schema in your CFNlong templates, please ensure that your Identity and Access Management (IAM) policies are updated with appropriate permissions to allow for the authorization of these setting changes. ## Example Usage ### Example @@ -939,6 +952,7 @@ def _internal_init(__self__, table_name: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.TagArgs', '_root_inputs.TagArgsDict']]]]] = None, time_to_live_specification: Optional[pulumi.Input[Union['TableTimeToLiveSpecificationArgs', 'TableTimeToLiveSpecificationArgsDict']]] = None, + warm_throughput: Optional[pulumi.Input[Union['TableWarmThroughputArgs', 'TableWarmThroughputArgsDict']]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -969,6 +983,7 @@ def _internal_init(__self__, __props__.__dict__["table_name"] = table_name __props__.__dict__["tags"] = tags __props__.__dict__["time_to_live_specification"] = time_to_live_specification + __props__.__dict__["warm_throughput"] = warm_throughput __props__.__dict__["arn"] = None __props__.__dict__["stream_arn"] = None replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["importSourceSpecification", "tableName"]) @@ -1016,6 +1031,7 @@ def get(resource_name: str, __props__.__dict__["table_name"] = None __props__.__dict__["tags"] = None __props__.__dict__["time_to_live_specification"] = None + __props__.__dict__["warm_throughput"] = None return Table(resource_name, opts=opts, __props__=__props__) @property @@ -1206,3 +1222,8 @@ def time_to_live_specification(self) -> pulumi.Output[Optional['outputs.TableTim """ return pulumi.get(self, "time_to_live_specification") + @property + @pulumi.getter(name="warmThroughput") + def warm_throughput(self) -> pulumi.Output[Optional['outputs.TableWarmThroughput']]: + return pulumi.get(self, "warm_throughput") + diff --git a/sdk/python/pulumi_aws_native/eks/_inputs.py b/sdk/python/pulumi_aws_native/eks/_inputs.py index bc89bbc679..86dd2f388a 100644 --- a/sdk/python/pulumi_aws_native/eks/_inputs.py +++ b/sdk/python/pulumi_aws_native/eks/_inputs.py @@ -56,6 +56,8 @@ 'LoggingArgsDict', 'NodegroupLaunchTemplateSpecificationArgs', 'NodegroupLaunchTemplateSpecificationArgsDict', + 'NodegroupNodeRepairConfigArgs', + 'NodegroupNodeRepairConfigArgsDict', 'NodegroupRemoteAccessArgs', 'NodegroupRemoteAccessArgsDict', 'NodegroupScalingConfigArgs', @@ -1263,6 +1265,42 @@ def version(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "version", value) +if not MYPY: + class NodegroupNodeRepairConfigArgsDict(TypedDict): + """ + The node auto repair configuration for node group. + """ + enabled: NotRequired[pulumi.Input[bool]] + """ + Set this value to true to enable node auto repair for the node group. + """ +elif False: + NodegroupNodeRepairConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class NodegroupNodeRepairConfigArgs: + def __init__(__self__, *, + enabled: Optional[pulumi.Input[bool]] = None): + """ + The node auto repair configuration for node group. + :param pulumi.Input[bool] enabled: Set this value to true to enable node auto repair for the node group. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + + @property + @pulumi.getter + def enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Set this value to true to enable node auto repair for the node group. + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enabled", value) + + if not MYPY: class NodegroupRemoteAccessArgsDict(TypedDict): """ diff --git a/sdk/python/pulumi_aws_native/eks/get_nodegroup.py b/sdk/python/pulumi_aws_native/eks/get_nodegroup.py index d55cea750a..3546456034 100644 --- a/sdk/python/pulumi_aws_native/eks/get_nodegroup.py +++ b/sdk/python/pulumi_aws_native/eks/get_nodegroup.py @@ -24,7 +24,7 @@ @pulumi.output_type class GetNodegroupResult: - def __init__(__self__, arn=None, id=None, labels=None, launch_template=None, release_version=None, scaling_config=None, tags=None, taints=None, update_config=None, version=None): + def __init__(__self__, arn=None, id=None, labels=None, launch_template=None, node_repair_config=None, release_version=None, scaling_config=None, tags=None, taints=None, update_config=None, version=None): if arn and not isinstance(arn, str): raise TypeError("Expected argument 'arn' to be a str") pulumi.set(__self__, "arn", arn) @@ -37,6 +37,9 @@ def __init__(__self__, arn=None, id=None, labels=None, launch_template=None, rel if launch_template and not isinstance(launch_template, dict): raise TypeError("Expected argument 'launch_template' to be a dict") pulumi.set(__self__, "launch_template", launch_template) + if node_repair_config and not isinstance(node_repair_config, dict): + raise TypeError("Expected argument 'node_repair_config' to be a dict") + pulumi.set(__self__, "node_repair_config", node_repair_config) if release_version and not isinstance(release_version, str): raise TypeError("Expected argument 'release_version' to be a str") pulumi.set(__self__, "release_version", release_version) @@ -85,6 +88,14 @@ def launch_template(self) -> Optional['outputs.NodegroupLaunchTemplateSpecificat """ return pulumi.get(self, "launch_template") + @property + @pulumi.getter(name="nodeRepairConfig") + def node_repair_config(self) -> Optional['outputs.NodegroupNodeRepairConfig']: + """ + The node auto repair configuration for node group. + """ + return pulumi.get(self, "node_repair_config") + @property @pulumi.getter(name="releaseVersion") def release_version(self) -> Optional[str]: @@ -144,6 +155,7 @@ def __await__(self): id=self.id, labels=self.labels, launch_template=self.launch_template, + node_repair_config=self.node_repair_config, release_version=self.release_version, scaling_config=self.scaling_config, tags=self.tags, @@ -167,6 +179,7 @@ def get_nodegroup(id: Optional[str] = None, id=pulumi.get(__ret__, 'id'), labels=pulumi.get(__ret__, 'labels'), launch_template=pulumi.get(__ret__, 'launch_template'), + node_repair_config=pulumi.get(__ret__, 'node_repair_config'), release_version=pulumi.get(__ret__, 'release_version'), scaling_config=pulumi.get(__ret__, 'scaling_config'), tags=pulumi.get(__ret__, 'tags'), @@ -187,6 +200,7 @@ def get_nodegroup_output(id: Optional[pulumi.Input[str]] = None, id=pulumi.get(__response__, 'id'), labels=pulumi.get(__response__, 'labels'), launch_template=pulumi.get(__response__, 'launch_template'), + node_repair_config=pulumi.get(__response__, 'node_repair_config'), release_version=pulumi.get(__response__, 'release_version'), scaling_config=pulumi.get(__response__, 'scaling_config'), tags=pulumi.get(__response__, 'tags'), diff --git a/sdk/python/pulumi_aws_native/eks/nodegroup.py b/sdk/python/pulumi_aws_native/eks/nodegroup.py index 5823368c45..506ed03467 100644 --- a/sdk/python/pulumi_aws_native/eks/nodegroup.py +++ b/sdk/python/pulumi_aws_native/eks/nodegroup.py @@ -31,6 +31,7 @@ def __init__(__self__, *, instance_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, launch_template: Optional[pulumi.Input['NodegroupLaunchTemplateSpecificationArgs']] = None, + node_repair_config: Optional[pulumi.Input['NodegroupNodeRepairConfigArgs']] = None, nodegroup_name: Optional[pulumi.Input[str]] = None, release_version: Optional[pulumi.Input[str]] = None, remote_access: Optional[pulumi.Input['NodegroupRemoteAccessArgs']] = None, @@ -51,6 +52,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] instance_types: Specify the instance types for a node group. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: The Kubernetes labels to be applied to the nodes in the node group when they are created. :param pulumi.Input['NodegroupLaunchTemplateSpecificationArgs'] launch_template: An object representing a node group's launch template specification. + :param pulumi.Input['NodegroupNodeRepairConfigArgs'] node_repair_config: The node auto repair configuration for node group. :param pulumi.Input[str] nodegroup_name: The unique name to give your node group. :param pulumi.Input[str] release_version: The AMI version of the Amazon EKS-optimized AMI to use with your node group. :param pulumi.Input['NodegroupRemoteAccessArgs'] remote_access: The remote access (SSH) configuration to use with your node group. @@ -77,6 +79,8 @@ def __init__(__self__, *, pulumi.set(__self__, "labels", labels) if launch_template is not None: pulumi.set(__self__, "launch_template", launch_template) + if node_repair_config is not None: + pulumi.set(__self__, "node_repair_config", node_repair_config) if nodegroup_name is not None: pulumi.set(__self__, "nodegroup_name", nodegroup_name) if release_version is not None: @@ -214,6 +218,18 @@ def launch_template(self) -> Optional[pulumi.Input['NodegroupLaunchTemplateSpeci def launch_template(self, value: Optional[pulumi.Input['NodegroupLaunchTemplateSpecificationArgs']]): pulumi.set(self, "launch_template", value) + @property + @pulumi.getter(name="nodeRepairConfig") + def node_repair_config(self) -> Optional[pulumi.Input['NodegroupNodeRepairConfigArgs']]: + """ + The node auto repair configuration for node group. + """ + return pulumi.get(self, "node_repair_config") + + @node_repair_config.setter + def node_repair_config(self, value: Optional[pulumi.Input['NodegroupNodeRepairConfigArgs']]): + pulumi.set(self, "node_repair_config", value) + @property @pulumi.getter(name="nodegroupName") def nodegroup_name(self) -> Optional[pulumi.Input[str]]: @@ -324,6 +340,7 @@ def __init__(__self__, instance_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, launch_template: Optional[pulumi.Input[Union['NodegroupLaunchTemplateSpecificationArgs', 'NodegroupLaunchTemplateSpecificationArgsDict']]] = None, + node_repair_config: Optional[pulumi.Input[Union['NodegroupNodeRepairConfigArgs', 'NodegroupNodeRepairConfigArgsDict']]] = None, node_role: Optional[pulumi.Input[str]] = None, nodegroup_name: Optional[pulumi.Input[str]] = None, release_version: Optional[pulumi.Input[str]] = None, @@ -398,6 +415,7 @@ def __init__(__self__, :param pulumi.Input[Sequence[pulumi.Input[str]]] instance_types: Specify the instance types for a node group. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: The Kubernetes labels to be applied to the nodes in the node group when they are created. :param pulumi.Input[Union['NodegroupLaunchTemplateSpecificationArgs', 'NodegroupLaunchTemplateSpecificationArgsDict']] launch_template: An object representing a node group's launch template specification. + :param pulumi.Input[Union['NodegroupNodeRepairConfigArgs', 'NodegroupNodeRepairConfigArgsDict']] node_repair_config: The node auto repair configuration for node group. :param pulumi.Input[str] node_role: The Amazon Resource Name (ARN) of the IAM role to associate with your node group. :param pulumi.Input[str] nodegroup_name: The unique name to give your node group. :param pulumi.Input[str] release_version: The AMI version of the Amazon EKS-optimized AMI to use with your node group. @@ -491,6 +509,7 @@ def _internal_init(__self__, instance_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, launch_template: Optional[pulumi.Input[Union['NodegroupLaunchTemplateSpecificationArgs', 'NodegroupLaunchTemplateSpecificationArgsDict']]] = None, + node_repair_config: Optional[pulumi.Input[Union['NodegroupNodeRepairConfigArgs', 'NodegroupNodeRepairConfigArgsDict']]] = None, node_role: Optional[pulumi.Input[str]] = None, nodegroup_name: Optional[pulumi.Input[str]] = None, release_version: Optional[pulumi.Input[str]] = None, @@ -520,6 +539,7 @@ def _internal_init(__self__, __props__.__dict__["instance_types"] = instance_types __props__.__dict__["labels"] = labels __props__.__dict__["launch_template"] = launch_template + __props__.__dict__["node_repair_config"] = node_repair_config if node_role is None and not opts.urn: raise TypeError("Missing required property 'node_role'") __props__.__dict__["node_role"] = node_role @@ -570,6 +590,7 @@ def get(resource_name: str, __props__.__dict__["instance_types"] = None __props__.__dict__["labels"] = None __props__.__dict__["launch_template"] = None + __props__.__dict__["node_repair_config"] = None __props__.__dict__["node_role"] = None __props__.__dict__["nodegroup_name"] = None __props__.__dict__["release_version"] = None @@ -659,6 +680,14 @@ def launch_template(self) -> pulumi.Output[Optional['outputs.NodegroupLaunchTemp """ return pulumi.get(self, "launch_template") + @property + @pulumi.getter(name="nodeRepairConfig") + def node_repair_config(self) -> pulumi.Output[Optional['outputs.NodegroupNodeRepairConfig']]: + """ + The node auto repair configuration for node group. + """ + return pulumi.get(self, "node_repair_config") + @property @pulumi.getter(name="nodeRole") def node_role(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_aws_native/eks/outputs.py b/sdk/python/pulumi_aws_native/eks/outputs.py index 4ed533a442..504eb70745 100644 --- a/sdk/python/pulumi_aws_native/eks/outputs.py +++ b/sdk/python/pulumi_aws_native/eks/outputs.py @@ -37,6 +37,7 @@ 'IdentityProviderConfigRequiredClaim', 'Logging', 'NodegroupLaunchTemplateSpecification', + 'NodegroupNodeRepairConfig', 'NodegroupRemoteAccess', 'NodegroupScalingConfig', 'NodegroupTaint', @@ -1018,6 +1019,29 @@ def version(self) -> Optional[str]: return pulumi.get(self, "version") +@pulumi.output_type +class NodegroupNodeRepairConfig(dict): + """ + The node auto repair configuration for node group. + """ + def __init__(__self__, *, + enabled: Optional[bool] = None): + """ + The node auto repair configuration for node group. + :param bool enabled: Set this value to true to enable node auto repair for the node group. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + + @property + @pulumi.getter + def enabled(self) -> Optional[bool]: + """ + Set this value to true to enable node auto repair for the node group. + """ + return pulumi.get(self, "enabled") + + @pulumi.output_type class NodegroupRemoteAccess(dict): """ diff --git a/sdk/python/pulumi_aws_native/elasticache/_enums.py b/sdk/python/pulumi_aws_native/elasticache/_enums.py index 851ebbd785..d128bc7ad5 100644 --- a/sdk/python/pulumi_aws_native/elasticache/_enums.py +++ b/sdk/python/pulumi_aws_native/elasticache/_enums.py @@ -39,13 +39,15 @@ class UserAuthenticationModePropertiesType(str, Enum): class UserEngine(str, Enum): """ - Must be redis. + The target cache engine for the user. """ REDIS = "redis" + VALKEY = "valkey" class UserGroupEngine(str, Enum): """ - Must be redis. + The target cache engine for the user group. """ REDIS = "redis" + VALKEY = "valkey" diff --git a/sdk/python/pulumi_aws_native/elasticache/get_user.py b/sdk/python/pulumi_aws_native/elasticache/get_user.py index ebb713f3e6..45114f5175 100644 --- a/sdk/python/pulumi_aws_native/elasticache/get_user.py +++ b/sdk/python/pulumi_aws_native/elasticache/get_user.py @@ -14,6 +14,7 @@ from typing_extensions import NotRequired, TypedDict, TypeAlias from .. import _utilities from .. import outputs as _root_outputs +from ._enums import * __all__ = [ 'GetUserResult', @@ -24,10 +25,13 @@ @pulumi.output_type class GetUserResult: - def __init__(__self__, arn=None, status=None, tags=None): + def __init__(__self__, arn=None, engine=None, status=None, tags=None): if arn and not isinstance(arn, str): raise TypeError("Expected argument 'arn' to be a str") pulumi.set(__self__, "arn", arn) + if engine and not isinstance(engine, str): + raise TypeError("Expected argument 'engine' to be a str") + pulumi.set(__self__, "engine", engine) if status and not isinstance(status, str): raise TypeError("Expected argument 'status' to be a str") pulumi.set(__self__, "status", status) @@ -43,6 +47,14 @@ def arn(self) -> Optional[str]: """ return pulumi.get(self, "arn") + @property + @pulumi.getter + def engine(self) -> Optional['UserEngine']: + """ + The target cache engine for the user. + """ + return pulumi.get(self, "engine") + @property @pulumi.getter def status(self) -> Optional[str]: @@ -67,6 +79,7 @@ def __await__(self): yield self return GetUserResult( arn=self.arn, + engine=self.engine, status=self.status, tags=self.tags) @@ -86,6 +99,7 @@ def get_user(user_id: Optional[str] = None, return AwaitableGetUserResult( arn=pulumi.get(__ret__, 'arn'), + engine=pulumi.get(__ret__, 'engine'), status=pulumi.get(__ret__, 'status'), tags=pulumi.get(__ret__, 'tags')) def get_user_output(user_id: Optional[pulumi.Input[str]] = None, @@ -102,5 +116,6 @@ def get_user_output(user_id: Optional[pulumi.Input[str]] = None, __ret__ = pulumi.runtime.invoke_output('aws-native:elasticache:getUser', __args__, opts=opts, typ=GetUserResult) return __ret__.apply(lambda __response__: GetUserResult( arn=pulumi.get(__response__, 'arn'), + engine=pulumi.get(__response__, 'engine'), status=pulumi.get(__response__, 'status'), tags=pulumi.get(__response__, 'tags'))) diff --git a/sdk/python/pulumi_aws_native/elasticache/get_user_group.py b/sdk/python/pulumi_aws_native/elasticache/get_user_group.py index 9fe742190d..c770b8fa20 100644 --- a/sdk/python/pulumi_aws_native/elasticache/get_user_group.py +++ b/sdk/python/pulumi_aws_native/elasticache/get_user_group.py @@ -14,6 +14,7 @@ from typing_extensions import NotRequired, TypedDict, TypeAlias from .. import _utilities from .. import outputs as _root_outputs +from ._enums import * __all__ = [ 'GetUserGroupResult', @@ -24,10 +25,13 @@ @pulumi.output_type class GetUserGroupResult: - def __init__(__self__, arn=None, status=None, tags=None, user_ids=None): + def __init__(__self__, arn=None, engine=None, status=None, tags=None, user_ids=None): if arn and not isinstance(arn, str): raise TypeError("Expected argument 'arn' to be a str") pulumi.set(__self__, "arn", arn) + if engine and not isinstance(engine, str): + raise TypeError("Expected argument 'engine' to be a str") + pulumi.set(__self__, "engine", engine) if status and not isinstance(status, str): raise TypeError("Expected argument 'status' to be a str") pulumi.set(__self__, "status", status) @@ -46,6 +50,14 @@ def arn(self) -> Optional[str]: """ return pulumi.get(self, "arn") + @property + @pulumi.getter + def engine(self) -> Optional['UserGroupEngine']: + """ + The target cache engine for the user group. + """ + return pulumi.get(self, "engine") + @property @pulumi.getter def status(self) -> Optional[str]: @@ -78,6 +90,7 @@ def __await__(self): yield self return GetUserGroupResult( arn=self.arn, + engine=self.engine, status=self.status, tags=self.tags, user_ids=self.user_ids) @@ -98,6 +111,7 @@ def get_user_group(user_group_id: Optional[str] = None, return AwaitableGetUserGroupResult( arn=pulumi.get(__ret__, 'arn'), + engine=pulumi.get(__ret__, 'engine'), status=pulumi.get(__ret__, 'status'), tags=pulumi.get(__ret__, 'tags'), user_ids=pulumi.get(__ret__, 'user_ids')) @@ -115,6 +129,7 @@ def get_user_group_output(user_group_id: Optional[pulumi.Input[str]] = None, __ret__ = pulumi.runtime.invoke_output('aws-native:elasticache:getUserGroup', __args__, opts=opts, typ=GetUserGroupResult) return __ret__.apply(lambda __response__: GetUserGroupResult( arn=pulumi.get(__response__, 'arn'), + engine=pulumi.get(__response__, 'engine'), status=pulumi.get(__response__, 'status'), tags=pulumi.get(__response__, 'tags'), user_ids=pulumi.get(__response__, 'user_ids'))) diff --git a/sdk/python/pulumi_aws_native/elasticache/user.py b/sdk/python/pulumi_aws_native/elasticache/user.py index c31a027049..994bfe8994 100644 --- a/sdk/python/pulumi_aws_native/elasticache/user.py +++ b/sdk/python/pulumi_aws_native/elasticache/user.py @@ -34,7 +34,7 @@ def __init__(__self__, *, user_name: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a User resource. - :param pulumi.Input['UserEngine'] engine: Must be redis. + :param pulumi.Input['UserEngine'] engine: The target cache engine for the user. :param pulumi.Input[str] user_id: The ID of the user. :param pulumi.Input[str] access_string: Access permissions string used for this user account. :param pulumi.Input['AuthenticationModePropertiesArgs'] authentication_mode: Specifies the authentication mode to use. Below is an example of the possible JSON values: @@ -67,7 +67,7 @@ def __init__(__self__, *, @pulumi.getter def engine(self) -> pulumi.Input['UserEngine']: """ - Must be redis. + The target cache engine for the user. """ return pulumi.get(self, "engine") @@ -191,7 +191,7 @@ def __init__(__self__, { Passwords: ["*****", "******"] // If Type is password. } ``` - :param pulumi.Input['UserEngine'] engine: Must be redis. + :param pulumi.Input['UserEngine'] engine: The target cache engine for the user. :param pulumi.Input[bool] no_password_required: Indicates a password is not required for this user account. :param pulumi.Input[Sequence[pulumi.Input[str]]] passwords: Passwords used for this user account. You can create up to two passwords for each user. :param pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.TagArgs', '_root_inputs.TagArgsDict']]]] tags: An array of key-value pairs to apply to this user. @@ -253,7 +253,7 @@ def _internal_init(__self__, __props__.__dict__["user_name"] = user_name __props__.__dict__["arn"] = None __props__.__dict__["status"] = None - replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["engine", "userId", "userName"]) + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["userId", "userName"]) opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) super(User, __self__).__init__( 'aws-native:elasticache:User', @@ -322,7 +322,7 @@ def authentication_mode(self) -> pulumi.Output[Optional['outputs.AuthenticationM @pulumi.getter def engine(self) -> pulumi.Output['UserEngine']: """ - Must be redis. + The target cache engine for the user. """ return pulumi.get(self, "engine") diff --git a/sdk/python/pulumi_aws_native/elasticache/user_group.py b/sdk/python/pulumi_aws_native/elasticache/user_group.py index fa24409269..0fb04d9d27 100644 --- a/sdk/python/pulumi_aws_native/elasticache/user_group.py +++ b/sdk/python/pulumi_aws_native/elasticache/user_group.py @@ -28,7 +28,7 @@ def __init__(__self__, *, tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None): """ The set of arguments for constructing a UserGroup resource. - :param pulumi.Input['UserGroupEngine'] engine: Must be redis. + :param pulumi.Input['UserGroupEngine'] engine: The target cache engine for the user group. :param pulumi.Input[str] user_group_id: The ID of the user group. :param pulumi.Input[Sequence[pulumi.Input[str]]] user_ids: List of users associated to this user group. :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: An array of key-value pairs to apply to this user. @@ -43,7 +43,7 @@ def __init__(__self__, *, @pulumi.getter def engine(self) -> pulumi.Input['UserGroupEngine']: """ - Must be redis. + The target cache engine for the user group. """ return pulumi.get(self, "engine") @@ -103,7 +103,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input['UserGroupEngine'] engine: Must be redis. + :param pulumi.Input['UserGroupEngine'] engine: The target cache engine for the user group. :param pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.TagArgs', '_root_inputs.TagArgsDict']]]] tags: An array of key-value pairs to apply to this user. :param pulumi.Input[str] user_group_id: The ID of the user group. :param pulumi.Input[Sequence[pulumi.Input[str]]] user_ids: List of users associated to this user group. @@ -157,7 +157,7 @@ def _internal_init(__self__, __props__.__dict__["user_ids"] = user_ids __props__.__dict__["arn"] = None __props__.__dict__["status"] = None - replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["engine", "userGroupId"]) + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["userGroupId"]) opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) super(UserGroup, __self__).__init__( 'aws-native:elasticache:UserGroup', @@ -201,7 +201,7 @@ def arn(self) -> pulumi.Output[str]: @pulumi.getter def engine(self) -> pulumi.Output['UserGroupEngine']: """ - Must be redis. + The target cache engine for the user group. """ return pulumi.get(self, "engine") diff --git a/sdk/python/pulumi_aws_native/elasticloadbalancingv2/_inputs.py b/sdk/python/pulumi_aws_native/elasticloadbalancingv2/_inputs.py index 253c0ad9e3..664a2f65de 100644 --- a/sdk/python/pulumi_aws_native/elasticloadbalancingv2/_inputs.py +++ b/sdk/python/pulumi_aws_native/elasticloadbalancingv2/_inputs.py @@ -3028,6 +3028,9 @@ class LoadBalancerSubnetMappingArgsDict(TypedDict): [Network Load Balancers] The private IPv4 address for an internal load balancer. """ source_nat_ipv6_prefix: NotRequired[pulumi.Input[str]] + """ + [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block. + """ elif False: LoadBalancerSubnetMappingArgsDict: TypeAlias = Mapping[str, Any] @@ -3045,6 +3048,7 @@ def __init__(__self__, *, :param pulumi.Input[str] allocation_id: [Network Load Balancers] The allocation ID of the Elastic IP address for an internet-facing load balancer. :param pulumi.Input[str] i_pv6_address: [Network Load Balancers] The IPv6 address. :param pulumi.Input[str] private_i_pv4_address: [Network Load Balancers] The private IPv4 address for an internal load balancer. + :param pulumi.Input[str] source_nat_ipv6_prefix: [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block. """ pulumi.set(__self__, "subnet_id", subnet_id) if allocation_id is not None: @@ -3107,6 +3111,9 @@ def private_i_pv4_address(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="sourceNatIpv6Prefix") def source_nat_ipv6_prefix(self) -> Optional[pulumi.Input[str]]: + """ + [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block. + """ return pulumi.get(self, "source_nat_ipv6_prefix") @source_nat_ipv6_prefix.setter diff --git a/sdk/python/pulumi_aws_native/elasticloadbalancingv2/get_load_balancer.py b/sdk/python/pulumi_aws_native/elasticloadbalancingv2/get_load_balancer.py index f8e07d1113..489afe08a9 100644 --- a/sdk/python/pulumi_aws_native/elasticloadbalancingv2/get_load_balancer.py +++ b/sdk/python/pulumi_aws_native/elasticloadbalancingv2/get_load_balancer.py @@ -85,6 +85,9 @@ def dns_name(self) -> Optional[str]: @property @pulumi.getter(name="enablePrefixForIpv6SourceNat") def enable_prefix_for_ipv6_source_nat(self) -> Optional[str]: + """ + [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . + """ return pulumi.get(self, "enable_prefix_for_ipv6_source_nat") @property diff --git a/sdk/python/pulumi_aws_native/elasticloadbalancingv2/load_balancer.py b/sdk/python/pulumi_aws_native/elasticloadbalancingv2/load_balancer.py index 876753b2bc..9088924061 100644 --- a/sdk/python/pulumi_aws_native/elasticloadbalancingv2/load_balancer.py +++ b/sdk/python/pulumi_aws_native/elasticloadbalancingv2/load_balancer.py @@ -36,6 +36,7 @@ def __init__(__self__, *, type: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a LoadBalancer resource. + :param pulumi.Input[str] enable_prefix_for_ipv6_source_nat: [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . :param pulumi.Input[str] enforce_security_group_inbound_rules_on_private_link_traffic: Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. :param pulumi.Input[str] ip_address_type: Note: Internal load balancers must use the ``ipv4`` IP address type. [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses). @@ -91,6 +92,9 @@ def __init__(__self__, *, @property @pulumi.getter(name="enablePrefixForIpv6SourceNat") def enable_prefix_for_ipv6_source_nat(self) -> Optional[pulumi.Input[str]]: + """ + [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . + """ return pulumi.get(self, "enable_prefix_for_ipv6_source_nat") @enable_prefix_for_ipv6_source_nat.setter @@ -258,6 +262,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] enable_prefix_for_ipv6_source_nat: [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . :param pulumi.Input[str] enforce_security_group_inbound_rules_on_private_link_traffic: Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. :param pulumi.Input[str] ip_address_type: Note: Internal load balancers must use the ``ipv4`` IP address type. [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses). @@ -408,6 +413,9 @@ def dns_name(self) -> pulumi.Output[str]: @property @pulumi.getter(name="enablePrefixForIpv6SourceNat") def enable_prefix_for_ipv6_source_nat(self) -> pulumi.Output[Optional[str]]: + """ + [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . + """ return pulumi.get(self, "enable_prefix_for_ipv6_source_nat") @property diff --git a/sdk/python/pulumi_aws_native/elasticloadbalancingv2/outputs.py b/sdk/python/pulumi_aws_native/elasticloadbalancingv2/outputs.py index d4deece6e4..087127b596 100644 --- a/sdk/python/pulumi_aws_native/elasticloadbalancingv2/outputs.py +++ b/sdk/python/pulumi_aws_native/elasticloadbalancingv2/outputs.py @@ -2354,6 +2354,7 @@ def __init__(__self__, *, :param str allocation_id: [Network Load Balancers] The allocation ID of the Elastic IP address for an internet-facing load balancer. :param str i_pv6_address: [Network Load Balancers] The IPv6 address. :param str private_i_pv4_address: [Network Load Balancers] The private IPv4 address for an internal load balancer. + :param str source_nat_ipv6_prefix: [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block. """ pulumi.set(__self__, "subnet_id", subnet_id) if allocation_id is not None: @@ -2400,6 +2401,9 @@ def private_i_pv4_address(self) -> Optional[str]: @property @pulumi.getter(name="sourceNatIpv6Prefix") def source_nat_ipv6_prefix(self) -> Optional[str]: + """ + [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block. + """ return pulumi.get(self, "source_nat_ipv6_prefix") diff --git a/sdk/python/pulumi_aws_native/events/get_connection.py b/sdk/python/pulumi_aws_native/events/get_connection.py index deec137cc2..b6d0a5167f 100644 --- a/sdk/python/pulumi_aws_native/events/get_connection.py +++ b/sdk/python/pulumi_aws_native/events/get_connection.py @@ -13,6 +13,7 @@ else: from typing_extensions import NotRequired, TypedDict, TypeAlias from .. import _utilities +from . import outputs from ._enums import * __all__ = [ @@ -24,10 +25,13 @@ @pulumi.output_type class GetConnectionResult: - def __init__(__self__, arn=None, authorization_type=None, description=None, secret_arn=None): + def __init__(__self__, arn=None, auth_parameters=None, authorization_type=None, description=None, secret_arn=None): if arn and not isinstance(arn, str): raise TypeError("Expected argument 'arn' to be a str") pulumi.set(__self__, "arn", arn) + if auth_parameters and not isinstance(auth_parameters, dict): + raise TypeError("Expected argument 'auth_parameters' to be a dict") + pulumi.set(__self__, "auth_parameters", auth_parameters) if authorization_type and not isinstance(authorization_type, str): raise TypeError("Expected argument 'authorization_type' to be a str") pulumi.set(__self__, "authorization_type", authorization_type) @@ -46,6 +50,14 @@ def arn(self) -> Optional[str]: """ return pulumi.get(self, "arn") + @property + @pulumi.getter(name="authParameters") + def auth_parameters(self) -> Optional['outputs.ConnectionAuthParameters']: + """ + A `CreateConnectionAuthRequestParameters` object that contains the authorization parameters to use to authorize with the endpoint. + """ + return pulumi.get(self, "auth_parameters") + @property @pulumi.getter(name="authorizationType") def authorization_type(self) -> Optional['ConnectionAuthorizationType']: @@ -80,6 +92,7 @@ def __await__(self): yield self return GetConnectionResult( arn=self.arn, + auth_parameters=self.auth_parameters, authorization_type=self.authorization_type, description=self.description, secret_arn=self.secret_arn) @@ -100,6 +113,7 @@ def get_connection(name: Optional[str] = None, return AwaitableGetConnectionResult( arn=pulumi.get(__ret__, 'arn'), + auth_parameters=pulumi.get(__ret__, 'auth_parameters'), authorization_type=pulumi.get(__ret__, 'authorization_type'), description=pulumi.get(__ret__, 'description'), secret_arn=pulumi.get(__ret__, 'secret_arn')) @@ -117,6 +131,7 @@ def get_connection_output(name: Optional[pulumi.Input[str]] = None, __ret__ = pulumi.runtime.invoke_output('aws-native:events:getConnection', __args__, opts=opts, typ=GetConnectionResult) return __ret__.apply(lambda __response__: GetConnectionResult( arn=pulumi.get(__response__, 'arn'), + auth_parameters=pulumi.get(__response__, 'auth_parameters'), authorization_type=pulumi.get(__response__, 'authorization_type'), description=pulumi.get(__response__, 'description'), secret_arn=pulumi.get(__response__, 'secret_arn'))) diff --git a/sdk/python/pulumi_aws_native/fis/_inputs.py b/sdk/python/pulumi_aws_native/fis/_inputs.py index 38489a02bb..6abd057123 100644 --- a/sdk/python/pulumi_aws_native/fis/_inputs.py +++ b/sdk/python/pulumi_aws_native/fis/_inputs.py @@ -164,6 +164,9 @@ def targets(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] if not MYPY: class ExperimentTemplateCloudWatchDashboardArgsDict(TypedDict): dashboard_identifier: pulumi.Input[str] + """ + The Amazon Resource Name (ARN) of the CloudWatch dashboard to include in the experiment report. + """ elif False: ExperimentTemplateCloudWatchDashboardArgsDict: TypeAlias = Mapping[str, Any] @@ -171,11 +174,17 @@ class ExperimentTemplateCloudWatchDashboardArgsDict(TypedDict): class ExperimentTemplateCloudWatchDashboardArgs: def __init__(__self__, *, dashboard_identifier: pulumi.Input[str]): + """ + :param pulumi.Input[str] dashboard_identifier: The Amazon Resource Name (ARN) of the CloudWatch dashboard to include in the experiment report. + """ pulumi.set(__self__, "dashboard_identifier", dashboard_identifier) @property @pulumi.getter(name="dashboardIdentifier") def dashboard_identifier(self) -> pulumi.Input[str]: + """ + The Amazon Resource Name (ARN) of the CloudWatch dashboard to include in the experiment report. + """ return pulumi.get(self, "dashboard_identifier") @dashboard_identifier.setter @@ -237,6 +246,9 @@ def empty_target_resolution_mode(self, value: Optional[pulumi.Input['ExperimentT if not MYPY: class ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesArgsDict(TypedDict): + """ + The data sources for the experiment report. + """ cloud_watch_dashboards: NotRequired[pulumi.Input[Sequence[pulumi.Input['ExperimentTemplateCloudWatchDashboardArgsDict']]]] elif False: ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesArgsDict: TypeAlias = Mapping[str, Any] @@ -245,6 +257,9 @@ class ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesArgsDi class ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesArgs: def __init__(__self__, *, cloud_watch_dashboards: Optional[pulumi.Input[Sequence[pulumi.Input['ExperimentTemplateCloudWatchDashboardArgs']]]] = None): + """ + The data sources for the experiment report. + """ if cloud_watch_dashboards is not None: pulumi.set(__self__, "cloud_watch_dashboards", cloud_watch_dashboards) @@ -295,6 +310,9 @@ def prefix(self, value: Optional[pulumi.Input[str]]): if not MYPY: class ExperimentTemplateExperimentReportConfigurationOutputsPropertiesArgsDict(TypedDict): + """ + The output destinations of the experiment report. + """ experiment_report_s3_configuration: pulumi.Input['ExperimentTemplateExperimentReportConfigurationOutputsPropertiesExperimentReportS3ConfigurationPropertiesArgsDict'] elif False: ExperimentTemplateExperimentReportConfigurationOutputsPropertiesArgsDict: TypeAlias = Mapping[str, Any] @@ -303,6 +321,9 @@ class ExperimentTemplateExperimentReportConfigurationOutputsPropertiesArgsDict(T class ExperimentTemplateExperimentReportConfigurationOutputsPropertiesArgs: def __init__(__self__, *, experiment_report_s3_configuration: pulumi.Input['ExperimentTemplateExperimentReportConfigurationOutputsPropertiesExperimentReportS3ConfigurationPropertiesArgs']): + """ + The output destinations of the experiment report. + """ pulumi.set(__self__, "experiment_report_s3_configuration", experiment_report_s3_configuration) @property @@ -318,9 +339,21 @@ def experiment_report_s3_configuration(self, value: pulumi.Input['ExperimentTemp if not MYPY: class ExperimentTemplateExperimentReportConfigurationArgsDict(TypedDict): data_sources: pulumi.Input['ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesArgsDict'] + """ + The data sources for the experiment report. + """ outputs: pulumi.Input['ExperimentTemplateExperimentReportConfigurationOutputsPropertiesArgsDict'] + """ + The output destinations of the experiment report. + """ post_experiment_duration: NotRequired[pulumi.Input[str]] + """ + The duration after the experiment end time for the data sources to include in the report. + """ pre_experiment_duration: NotRequired[pulumi.Input[str]] + """ + The duration before the experiment start time for the data sources to include in the report. + """ elif False: ExperimentTemplateExperimentReportConfigurationArgsDict: TypeAlias = Mapping[str, Any] @@ -331,6 +364,12 @@ def __init__(__self__, *, outputs: pulumi.Input['ExperimentTemplateExperimentReportConfigurationOutputsPropertiesArgs'], post_experiment_duration: Optional[pulumi.Input[str]] = None, pre_experiment_duration: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input['ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesArgs'] data_sources: The data sources for the experiment report. + :param pulumi.Input['ExperimentTemplateExperimentReportConfigurationOutputsPropertiesArgs'] outputs: The output destinations of the experiment report. + :param pulumi.Input[str] post_experiment_duration: The duration after the experiment end time for the data sources to include in the report. + :param pulumi.Input[str] pre_experiment_duration: The duration before the experiment start time for the data sources to include in the report. + """ pulumi.set(__self__, "data_sources", data_sources) pulumi.set(__self__, "outputs", outputs) if post_experiment_duration is not None: @@ -341,6 +380,9 @@ def __init__(__self__, *, @property @pulumi.getter(name="dataSources") def data_sources(self) -> pulumi.Input['ExperimentTemplateExperimentReportConfigurationDataSourcesPropertiesArgs']: + """ + The data sources for the experiment report. + """ return pulumi.get(self, "data_sources") @data_sources.setter @@ -350,6 +392,9 @@ def data_sources(self, value: pulumi.Input['ExperimentTemplateExperimentReportCo @property @pulumi.getter def outputs(self) -> pulumi.Input['ExperimentTemplateExperimentReportConfigurationOutputsPropertiesArgs']: + """ + The output destinations of the experiment report. + """ return pulumi.get(self, "outputs") @outputs.setter @@ -359,6 +404,9 @@ def outputs(self, value: pulumi.Input['ExperimentTemplateExperimentReportConfigu @property @pulumi.getter(name="postExperimentDuration") def post_experiment_duration(self) -> Optional[pulumi.Input[str]]: + """ + The duration after the experiment end time for the data sources to include in the report. + """ return pulumi.get(self, "post_experiment_duration") @post_experiment_duration.setter @@ -368,6 +416,9 @@ def post_experiment_duration(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="preExperimentDuration") def pre_experiment_duration(self) -> Optional[pulumi.Input[str]]: + """ + The duration before the experiment start time for the data sources to include in the report. + """ return pulumi.get(self, "pre_experiment_duration") @pre_experiment_duration.setter diff --git a/sdk/python/pulumi_aws_native/fis/experiment_template.py b/sdk/python/pulumi_aws_native/fis/experiment_template.py index 62c9975df2..d2db8f2f8d 100644 --- a/sdk/python/pulumi_aws_native/fis/experiment_template.py +++ b/sdk/python/pulumi_aws_native/fis/experiment_template.py @@ -40,6 +40,7 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input['ExperimentTemplateTargetArgs']]] targets: The targets for the experiment. :param pulumi.Input[Mapping[str, pulumi.Input['ExperimentTemplateActionArgs']]] actions: The actions for the experiment. :param pulumi.Input['ExperimentTemplateExperimentOptionsArgs'] experiment_options: The experiment options for an experiment template. + :param pulumi.Input['ExperimentTemplateExperimentReportConfigurationArgs'] experiment_report_configuration: Describes the report configuration for the experiment template. :param pulumi.Input['ExperimentTemplateLogConfigurationArgs'] log_configuration: The configuration for experiment logging. """ pulumi.set(__self__, "description", description) @@ -143,6 +144,9 @@ def experiment_options(self, value: Optional[pulumi.Input['ExperimentTemplateExp @property @pulumi.getter(name="experimentReportConfiguration") def experiment_report_configuration(self) -> Optional[pulumi.Input['ExperimentTemplateExperimentReportConfigurationArgs']]: + """ + Describes the report configuration for the experiment template. + """ return pulumi.get(self, "experiment_report_configuration") @experiment_report_configuration.setter @@ -251,6 +255,7 @@ def __init__(__self__, :param pulumi.Input[Mapping[str, pulumi.Input[Union['ExperimentTemplateActionArgs', 'ExperimentTemplateActionArgsDict']]]] actions: The actions for the experiment. :param pulumi.Input[str] description: The description for the experiment template. :param pulumi.Input[Union['ExperimentTemplateExperimentOptionsArgs', 'ExperimentTemplateExperimentOptionsArgsDict']] experiment_options: The experiment options for an experiment template. + :param pulumi.Input[Union['ExperimentTemplateExperimentReportConfigurationArgs', 'ExperimentTemplateExperimentReportConfigurationArgsDict']] experiment_report_configuration: Describes the report configuration for the experiment template. :param pulumi.Input[Union['ExperimentTemplateLogConfigurationArgs', 'ExperimentTemplateLogConfigurationArgsDict']] log_configuration: The configuration for experiment logging. :param pulumi.Input[str] role_arn: The Amazon Resource Name (ARN) of an IAM role. :param pulumi.Input[Sequence[pulumi.Input[Union['ExperimentTemplateStopConditionArgs', 'ExperimentTemplateStopConditionArgsDict']]]] stop_conditions: The stop conditions for the experiment. @@ -456,6 +461,9 @@ def experiment_options(self) -> pulumi.Output[Optional['outputs.ExperimentTempla @property @pulumi.getter(name="experimentReportConfiguration") def experiment_report_configuration(self) -> pulumi.Output[Optional['outputs.ExperimentTemplateExperimentReportConfiguration']]: + """ + Describes the report configuration for the experiment template. + """ return pulumi.get(self, "experiment_report_configuration") @property diff --git a/sdk/python/pulumi_aws_native/fis/get_experiment_template.py b/sdk/python/pulumi_aws_native/fis/get_experiment_template.py index 5edc959288..45e75517bc 100644 --- a/sdk/python/pulumi_aws_native/fis/get_experiment_template.py +++ b/sdk/python/pulumi_aws_native/fis/get_experiment_template.py @@ -81,6 +81,9 @@ def experiment_options(self) -> Optional['outputs.ExperimentTemplateExperimentOp @property @pulumi.getter(name="experimentReportConfiguration") def experiment_report_configuration(self) -> Optional['outputs.ExperimentTemplateExperimentReportConfiguration']: + """ + Describes the report configuration for the experiment template. + """ return pulumi.get(self, "experiment_report_configuration") @property diff --git a/sdk/python/pulumi_aws_native/fis/outputs.py b/sdk/python/pulumi_aws_native/fis/outputs.py index ca76273455..5068186185 100644 --- a/sdk/python/pulumi_aws_native/fis/outputs.py +++ b/sdk/python/pulumi_aws_native/fis/outputs.py @@ -142,11 +142,17 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, dashboard_identifier: str): + """ + :param str dashboard_identifier: The Amazon Resource Name (ARN) of the CloudWatch dashboard to include in the experiment report. + """ pulumi.set(__self__, "dashboard_identifier", dashboard_identifier) @property @pulumi.getter(name="dashboardIdentifier") def dashboard_identifier(self) -> str: + """ + The Amazon Resource Name (ARN) of the CloudWatch dashboard to include in the experiment report. + """ return pulumi.get(self, "dashboard_identifier") @@ -228,6 +234,12 @@ def __init__(__self__, *, outputs: 'outputs.ExperimentTemplateExperimentReportConfigurationOutputsProperties', post_experiment_duration: Optional[str] = None, pre_experiment_duration: Optional[str] = None): + """ + :param 'ExperimentTemplateExperimentReportConfigurationDataSourcesProperties' data_sources: The data sources for the experiment report. + :param 'ExperimentTemplateExperimentReportConfigurationOutputsProperties' outputs: The output destinations of the experiment report. + :param str post_experiment_duration: The duration after the experiment end time for the data sources to include in the report. + :param str pre_experiment_duration: The duration before the experiment start time for the data sources to include in the report. + """ pulumi.set(__self__, "data_sources", data_sources) pulumi.set(__self__, "outputs", outputs) if post_experiment_duration is not None: @@ -238,26 +250,41 @@ def __init__(__self__, *, @property @pulumi.getter(name="dataSources") def data_sources(self) -> 'outputs.ExperimentTemplateExperimentReportConfigurationDataSourcesProperties': + """ + The data sources for the experiment report. + """ return pulumi.get(self, "data_sources") @property @pulumi.getter def outputs(self) -> 'outputs.ExperimentTemplateExperimentReportConfigurationOutputsProperties': + """ + The output destinations of the experiment report. + """ return pulumi.get(self, "outputs") @property @pulumi.getter(name="postExperimentDuration") def post_experiment_duration(self) -> Optional[str]: + """ + The duration after the experiment end time for the data sources to include in the report. + """ return pulumi.get(self, "post_experiment_duration") @property @pulumi.getter(name="preExperimentDuration") def pre_experiment_duration(self) -> Optional[str]: + """ + The duration before the experiment start time for the data sources to include in the report. + """ return pulumi.get(self, "pre_experiment_duration") @pulumi.output_type class ExperimentTemplateExperimentReportConfigurationDataSourcesProperties(dict): + """ + The data sources for the experiment report. + """ @staticmethod def __key_warning(key: str): suggest = None @@ -277,6 +304,9 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, cloud_watch_dashboards: Optional[Sequence['outputs.ExperimentTemplateCloudWatchDashboard']] = None): + """ + The data sources for the experiment report. + """ if cloud_watch_dashboards is not None: pulumi.set(__self__, "cloud_watch_dashboards", cloud_watch_dashboards) @@ -288,6 +318,9 @@ def cloud_watch_dashboards(self) -> Optional[Sequence['outputs.ExperimentTemplat @pulumi.output_type class ExperimentTemplateExperimentReportConfigurationOutputsProperties(dict): + """ + The output destinations of the experiment report. + """ @staticmethod def __key_warning(key: str): suggest = None @@ -307,6 +340,9 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, experiment_report_s3_configuration: 'outputs.ExperimentTemplateExperimentReportConfigurationOutputsPropertiesExperimentReportS3ConfigurationProperties'): + """ + The output destinations of the experiment report. + """ pulumi.set(__self__, "experiment_report_s3_configuration", experiment_report_s3_configuration) @property diff --git a/sdk/python/pulumi_aws_native/lambda_/permission.py b/sdk/python/pulumi_aws_native/lambda_/permission.py index 3435ebc42a..f9662ba924 100644 --- a/sdk/python/pulumi_aws_native/lambda_/permission.py +++ b/sdk/python/pulumi_aws_native/lambda_/permission.py @@ -38,7 +38,7 @@ def __init__(__self__, *, + *Partial ARN* – ``123456789012:function:my-function``. You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length. - :param pulumi.Input[str] principal: The AWS-service or AWS-account that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service. + :param pulumi.Input[str] principal: The AWS-service, AWS-account, IAM user, or IAM role that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service. :param pulumi.Input[str] event_source_token: For Alexa Smart Home functions, a token that the invoker must supply. :param pulumi.Input['PermissionFunctionUrlAuthType'] function_url_auth_type: The type of authentication that your function URL uses. Set to ``AWS_IAM`` if you want to restrict access to authenticated users only. Set to ``NONE`` if you want to bypass IAM authentication to create a public endpoint. For more information, see [Security and auth model for Lambda function URLs](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html). :param pulumi.Input[str] principal_org_id: The identifier for your organization in AOlong. Use this to grant permissions to all the AWS-accounts under this organization. @@ -94,7 +94,7 @@ def function_name(self, value: pulumi.Input[str]): @pulumi.getter def principal(self) -> pulumi.Input[str]: """ - The AWS-service or AWS-account that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service. + The AWS-service, AWS-account, IAM user, or IAM role that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service. """ return pulumi.get(self, "principal") @@ -196,7 +196,7 @@ def __init__(__self__, You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length. :param pulumi.Input['PermissionFunctionUrlAuthType'] function_url_auth_type: The type of authentication that your function URL uses. Set to ``AWS_IAM`` if you want to restrict access to authenticated users only. Set to ``NONE`` if you want to bypass IAM authentication to create a public endpoint. For more information, see [Security and auth model for Lambda function URLs](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html). - :param pulumi.Input[str] principal: The AWS-service or AWS-account that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service. + :param pulumi.Input[str] principal: The AWS-service, AWS-account, IAM user, or IAM role that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service. :param pulumi.Input[str] principal_org_id: The identifier for your organization in AOlong. Use this to grant permissions to all the AWS-accounts under this organization. :param pulumi.Input[str] source_account: For AWS-service, the ID of the AWS-account that owns the resource. Use this together with ``SourceArn`` to ensure that the specified account owns the resource. It is possible for an Amazon S3 bucket to be deleted by its owner and recreated by another account. :param pulumi.Input[str] source_arn: For AWS-services, the ARN of the AWS resource that invokes the function. For example, an Amazon S3 bucket or Amazon SNS topic. @@ -343,7 +343,7 @@ def function_url_auth_type(self) -> pulumi.Output[Optional['PermissionFunctionUr @pulumi.getter def principal(self) -> pulumi.Output[str]: """ - The AWS-service or AWS-account that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service. + The AWS-service, AWS-account, IAM user, or IAM role that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service. """ return pulumi.get(self, "principal") diff --git a/sdk/python/pulumi_aws_native/redshift/integration.py b/sdk/python/pulumi_aws_native/redshift/integration.py index 2bcfbc1eca..a0cc90a6a2 100644 --- a/sdk/python/pulumi_aws_native/redshift/integration.py +++ b/sdk/python/pulumi_aws_native/redshift/integration.py @@ -29,8 +29,8 @@ def __init__(__self__, *, tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None): """ The set of arguments for constructing a Integration resource. - :param pulumi.Input[str] source_arn: The Amazon Resource Name (ARN) of the database to use as the source for replication, for example, arn:aws:dynamodb:us-east-2:123412341234:table/dynamotable - :param pulumi.Input[str] target_arn: The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication, for example, arn:aws:redshift:us-east-2:123412341234:namespace:e43aab3e-10a3-4ec4-83d4-f227ff9bfbcf + :param pulumi.Input[str] source_arn: The Amazon Resource Name (ARN) of the database to use as the source for replication + :param pulumi.Input[str] target_arn: The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication :param pulumi.Input[Mapping[str, pulumi.Input[str]]] additional_encryption_context: The encryption context for the integration. For more information, see [Encryption context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) in the *AWS Key Management Service Developer Guide* . :param pulumi.Input[str] integration_name: The name of the integration. :param pulumi.Input[str] kms_key_id: An KMS key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, the default AWS owned KMS key is used. @@ -51,7 +51,7 @@ def __init__(__self__, *, @pulumi.getter(name="sourceArn") def source_arn(self) -> pulumi.Input[str]: """ - The Amazon Resource Name (ARN) of the database to use as the source for replication, for example, arn:aws:dynamodb:us-east-2:123412341234:table/dynamotable + The Amazon Resource Name (ARN) of the database to use as the source for replication """ return pulumi.get(self, "source_arn") @@ -63,7 +63,7 @@ def source_arn(self, value: pulumi.Input[str]): @pulumi.getter(name="targetArn") def target_arn(self) -> pulumi.Input[str]: """ - The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication, for example, arn:aws:redshift:us-east-2:123412341234:namespace:e43aab3e-10a3-4ec4-83d4-f227ff9bfbcf + The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication """ return pulumi.get(self, "target_arn") @@ -140,9 +140,9 @@ def __init__(__self__, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] additional_encryption_context: The encryption context for the integration. For more information, see [Encryption context](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) in the *AWS Key Management Service Developer Guide* . :param pulumi.Input[str] integration_name: The name of the integration. :param pulumi.Input[str] kms_key_id: An KMS key identifier for the key to use to encrypt the integration. If you don't specify an encryption key, the default AWS owned KMS key is used. - :param pulumi.Input[str] source_arn: The Amazon Resource Name (ARN) of the database to use as the source for replication, for example, arn:aws:dynamodb:us-east-2:123412341234:table/dynamotable + :param pulumi.Input[str] source_arn: The Amazon Resource Name (ARN) of the database to use as the source for replication :param pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.TagArgs', '_root_inputs.TagArgsDict']]]] tags: An array of key-value pairs to apply to this resource. - :param pulumi.Input[str] target_arn: The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication, for example, arn:aws:redshift:us-east-2:123412341234:namespace:e43aab3e-10a3-4ec4-83d4-f227ff9bfbcf + :param pulumi.Input[str] target_arn: The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication """ ... @overload @@ -273,7 +273,7 @@ def kms_key_id(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="sourceArn") def source_arn(self) -> pulumi.Output[str]: """ - The Amazon Resource Name (ARN) of the database to use as the source for replication, for example, arn:aws:dynamodb:us-east-2:123412341234:table/dynamotable + The Amazon Resource Name (ARN) of the database to use as the source for replication """ return pulumi.get(self, "source_arn") @@ -289,7 +289,7 @@ def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: @pulumi.getter(name="targetArn") def target_arn(self) -> pulumi.Output[str]: """ - The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication, for example, arn:aws:redshift:us-east-2:123412341234:namespace:e43aab3e-10a3-4ec4-83d4-f227ff9bfbcf + The Amazon Resource Name (ARN) of the Redshift data warehouse to use as the target for replication """ return pulumi.get(self, "target_arn") diff --git a/sdk/python/pulumi_aws_native/redshiftserverless/get_workgroup.py b/sdk/python/pulumi_aws_native/redshiftserverless/get_workgroup.py index fe3882ff67..3b5831dc87 100644 --- a/sdk/python/pulumi_aws_native/redshiftserverless/get_workgroup.py +++ b/sdk/python/pulumi_aws_native/redshiftserverless/get_workgroup.py @@ -14,6 +14,7 @@ from typing_extensions import NotRequired, TypedDict, TypeAlias from .. import _utilities from . import outputs +from .. import outputs as _root_outputs from ._enums import * __all__ = [ @@ -25,7 +26,7 @@ @pulumi.output_type class GetWorkgroupResult: - def __init__(__self__, enhanced_vpc_routing=None, port=None, publicly_accessible=None, workgroup=None): + def __init__(__self__, enhanced_vpc_routing=None, port=None, publicly_accessible=None, tags=None, workgroup=None): if enhanced_vpc_routing and not isinstance(enhanced_vpc_routing, bool): raise TypeError("Expected argument 'enhanced_vpc_routing' to be a bool") pulumi.set(__self__, "enhanced_vpc_routing", enhanced_vpc_routing) @@ -35,6 +36,9 @@ def __init__(__self__, enhanced_vpc_routing=None, port=None, publicly_accessible if publicly_accessible and not isinstance(publicly_accessible, bool): raise TypeError("Expected argument 'publicly_accessible' to be a bool") pulumi.set(__self__, "publicly_accessible", publicly_accessible) + if tags and not isinstance(tags, list): + raise TypeError("Expected argument 'tags' to be a list") + pulumi.set(__self__, "tags", tags) if workgroup and not isinstance(workgroup, dict): raise TypeError("Expected argument 'workgroup' to be a dict") pulumi.set(__self__, "workgroup", workgroup) @@ -63,6 +67,14 @@ def publicly_accessible(self) -> Optional[bool]: """ return pulumi.get(self, "publicly_accessible") + @property + @pulumi.getter + def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: + """ + The map of the key-value pairs used to tag the workgroup. + """ + return pulumi.get(self, "tags") + @property @pulumi.getter def workgroup(self) -> Optional['outputs.Workgroup']: @@ -81,6 +93,7 @@ def __await__(self): enhanced_vpc_routing=self.enhanced_vpc_routing, port=self.port, publicly_accessible=self.publicly_accessible, + tags=self.tags, workgroup=self.workgroup) @@ -101,6 +114,7 @@ def get_workgroup(workgroup_name: Optional[str] = None, enhanced_vpc_routing=pulumi.get(__ret__, 'enhanced_vpc_routing'), port=pulumi.get(__ret__, 'port'), publicly_accessible=pulumi.get(__ret__, 'publicly_accessible'), + tags=pulumi.get(__ret__, 'tags'), workgroup=pulumi.get(__ret__, 'workgroup')) def get_workgroup_output(workgroup_name: Optional[pulumi.Input[str]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetWorkgroupResult]: @@ -118,4 +132,5 @@ def get_workgroup_output(workgroup_name: Optional[pulumi.Input[str]] = None, enhanced_vpc_routing=pulumi.get(__response__, 'enhanced_vpc_routing'), port=pulumi.get(__response__, 'port'), publicly_accessible=pulumi.get(__response__, 'publicly_accessible'), + tags=pulumi.get(__response__, 'tags'), workgroup=pulumi.get(__response__, 'workgroup'))) diff --git a/sdk/python/pulumi_aws_native/sagemaker/_inputs.py b/sdk/python/pulumi_aws_native/sagemaker/_inputs.py index 7a42b82f7f..a7af882d9e 100644 --- a/sdk/python/pulumi_aws_native/sagemaker/_inputs.py +++ b/sdk/python/pulumi_aws_native/sagemaker/_inputs.py @@ -1041,6 +1041,7 @@ class ClusterInstanceGroupArgsDict(TypedDict): """ instance_storage_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['ClusterInstanceStorageConfigArgsDict']]]] on_start_deep_health_checks: NotRequired[pulumi.Input[Sequence[pulumi.Input['ClusterDeepHealthCheckType']]]] + override_vpc_config: NotRequired[pulumi.Input['ClusterVpcConfigArgsDict']] threads_per_core: NotRequired[pulumi.Input[int]] """ The number you specified to TreadsPerCore in CreateCluster for enabling or disabling multithreading. For instance types that support multithreading, you can specify 1 for disabling multithreading and 2 for enabling multithreading. @@ -1059,6 +1060,7 @@ def __init__(__self__, *, current_count: Optional[pulumi.Input[int]] = None, instance_storage_configs: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterInstanceStorageConfigArgs']]]] = None, on_start_deep_health_checks: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterDeepHealthCheckType']]]] = None, + override_vpc_config: Optional[pulumi.Input['ClusterVpcConfigArgs']] = None, threads_per_core: Optional[pulumi.Input[int]] = None): """ Details of an instance group in a SageMaker HyperPod cluster. @@ -1077,6 +1079,8 @@ def __init__(__self__, *, pulumi.set(__self__, "instance_storage_configs", instance_storage_configs) if on_start_deep_health_checks is not None: pulumi.set(__self__, "on_start_deep_health_checks", on_start_deep_health_checks) + if override_vpc_config is not None: + pulumi.set(__self__, "override_vpc_config", override_vpc_config) if threads_per_core is not None: pulumi.set(__self__, "threads_per_core", threads_per_core) @@ -1158,6 +1162,15 @@ def on_start_deep_health_checks(self) -> Optional[pulumi.Input[Sequence[pulumi.I def on_start_deep_health_checks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterDeepHealthCheckType']]]]): pulumi.set(self, "on_start_deep_health_checks", value) + @property + @pulumi.getter(name="overrideVpcConfig") + def override_vpc_config(self) -> Optional[pulumi.Input['ClusterVpcConfigArgs']]: + return pulumi.get(self, "override_vpc_config") + + @override_vpc_config.setter + def override_vpc_config(self, value: Optional[pulumi.Input['ClusterVpcConfigArgs']]): + pulumi.set(self, "override_vpc_config", value) + @property @pulumi.getter(name="threadsPerCore") def threads_per_core(self) -> Optional[pulumi.Input[int]]: diff --git a/sdk/python/pulumi_aws_native/sagemaker/cluster.py b/sdk/python/pulumi_aws_native/sagemaker/cluster.py index 42c543a245..33f9038997 100644 --- a/sdk/python/pulumi_aws_native/sagemaker/cluster.py +++ b/sdk/python/pulumi_aws_native/sagemaker/cluster.py @@ -199,7 +199,7 @@ def _internal_init(__self__, __props__.__dict__["cluster_status"] = None __props__.__dict__["creation_time"] = None __props__.__dict__["failure_message"] = None - replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["clusterName", "instanceGroups[*].executionRole", "instanceGroups[*].instanceGroupName", "instanceGroups[*].instanceType", "instanceGroups[*].threadsPerCore", "orchestrator", "vpcConfig"]) + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["clusterName", "instanceGroups[*].executionRole", "instanceGroups[*].instanceGroupName", "instanceGroups[*].instanceType", "instanceGroups[*].overrideVpcConfig", "instanceGroups[*].threadsPerCore", "orchestrator", "vpcConfig"]) opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) super(Cluster, __self__).__init__( 'aws-native:sagemaker:Cluster', diff --git a/sdk/python/pulumi_aws_native/sagemaker/outputs.py b/sdk/python/pulumi_aws_native/sagemaker/outputs.py index 943f18c8e5..c2bb911239 100644 --- a/sdk/python/pulumi_aws_native/sagemaker/outputs.py +++ b/sdk/python/pulumi_aws_native/sagemaker/outputs.py @@ -732,6 +732,8 @@ def __key_warning(key: str): suggest = "instance_storage_configs" elif key == "onStartDeepHealthChecks": suggest = "on_start_deep_health_checks" + elif key == "overrideVpcConfig": + suggest = "override_vpc_config" elif key == "threadsPerCore": suggest = "threads_per_core" @@ -755,6 +757,7 @@ def __init__(__self__, *, current_count: Optional[int] = None, instance_storage_configs: Optional[Sequence['outputs.ClusterInstanceStorageConfig']] = None, on_start_deep_health_checks: Optional[Sequence['ClusterDeepHealthCheckType']] = None, + override_vpc_config: Optional['outputs.ClusterVpcConfig'] = None, threads_per_core: Optional[int] = None): """ Details of an instance group in a SageMaker HyperPod cluster. @@ -773,6 +776,8 @@ def __init__(__self__, *, pulumi.set(__self__, "instance_storage_configs", instance_storage_configs) if on_start_deep_health_checks is not None: pulumi.set(__self__, "on_start_deep_health_checks", on_start_deep_health_checks) + if override_vpc_config is not None: + pulumi.set(__self__, "override_vpc_config", override_vpc_config) if threads_per_core is not None: pulumi.set(__self__, "threads_per_core", threads_per_core) @@ -822,6 +827,11 @@ def instance_storage_configs(self) -> Optional[Sequence['outputs.ClusterInstance def on_start_deep_health_checks(self) -> Optional[Sequence['ClusterDeepHealthCheckType']]: return pulumi.get(self, "on_start_deep_health_checks") + @property + @pulumi.getter(name="overrideVpcConfig") + def override_vpc_config(self) -> Optional['outputs.ClusterVpcConfig']: + return pulumi.get(self, "override_vpc_config") + @property @pulumi.getter(name="threadsPerCore") def threads_per_core(self) -> Optional[int]: diff --git a/sdk/python/pulumi_aws_native/vpclattice/_enums.py b/sdk/python/pulumi_aws_native/vpclattice/_enums.py index f6abfda0ac..ebdc448042 100644 --- a/sdk/python/pulumi_aws_native/vpclattice/_enums.py +++ b/sdk/python/pulumi_aws_native/vpclattice/_enums.py @@ -5,6 +5,7 @@ from enum import Enum __all__ = [ + 'AccessLogSubscriptionServiceNetworkLogType', 'AuthPolicyState', 'ListenerProtocol', 'RuleHttpMatchMethod', @@ -24,6 +25,11 @@ ] +class AccessLogSubscriptionServiceNetworkLogType(str, Enum): + SERVICE = "SERVICE" + RESOURCE = "RESOURCE" + + class AuthPolicyState(str, Enum): """ The state of the auth policy. The auth policy is only active when the auth type is set to `AWS _IAM` . If you provide a policy, then authentication and authorization decisions are made based on this policy and the client's IAM policy. If the auth type is `NONE` , then any auth policy you provide will remain inactive. diff --git a/sdk/python/pulumi_aws_native/vpclattice/_inputs.py b/sdk/python/pulumi_aws_native/vpclattice/_inputs.py index 8228639042..3c9f264ffe 100644 --- a/sdk/python/pulumi_aws_native/vpclattice/_inputs.py +++ b/sdk/python/pulumi_aws_native/vpclattice/_inputs.py @@ -48,6 +48,8 @@ 'ServiceDnsEntryArgsDict', 'ServiceNetworkServiceAssociationDnsEntryArgs', 'ServiceNetworkServiceAssociationDnsEntryArgsDict', + 'ServiceNetworkSharingConfigArgs', + 'ServiceNetworkSharingConfigArgsDict', 'TargetGroupConfigArgs', 'TargetGroupConfigArgsDict', 'TargetGroupHealthCheckConfigArgs', @@ -854,6 +856,28 @@ def hosted_zone_id(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "hosted_zone_id", value) +if not MYPY: + class ServiceNetworkSharingConfigArgsDict(TypedDict): + enabled: pulumi.Input[bool] +elif False: + ServiceNetworkSharingConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ServiceNetworkSharingConfigArgs: + def __init__(__self__, *, + enabled: pulumi.Input[bool]): + pulumi.set(__self__, "enabled", enabled) + + @property + @pulumi.getter + def enabled(self) -> pulumi.Input[bool]: + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: pulumi.Input[bool]): + pulumi.set(self, "enabled", value) + + if not MYPY: class TargetGroupConfigArgsDict(TypedDict): health_check: NotRequired[pulumi.Input['TargetGroupHealthCheckConfigArgsDict']] diff --git a/sdk/python/pulumi_aws_native/vpclattice/access_log_subscription.py b/sdk/python/pulumi_aws_native/vpclattice/access_log_subscription.py index 37830bfdae..7bc361235d 100644 --- a/sdk/python/pulumi_aws_native/vpclattice/access_log_subscription.py +++ b/sdk/python/pulumi_aws_native/vpclattice/access_log_subscription.py @@ -15,6 +15,7 @@ from .. import _utilities from .. import _inputs as _root_inputs from .. import outputs as _root_outputs +from ._enums import * __all__ = ['AccessLogSubscriptionArgs', 'AccessLogSubscription'] @@ -23,6 +24,7 @@ class AccessLogSubscriptionArgs: def __init__(__self__, *, destination_arn: pulumi.Input[str], resource_identifier: Optional[pulumi.Input[str]] = None, + service_network_log_type: Optional[pulumi.Input['AccessLogSubscriptionServiceNetworkLogType']] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None): """ The set of arguments for constructing a AccessLogSubscription resource. @@ -33,6 +35,8 @@ def __init__(__self__, *, pulumi.set(__self__, "destination_arn", destination_arn) if resource_identifier is not None: pulumi.set(__self__, "resource_identifier", resource_identifier) + if service_network_log_type is not None: + pulumi.set(__self__, "service_network_log_type", service_network_log_type) if tags is not None: pulumi.set(__self__, "tags", tags) @@ -60,6 +64,15 @@ def resource_identifier(self) -> Optional[pulumi.Input[str]]: def resource_identifier(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "resource_identifier", value) + @property + @pulumi.getter(name="serviceNetworkLogType") + def service_network_log_type(self) -> Optional[pulumi.Input['AccessLogSubscriptionServiceNetworkLogType']]: + return pulumi.get(self, "service_network_log_type") + + @service_network_log_type.setter + def service_network_log_type(self, value: Optional[pulumi.Input['AccessLogSubscriptionServiceNetworkLogType']]): + pulumi.set(self, "service_network_log_type", value) + @property @pulumi.getter def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]]: @@ -80,6 +93,7 @@ def __init__(__self__, opts: Optional[pulumi.ResourceOptions] = None, destination_arn: Optional[pulumi.Input[str]] = None, resource_identifier: Optional[pulumi.Input[str]] = None, + service_network_log_type: Optional[pulumi.Input['AccessLogSubscriptionServiceNetworkLogType']] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.TagArgs', '_root_inputs.TagArgsDict']]]]] = None, __props__=None): """ @@ -117,6 +131,7 @@ def _internal_init(__self__, opts: Optional[pulumi.ResourceOptions] = None, destination_arn: Optional[pulumi.Input[str]] = None, resource_identifier: Optional[pulumi.Input[str]] = None, + service_network_log_type: Optional[pulumi.Input['AccessLogSubscriptionServiceNetworkLogType']] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.TagArgs', '_root_inputs.TagArgsDict']]]]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) @@ -131,6 +146,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'destination_arn'") __props__.__dict__["destination_arn"] = destination_arn __props__.__dict__["resource_identifier"] = resource_identifier + __props__.__dict__["service_network_log_type"] = service_network_log_type __props__.__dict__["tags"] = tags __props__.__dict__["arn"] = None __props__.__dict__["aws_id"] = None @@ -166,6 +182,7 @@ def get(resource_name: str, __props__.__dict__["resource_arn"] = None __props__.__dict__["resource_id"] = None __props__.__dict__["resource_identifier"] = None + __props__.__dict__["service_network_log_type"] = None __props__.__dict__["tags"] = None return AccessLogSubscription(resource_name, opts=opts, __props__=__props__) @@ -217,6 +234,11 @@ def resource_identifier(self) -> pulumi.Output[Optional[str]]: """ return pulumi.get(self, "resource_identifier") + @property + @pulumi.getter(name="serviceNetworkLogType") + def service_network_log_type(self) -> pulumi.Output[Optional['AccessLogSubscriptionServiceNetworkLogType']]: + return pulumi.get(self, "service_network_log_type") + @property @pulumi.getter def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: diff --git a/sdk/python/pulumi_aws_native/vpclattice/get_access_log_subscription.py b/sdk/python/pulumi_aws_native/vpclattice/get_access_log_subscription.py index a25c31e6fa..73de515d95 100644 --- a/sdk/python/pulumi_aws_native/vpclattice/get_access_log_subscription.py +++ b/sdk/python/pulumi_aws_native/vpclattice/get_access_log_subscription.py @@ -14,6 +14,7 @@ from typing_extensions import NotRequired, TypedDict, TypeAlias from .. import _utilities from .. import outputs as _root_outputs +from ._enums import * __all__ = [ 'GetAccessLogSubscriptionResult', @@ -24,7 +25,7 @@ @pulumi.output_type class GetAccessLogSubscriptionResult: - def __init__(__self__, arn=None, destination_arn=None, id=None, resource_arn=None, resource_id=None, tags=None): + def __init__(__self__, arn=None, destination_arn=None, id=None, resource_arn=None, resource_id=None, service_network_log_type=None, tags=None): if arn and not isinstance(arn, str): raise TypeError("Expected argument 'arn' to be a str") pulumi.set(__self__, "arn", arn) @@ -40,6 +41,9 @@ def __init__(__self__, arn=None, destination_arn=None, id=None, resource_arn=Non if resource_id and not isinstance(resource_id, str): raise TypeError("Expected argument 'resource_id' to be a str") pulumi.set(__self__, "resource_id", resource_id) + if service_network_log_type and not isinstance(service_network_log_type, str): + raise TypeError("Expected argument 'service_network_log_type' to be a str") + pulumi.set(__self__, "service_network_log_type", service_network_log_type) if tags and not isinstance(tags, list): raise TypeError("Expected argument 'tags' to be a list") pulumi.set(__self__, "tags", tags) @@ -84,6 +88,11 @@ def resource_id(self) -> Optional[str]: """ return pulumi.get(self, "resource_id") + @property + @pulumi.getter(name="serviceNetworkLogType") + def service_network_log_type(self) -> Optional['AccessLogSubscriptionServiceNetworkLogType']: + return pulumi.get(self, "service_network_log_type") + @property @pulumi.getter def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: @@ -104,6 +113,7 @@ def __await__(self): id=self.id, resource_arn=self.resource_arn, resource_id=self.resource_id, + service_network_log_type=self.service_network_log_type, tags=self.tags) @@ -126,6 +136,7 @@ def get_access_log_subscription(arn: Optional[str] = None, id=pulumi.get(__ret__, 'id'), resource_arn=pulumi.get(__ret__, 'resource_arn'), resource_id=pulumi.get(__ret__, 'resource_id'), + service_network_log_type=pulumi.get(__ret__, 'service_network_log_type'), tags=pulumi.get(__ret__, 'tags')) def get_access_log_subscription_output(arn: Optional[pulumi.Input[str]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetAccessLogSubscriptionResult]: @@ -145,4 +156,5 @@ def get_access_log_subscription_output(arn: Optional[pulumi.Input[str]] = None, id=pulumi.get(__response__, 'id'), resource_arn=pulumi.get(__response__, 'resource_arn'), resource_id=pulumi.get(__response__, 'resource_id'), + service_network_log_type=pulumi.get(__response__, 'service_network_log_type'), tags=pulumi.get(__response__, 'tags'))) diff --git a/sdk/python/pulumi_aws_native/vpclattice/get_service_network.py b/sdk/python/pulumi_aws_native/vpclattice/get_service_network.py index d30feb4c76..c155e47dcc 100644 --- a/sdk/python/pulumi_aws_native/vpclattice/get_service_network.py +++ b/sdk/python/pulumi_aws_native/vpclattice/get_service_network.py @@ -13,6 +13,7 @@ else: from typing_extensions import NotRequired, TypedDict, TypeAlias from .. import _utilities +from . import outputs from .. import outputs as _root_outputs from ._enums import * @@ -25,7 +26,7 @@ @pulumi.output_type class GetServiceNetworkResult: - def __init__(__self__, arn=None, auth_type=None, created_at=None, id=None, last_updated_at=None, tags=None): + def __init__(__self__, arn=None, auth_type=None, created_at=None, id=None, last_updated_at=None, sharing_config=None, tags=None): if arn and not isinstance(arn, str): raise TypeError("Expected argument 'arn' to be a str") pulumi.set(__self__, "arn", arn) @@ -41,6 +42,9 @@ def __init__(__self__, arn=None, auth_type=None, created_at=None, id=None, last_ if last_updated_at and not isinstance(last_updated_at, str): raise TypeError("Expected argument 'last_updated_at' to be a str") pulumi.set(__self__, "last_updated_at", last_updated_at) + if sharing_config and not isinstance(sharing_config, dict): + raise TypeError("Expected argument 'sharing_config' to be a dict") + pulumi.set(__self__, "sharing_config", sharing_config) if tags and not isinstance(tags, list): raise TypeError("Expected argument 'tags' to be a list") pulumi.set(__self__, "tags", tags) @@ -88,6 +92,11 @@ def last_updated_at(self) -> Optional[str]: """ return pulumi.get(self, "last_updated_at") + @property + @pulumi.getter(name="sharingConfig") + def sharing_config(self) -> Optional['outputs.ServiceNetworkSharingConfig']: + return pulumi.get(self, "sharing_config") + @property @pulumi.getter def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: @@ -108,6 +117,7 @@ def __await__(self): created_at=self.created_at, id=self.id, last_updated_at=self.last_updated_at, + sharing_config=self.sharing_config, tags=self.tags) @@ -130,6 +140,7 @@ def get_service_network(arn: Optional[str] = None, created_at=pulumi.get(__ret__, 'created_at'), id=pulumi.get(__ret__, 'id'), last_updated_at=pulumi.get(__ret__, 'last_updated_at'), + sharing_config=pulumi.get(__ret__, 'sharing_config'), tags=pulumi.get(__ret__, 'tags')) def get_service_network_output(arn: Optional[pulumi.Input[str]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetServiceNetworkResult]: @@ -149,4 +160,5 @@ def get_service_network_output(arn: Optional[pulumi.Input[str]] = None, created_at=pulumi.get(__response__, 'created_at'), id=pulumi.get(__response__, 'id'), last_updated_at=pulumi.get(__response__, 'last_updated_at'), + sharing_config=pulumi.get(__response__, 'sharing_config'), tags=pulumi.get(__response__, 'tags'))) diff --git a/sdk/python/pulumi_aws_native/vpclattice/outputs.py b/sdk/python/pulumi_aws_native/vpclattice/outputs.py index 56b9c7b196..984543c7b1 100644 --- a/sdk/python/pulumi_aws_native/vpclattice/outputs.py +++ b/sdk/python/pulumi_aws_native/vpclattice/outputs.py @@ -33,6 +33,7 @@ 'RuleWeightedTargetGroup', 'ServiceDnsEntry', 'ServiceNetworkServiceAssociationDnsEntry', + 'ServiceNetworkSharingConfig', 'TargetGroupConfig', 'TargetGroupHealthCheckConfig', 'TargetGroupMatcher', @@ -753,6 +754,18 @@ def hosted_zone_id(self) -> Optional[str]: return pulumi.get(self, "hosted_zone_id") +@pulumi.output_type +class ServiceNetworkSharingConfig(dict): + def __init__(__self__, *, + enabled: bool): + pulumi.set(__self__, "enabled", enabled) + + @property + @pulumi.getter + def enabled(self) -> bool: + return pulumi.get(self, "enabled") + + @pulumi.output_type class TargetGroupConfig(dict): @staticmethod diff --git a/sdk/python/pulumi_aws_native/vpclattice/service_network.py b/sdk/python/pulumi_aws_native/vpclattice/service_network.py index e227a9ac81..2239a1f0a8 100644 --- a/sdk/python/pulumi_aws_native/vpclattice/service_network.py +++ b/sdk/python/pulumi_aws_native/vpclattice/service_network.py @@ -13,9 +13,11 @@ else: from typing_extensions import NotRequired, TypedDict, TypeAlias from .. import _utilities +from . import outputs from .. import _inputs as _root_inputs from .. import outputs as _root_outputs from ._enums import * +from ._inputs import * __all__ = ['ServiceNetworkArgs', 'ServiceNetwork'] @@ -24,6 +26,7 @@ class ServiceNetworkArgs: def __init__(__self__, *, auth_type: Optional[pulumi.Input['ServiceNetworkAuthType']] = None, name: Optional[pulumi.Input[str]] = None, + sharing_config: Optional[pulumi.Input['ServiceNetworkSharingConfigArgs']] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None): """ The set of arguments for constructing a ServiceNetwork resource. @@ -40,6 +43,8 @@ def __init__(__self__, *, pulumi.set(__self__, "auth_type", auth_type) if name is not None: pulumi.set(__self__, "name", name) + if sharing_config is not None: + pulumi.set(__self__, "sharing_config", sharing_config) if tags is not None: pulumi.set(__self__, "tags", tags) @@ -72,6 +77,15 @@ def name(self) -> Optional[pulumi.Input[str]]: def name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "name", value) + @property + @pulumi.getter(name="sharingConfig") + def sharing_config(self) -> Optional[pulumi.Input['ServiceNetworkSharingConfigArgs']]: + return pulumi.get(self, "sharing_config") + + @sharing_config.setter + def sharing_config(self, value: Optional[pulumi.Input['ServiceNetworkSharingConfigArgs']]): + pulumi.set(self, "sharing_config", value) + @property @pulumi.getter def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]]: @@ -92,6 +106,7 @@ def __init__(__self__, opts: Optional[pulumi.ResourceOptions] = None, auth_type: Optional[pulumi.Input['ServiceNetworkAuthType']] = None, name: Optional[pulumi.Input[str]] = None, + sharing_config: Optional[pulumi.Input[Union['ServiceNetworkSharingConfigArgs', 'ServiceNetworkSharingConfigArgsDict']]] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.TagArgs', '_root_inputs.TagArgsDict']]]]] = None, __props__=None): """ @@ -134,6 +149,7 @@ def _internal_init(__self__, opts: Optional[pulumi.ResourceOptions] = None, auth_type: Optional[pulumi.Input['ServiceNetworkAuthType']] = None, name: Optional[pulumi.Input[str]] = None, + sharing_config: Optional[pulumi.Input[Union['ServiceNetworkSharingConfigArgs', 'ServiceNetworkSharingConfigArgsDict']]] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.TagArgs', '_root_inputs.TagArgsDict']]]]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) @@ -146,6 +162,7 @@ def _internal_init(__self__, __props__.__dict__["auth_type"] = auth_type __props__.__dict__["name"] = name + __props__.__dict__["sharing_config"] = sharing_config __props__.__dict__["tags"] = tags __props__.__dict__["arn"] = None __props__.__dict__["aws_id"] = None @@ -181,6 +198,7 @@ def get(resource_name: str, __props__.__dict__["created_at"] = None __props__.__dict__["last_updated_at"] = None __props__.__dict__["name"] = None + __props__.__dict__["sharing_config"] = None __props__.__dict__["tags"] = None return ServiceNetwork(resource_name, opts=opts, __props__=__props__) @@ -237,6 +255,11 @@ def name(self) -> pulumi.Output[Optional[str]]: """ return pulumi.get(self, "name") + @property + @pulumi.getter(name="sharingConfig") + def sharing_config(self) -> pulumi.Output[Optional['outputs.ServiceNetworkSharingConfig']]: + return pulumi.get(self, "sharing_config") + @property @pulumi.getter def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: