From 7f8d280ab4fd9c5340db7539a124b8a0ef6942bb Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 25 Jul 2024 14:38:52 -0400 Subject: [PATCH 1/6] 07/24/2024 CloudFormation schemas in us-east-1; Refresh existing schemas. --- ..._ApplicationAutoScaling_ScalingPolicy.json | 482 +++++++------- .../schemas/AWS_Bedrock_DataSource.json | 2 +- .../schemas/AWS_Bedrock_KnowledgeBase.json | 122 +++- .../AWS_CleanRoomsML_TrainingDataset.json | 6 +- .../AWS_ConnectCampaigns_Campaign.json | 6 +- .../schemas/AWS_DMS_ReplicationConfig.json | 17 +- .../schemas/AWS_EC2_EIPAssociation.json | 14 +- .../schemas/AWS_EC2_Instance.json | 3 +- .../schemas/AWS_EC2_KeyPair.json | 6 +- .../schemas/AWS_EC2_LaunchTemplate.json | 28 +- .../AWS_EC2_NetworkInterfaceAttachment.json | 20 +- .../schemas/AWS_EC2_SubnetCidrBlock.json | 98 +-- .../schemas/AWS_EC2_VPCCidrBlock.json | 172 ++--- .../schemas/AWS_ECR_Repository.json | 2 +- .../AWS_ECR_RepositoryCreationTemplate.json | 12 +- .../schemas/AWS_EKS_Cluster.json | 592 ++++++++++-------- .../schemas/AWS_EKS_Nodegroup.json | 6 +- ...WS_EntityResolution_IdMappingWorkflow.json | 2 +- .../schemas/AWS_FMS_Policy.json | 2 +- ...balAccelerator_CrossAccountAttachment.json | 6 +- .../schemas/AWS_Lightsail_Alarm.json | 2 +- .../schemas/AWS_Lightsail_Certificate.json | 2 +- .../schemas/AWS_MediaConnect_FlowOutput.json | 8 + .../schemas/AWS_MediaPackageV2_Channel.json | 13 +- .../AWS_MediaPackageV2_OriginEndpoint.json | 26 + .../schemas/AWS_RDS_DBCluster.json | 5 +- .../schemas/AWS_RDS_DBInstance.json | 9 +- .../schemas/AWS_S3Outposts_Bucket.json | 7 +- .../schemas/AWS_Shield_ProtectionGroup.json | 7 +- .../schemas/AWS_WorkSpacesWeb_Portal.json | 9 +- .../AWS_WorkSpacesWeb_UserSettings.json | 3 + .../schemas/AWS_XRay_Group.json | 7 + .../schemas/AWS_XRay_SamplingRule.json | 7 + 33 files changed, 1007 insertions(+), 696 deletions(-) diff --git a/internal/service/cloudformation/schemas/AWS_ApplicationAutoScaling_ScalingPolicy.json b/internal/service/cloudformation/schemas/AWS_ApplicationAutoScaling_ScalingPolicy.json index b5aeb0cf1f..0200715371 100644 --- a/internal/service/cloudformation/schemas/AWS_ApplicationAutoScaling_ScalingPolicy.json +++ b/internal/service/cloudformation/schemas/AWS_ApplicationAutoScaling_ScalingPolicy.json @@ -1,233 +1,253 @@ { + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, "typeName": "AWS::ApplicationAutoScaling::ScalingPolicy", - "description": "Resource Type definition for AWS::ApplicationAutoScaling::ScalingPolicy", + "readOnlyProperties": [ + "/properties/Arn" + ], + "description": "The ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource defines a scaling policy that Application Auto Scaling uses to adjust the capacity of a scalable target. \n For more information, see [Target tracking scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) and [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*.", + "createOnlyProperties": [ + "/properties/PolicyName", + "/properties/ServiceNamespace", + "/properties/ResourceId", + "/properties/ScalableDimension", + "/properties/ScalingTargetId" + ], + "primaryIdentifier": [ + "/properties/Arn", + "/properties/ScalableDimension" + ], + "required": [ + "PolicyName", + "PolicyType" + ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "handlers": { + "read": { + "permissions": [ + "application-autoscaling:DescribeScalingPolicies" + ] + }, + "create": { + "permissions": [ + "application-autoscaling:DescribeScalingPolicies", + "application-autoscaling:PutScalingPolicy" + ] + }, + "update": { + "permissions": [ + "application-autoscaling:DescribeScalingPolicies", + "application-autoscaling:PutScalingPolicy" + ] + }, + "list": { + "permissions": [ + "application-autoscaling:DescribeScalingPolicies" + ], + "handlerSchema": { + "properties": { + "ServiceNamespace": { + "description": "The name of the service", + "type": "string" + } + }, + "required": [ + "ServiceNamespace" + ] + } + }, + "delete": { + "permissions": [ + "application-autoscaling:DescribeScalingPolicies", + "application-autoscaling:DeleteScalingPolicy" + ] + } + }, + "writeOnlyProperties": [ + "/properties/TargetTrackingScalingPolicyConfiguration/PredefinedMetricSpecification/ResourceLabel", + "/properties/ScalingTargetId" + ], + "additionalProperties": false, "definitions": { - "StepScalingPolicyConfiguration": { - "description": "A step scaling policy.", - "type": "object", + "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, + "type": "object", "properties": { - "AdjustmentType": { - "description": "Specifies how the ScalingAdjustment value in a StepAdjustment is interpreted.", + "Stat": { + "description": "The statistic to return. It can include any CloudWatch statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *Amazon CloudWatch User Guide*.\n The most commonly used metric for scaling is ``Average``.", "type": "string" }, - "Cooldown": { - "description": "The amount of time, in seconds, to wait for a previous scaling activity to take effect.", - "type": "integer" + "Metric": { + "description": "The CloudWatch metric to return, including the metric name, namespace, and dimensions. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html).", + "$ref": "#/definitions/TargetTrackingMetric" }, - "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", + "Unit": { + "description": "The unit to use for the returned data points. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*.", "type": "string" - }, - "MinAdjustmentMagnitude": { - "description": "The minimum value to scale by when the adjustment type is PercentChangeInCapacity.", - "type": "integer" - }, - "StepAdjustments": { - "description": "A set of adjustments that enable you to scale based on the size of the alarm breach.", - "type": "array", - "uniqueItems": true, - "insertionOrder": false, - "items": { - "$ref": "#/definitions/StepAdjustment" - } } } }, - "TargetTrackingScalingPolicyConfiguration": { - "description": "A target tracking scaling policy.", - "type": "object", + "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, + "type": "object", "properties": { - "CustomizedMetricSpecification": { - "description": "A customized metric. You can specify either a predefined metric or a customized metric.", - "$ref": "#/definitions/CustomizedMetricSpecification" - }, - "DisableScaleIn": { - "description": "Indicates whether scale in by the target tracking scaling policy is disabled. If the value is true, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is false.", - "type": "boolean" - }, - "PredefinedMetricSpecification": { - "description": "A predefined metric. You can specify either a predefined metric or a customized metric.", - "$ref": "#/definitions/PredefinedMetricSpecification" - }, - "ScaleInCooldown": { - "description": "The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start.", - "type": "integer" - }, - "ScaleOutCooldown": { - "description": "The amount of time, in seconds, to wait for a previous scale-out activity to take effect.", - "type": "integer" + "Value": { + "description": "The value of the dimension.", + "type": "string" }, - "TargetValue": { - "description": "The target value for the metric. Although this property accepts numbers of type Double, it won't accept values that are either too small or too large. Values must be in the range of -2^360 to 2^360. The value must be a valid number based on the choice of metric. For example, if the metric is CPU utilization, then the target value is a percent value that represents how much of the CPU can be used before scaling out.", - "type": "number" + "Name": { + "description": "The name of the dimension.", + "type": "string" } - }, - "required": [ - "TargetValue" - ] + } }, - "PredefinedMetricSpecification": { - "description": "Represents a predefined metric for a target tracking scaling policy to use with Application Auto Scaling.", - "type": "object", + "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, + "type": "object", "properties": { - "PredefinedMetricType": { - "description": "The metric type. The ALBRequestCountPerTarget metric type applies only to Spot Fleets and ECS services.", + "ReturnData": { + "description": "Indicates whether to return the timestamps and raw data values of this metric. \n If you use any math expressions, specify ``true`` for this value for only the final math expression that the metric specification is based on. You must specify ``false`` for ``ReturnData`` for all the other metrics and expressions used in the metric specification.\n If you are only retrieving metrics and not performing any math expressions, do not specify anything for ``ReturnData``. This sets it to its default (``true``).", + "type": "boolean" + }, + "Expression": { + "description": "The math expression to perform on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. \n Conditional: Within each ``TargetTrackingMetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both.", "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.", + "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.\n Conditional: Within each ``MetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both.", + "$ref": "#/definitions/TargetTrackingMetricStat" + }, + "Id": { + "description": "A short name that identifies the object's results in the response. This name must be unique among all ``MetricDataQuery`` objects specified for a single scaling policy. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscores. The first character must be a lowercase letter.", "type": "string" } - }, - "required": [ - "PredefinedMetricType" - ] + } }, "CustomizedMetricSpecification": { - "description": "Represents a CloudWatch metric of your choosing for a target tracking scaling policy to use with Application Auto Scaling.", - "type": "object", + "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, + "type": "object", "properties": { - "Dimensions": { - "description": "The dimensions of the metric.", - "type": "array", + "MetricName": { + "description": "The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that's returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html).", + "type": "string" + }, + "Metrics": { "uniqueItems": false, + "description": "The metrics to include in the target tracking scaling policy, as a metric data query. This can include both raw metric and metric math expressions.", "insertionOrder": false, + "type": "array", "items": { - "$ref": "#/definitions/MetricDimension" + "$ref": "#/definitions/TargetTrackingMetricDataQuery" } }, - "MetricName": { - "description": "The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the Metric object that is returned by a call to ListMetrics.", - "type": "string" - }, - "Namespace": { - "description": "The namespace of the metric.", - "type": "string" - }, "Statistic": { "description": "The statistic of the metric.", "type": "string" }, - "Unit": { - "description": "The unit of the metric. For a complete list of the units that CloudWatch supports, see the MetricDatum data type in the Amazon CloudWatch API Reference.", - "type": "string" - }, - "Metrics": { - "description": "The metrics to include in the target tracking scaling policy, as a metric data query. This can include both raw metric and metric math expressions.", - "type": "array", + "Dimensions": { "uniqueItems": false, + "description": "The dimensions of the metric. \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/TargetTrackingMetricDataQuery" + "$ref": "#/definitions/MetricDimension" } - } - } - }, - "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.", - "type": "object", - "additionalProperties": false, - "properties": { - "Expression": { - "description": "The math expression to perform on the returned data, if this object is performing a math expression.", - "type": "string" }, - "Id": { - "description": "A short name that identifies the object's results in the response.", + "Unit": { + "description": "The unit of the metric. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*.", "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.", + "Namespace": { + "description": "The namespace of the metric.", "type": "string" - }, - "ReturnData": { - "description": "Indicates whether to return the timestamps and raw data values of this metric.", - "type": "boolean" - }, - "MetricStat": { - "description": "Information about the metric data to return.", - "$ref": "#/definitions/TargetTrackingMetricStat" } } }, - "TargetTrackingMetricStat": { - "description": "This structure defines the CloudWatch metric to return, along with the statistic, period, and unit.", - "type": "object", + "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": { - "Metric": { - "description": "The CloudWatch metric to return, including the metric name, namespace, and dimensions. ", - "$ref": "#/definitions/TargetTrackingMetric" - }, - "Stat": { - "description": "The statistic to return. It can include any CloudWatch statistic or extended statistic.", + "MetricName": { + "description": "The name of the metric.", "type": "string" }, - "Unit": { - "description": "The unit to use for the returned data points.", - "type": "string" - } - } - }, - "TargetTrackingMetric": { - "description": "Represents a specific metric.", - "type": "object", - "additionalProperties": false, - "properties": { "Dimensions": { - "description": "The dimensions for the metric.", - "type": "array", "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" } }, - "MetricName": { - "description": "The name of the metric.", - "type": "string" - }, "Namespace": { - "description": "The namespace of the metric.", + "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" } } }, - "TargetTrackingMetricDimension": { - "description": "Describes the dimension of a metric.", - "type": "object", + "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*.", "additionalProperties": false, + "type": "object", "properties": { - "Name": { - "description": "The name of the dimension.", - "type": "string" + "ScaleOutCooldown": { + "description": "The amount of time, in seconds, to wait for a previous scale-out activity to take effect. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*.", + "type": "integer" }, - "Value": { - "description": "The value of the dimension.", - "type": "string" + "TargetValue": { + "description": "The target value for the metric. Although this property accepts numbers of type Double, it won't accept values that are either too small or too large. Values must be in the range of -2^360 to 2^360. The value must be a valid number based on the choice of metric. For example, if the metric is CPU utilization, then the target value is a percent value that represents how much of the CPU can be used before scaling out.", + "type": "number" + }, + "CustomizedMetricSpecification": { + "description": "A customized metric. You can specify either a predefined metric or a customized metric.", + "$ref": "#/definitions/CustomizedMetricSpecification" + }, + "DisableScaleIn": { + "description": "Indicates whether scale in by the target tracking scaling policy is disabled. If the value is ``true``, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is ``false``.", + "type": "boolean" + }, + "ScaleInCooldown": { + "description": "The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*.", + "type": "integer" + }, + "PredefinedMetricSpecification": { + "description": "A predefined metric. You can specify either a predefined metric or a customized metric.", + "$ref": "#/definitions/PredefinedMetricSpecification" } - } + }, + "required": [ + "TargetValue" + ] }, "StepAdjustment": { - "description": "Represents a step adjustment for a StepScalingPolicyConfiguration. Describes an adjustment based on the difference between the value of the aggregated CloudWatch metric and the breach threshold that you've defined for the alarm.", - "type": "object", + "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, + "type": "object", "properties": { - "MetricIntervalLowerBound": { - "description": "The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity.", + "MetricIntervalUpperBound": { + "description": "The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.\n You must specify at least one upper or lower bound.", "type": "number" }, - "MetricIntervalUpperBound": { - "description": "The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.", + "MetricIntervalLowerBound": { + "description": "The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity.\n You must specify at least one upper or lower bound.", "type": "number" }, "ScalingAdjustment": { - "description": "The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. For exact capacity, you must specify a positive value.", + "description": "The amount by which to scale. The adjustment is based on the value that you specified in the ``AdjustmentType`` property (either an absolute number or a percentage). A positive value adds to the current capacity and a negative number subtracts from the current capacity.", "type": "integer" } }, @@ -235,18 +255,68 @@ "ScalingAdjustment" ] }, - "MetricDimension": { - "description": "Describes the dimension names and values associated with a metric.", + "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" + } + } + }, + "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": { - "Name": { - "description": "The name of the dimension.", + "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.", + "additionalProperties": false, + "type": "object", + "properties": { "Value": { "description": "The value of the dimension.", "type": "string" + }, + "Name": { + "description": "The name of the dimension.", + "type": "string" } }, "required": [ @@ -256,111 +326,41 @@ } }, "properties": { - "PolicyName": { - "description": "The name of the scaling policy.\n\nUpdates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing AWS::ApplicationAutoScaling::ScalingPolicy resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name.", - "type": "string" - }, "PolicyType": { - "description": "The scaling policy type.\n\nThe following policy types are supported:\n\nTargetTrackingScaling Not supported for Amazon EMR\n\nStepScaling Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune.", + "description": "The scaling policy type.\n The following policy types are supported: \n ``TargetTrackingScaling``\u2014Not supported for Amazon EMR\n ``StepScaling``\u2014Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune.", "type": "string" }, "ResourceId": { - "description": "The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.", + "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``.", "type": "string" }, - "ScalableDimension": { - "description": "The scalable dimension. This string consists of the service namespace, resource type, and scaling property.", + "ScalingTargetId": { + "description": "The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the ``AWS::ApplicationAutoScaling::ScalableTarget`` resource.\n You must specify either the ``ScalingTargetId`` property, or the ``ResourceId``, ``ScalableDimension``, and ``ServiceNamespace`` properties, but not both.", "type": "string" }, - "ScalingTargetId": { - "description": "The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the AWS::ApplicationAutoScaling::ScalableTarget resource.", + "PolicyName": { + "description": "The name of the scaling policy.\n Updates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name.", "type": "string" }, "ServiceNamespace": { - "description": "The namespace of the AWS service that provides the resource, or a custom-resource.", + "description": "The namespace of the AWS service that provides the resource, or a ``custom-resource``.", "type": "string" }, - "StepScalingPolicyConfiguration": { - "description": "A step scaling policy.", - "$ref": "#/definitions/StepScalingPolicyConfiguration" + "ScalableDimension": { + "description": "The scalable dimension. This string consists of the service namespace, resource type, and scaling property.\n + ``ecs:service:DesiredCount`` - The task count of an ECS service.\n + ``elasticmapreduce:instancegroup:InstanceCount`` - The instance count of an EMR Instance Group.\n + ``ec2:spot-fleet-request:TargetCapacity`` - The target capacity of a Spot Fleet.\n + ``appstream:fleet:DesiredCapacity`` - The capacity of an AppStream 2.0 fleet.\n + ``dynamodb:table:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB table.\n + ``dynamodb:table:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB table.\n + ``dynamodb:index:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB global secondary index.\n + ``dynamodb:index:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB global secondary index.\n + ``rds:cluster:ReadReplicaCount`` - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.\n + ``sagemaker:variant:DesiredInstanceCount`` - The number of EC2 instances for a SageMaker model endpoint variant.\n + ``custom-resource:ResourceType:Property`` - The scalable dimension for a custom resource provided by your own application or service.\n + ``comprehend:document-classifier-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend document classification endpoint.\n + ``comprehend:entity-recognizer-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend entity recognizer endpoint.\n + ``lambda:function:ProvisionedConcurrency`` - The provisioned concurrency for a Lambda function.\n + ``cassandra:table:ReadCapacityUnits`` - The provisioned read capacity for an Amazon Keyspaces table.\n + ``cassandra:table:WriteCapacityUnits`` - The provisioned write capacity for an Amazon Keyspaces table.\n + ``kafka:broker-storage:VolumeSize`` - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster.\n + ``elasticache:replication-group:NodeGroups`` - The number of node groups for an Amazon ElastiCache replication group.\n + ``elasticache:replication-group:Replicas`` - The number of replicas per node group for an Amazon ElastiCache replication group.\n + ``neptune:cluster:ReadReplicaCount`` - The count of read replicas in an Amazon Neptune DB cluster.\n + ``sagemaker:variant:DesiredProvisionedConcurrency`` - The provisioned concurrency for a SageMaker serverless endpoint.\n + ``sagemaker:inference-component:DesiredCopyCount`` - The number of copies across an endpoint for a SageMaker inference component.\n + ``workspaces:workspacespool:DesiredUserSessions`` - The number of user sessions for the WorkSpaces in the pool.", + "type": "string" }, "TargetTrackingScalingPolicyConfiguration": { "description": "A target tracking scaling policy.", "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" }, "Arn": { - "description": "ARN is a read only property for the resource.", + "description": "", "type": "string" - } - }, - "required": [ - "PolicyName", - "PolicyType" - ], - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/PolicyName", - "/properties/ServiceNamespace", - "/properties/ResourceId", - "/properties/ScalableDimension", - "/properties/ScalingTargetId" - ], - "readOnlyProperties": [ - "/properties/Arn" - ], - "writeOnlyProperties": [ - "/properties/TargetTrackingScalingPolicyConfiguration/PredefinedMetricSpecification/ResourceLabel", - "/properties/ScalingTargetId" - ], - "primaryIdentifier": [ - "/properties/Arn", - "/properties/ScalableDimension" - ], - "tagging": { - "taggable": false, - "tagOnCreate": false, - "tagUpdatable": false, - "cloudFormationSystemTags": false - }, - "handlers": { - "create": { - "permissions": [ - "application-autoscaling:DescribeScalingPolicies", - "application-autoscaling:PutScalingPolicy" - ] - }, - "read": { - "permissions": [ - "application-autoscaling:DescribeScalingPolicies" - ] - }, - "update": { - "permissions": [ - "application-autoscaling:DescribeScalingPolicies", - "application-autoscaling:PutScalingPolicy" - ] }, - "delete": { - "permissions": [ - "application-autoscaling:DescribeScalingPolicies", - "application-autoscaling:DeleteScalingPolicy" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ServiceNamespace": { - "description": "The name of the service", - "type": "string" - } - }, - "required": [ - "ServiceNamespace" - ] - }, - "permissions": [ - "application-autoscaling:DescribeScalingPolicies" - ] + "StepScalingPolicyConfiguration": { + "description": "A step scaling policy.", + "$ref": "#/definitions/StepScalingPolicyConfiguration" } } } diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_DataSource.json b/internal/service/cloudformation/schemas/AWS_Bedrock_DataSource.json index 0bbcbde557..97493fed5c 100644 --- a/internal/service/cloudformation/schemas/AWS_Bedrock_DataSource.json +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_DataSource.json @@ -231,7 +231,7 @@ ], "tagging": { "taggable": false, - "cloudFormationSystemTags": true + "cloudFormationSystemTags": false }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_KnowledgeBase.json b/internal/service/cloudformation/schemas/AWS_Bedrock_KnowledgeBase.json index 3a4bfffc25..168e284237 100644 --- a/internal/service/cloudformation/schemas/AWS_Bedrock_KnowledgeBase.json +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_KnowledgeBase.json @@ -37,7 +37,8 @@ "enum": [ "OPENSEARCH_SERVERLESS", "PINECONE", - "RDS" + "RDS", + "MONGO_DB_ATLAS" ] }, "KnowledgeBaseType": { @@ -298,6 +299,89 @@ ], "additionalProperties": false }, + "MongoDbAtlasFieldMapping": { + "type": "object", + "description": "Contains the names of the fields to which to map information about the vector store.", + "properties": { + "VectorField": { + "type": "string", + "maxLength": 2048, + "pattern": "^.*$", + "description": "The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources." + }, + "TextField": { + "type": "string", + "maxLength": 2048, + "pattern": "^.*$", + "description": "The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose." + }, + "MetadataField": { + "type": "string", + "maxLength": 2048, + "pattern": "^.*$", + "description": "The name of the field in which Amazon Bedrock stores metadata about the vector store." + } + }, + "required": [ + "VectorField", + "MetadataField", + "TextField" + ], + "additionalProperties": false + }, + "MongoDbAtlasConfiguration": { + "type": "object", + "description": "Contains the storage configuration of the knowledge base in MongoDb Atlas Cloud.", + "properties": { + "Endpoint": { + "type": "string", + "maxLength": 2048, + "pattern": "^[a-zA-Z0-9_-]+\\.[a-zA-Z0-9_-]+\\.mongodb\\.net$", + "description": "MongoDB Atlas endpoint." + }, + "CredentialsSecretArn": { + "type": "string", + "pattern": "^arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9!/_+=.@-]{1,512}$", + "description": "The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon Mongo database." + }, + "DatabaseName": { + "type": "string", + "maxLength": 63, + "pattern": "^.*$", + "description": "Name of the database within MongoDB Atlas." + }, + "CollectionName": { + "type": "string", + "maxLength": 63, + "pattern": "^.*$", + "description": "Name of the collection within MongoDB Atlas." + }, + "VectorIndexName": { + "type": "string", + "maxLength": 2048, + "pattern": "^.*$", + "description": "Name of a MongoDB Atlas index." + }, + "EndpointServiceName": { + "type": "string", + "maxLength": 255, + "pattern": "^(?:arn:aws(?:-us-gov|-cn|-iso|-iso-[a-z])*:.+:.*:\\d+:.+\/.+$|[a-zA-Z0-9*]+[a-zA-Z0-9._-]*)$", + "description": "MongoDB Atlas endpoint service name." + }, + "FieldMapping": { + "$ref": "#/definitions/MongoDbAtlasFieldMapping" + } + }, + "required": [ + "Endpoint", + "CredentialsSecretArn", + "DatabaseName", + "CollectionName", + "VectorIndexName", + "FieldMapping" + ], + "additionalProperties": false + }, "StorageConfiguration": { "type": "object", "description": "The vector store service in which the knowledge base is stored.", @@ -313,6 +397,9 @@ }, "RdsConfiguration": { "$ref": "#/definitions/RdsConfiguration" + }, + "MongoDbAtlasConfiguration": { + "$ref": "#/definitions/MongoDbAtlasConfiguration" } }, "required": [ @@ -333,6 +420,11 @@ "required": [ "RdsConfiguration" ] + }, + { + "required": [ + "MongoDbAtlasConfiguration" + ] } ], "additionalProperties": false @@ -351,6 +443,29 @@ }, "additionalProperties": false }, + "BedrockEmbeddingModelConfiguration": { + "type": "object", + "description": "The vector configuration details for the Bedrock embeddings model.", + "properties": { + "Dimensions": { + "type": "integer", + "maximum": 4096, + "minimum": 0, + "description": "The dimensions details for the vector configuration used on the Bedrock embeddings model." + } + }, + "additionalProperties": false + }, + "EmbeddingModelConfiguration": { + "type": "object", + "description": "The embeddings model configuration details for the vector model used in Knowledge Base.", + "properties": { + "BedrockEmbeddingModelConfiguration": { + "$ref": "#/definitions/BedrockEmbeddingModelConfiguration" + } + }, + "additionalProperties": false + }, "VectorKnowledgeBaseConfiguration": { "type": "object", "description": "Contains details about the model used to create vector embeddings for the knowledge base.", @@ -359,8 +474,11 @@ "type": "string", "maxLength": 2048, "minLength": 20, - "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model\/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}\/[a-z0-9]{12})|(:foundation-model\/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model\/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "pattern": "^(arn:aws(-[^:]+)?:[a-z0-9-]+:[a-z0-9-]{1,20}:[0-9]{0,12}:[a-zA-Z0-9-:/._+]+)$", "description": "The ARN of the model used to create vector embeddings for the knowledge base." + }, + "EmbeddingModelConfiguration": { + "$ref": "#/definitions/EmbeddingModelConfiguration" } }, "required": [ diff --git a/internal/service/cloudformation/schemas/AWS_CleanRoomsML_TrainingDataset.json b/internal/service/cloudformation/schemas/AWS_CleanRoomsML_TrainingDataset.json index 40fae706ae..e21b022ecd 100644 --- a/internal/service/cloudformation/schemas/AWS_CleanRoomsML_TrainingDataset.json +++ b/internal/service/cloudformation/schemas/AWS_CleanRoomsML_TrainingDataset.json @@ -218,7 +218,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "cleanrooms-ml:TagResource", + "cleanrooms-ml:UntagResource" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_ConnectCampaigns_Campaign.json b/internal/service/cloudformation/schemas/AWS_ConnectCampaigns_Campaign.json index ec15833c6b..fc7264ff2d 100644 --- a/internal/service/cloudformation/schemas/AWS_ConnectCampaigns_Campaign.json +++ b/internal/service/cloudformation/schemas/AWS_ConnectCampaigns_Campaign.json @@ -209,7 +209,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "connect-campaigns:UntagResource", + "connect-campaigns:TagResource" + ] }, "required": [ "ConnectInstanceArn", diff --git a/internal/service/cloudformation/schemas/AWS_DMS_ReplicationConfig.json b/internal/service/cloudformation/schemas/AWS_DMS_ReplicationConfig.json index 0d28b9a183..f17e1e0f9c 100644 --- a/internal/service/cloudformation/schemas/AWS_DMS_ReplicationConfig.json +++ b/internal/service/cloudformation/schemas/AWS_DMS_ReplicationConfig.json @@ -142,9 +142,22 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "dms:AddTagsToResource", + "dms:ListTagsForResource", + "dms:RemoveTagsFromResource" + ] }, "additionalProperties": false, + "required": [ + "ReplicationConfigIdentifier", + "SourceEndpointArn", + "TargetEndpointArn", + "ReplicationType", + "ComputeConfig", + "TableMappings" + ], "handlers": { "create": { "permissions": [ @@ -167,7 +180,7 @@ "permissions": [ "dms:ModifyReplicationConfig", "dms:AddTagsToResource", - "dms:RemoveTagsToResource", + "dms:RemoveTagsFromResource", "dms:ListTagsForResource", "iam:CreateServiceLinkedRole", "iam:AttachRolePolicy", diff --git a/internal/service/cloudformation/schemas/AWS_EC2_EIPAssociation.json b/internal/service/cloudformation/schemas/AWS_EC2_EIPAssociation.json index 2f3d719b52..607ec04ff3 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_EIPAssociation.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_EIPAssociation.json @@ -1,30 +1,30 @@ { "typeName": "AWS::EC2::EIPAssociation", - "description": "Resource schema for EC2 EIP association.", + "description": "Associates an Elastic IP address with an instance or a network interface. Before you can use an Elastic IP address, you must allocate it to your account. For more information about working with Elastic IP addresses, see [Elastic IP address concepts and rules](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#vpc-eip-overview).\n You must specify ``AllocationId`` and either ``InstanceId``, ``NetworkInterfaceId``, or ``PrivateIpAddress``.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2/tree/master/aws-ec2-eipassociation", "properties": { "Id": { - "description": "Composite ID of non-empty properties, to determine the identification.", + "description": "", "type": "string" }, "AllocationId": { - "description": "The allocation ID. This is required for EC2-VPC.", + "description": "The allocation ID. This is required.", "type": "string" }, "NetworkInterfaceId": { - "description": "The ID of the network interface.", + "description": "The ID of the network interface. If the instance has more than one network interface, you must specify a network interface ID.\n You can specify either the instance ID or the network interface ID, but not both.", "type": "string" }, "InstanceId": { - "description": "The ID of the instance.", + "description": "The ID of the instance. The instance must have exactly one attached network interface. You can specify either the instance ID or the network interface ID, but not both.", "type": "string" }, "PrivateIpAddress": { - "description": "The primary or secondary private IP address to associate with the Elastic IP address.", + "description": "The primary or secondary private IP address to associate with the Elastic IP address. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address.", "type": "string" }, "EIP": { - "description": "The Elastic IP address to associate with the instance.", + "description": "", "type": "string" } }, diff --git a/internal/service/cloudformation/schemas/AWS_EC2_Instance.json b/internal/service/cloudformation/schemas/AWS_EC2_Instance.json index a7eb14f846..5d874fa63f 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_Instance.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_Instance.json @@ -171,7 +171,8 @@ "/properties/AdditionalInfo", "/properties/Ipv6AddressCount", "/properties/Ipv6Addresses", - "/properties/PropagateTagsToVolumeOnCreation" + "/properties/PropagateTagsToVolumeOnCreation", + "/properties/LaunchTemplate" ], "additionalProperties": false, "definitions": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_KeyPair.json b/internal/service/cloudformation/schemas/AWS_EC2_KeyPair.json index 1f5457c99e..499c71fcb1 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_KeyPair.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_KeyPair.json @@ -101,7 +101,11 @@ "tagging": { "taggable": true, "tagUpdatable": false, - "cloudFormationSystemTags": false + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "ec2:CreateTags" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_LaunchTemplate.json b/internal/service/cloudformation/schemas/AWS_EC2_LaunchTemplate.json index 90ab51aff3..9fc7187423 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_LaunchTemplate.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_LaunchTemplate.json @@ -77,7 +77,7 @@ } }, "UserData": { - "description": "The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) (Linux) or [Work with instance user data](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instancedata-add-user-data.html) (Windows) in the *Amazon Elastic Compute Cloud User Guide*.\n If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*.", + "description": "The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Amazon EC2 instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) in the *Amazon EC2 User Guide*.\n If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*.", "type": "string" }, "BlockDeviceMappings": { @@ -141,7 +141,7 @@ "type": "string" }, "InstanceType": { - "description": "The instance type. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon Elastic Compute Cloud User Guide*.\n If you specify ``InstanceType``, you can't specify ``InstanceRequirements``.", + "description": "The instance type. For more information, see [Amazon EC2 instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*.\n If you specify ``InstanceType``, you can't specify ``InstanceRequirements``.", "type": "string" }, "Monitoring": { @@ -149,11 +149,11 @@ "$ref": "#/definitions/Monitoring" }, "HibernationOptions": { - "description": "Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon Elastic Compute Cloud User Guide*.", + "description": "Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your Amazon EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon EC2 User Guide*.", "$ref": "#/definitions/HibernationOptions" }, "MetadataOptions": { - "description": "The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon Elastic Compute Cloud User Guide*.", + "description": "The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon EC2 User Guide*.", "$ref": "#/definitions/MetadataOptions" }, "LicenseSpecifications": { @@ -169,11 +169,11 @@ "type": "string" }, "DisableApiStop": { - "description": "Indicates whether to enable the instance for stop protection. For more information, see [Stop protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection) in the *Amazon Elastic Compute Cloud User Guide*.", + "description": "Indicates whether to enable the instance for stop protection. For more information, see [Enable stop protection for your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-stop-protection.html) in the *Amazon EC2 User Guide*.", "type": "boolean" }, "CpuOptions": { - "description": "The CPU options for the instance. For more information, see [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide*.", + "description": "The CPU options for the instance. For more information, see [Optimize CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon EC2 User Guide*.", "$ref": "#/definitions/CpuOptions" }, "PrivateDnsNameOptions": { @@ -205,7 +205,7 @@ "$ref": "#/definitions/InstanceRequirements" }, "RamDiskId": { - "description": "The ID of the RAM disk.\n We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon Elastic Compute Cloud User Guide*.", + "description": "The ID of the RAM disk.\n We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*.", "type": "string" }, "CapacityReservationSpecification": { @@ -257,7 +257,7 @@ "type": "object", "properties": { "Type": { - "description": "The type of Elastic Graphics accelerator. For more information about the values to specify for ``Type``, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*.", + "description": "The type of Elastic Graphics accelerator.", "type": "string" } } @@ -313,7 +313,7 @@ "type": "object", "properties": { "Ipv4Prefix": { - "description": "The IPv4 prefix. For information, see [Assigning prefixes to Amazon EC2 network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon Elastic Compute Cloud User Guide*.", + "description": "The IPv4 prefix. For information, see [Assigning prefixes to network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon EC2 User Guide*.", "type": "string" } } @@ -660,7 +660,7 @@ "type": "integer" }, "InterfaceType": { - "description": "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon Elastic Compute Cloud User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", + "description": "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon EC2 User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", "type": "string" }, "AssociateCarrierIpAddress": { @@ -744,7 +744,7 @@ "type": "object", "properties": { "ResourceType": { - "description": "The type of resource. To tag the launch template, ``ResourceType`` must be ``launch-template``.", + "description": "The type of resource. To tag a launch template, ``ResourceType`` must be ``launch-template``.", "type": "string" }, "Tags": { @@ -763,7 +763,7 @@ "type": "object", "properties": { "ResourceType": { - "description": "The type of resource to tag.\n Valid Values lists all resource types for Amazon EC2 that can be tagged. When you create a launch template, you can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).", + "description": "The type of resource to tag. You can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).", "type": "string" }, "Tags": { @@ -957,7 +957,7 @@ "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 ``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 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``.", + "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": { @@ -1089,7 +1089,7 @@ } }, "ConnectionTrackingSpecification": { - "description": "A security group connection tracking specification that enables you to set the idle timeout for connection tracking on an Elastic network interface. For more information, see [Connection tracking timeouts](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html#connection-tracking-timeouts) in the *Amazon Elastic Compute Cloud User Guide*.", + "description": "A security group connection tracking specification that enables you to set the idle timeout for connection tracking on an Elastic network interface. For more information, see [Connection tracking timeouts](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html#connection-tracking-timeouts) in the *Amazon EC2 User Guide*.", "additionalProperties": false, "type": "object", "properties": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_NetworkInterfaceAttachment.json b/internal/service/cloudformation/schemas/AWS_EC2_NetworkInterfaceAttachment.json index a5b06e510c..3fc601708a 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_NetworkInterfaceAttachment.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_NetworkInterfaceAttachment.json @@ -1,19 +1,19 @@ { "typeName": "AWS::EC2::NetworkInterfaceAttachment", - "description": "Resource Type definition for AWS::EC2::NetworkInterfaceAttachment", + "description": "Attaches an elastic network interface (ENI) to an Amazon EC2 instance. You can use this resource type to attach additional network interfaces to an instance without interruption.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", "properties": { "AttachmentId": { - "description": "The ID of the network interface attachment.", + "description": "", "type": "string" }, "DeleteOnTermination": { - "description": "Whether to delete the network interface when the instance terminates. By default, this value is set to true.", + "description": "Whether to delete the network interface when the instance terminates. By default, this value is set to ``true``.", "type": "boolean", "default": true }, "DeviceIndex": { - "description": "The network interface's position in the attachment order. For example, the first attached network interface has a DeviceIndex of 0.", + "description": "The network interface's position in the attachment order. For example, the first attached network interface has a ``DeviceIndex`` of 0.", "type": "string" }, "InstanceId": { @@ -25,7 +25,8 @@ "type": "string" }, "EnaSrdSpecification": { - "$ref": "#/definitions/EnaSrdSpecification" + "$ref": "#/definitions/EnaSrdSpecification", + "description": "Configures ENA Express for the network interface that this action attaches to the instance." } }, "additionalProperties": false, @@ -63,7 +64,8 @@ "additionalProperties": false, "properties": { "EnaSrdEnabled": { - "type": "boolean" + "type": "boolean", + "description": "Indicates whether ENA Express is enabled for the network interface." }, "EnaSrdUdpSpecification": { "type": "object", @@ -72,9 +74,11 @@ "EnaSrdUdpEnabled": { "type": "boolean" } - } + }, + "description": "Configures ENA Express for UDP network traffic." } - } + }, + "description": "ENA Express uses AWS Scalable Reliable Datagram (SRD) technology to increase the maximum bandwidth used per stream and minimize tail latency of network traffic between EC2 instances. With ENA Express, you can communicate between two EC2 instances in the same subnet within the same account, or in different accounts. Both sending and receiving instances must have ENA Express enabled.\n To improve the reliability of network packet delivery, ENA Express reorders network packets on the receiving end by default. However, some UDP-based applications are designed to handle network packets that are out of order to reduce the overhead for packet delivery at the network layer. When ENA Express is enabled, you can specify whether UDP network traffic uses it." } }, "handlers": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_SubnetCidrBlock.json b/internal/service/cloudformation/schemas/AWS_EC2_SubnetCidrBlock.json index 1d2a733c4b..a94a13c1d7 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_SubnetCidrBlock.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_SubnetCidrBlock.json @@ -1,72 +1,41 @@ { - "typeName": "AWS::EC2::SubnetCidrBlock", - "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", - "description": "The AWS::EC2::SubnetCidrBlock resource creates association between subnet and IPv6 CIDR", - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2/subnetcidrblock", - "additionalProperties": false, - "properties": { - "Id": { - "description": "Information about the IPv6 association.", - "type": "string" - }, - "Ipv6CidrBlock": { - "description": "The IPv6 network range for the subnet, in CIDR notation. The subnet size must use a /64 prefix length", - "type": "string", - "maxLength": 42 - }, - "Ipv6IpamPoolId": { - "description": "The ID of an IPv6 Amazon VPC IP Address Manager (IPAM) pool from which to allocate, to get the subnet's CIDR", - "type": "string" - }, - "Ipv6NetmaskLength": { - "description": "The netmask length of the IPv6 CIDR to allocate to the subnet from an IPAM pool", - "type": "integer", - "minimum": 0, - "maximum": 128 - }, - "SubnetId": { - "description": "The ID of the subnet", - "type": "string" - } + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false }, - "required": [ - "SubnetId" + "$schema": "https://schema.cloudformation.us-east-1.amazonaws.com/provider.definition.schema.v1.json", + "typeName": "AWS::EC2::SubnetCidrBlock", + "readOnlyProperties": [ + "/properties/Id" ], + "description": "The AWS::EC2::SubnetCidrBlock resource creates association between subnet and IPv6 CIDR", "createOnlyProperties": [ "/properties/Ipv6CidrBlock", "/properties/SubnetId", "/properties/Ipv6IpamPoolId", "/properties/Ipv6NetmaskLength" ], - "readOnlyProperties": [ - "/properties/Id" - ], - "writeOnlyProperties": [ - "/properties/Ipv6IpamPoolId", - "/properties/Ipv6NetmaskLength" - ], "primaryIdentifier": [ "/properties/Id" ], + "required": [ + "SubnetId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2/subnetcidrblock", "propertyTransform": { "/properties/Ipv6CidrBlock": "$join([$match($replace(Ipv6CidrBlock, /(^|:)(0{1,4})([0-9a-fA-F]{1,4})/, \"$1$3\"), /^([0-9a-fA-F]{1,4}:){4}/).match, \":/64\"])" }, - "tagging": { - "taggable": false, - "tagOnCreate": false, - "tagUpdatable": false, - "cloudFormationSystemTags": false - }, "handlers": { - "create": { + "read": { "permissions": [ - "ec2:AssociateSubnetCidrBlock", "ec2:DescribeSubnets" ] }, - "delete": { + "create": { "permissions": [ - "ec2:DisassociateSubnetCidrBlock", + "ec2:AssociateSubnetCidrBlock", "ec2:DescribeSubnets" ] }, @@ -75,10 +44,41 @@ "ec2:DescribeSubnets" ] }, - "read": { + "delete": { "permissions": [ + "ec2:DisassociateSubnetCidrBlock", "ec2:DescribeSubnets" ] } + }, + "writeOnlyProperties": [ + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "additionalProperties": false, + "properties": { + "Ipv6NetmaskLength": { + "description": "The netmask length of the IPv6 CIDR to allocate to the subnet from an IPAM pool", + "maximum": 128, + "type": "integer", + "minimum": 0 + }, + "Ipv6IpamPoolId": { + "description": "The ID of an IPv6 Amazon VPC IP Address Manager (IPAM) pool from which to allocate, to get the subnet's CIDR", + "type": "string" + }, + "Id": { + "description": "Information about the IPv6 association.", + "type": "string" + }, + "SubnetId": { + "description": "The ID of the subnet", + "type": "string" + }, + "Ipv6CidrBlock": { + "description": "The IPv6 network range for the subnet, in CIDR notation. The subnet size must use a /64 prefix length", + "type": "string", + "maxLength": 42 + } } } diff --git a/internal/service/cloudformation/schemas/AWS_EC2_VPCCidrBlock.json b/internal/service/cloudformation/schemas/AWS_EC2_VPCCidrBlock.json index 1172bd005b..4d8ca8c2a1 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_VPCCidrBlock.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_VPCCidrBlock.json @@ -1,113 +1,113 @@ { - "typeName": "AWS::EC2::VPCCidrBlock", - "description": "Resource Type definition for AWS::EC2::VPCCidrBlock", - "additionalProperties": false, - "properties": { - "CidrBlock": { - "type": "string", - "description": "An IPv4 CIDR block to associate with the VPC." - }, - "Ipv6Pool": { - "type": "string", - "description": "The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block." - }, - "Id": { - "type": "string", - "description": "The Id of the VPC associated CIDR Block." - }, - "VpcId": { - "type": "string", - "description": "The ID of the VPC." - }, - "Ipv6CidrBlock": { - "type": "string", - "description": "An IPv6 CIDR block from the IPv6 address pool." - }, - "Ipv4IpamPoolId": { - "type": "string", - "description": "The ID of the IPv4 IPAM pool to Associate a CIDR from to a VPC." - }, - "Ipv4NetmaskLength": { - "type": "integer", - "description": "The netmask length of the IPv4 CIDR you would like to associate from an Amazon VPC IP Address Manager (IPAM) pool." - }, - "Ipv6IpamPoolId": { - "type": "string", - "description": "The ID of the IPv6 IPAM pool to Associate a CIDR from to a VPC." - }, - "Ipv6NetmaskLength": { - "type": "integer", - "description": "The netmask length of the IPv6 CIDR you would like to associate from an Amazon VPC IP Address Manager (IPAM) pool." - }, - "AmazonProvidedIpv6CidrBlock": { - "type": "boolean", - "description": "Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IPv6 addresses, or the size of the CIDR block." - } - }, "tagging": { "taggable": false }, - "required": [ - "VpcId" - ], - "createOnlyProperties": [ - "/properties/Ipv6Pool", - "/properties/VpcId", - "/properties/AmazonProvidedIpv6CidrBlock", - "/properties/Ipv6CidrBlock", - "/properties/CidrBlock", - "/properties/Ipv4IpamPoolId", - "/properties/Ipv4NetmaskLength", - "/properties/Ipv6IpamPoolId", - "/properties/Ipv6NetmaskLength" - ], - "primaryIdentifier": [ - "/properties/Id", - "/properties/VpcId" - ], - "readOnlyProperties": [ - "/properties/Id" - ], - "writeOnlyProperties": [ - "/properties/Ipv4IpamPoolId", - "/properties/Ipv4NetmaskLength", - "/properties/Ipv6IpamPoolId", - "/properties/Ipv6NetmaskLength" - ], "handlers": { - "create": { - "permissions": [ - "ec2:AssociateVpcCidrBlock", - "ec2:DescribeVpcs", - "ec2:AllocateIpamPoolCidr" - ] - }, "read": { "permissions": [ "ec2:DescribeVpcs" ] }, - "delete": { + "create": { "permissions": [ + "ec2:AssociateVpcCidrBlock", "ec2:DescribeVpcs", - "ec2:DisassociateVpcCidrBlock" + "ec2:AllocateIpamPoolCidr" ] }, "list": { + "permissions": [ + "ec2:DescribeVpcs" + ], "handlerSchema": { "properties": { "VpcId": { - "type": "string", - "description": "The ID of the VPC." + "description": "The ID of the VPC.", + "type": "string" } }, "required": [ "VpcId" ] - }, + } + }, + "delete": { "permissions": [ - "ec2:DescribeVpcs" + "ec2:DescribeVpcs", + "ec2:DisassociateVpcCidrBlock" ] } - } + }, + "typeName": "AWS::EC2::VPCCidrBlock", + "readOnlyProperties": [ + "/properties/Id" + ], + "description": "Resource Type definition for AWS::EC2::VPCCidrBlock", + "writeOnlyProperties": [ + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "createOnlyProperties": [ + "/properties/Ipv6Pool", + "/properties/VpcId", + "/properties/AmazonProvidedIpv6CidrBlock", + "/properties/Ipv6CidrBlock", + "/properties/CidrBlock", + "/properties/Ipv4IpamPoolId", + "/properties/Ipv4NetmaskLength", + "/properties/Ipv6IpamPoolId", + "/properties/Ipv6NetmaskLength" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Id", + "/properties/VpcId" + ], + "properties": { + "Ipv6NetmaskLength": { + "description": "The netmask length of the IPv6 CIDR you would like to associate from an Amazon VPC IP Address Manager (IPAM) pool.", + "type": "integer" + }, + "Ipv6IpamPoolId": { + "description": "The ID of the IPv6 IPAM pool to Associate a CIDR from to a VPC.", + "type": "string" + }, + "VpcId": { + "description": "The ID of the VPC.", + "type": "string" + }, + "Ipv4NetmaskLength": { + "description": "The netmask length of the IPv4 CIDR you would like to associate from an Amazon VPC IP Address Manager (IPAM) pool.", + "type": "integer" + }, + "CidrBlock": { + "description": "An IPv4 CIDR block to associate with the VPC.", + "type": "string" + }, + "Ipv6Pool": { + "description": "The ID of an IPv6 address pool from which to allocate the IPv6 CIDR block.", + "type": "string" + }, + "Ipv4IpamPoolId": { + "description": "The ID of the IPv4 IPAM pool to Associate a CIDR from to a VPC.", + "type": "string" + }, + "Id": { + "description": "The Id of the VPC associated CIDR Block.", + "type": "string" + }, + "Ipv6CidrBlock": { + "description": "An IPv6 CIDR block from the IPv6 address pool.", + "type": "string" + }, + "AmazonProvidedIpv6CidrBlock": { + "description": "Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IPv6 addresses, or the size of the CIDR block.", + "type": "boolean" + } + }, + "required": [ + "VpcId" + ] } diff --git a/internal/service/cloudformation/schemas/AWS_ECR_Repository.json b/internal/service/cloudformation/schemas/AWS_ECR_Repository.json index 08c2037d42..e3e97b7270 100644 --- a/internal/service/cloudformation/schemas/AWS_ECR_Repository.json +++ b/internal/service/cloudformation/schemas/AWS_ECR_Repository.json @@ -75,7 +75,7 @@ "properties": { "EncryptionType": { "$ref": "#/definitions/EncryptionType", - "description": "The encryption type to use.\n If you use the ``KMS`` encryption type, the contents of the repository will be encrypted using server-side encryption with KMSlong key stored in KMS. When you use KMS to encrypt your data, you can either use the default AWS managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see [Protecting data using server-side encryption with an key stored in (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*.\n If you use the ``AES256`` encryption type, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts the images in the repository using an AES-256 encryption algorithm. For more information, see [Protecting data using server-side encryption with Amazon S3-managed encryption keys (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) in the *Ama" + "description": "The encryption type to use.\n If you use the ``KMS`` encryption type, the contents of the repository will be encrypted using server-side encryption with KMSlong key stored in KMS. When you use KMS to encrypt your data, you can either use the default AWS managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see [Protecting data using server-side encryption with an key stored in (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*.\n If you use the ``AES256`` encryption type, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts the images in the repository using an AES-256 encryption algorithm. For more information, see [Protecting data using server-side encryption with Amazon S3-managed encryption keys (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*." }, "KmsKey": { "$ref": "#/definitions/KmsKey", diff --git a/internal/service/cloudformation/schemas/AWS_ECR_RepositoryCreationTemplate.json b/internal/service/cloudformation/schemas/AWS_ECR_RepositoryCreationTemplate.json index c3d5dc8e6f..b5a87faee1 100644 --- a/internal/service/cloudformation/schemas/AWS_ECR_RepositoryCreationTemplate.json +++ b/internal/service/cloudformation/schemas/AWS_ECR_RepositoryCreationTemplate.json @@ -119,6 +119,12 @@ "$ref": "#/definitions/AppliedForItem" } }, + "CustomRoleArn": { + "type": "string", + "description": "The ARN of the role to be assumed by ECR. This role must be in the same account as the registry that you are configuring.", + "maxLength": 2048, + "pattern": "^arn:aws[-a-z0-9]*:iam::[0-9]{12}:role/[A-Za-z0-9+=,-.@_]*$" + }, "CreatedAt": { "description": "Create timestamp of the template.", "type": "string" @@ -149,7 +155,8 @@ "ecr:PutLifecyclePolicy", "ecr:SetRepositoryPolicy", "ecr:CreateRepository", - "iam:CreateServiceLinkedRole" + "iam:CreateServiceLinkedRole", + "iam:PassRole" ] }, "read": { @@ -164,7 +171,8 @@ "ecr:PutLifecyclePolicy", "ecr:SetRepositoryPolicy", "ecr:CreateRepository", - "iam:CreateServiceLinkedRole" + "iam:CreateServiceLinkedRole", + "iam:PassRole" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_EKS_Cluster.json b/internal/service/cloudformation/schemas/AWS_EKS_Cluster.json index e73b8a5c3d..4df55e55c7 100644 --- a/internal/service/cloudformation/schemas/AWS_EKS_Cluster.json +++ b/internal/service/cloudformation/schemas/AWS_EKS_Cluster.json @@ -1,107 +1,177 @@ { + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true + }, "typeName": "AWS::EKS::Cluster", + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn", + "/properties/Endpoint", + "/properties/CertificateAuthorityData", + "/properties/ClusterSecurityGroupId", + "/properties/EncryptionConfigKeyArn", + "/properties/OpenIdConnectIssuerUrl", + "/properties/KubernetesNetworkConfig/ServiceIpv6Cidr" + ], "description": "An object representing an Amazon EKS cluster.", + "createOnlyProperties": [ + "/properties/OutpostConfig", + "/properties/EncryptionConfig", + "/properties/KubernetesNetworkConfig", + "/properties/AccessConfig/BootstrapClusterCreatorAdminPermissions", + "/properties/Name", + "/properties/RoleArn", + "/properties/BootstrapSelfManagedAddons" + ], + "primaryIdentifier": [ + "/properties/Name" + ], + "required": [ + "RoleArn", + "ResourcesVpcConfig" + ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-eks.git", + "handlers": { + "read": { + "permissions": [ + "eks:DescribeCluster" + ] + }, + "create": { + "permissions": [ + "eks:CreateCluster", + "eks:DescribeCluster", + "eks:TagResource", + "iam:PassRole", + "iam:GetRole", + "iam:ListAttachedRolePolicies", + "iam:CreateServiceLinkedRole", + "iam:CreateInstanceProfile", + "iam:TagInstanceProfile", + "iam:AddRoleToInstanceProfile", + "iam:GetInstanceProfile", + "iam:DeleteInstanceProfile", + "iam:RemoveRoleFromInstanceProfile", + "ec2:DescribeSubnets", + "ec2:DescribeVpcs", + "kms:DescribeKey", + "kms:CreateGrant" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "eks:UpdateClusterConfig", + "eks:UpdateClusterVersion", + "eks:DescribeCluster", + "eks:DescribeUpdate", + "eks:TagResource", + "eks:UntagResource" + ], + "timeoutInMinutes": 180 + }, + "list": { + "permissions": [ + "eks:ListClusters" + ] + }, + "delete": { + "permissions": [ + "eks:DeleteCluster", + "eks:DescribeCluster" + ] + } + }, + "writeOnlyProperties": [ + "/properties/AccessConfig/BootstrapClusterCreatorAdminPermissions", + "/properties/BootstrapSelfManagedAddons" + ], + "additionalProperties": false, "definitions": { - "Tag": { - "description": "A key-value pair to associate with a resource.", + "Logging": { + "description": "Enable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs based on log types. By default, cluster control plane logs aren't exported to CloudWatch Logs.", + "additionalProperties": false, "type": "object", "properties": { - "Key": { - "type": "string", - "description": "The key name of the tag. You can specify a value that is 1 to 128 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, - "maxLength": 128 - }, - "Value": { - "type": "string", - "description": "The value for the tag. You can specify a value that is 0 to 256 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": 256 + "ClusterLogging": { + "description": "The cluster control plane logging configuration for your cluster. ", + "$ref": "#/definitions/ClusterLogging" } - }, - "required": [ - "Key", - "Value" - ], - "additionalProperties": false + } }, - "Provider": { - "type": "object", + "RemoteNodeNetworks": { + "description": "Network configuration of nodes run on-premises with EKS Hybrid Nodes.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/RemoteNodeNetwork" + } + }, + "EnabledTypes": { + "description": "Enable control plane logs for your cluster, all log types will be disabled if the array is empty", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/LoggingTypeConfig" + } + }, + "ControlPlanePlacement": { + "description": "Specify the placement group of the control plane machines for your cluster.", "additionalProperties": false, + "type": "object", "properties": { - "KeyArn": { - "description": "Amazon Resource Name (ARN) or alias of the KMS key. The KMS key must be symmetric, created in the same region as the cluster, and if the KMS key was created in a different account, the user must have access to the KMS key.", + "GroupName": { + "description": "Specify the placement group name of the control place machines for your cluster.", "type": "string" } } }, - "EncryptionConfig": { - "description": "The encryption configuration for the cluster", + "AccessConfig": { + "description": "An object representing the Access Config to use for the cluster.", + "additionalProperties": false, "type": "object", "properties": { - "Provider": { - "description": "The encryption provider for the cluster.", - "$ref": "#/definitions/Provider" + "AuthenticationMode": { + "description": "Specify the authentication mode that should be used to create your cluster.", + "type": "string", + "enum": [ + "CONFIG_MAP", + "API_AND_CONFIG_MAP", + "API" + ] }, - "Resources": { - "description": "Specifies the resources to be encrypted. The only supported value is \"secrets\".", - "type": "array", - "insertionOrder": false, - "items": { - "type": "string" - } + "BootstrapClusterCreatorAdminPermissions": { + "description": "Set this value to false to avoid creating a default cluster admin Access Entry using the IAM principal used to create the cluster.", + "type": "boolean" } - }, - "additionalProperties": false + } }, - "ResourcesVpcConfig": { - "description": "An object representing the VPC configuration to use for an Amazon EKS cluster.", - "type": "object", + "EncryptionConfig": { + "description": "The encryption configuration for the cluster", "additionalProperties": false, + "type": "object", "properties": { - "EndpointPrivateAccess": { - "description": "Set this value to true to enable private access for your cluster's Kubernetes API server endpoint. If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint. The default value for this parameter is false, which disables private access for your Kubernetes API server. If you disable private access and you have nodes or AWS Fargate pods in the cluster, then ensure that publicAccessCidrs includes the necessary CIDR blocks for communication with the nodes or Fargate pods.", - "type": "boolean" - }, - "EndpointPublicAccess": { - "description": "Set this value to false to disable public access to your cluster's Kubernetes API server endpoint. If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC. The default value for this parameter is true, which enables public access for your Kubernetes API server.", - "type": "boolean" - }, - "PublicAccessCidrs": { - "description": "The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint. Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied. The default value is 0.0.0.0/0. If you've disabled private endpoint access and you have nodes or AWS Fargate pods in the cluster, then ensure that you specify the necessary CIDR blocks.", - "type": "array", + "Resources": { + "description": "Specifies the resources to be encrypted. The only supported value is \"secrets\".", "insertionOrder": false, - "items": { - "type": "string", - "minItems": 1 - } - }, - "SecurityGroupIds": { - "description": "Specify one or more security groups for the cross-account elastic network interfaces that Amazon EKS creates to use to allow communication between your worker nodes and the Kubernetes control plane. If you don't specify a security group, the default security group for your VPC is used.", "type": "array", - "insertionOrder": false, "items": { - "type": "string", - "minItems": 1 + "type": "string" } }, - "SubnetIds": { - "description": "Specify subnets for your Amazon EKS nodes. Amazon EKS creates cross-account elastic network interfaces in these subnets to allow communication between your nodes and the Kubernetes control plane.", - "type": "array", - "insertionOrder": false, - "items": { - "type": "string", - "minItems": 1 - } + "Provider": { + "description": "The encryption provider for the cluster.", + "$ref": "#/definitions/Provider" } - }, - "required": [ - "SubnetIds" - ] + } }, "LoggingTypeConfig": { "description": "Enabled Logging Type", + "additionalProperties": false, "type": "object", "properties": { "Type": { @@ -115,38 +185,18 @@ "scheduler" ] } - }, - "additionalProperties": false - }, - "EnabledTypes": { - "description": "Enable control plane logs for your cluster, all log types will be disabled if the array is empty", - "type": "array", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LoggingTypeConfig" } }, "ClusterLogging": { "description": "The cluster control plane logging configuration for your cluster. ", - "type": "object", "additionalProperties": false, + "type": "object", "properties": { "EnabledTypes": { "$ref": "#/definitions/EnabledTypes" } } }, - "Logging": { - "description": "Enable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs based on log types. By default, cluster control plane logs aren't exported to CloudWatch Logs.", - "type": "object", - "additionalProperties": false, - "properties": { - "ClusterLogging": { - "description": "The cluster control plane logging configuration for your cluster. ", - "$ref": "#/definitions/ClusterLogging" - } - } - }, "KubernetesNetworkConfig": { "description": "The Kubernetes network configuration for the cluster.", "additionalProperties": false, @@ -170,235 +220,257 @@ } } }, - "ControlPlanePlacement": { - "description": "Specify the placement group of the control plane machines for your cluster.", - "type": "object", + "Provider": { "additionalProperties": false, + "type": "object", "properties": { - "GroupName": { - "description": "Specify the placement group name of the control place machines for your cluster.", + "KeyArn": { + "description": "Amazon Resource Name (ARN) or alias of the KMS key. The KMS key must be symmetric, created in the same region as the cluster, and if the KMS key was created in a different account, the user must have access to the KMS key.", "type": "string" } } }, - "OutpostConfig": { - "description": "An object representing the Outpost configuration to use for AWS EKS outpost cluster.", + "RemoteNodeNetwork": { + "description": "Network configuration of nodes run on-premises with EKS Hybrid Nodes.", "additionalProperties": false, "type": "object", "properties": { - "OutpostArns": { - "description": "Specify one or more Arn(s) of Outpost(s) on which you would like to create your cluster.", - "type": "array", + "Cidrs": { + "description": "Specifies the list of remote node CIDRs.", "insertionOrder": false, + "type": "array", "items": { - "type": "string", - "minItems": 1 + "minItems": 1, + "type": "string" } - }, - "ControlPlaneInstanceType": { - "description": "Specify the Instance type of the machines that should be used to create your cluster.", - "type": "string" - }, - "ControlPlanePlacement": { - "description": "Specify the placement group of the control plane machines for your cluster.", - "$ref": "#/definitions/ControlPlanePlacement" } }, "required": [ - "OutpostArns", - "ControlPlaneInstanceType" + "Cidrs" ] }, - "AccessConfig": { - "description": "An object representing the Access Config to use for the cluster.", + "UpgradePolicy": { + "description": "An object representing the Upgrade Policy to use for the cluster.", "additionalProperties": false, "type": "object", "properties": { - "BootstrapClusterCreatorAdminPermissions": { - "description": "Set this value to false to avoid creating a default cluster admin Access Entry using the IAM principal used to create the cluster.", - "type": "boolean" - }, - "AuthenticationMode": { - "description": "Specify the authentication mode that should be used to create your cluster.", + "SupportType": { + "description": "Specify the support type for your cluster.", "type": "string", "enum": [ - "CONFIG_MAP", - "API_AND_CONFIG_MAP", - "API" + "STANDARD", + "EXTENDED" ] } } - } - }, - "properties": { - "EncryptionConfig": { - "type": "array", + }, + "RemotePodNetworks": { + "description": "Network configuration of pods run on-premises with EKS Hybrid Nodes.", "insertionOrder": false, + "type": "array", "items": { - "$ref": "#/definitions/EncryptionConfig", - "maxItems": 1 + "$ref": "#/definitions/RemotePodNetwork" } }, - "KubernetesNetworkConfig": { - "$ref": "#/definitions/KubernetesNetworkConfig" + "Tag": { + "description": "A key-value pair to associate with a resource.", + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "minLength": 0, + "description": "The value for the tag. You can specify a value that is 0 to 256 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", + "maxLength": 256 + }, + "Key": { + "minLength": 1, + "description": "The key name of the tag. You can specify a value that is 1 to 128 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", + "maxLength": 128 + } + }, + "required": [ + "Key", + "Value" + ] }, + "OutpostConfig": { + "description": "An object representing the Outpost configuration to use for AWS EKS outpost cluster.", + "additionalProperties": false, + "type": "object", + "properties": { + "OutpostArns": { + "description": "Specify one or more Arn(s) of Outpost(s) on which you would like to create your cluster.", + "insertionOrder": false, + "type": "array", + "items": { + "minItems": 1, + "type": "string" + } + }, + "ControlPlanePlacement": { + "description": "Specify the placement group of the control plane machines for your cluster.", + "$ref": "#/definitions/ControlPlanePlacement" + }, + "ControlPlaneInstanceType": { + "description": "Specify the Instance type of the machines that should be used to create your cluster.", + "type": "string" + } + }, + "required": [ + "OutpostArns", + "ControlPlaneInstanceType" + ] + }, + "ResourcesVpcConfig": { + "description": "An object representing the VPC configuration to use for an Amazon EKS cluster.", + "additionalProperties": false, + "type": "object", + "properties": { + "EndpointPublicAccess": { + "description": "Set this value to false to disable public access to your cluster's Kubernetes API server endpoint. If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC. The default value for this parameter is true, which enables public access for your Kubernetes API server.", + "type": "boolean" + }, + "PublicAccessCidrs": { + "description": "The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint. Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied. The default value is 0.0.0.0/0. If you've disabled private endpoint access and you have nodes or AWS Fargate pods in the cluster, then ensure that you specify the necessary CIDR blocks.", + "insertionOrder": false, + "type": "array", + "items": { + "minItems": 1, + "type": "string" + } + }, + "EndpointPrivateAccess": { + "description": "Set this value to true to enable private access for your cluster's Kubernetes API server endpoint. If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint. The default value for this parameter is false, which disables private access for your Kubernetes API server. If you disable private access and you have nodes or AWS Fargate pods in the cluster, then ensure that publicAccessCidrs includes the necessary CIDR blocks for communication with the nodes or Fargate pods.", + "type": "boolean" + }, + "SecurityGroupIds": { + "description": "Specify one or more security groups for the cross-account elastic network interfaces that Amazon EKS creates to use to allow communication between your worker nodes and the Kubernetes control plane. If you don't specify a security group, the default security group for your VPC is used.", + "insertionOrder": false, + "type": "array", + "items": { + "minItems": 1, + "type": "string" + } + }, + "SubnetIds": { + "description": "Specify subnets for your Amazon EKS nodes. Amazon EKS creates cross-account elastic network interfaces in these subnets to allow communication between your nodes and the Kubernetes control plane.", + "insertionOrder": false, + "type": "array", + "items": { + "minItems": 1, + "type": "string" + } + } + }, + "required": [ + "SubnetIds" + ] + }, + "RemotePodNetwork": { + "description": "Network configuration of pods run on-premises with EKS Hybrid Nodes.", + "additionalProperties": false, + "type": "object", + "properties": { + "Cidrs": { + "description": "Specifies the list of remote pod CIDRs.", + "insertionOrder": false, + "type": "array", + "items": { + "minItems": 1, + "type": "string" + } + } + }, + "required": [ + "Cidrs" + ] + } + }, + "properties": { "Logging": { "$ref": "#/definitions/Logging" }, - "Name": { - "description": "The unique name to give to your cluster.", - "type": "string", - "pattern": "^[0-9A-Za-z][A-Za-z0-9\\-_]*", - "minLength": 1, - "maxLength": 100 + "BootstrapSelfManagedAddons": { + "description": "Set this value to false to avoid creating the default networking addons when the cluster is created.", + "type": "boolean" }, - "Id": { - "description": "The unique ID given to your cluster.", + "EncryptionConfigKeyArn": { + "description": "Amazon Resource Name (ARN) or alias of the customer master key (CMK).", "type": "string" }, - "ResourcesVpcConfig": { - "$ref": "#/definitions/ResourcesVpcConfig" - }, - "OutpostConfig": { - "$ref": "#/definitions/OutpostConfig" - }, "AccessConfig": { "$ref": "#/definitions/AccessConfig" }, - "RoleArn": { - "description": "The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf.", + "CertificateAuthorityData": { + "description": "The certificate-authority-data for your cluster.", "type": "string" }, - "Version": { - "description": "The desired Kubernetes version for your cluster. If you don't specify a value here, the latest version available in Amazon EKS is used.", - "type": "string", - "pattern": "1\\.\\d\\d" - }, - "Tags": { - "description": "An array of key-value pairs to apply to this resource.", - "type": "array", - "uniqueItems": true, + "EncryptionConfig": { "insertionOrder": false, + "type": "array", "items": { - "$ref": "#/definitions/Tag" + "maxItems": 1, + "$ref": "#/definitions/EncryptionConfig" } }, - "Arn": { - "description": "The ARN of the cluster, such as arn:aws:eks:us-west-2:666666666666:cluster/prod.", + "KubernetesNetworkConfig": { + "$ref": "#/definitions/KubernetesNetworkConfig" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf.", "type": "string" }, + "Name": { + "minLength": 1, + "pattern": "^[0-9A-Za-z][A-Za-z0-9\\-_]*", + "description": "The unique name to give to your cluster.", + "type": "string", + "maxLength": 100 + }, + "UpgradePolicy": { + "$ref": "#/definitions/UpgradePolicy" + }, "Endpoint": { "description": "The endpoint for your Kubernetes API server, such as https://5E1D0CEXAMPLEA591B746AFC5AB30262.yl4.us-west-2.eks.amazonaws.com.", "type": "string" }, - "CertificateAuthorityData": { - "description": "The certificate-authority-data for your cluster.", + "Version": { + "pattern": "1\\.\\d\\d", + "description": "The desired Kubernetes version for your cluster. If you don't specify a value here, the latest version available in Amazon EKS is used.", "type": "string" }, "ClusterSecurityGroupId": { "description": "The cluster security group that was created by Amazon EKS for the cluster. Managed node groups use this security group for control plane to data plane communication.", "type": "string" }, - "EncryptionConfigKeyArn": { - "description": "Amazon Resource Name (ARN) or alias of the customer master key (CMK).", - "type": "string" - }, - "OpenIdConnectIssuerUrl": { - "description": "The issuer URL for the cluster's OIDC identity provider, such as https://oidc.eks.us-west-2.amazonaws.com/id/EXAMPLED539D4633E53DE1B716D3041E. If you need to remove https:// from this output value, you can include the following code in your template.", + "Id": { + "description": "The unique ID given to your cluster.", "type": "string" }, - "BootstrapSelfManagedAddons": { - "description": "Set this value to false to avoid creating the default networking addons when the cluster is created.", - "type": "boolean" - } - }, - "tagging": { - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" - }, - "additionalProperties": false, - "required": [ - "RoleArn", - "ResourcesVpcConfig" - ], - "primaryIdentifier": [ - "/properties/Name" - ], - "createOnlyProperties": [ - "/properties/OutpostConfig", - "/properties/EncryptionConfig", - "/properties/KubernetesNetworkConfig", - "/properties/AccessConfig/BootstrapClusterCreatorAdminPermissions", - "/properties/Name", - "/properties/RoleArn", - "/properties/BootstrapSelfManagedAddons" - ], - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn", - "/properties/Endpoint", - "/properties/CertificateAuthorityData", - "/properties/ClusterSecurityGroupId", - "/properties/EncryptionConfigKeyArn", - "/properties/OpenIdConnectIssuerUrl", - "/properties/KubernetesNetworkConfig/ServiceIpv6Cidr" - ], - "writeOnlyProperties": [ - "/properties/AccessConfig/BootstrapClusterCreatorAdminPermissions", - "/properties/BootstrapSelfManagedAddons" - ], - "handlers": { - "create": { - "permissions": [ - "eks:CreateCluster", - "eks:DescribeCluster", - "eks:TagResource", - "iam:PassRole", - "iam:GetRole", - "iam:ListAttachedRolePolicies", - "iam:CreateServiceLinkedRole", - "iam:CreateInstanceProfile", - "iam:TagInstanceProfile", - "iam:AddRoleToInstanceProfile", - "iam:GetInstanceProfile", - "iam:DeleteInstanceProfile", - "iam:RemoveRoleFromInstanceProfile", - "ec2:DescribeSubnets", - "ec2:DescribeVpcs", - "kms:DescribeKey", - "kms:CreateGrant" - ] + "OutpostConfig": { + "$ref": "#/definitions/OutpostConfig" }, - "read": { - "permissions": [ - "eks:DescribeCluster" - ] + "Arn": { + "description": "The ARN of the cluster, such as arn:aws:eks:us-west-2:666666666666:cluster/prod.", + "type": "string" }, - "update": { - "permissions": [ - "iam:PassRole", - "eks:UpdateClusterConfig", - "eks:UpdateClusterVersion", - "eks:DescribeCluster", - "eks:DescribeUpdate", - "eks:TagResource", - "eks:UntagResource" - ], - "timeoutInMinutes": 180 + "ResourcesVpcConfig": { + "$ref": "#/definitions/ResourcesVpcConfig" }, - "delete": { - "permissions": [ - "eks:DeleteCluster", - "eks:DescribeCluster" - ] + "Tags": { + "uniqueItems": true, + "description": "An array of key-value pairs to apply to this resource.", + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + } }, - "list": { - "permissions": [ - "eks:ListClusters" - ] + "OpenIdConnectIssuerUrl": { + "description": "The issuer URL for the cluster's OIDC identity provider, such as https://oidc.eks.us-west-2.amazonaws.com/id/EXAMPLED539D4633E53DE1B716D3041E. If you need to remove https:// from this output value, you can include the following code in your template.", + "type": "string" } } } diff --git a/internal/service/cloudformation/schemas/AWS_EKS_Nodegroup.json b/internal/service/cloudformation/schemas/AWS_EKS_Nodegroup.json index 1547a65a9c..6d97b61fdc 100644 --- a/internal/service/cloudformation/schemas/AWS_EKS_Nodegroup.json +++ b/internal/service/cloudformation/schemas/AWS_EKS_Nodegroup.json @@ -215,7 +215,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "eks:TagResource", + "eks:UntagResource" + ] }, "required": [ "ClusterName", diff --git a/internal/service/cloudformation/schemas/AWS_EntityResolution_IdMappingWorkflow.json b/internal/service/cloudformation/schemas/AWS_EntityResolution_IdMappingWorkflow.json index 8cd929f6b2..06ef2632c2 100644 --- a/internal/service/cloudformation/schemas/AWS_EntityResolution_IdMappingWorkflow.json +++ b/internal/service/cloudformation/schemas/AWS_EntityResolution_IdMappingWorkflow.json @@ -177,7 +177,7 @@ "ProviderServiceArn": { "type": "string", "description": "Arn of the Provider Service being used.", - "pattern": "^arn:(aws|aws-us-gov|aws-cn):entityresolution:([A-Za-z0-9]+(-[A-Za-z0-9]+)+)::providerservice/[A-Za-z0-9]+/[A-Za-z0-9]+$" + "pattern": "^arn:(aws|aws-us-gov|aws-cn):(entityresolution):([a-z]{2}-[a-z]{1,10}-[0-9])::providerservice/([a-zA-Z0-9_-]{1,255})/([a-zA-Z0-9_-]{1,255})$" }, "ProviderConfiguration": { "type": "object", diff --git a/internal/service/cloudformation/schemas/AWS_FMS_Policy.json b/internal/service/cloudformation/schemas/AWS_FMS_Policy.json index db59c1c2b7..eb2560cba6 100644 --- a/internal/service/cloudformation/schemas/AWS_FMS_Policy.json +++ b/internal/service/cloudformation/schemas/AWS_FMS_Policy.json @@ -259,7 +259,7 @@ "description": "Firewall managed service data.", "type": "string", "minLength": 1, - "maxLength": 8192 + "maxLength": 30000 }, "PolicyType": { "description": "Firewall policy type.", diff --git a/internal/service/cloudformation/schemas/AWS_GlobalAccelerator_CrossAccountAttachment.json b/internal/service/cloudformation/schemas/AWS_GlobalAccelerator_CrossAccountAttachment.json index 4592e4f12a..e842a652a3 100644 --- a/internal/service/cloudformation/schemas/AWS_GlobalAccelerator_CrossAccountAttachment.json +++ b/internal/service/cloudformation/schemas/AWS_GlobalAccelerator_CrossAccountAttachment.json @@ -33,13 +33,13 @@ "EndpointId": { "type": "string" }, + "Cidr": { + "type": "string" + }, "Region": { "type": "string" } }, - "required": [ - "EndpointId" - ], "additionalProperties": false } }, diff --git a/internal/service/cloudformation/schemas/AWS_Lightsail_Alarm.json b/internal/service/cloudformation/schemas/AWS_Lightsail_Alarm.json index 9b4d4f3c55..ded3b858f0 100644 --- a/internal/service/cloudformation/schemas/AWS_Lightsail_Alarm.json +++ b/internal/service/cloudformation/schemas/AWS_Lightsail_Alarm.json @@ -9,7 +9,7 @@ "pattern": "\\w[\\w\\-]*\\w" }, "MonitoredResourceName": { - "description": "The validation status of the SSL/TLS certificate.", + "description": "The name of the Lightsail resource that the alarm monitors.", "type": "string" }, "MetricName": { diff --git a/internal/service/cloudformation/schemas/AWS_Lightsail_Certificate.json b/internal/service/cloudformation/schemas/AWS_Lightsail_Certificate.json index 1673956d0a..3b7fa6ffc2 100644 --- a/internal/service/cloudformation/schemas/AWS_Lightsail_Certificate.json +++ b/internal/service/cloudformation/schemas/AWS_Lightsail_Certificate.json @@ -1,6 +1,6 @@ { "typeName": "AWS::Lightsail::Certificate", - "description": "An example resource schema demonstrating some basic constructs and validation rules.", + "description": "Resource Type definition for AWS::Lightsail::Certificate.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "definitions": { "Tag": { diff --git a/internal/service/cloudformation/schemas/AWS_MediaConnect_FlowOutput.json b/internal/service/cloudformation/schemas/AWS_MediaConnect_FlowOutput.json index 8720d81734..11a3edebbf 100644 --- a/internal/service/cloudformation/schemas/AWS_MediaConnect_FlowOutput.json +++ b/internal/service/cloudformation/schemas/AWS_MediaConnect_FlowOutput.json @@ -230,6 +230,14 @@ "items": { "$ref": "#/definitions/MediaStreamOutputConfiguration" } + }, + "OutputStatus": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ], + "description": "An indication of whether the output should transmit data or not." } }, "additionalProperties": false, diff --git a/internal/service/cloudformation/schemas/AWS_MediaPackageV2_Channel.json b/internal/service/cloudformation/schemas/AWS_MediaPackageV2_Channel.json index 3ba9ed82d7..0d4bc24ee8 100644 --- a/internal/service/cloudformation/schemas/AWS_MediaPackageV2_Channel.json +++ b/internal/service/cloudformation/schemas/AWS_MediaPackageV2_Channel.json @@ -17,6 +17,13 @@ }, "additionalProperties": false }, + "InputType": { + "type": "string", + "enum": [ + "HLS", + "CMAF" + ] + }, "Tag": { "type": "object", "properties": { @@ -65,6 +72,9 @@ }, "description": "

The list of ingest endpoints.

" }, + "InputType": { + "$ref": "#/definitions/InputType" + }, "ModifiedAt": { "type": "string", "description": "

The date and time the channel was modified.

", @@ -93,7 +103,8 @@ ], "createOnlyProperties": [ "/properties/ChannelGroupName", - "/properties/ChannelName" + "/properties/ChannelName", + "/properties/InputType" ], "primaryIdentifier": [ "/properties/Arn" diff --git a/internal/service/cloudformation/schemas/AWS_MediaPackageV2_OriginEndpoint.json b/internal/service/cloudformation/schemas/AWS_MediaPackageV2_OriginEndpoint.json index 14b7eba8e6..860078f66e 100644 --- a/internal/service/cloudformation/schemas/AWS_MediaPackageV2_OriginEndpoint.json +++ b/internal/service/cloudformation/schemas/AWS_MediaPackageV2_OriginEndpoint.json @@ -146,6 +146,15 @@ }, "additionalProperties": false }, + "EndpointErrorCondition": { + "type": "string", + "enum": [ + "STALE_MANIFEST", + "INCOMPLETE_MANIFEST", + "MISSING_DRM_KEY", + "SLATE_INPUT" + ] + }, "FilterConfiguration": { "type": "object", "description": "

Filter configuration includes settings for manifest filtering, start and end times, and time delay that apply to all of your egress requests for this manifest.

", @@ -175,6 +184,20 @@ }, "additionalProperties": false }, + "ForceEndpointErrorConfiguration": { + "type": "object", + "description": "

The failover settings for the endpoint.

", + "properties": { + "EndpointErrorConditions": { + "type": "array", + "items": { + "$ref": "#/definitions/EndpointErrorCondition" + }, + "description": "

The failover settings for the endpoint. The options are:

\n
    \n
  • \n

    \n STALE_MANIFEST - The manifest stalled and there a no new segments or parts.

    \n
  • \n
  • \n

    \n INCOMPLETE_MANIFEST - There is a gap in the manifest.

    \n
  • \n
  • \n

    \n MISSING_DRM_KEY - Key rotation is enabled but we're unable to fetch the key for the current key period.

    \n
  • \n
" + } + }, + "additionalProperties": false + }, "DashManifestConfiguration": { "type": "object", "description": "

Retrieve the DASH manifest configuration.

", @@ -532,6 +555,9 @@ "minLength": 0, "description": "

Enter any descriptive text that helps you to identify the origin endpoint.

" }, + "ForceEndpointErrorConfiguration": { + "$ref": "#/definitions/ForceEndpointErrorConfiguration" + }, "HlsManifests": { "type": "array", "items": { diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json b/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json index 0429dcb3fd..2c23f419c1 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json @@ -213,7 +213,7 @@ "type": "string" }, "PubliclyAccessible": { - "description": "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", + "description": "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", "type": "boolean" }, "ReplicationSourceIdentifier": { @@ -403,7 +403,7 @@ "properties": { "SecretArn": { "type": "string", - "description": "The Amazon Resource Name (ARN) of the secret." + "description": "The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#aws-resource-rds-dbcluster-return-values)." }, "KmsKeyId": { "type": "string", @@ -526,6 +526,7 @@ }, "delete": { "permissions": [ + "rds:AddTagsToResource", "rds:CreateDBClusterSnapshot", "rds:DeleteDBCluster", "rds:DeleteDBInstance", diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json b/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json index 475734c24e..4660d1854b 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json @@ -74,7 +74,7 @@ "description": "The value of a processor feature." } }, - "description": "The ``ProcessorFeature`` property type specifies the processor features of a DB instance class status." + "description": "The ``ProcessorFeature`` property type specifies the processor features of a DB instance class." }, "Tag": { "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS Resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", @@ -104,7 +104,7 @@ "properties": { "SecretArn": { "type": "string", - "description": "The Amazon Resource Name (ARN) of the secret." + "description": "The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#aws-resource-rds-dbinstance-return-values)." }, "KmsKeyId": { "type": "string", @@ -137,7 +137,7 @@ }, "AutomaticBackupReplicationRegion": { "type": "string", - "description": "The destination region for the backup replication of the DB instance. For more info, see [Replicating automated backups to another Region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReplicateBackups.html) in the *Amazon RDS User Guide*." + "description": "" }, "AutomaticBackupReplicationKmsKeyId": { "type": "string", @@ -222,7 +222,7 @@ }, "DBSnapshotIdentifier": { "type": "string", - "description": "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.\n By specifying this property, you can create a DB instance from the specified DB snapshot. If the ``DBSnapshotIdentifier`` property is an empty string or the ``AWS::RDS::DBInstance`` declaration has no ``DBSnapshotIdentifier`` property, AWS CloudFormation creates a new database. If the property contains a value (other than an empty string), AWS CloudFormation creates a database from the specified snapshot. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack.\n Some DB instance properties aren't valid when you restore from a snapshot, such as the ``MasterUsername`` and ``MasterUserPassword`` properties. For information about the properties that you can specify, see the ``RestoreDBInstanceFromDBSnapshot`` action in the *Amazon RDS API Reference*.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you must specify the same ``DBSnapshotIdentifier`` property for any future updates to the DB instance. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n If you specify the ``DBSnapshotIdentifier`` property to restore a DB instance (as opposed to specifying it for DB instance updates), then don't specify the following properties:\n + ``CharacterSetName`` \n + ``DBClusterIdentifier`` \n + ``DBName`` \n + ``DeleteAutomatedBackups`` \n + ``EnablePerformanceInsights`` \n + ``KmsKeyId`` \n + ``MasterUsername`` \n + ``MasterUserPassword`` \n + ``PerformanceInsightsKMSKeyId`` \n + ``PerformanceInsightsRetentionPeriod`` \n + ``PromotionTier`` \n + ``SourceDBInstanceIdentifier`` \n + ``SourceRegion`` \n + ``StorageEncrypted`` (for an encrypted snapshot)\n + ``Timezone`` \n \n *Amazon Aurora* \n Not applicable. Snapshot restore is managed by the DB cluster." + "description": "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.\n By specifying this property, you can create a DB instance from the specified DB snapshot. If the ``DBSnapshotIdentifier`` property is an empty string or the ``AWS::RDS::DBInstance`` declaration has no ``DBSnapshotIdentifier`` property, AWS CloudFormation creates a new database. If the property contains a value (other than an empty string), AWS CloudFormation creates a database from the specified snapshot. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack.\n Some DB instance properties aren't valid when you restore from a snapshot, such as the ``MasterUsername`` and ``MasterUserPassword`` properties. For information about the properties that you can specify, see the ``RestoreDBInstanceFromDBSnapshot`` action in the *Amazon RDS API Reference*.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you must specify the same ``DBSnapshotIdentifier`` property for any future updates to the DB instance. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n If you specify the ``DBSnapshotIdentifier`` property to restore a DB instance (as opposed to specifying it for DB instance updates), then don't specify the following properties:\n + ``CharacterSetName`` \n + ``DBClusterIdentifier`` \n + ``DBName`` \n + ``DeleteAutomatedBackups`` \n + ``KmsKeyId`` \n + ``MasterUsername`` \n + ``MasterUserPassword`` \n + ``PerformanceInsightsKMSKeyId`` \n + ``PerformanceInsightsRetentionPeriod`` \n + ``PromotionTier`` \n + ``SourceDBInstanceIdentifier`` \n + ``SourceRegion`` \n + ``StorageEncrypted`` (for an encrypted snapshot)\n + ``Timezone`` \n \n *Amazon Aurora* \n Not applicable. Snapshot restore is managed by the DB cluster." }, "DBSubnetGroupName": { "type": "string", @@ -653,6 +653,7 @@ }, "delete": { "permissions": [ + "rds:AddTagsToResource", "rds:CreateDBSnapshot", "rds:DeleteDBInstance", "rds:DescribeDBInstances" diff --git a/internal/service/cloudformation/schemas/AWS_S3Outposts_Bucket.json b/internal/service/cloudformation/schemas/AWS_S3Outposts_Bucket.json index 1b7f230c7f..94976fdc62 100644 --- a/internal/service/cloudformation/schemas/AWS_S3Outposts_Bucket.json +++ b/internal/service/cloudformation/schemas/AWS_S3Outposts_Bucket.json @@ -245,7 +245,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "s3-outposts:DeleteBucketTagging", + "s3-outposts:PutBucketTagging", + "s3-outposts:GetBucketTagging" + ] }, "additionalProperties": false, "createOnlyProperties": [ diff --git a/internal/service/cloudformation/schemas/AWS_Shield_ProtectionGroup.json b/internal/service/cloudformation/schemas/AWS_Shield_ProtectionGroup.json index 0d775521d6..2d7ef15fa6 100644 --- a/internal/service/cloudformation/schemas/AWS_Shield_ProtectionGroup.json +++ b/internal/service/cloudformation/schemas/AWS_Shield_ProtectionGroup.json @@ -15,7 +15,12 @@ "tagging": { "taggable": true, "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": false + "cloudFormationSystemTags": false, + "permissions": [ + "shield:ListTagsForResource", + "shield:UntagResource", + "shield:TagResource" + ] }, "additionalProperties": false, "required": [ diff --git a/internal/service/cloudformation/schemas/AWS_WorkSpacesWeb_Portal.json b/internal/service/cloudformation/schemas/AWS_WorkSpacesWeb_Portal.json index 5cffe52012..11eaed3d5d 100644 --- a/internal/service/cloudformation/schemas/AWS_WorkSpacesWeb_Portal.json +++ b/internal/service/cloudformation/schemas/AWS_WorkSpacesWeb_Portal.json @@ -216,6 +216,7 @@ "kms:CreateGrant", "kms:GenerateDataKey", "kms:Decrypt", + "kms:DescribeKey", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", @@ -233,7 +234,8 @@ "workspaces-web:GetPortal", "workspaces-web:GetPortalServiceProviderMetadata", "workspaces-web:ListTagsForResource", - "kms:Decrypt" + "kms:Decrypt", + "kms:DescribeKey" ] }, "update": { @@ -260,6 +262,7 @@ "kms:Encrypt", "kms:GenerateDataKey", "kms:Decrypt", + "kms:DescribeKey", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", @@ -286,13 +289,15 @@ "workspaces-web:DisassociateUserAccessLoggingSettings", "workspaces-web:DisassociateUserSettings", "kms:Decrypt", + "kms:DescribeKey", "sso:DeleteManagedApplicationInstance" ] }, "list": { "permissions": [ "workspaces-web:ListPortals", - "kms:Decrypt" + "kms:Decrypt", + "kms:DescribeKey" ] } }, diff --git a/internal/service/cloudformation/schemas/AWS_WorkSpacesWeb_UserSettings.json b/internal/service/cloudformation/schemas/AWS_WorkSpacesWeb_UserSettings.json index 9d9e352cbd..e9860e5a8d 100644 --- a/internal/service/cloudformation/schemas/AWS_WorkSpacesWeb_UserSettings.json +++ b/internal/service/cloudformation/schemas/AWS_WorkSpacesWeb_UserSettings.json @@ -161,6 +161,9 @@ "maxLength": 2048, "minLength": 20, "pattern": "^arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+$" + }, + "DeepLinkAllowed": { + "$ref": "#/definitions/EnabledType" } }, "required": [ diff --git a/internal/service/cloudformation/schemas/AWS_XRay_Group.json b/internal/service/cloudformation/schemas/AWS_XRay_Group.json index 61e375b734..5401a3b803 100644 --- a/internal/service/cloudformation/schemas/AWS_XRay_Group.json +++ b/internal/service/cloudformation/schemas/AWS_XRay_Group.json @@ -71,6 +71,13 @@ "required": [ "GroupName" ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" + }, "handlers": { "create": { "permissions": [ diff --git a/internal/service/cloudformation/schemas/AWS_XRay_SamplingRule.json b/internal/service/cloudformation/schemas/AWS_XRay_SamplingRule.json index fba3e7eb00..b7907006e6 100644 --- a/internal/service/cloudformation/schemas/AWS_XRay_SamplingRule.json +++ b/internal/service/cloudformation/schemas/AWS_XRay_SamplingRule.json @@ -233,6 +233,13 @@ } } }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" + }, "handlers": { "create": { "permissions": [ From d853d4aa58c176b3c244c2a521942b64472d02e4 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 25 Jul 2024 14:57:05 -0400 Subject: [PATCH 2/6] 07/24/2024 CloudFormation schemas in us-east-1; New schemas. --- internal/provider/all_schemas.hcl | 39 +- .../available_schemas.2024-07-24.hcl | 4380 +++++++++++++++++ internal/provider/plural_data_sources.go | 3 + internal/provider/resources.go | 6 + internal/provider/singular_data_sources.go | 6 + .../schemas/AWS_Bedrock_Flow.json | 909 ++++ .../schemas/AWS_Bedrock_FlowAlias.json | 172 + .../schemas/AWS_Bedrock_FlowVersion.json | 786 +++ .../schemas/AWS_Bedrock_Prompt.json | 346 ++ .../schemas/AWS_Bedrock_PromptVersion.json | 288 ++ .../schemas/AWS_Glue_Trigger.json | 215 + .../AWS_SecretsManager_ResourcePolicy.json | 78 + 12 files changed, 7227 insertions(+), 1 deletion(-) create mode 100644 internal/provider/generators/allschemas/available_schemas.2024-07-24.hcl create mode 100644 internal/service/cloudformation/schemas/AWS_Bedrock_Flow.json create mode 100644 internal/service/cloudformation/schemas/AWS_Bedrock_FlowAlias.json create mode 100644 internal/service/cloudformation/schemas/AWS_Bedrock_FlowVersion.json create mode 100644 internal/service/cloudformation/schemas/AWS_Bedrock_Prompt.json create mode 100644 internal/service/cloudformation/schemas/AWS_Bedrock_PromptVersion.json create mode 100644 internal/service/cloudformation/schemas/AWS_Glue_Trigger.json create mode 100644 internal/service/cloudformation/schemas/AWS_SecretsManager_ResourcePolicy.json diff --git a/internal/provider/all_schemas.hcl b/internal/provider/all_schemas.hcl index 26101212df..114820ef5a 100644 --- a/internal/provider/all_schemas.hcl +++ b/internal/provider/all_schemas.hcl @@ -10,7 +10,7 @@ meta_schema { path = "../service/cloudformation/meta-schemas/provider.definition.schema.v1.json" } -# 1026 CloudFormation resource types schemas are available for use with the Cloud Control API. +# 1033 CloudFormation resource types schemas are available for use with the Cloud Control API. resource_schema "aws_acmpca_certificate" { cloudformation_type_name = "AWS::ACMPCA::Certificate" @@ -532,6 +532,26 @@ resource_schema "aws_bedrock_data_source" { suppress_plural_data_source_generation = true } +resource_schema "aws_bedrock_flow" { + cloudformation_type_name = "AWS::Bedrock::Flow" + + # Suppression Reason: DefinitionSubstitutions is of unsupported type: key-value map of + # https://github.com/hashicorp/terraform-provider-awscc/issues/xxxx + suppress_resource_generation = true + suppress_singular_data_source_generation = true + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_flow_alias" { + cloudformation_type_name = "AWS::Bedrock::FlowAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_flow_version" { + cloudformation_type_name = "AWS::Bedrock::FlowVersion" + suppress_plural_data_source_generation = true +} + resource_schema "aws_bedrock_guardrail" { cloudformation_type_name = "AWS::Bedrock::Guardrail" } @@ -545,6 +565,15 @@ resource_schema "aws_bedrock_knowledge_base" { cloudformation_type_name = "AWS::Bedrock::KnowledgeBase" } +resource_schema "aws_bedrock_prompt" { + cloudformation_type_name = "AWS::Bedrock::Prompt" +} + +resource_schema "aws_bedrock_prompt_version" { + cloudformation_type_name = "AWS::Bedrock::PromptVersion" + suppress_plural_data_source_generation = true +} + resource_schema "aws_billingconductor_billing_group" { cloudformation_type_name = "AWS::BillingConductor::BillingGroup" } @@ -2125,6 +2154,10 @@ resource_schema "aws_glue_schema_version_metadata" { suppress_plural_data_source_generation = true } +resource_schema "aws_glue_trigger" { + cloudformation_type_name = "AWS::Glue::Trigger" +} + resource_schema "aws_grafana_workspace" { cloudformation_type_name = "AWS::Grafana::Workspace" } @@ -4166,6 +4199,10 @@ resource_schema "aws_scheduler_schedule_group" { cloudformation_type_name = "AWS::Scheduler::ScheduleGroup" } +resource_schema "aws_secretsmanager_resource_policy" { + cloudformation_type_name = "AWS::SecretsManager::ResourcePolicy" +} + resource_schema "aws_secretsmanager_secret" { cloudformation_type_name = "AWS::SecretsManager::Secret" } diff --git a/internal/provider/generators/allschemas/available_schemas.2024-07-24.hcl b/internal/provider/generators/allschemas/available_schemas.2024-07-24.hcl new file mode 100644 index 0000000000..bafe8ff790 --- /dev/null +++ b/internal/provider/generators/allschemas/available_schemas.2024-07-24.hcl @@ -0,0 +1,4380 @@ +# 1033 CloudFormation resource types schemas are available for use with the Cloud Control API. + +resource_schema "aws_acmpca_certificate" { + cloudformation_type_name = "AWS::ACMPCA::Certificate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_acmpca_certificate_authority" { + cloudformation_type_name = "AWS::ACMPCA::CertificateAuthority" +} + +resource_schema "aws_acmpca_certificate_authority_activation" { + cloudformation_type_name = "AWS::ACMPCA::CertificateAuthorityActivation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_acmpca_permission" { + cloudformation_type_name = "AWS::ACMPCA::Permission" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_aps_rule_groups_namespace" { + cloudformation_type_name = "AWS::APS::RuleGroupsNamespace" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_aps_scraper" { + cloudformation_type_name = "AWS::APS::Scraper" +} + +resource_schema "aws_aps_workspace" { + cloudformation_type_name = "AWS::APS::Workspace" +} + +resource_schema "aws_arczonalshift_zonal_autoshift_configuration" { + cloudformation_type_name = "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" +} + +resource_schema "aws_accessanalyzer_analyzer" { + cloudformation_type_name = "AWS::AccessAnalyzer::Analyzer" +} + +resource_schema "aws_amplify_app" { + cloudformation_type_name = "AWS::Amplify::App" +} + +resource_schema "aws_amplify_branch" { + cloudformation_type_name = "AWS::Amplify::Branch" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplify_domain" { + cloudformation_type_name = "AWS::Amplify::Domain" +} + +resource_schema "aws_amplifyuibuilder_component" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Component" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplifyuibuilder_form" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Form" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplifyuibuilder_theme" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Theme" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_account" { + cloudformation_type_name = "AWS::ApiGateway::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_api_key" { + cloudformation_type_name = "AWS::ApiGateway::ApiKey" +} + +resource_schema "aws_apigateway_authorizer" { + cloudformation_type_name = "AWS::ApiGateway::Authorizer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_base_path_mapping" { + cloudformation_type_name = "AWS::ApiGateway::BasePathMapping" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_client_certificate" { + cloudformation_type_name = "AWS::ApiGateway::ClientCertificate" +} + +resource_schema "aws_apigateway_deployment" { + cloudformation_type_name = "AWS::ApiGateway::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_documentation_part" { + cloudformation_type_name = "AWS::ApiGateway::DocumentationPart" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_documentation_version" { + cloudformation_type_name = "AWS::ApiGateway::DocumentationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_domain_name" { + cloudformation_type_name = "AWS::ApiGateway::DomainName" +} + +resource_schema "aws_apigateway_gateway_response" { + cloudformation_type_name = "AWS::ApiGateway::GatewayResponse" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_method" { + cloudformation_type_name = "AWS::ApiGateway::Method" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_model" { + cloudformation_type_name = "AWS::ApiGateway::Model" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_request_validator" { + cloudformation_type_name = "AWS::ApiGateway::RequestValidator" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_resource" { + cloudformation_type_name = "AWS::ApiGateway::Resource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_rest_api" { + cloudformation_type_name = "AWS::ApiGateway::RestApi" +} + +resource_schema "aws_apigateway_stage" { + cloudformation_type_name = "AWS::ApiGateway::Stage" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_usage_plan" { + cloudformation_type_name = "AWS::ApiGateway::UsagePlan" +} + +resource_schema "aws_apigateway_usage_plan_key" { + cloudformation_type_name = "AWS::ApiGateway::UsagePlanKey" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_vpc_link" { + cloudformation_type_name = "AWS::ApiGateway::VpcLink" +} + +resource_schema "aws_apigatewayv2_api" { + cloudformation_type_name = "AWS::ApiGatewayV2::Api" +} + +resource_schema "aws_apigatewayv2_api_mapping" { + cloudformation_type_name = "AWS::ApiGatewayV2::ApiMapping" +} + +resource_schema "aws_apigatewayv2_authorizer" { + cloudformation_type_name = "AWS::ApiGatewayV2::Authorizer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_deployment" { + cloudformation_type_name = "AWS::ApiGatewayV2::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_domain_name" { + cloudformation_type_name = "AWS::ApiGatewayV2::DomainName" +} + +resource_schema "aws_apigatewayv2_integration_response" { + cloudformation_type_name = "AWS::ApiGatewayV2::IntegrationResponse" +} + +resource_schema "aws_apigatewayv2_model" { + cloudformation_type_name = "AWS::ApiGatewayV2::Model" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_route" { + cloudformation_type_name = "AWS::ApiGatewayV2::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_route_response" { + cloudformation_type_name = "AWS::ApiGatewayV2::RouteResponse" +} + +resource_schema "aws_apigatewayv2_vpc_link" { + cloudformation_type_name = "AWS::ApiGatewayV2::VpcLink" +} + +resource_schema "aws_appconfig_application" { + cloudformation_type_name = "AWS::AppConfig::Application" +} + +resource_schema "aws_appconfig_configuration_profile" { + cloudformation_type_name = "AWS::AppConfig::ConfigurationProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appconfig_environment" { + cloudformation_type_name = "AWS::AppConfig::Environment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appconfig_extension" { + cloudformation_type_name = "AWS::AppConfig::Extension" +} + +resource_schema "aws_appconfig_extension_association" { + cloudformation_type_name = "AWS::AppConfig::ExtensionAssociation" +} + +resource_schema "aws_appconfig_hosted_configuration_version" { + cloudformation_type_name = "AWS::AppConfig::HostedConfigurationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appflow_connector" { + cloudformation_type_name = "AWS::AppFlow::Connector" +} + +resource_schema "aws_appflow_connector_profile" { + cloudformation_type_name = "AWS::AppFlow::ConnectorProfile" +} + +resource_schema "aws_appflow_flow" { + cloudformation_type_name = "AWS::AppFlow::Flow" +} + +resource_schema "aws_appintegrations_application" { + cloudformation_type_name = "AWS::AppIntegrations::Application" +} + +resource_schema "aws_appintegrations_data_integration" { + cloudformation_type_name = "AWS::AppIntegrations::DataIntegration" +} + +resource_schema "aws_appintegrations_event_integration" { + cloudformation_type_name = "AWS::AppIntegrations::EventIntegration" +} + +resource_schema "aws_apprunner_auto_scaling_configuration" { + cloudformation_type_name = "AWS::AppRunner::AutoScalingConfiguration" +} + +resource_schema "aws_apprunner_observability_configuration" { + cloudformation_type_name = "AWS::AppRunner::ObservabilityConfiguration" +} + +resource_schema "aws_apprunner_service" { + cloudformation_type_name = "AWS::AppRunner::Service" +} + +resource_schema "aws_apprunner_vpc_connector" { + cloudformation_type_name = "AWS::AppRunner::VpcConnector" +} + +resource_schema "aws_apprunner_vpc_ingress_connection" { + cloudformation_type_name = "AWS::AppRunner::VpcIngressConnection" +} + +resource_schema "aws_appstream_app_block" { + cloudformation_type_name = "AWS::AppStream::AppBlock" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_app_block_builder" { + cloudformation_type_name = "AWS::AppStream::AppBlockBuilder" +} + +resource_schema "aws_appstream_application" { + cloudformation_type_name = "AWS::AppStream::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_application_entitlement_association" { + cloudformation_type_name = "AWS::AppStream::ApplicationEntitlementAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_application_fleet_association" { + cloudformation_type_name = "AWS::AppStream::ApplicationFleetAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_directory_config" { + cloudformation_type_name = "AWS::AppStream::DirectoryConfig" +} + +resource_schema "aws_appstream_entitlement" { + cloudformation_type_name = "AWS::AppStream::Entitlement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_image_builder" { + cloudformation_type_name = "AWS::AppStream::ImageBuilder" +} + +resource_schema "aws_appsync_domain_name" { + cloudformation_type_name = "AWS::AppSync::DomainName" +} + +resource_schema "aws_appsync_domain_name_api_association" { + cloudformation_type_name = "AWS::AppSync::DomainNameApiAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_function_configuration" { + cloudformation_type_name = "AWS::AppSync::FunctionConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_resolver" { + cloudformation_type_name = "AWS::AppSync::Resolver" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_source_api_association" { + cloudformation_type_name = "AWS::AppSync::SourceApiAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apptest_test_case" { + cloudformation_type_name = "AWS::AppTest::TestCase" +} + +resource_schema "aws_applicationautoscaling_scalable_target" { + cloudformation_type_name = "AWS::ApplicationAutoScaling::ScalableTarget" +} + +resource_schema "aws_applicationautoscaling_scaling_policy" { + cloudformation_type_name = "AWS::ApplicationAutoScaling::ScalingPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_applicationinsights_application" { + cloudformation_type_name = "AWS::ApplicationInsights::Application" +} + +resource_schema "aws_applicationsignals_service_level_objective" { + cloudformation_type_name = "AWS::ApplicationSignals::ServiceLevelObjective" +} + +resource_schema "aws_athena_capacity_reservation" { + cloudformation_type_name = "AWS::Athena::CapacityReservation" +} + +resource_schema "aws_athena_data_catalog" { + cloudformation_type_name = "AWS::Athena::DataCatalog" +} + +resource_schema "aws_athena_named_query" { + cloudformation_type_name = "AWS::Athena::NamedQuery" +} + +resource_schema "aws_athena_prepared_statement" { + cloudformation_type_name = "AWS::Athena::PreparedStatement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_athena_work_group" { + cloudformation_type_name = "AWS::Athena::WorkGroup" +} + +resource_schema "aws_auditmanager_assessment" { + cloudformation_type_name = "AWS::AuditManager::Assessment" +} + +resource_schema "aws_autoscaling_auto_scaling_group" { + cloudformation_type_name = "AWS::AutoScaling::AutoScalingGroup" +} + +resource_schema "aws_autoscaling_launch_configuration" { + cloudformation_type_name = "AWS::AutoScaling::LaunchConfiguration" +} + +resource_schema "aws_autoscaling_lifecycle_hook" { + cloudformation_type_name = "AWS::AutoScaling::LifecycleHook" +} + +resource_schema "aws_autoscaling_scaling_policy" { + cloudformation_type_name = "AWS::AutoScaling::ScalingPolicy" +} + +resource_schema "aws_autoscaling_scheduled_action" { + cloudformation_type_name = "AWS::AutoScaling::ScheduledAction" +} + +resource_schema "aws_autoscaling_warm_pool" { + cloudformation_type_name = "AWS::AutoScaling::WarmPool" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_b2bi_capability" { + cloudformation_type_name = "AWS::B2BI::Capability" +} + +resource_schema "aws_b2bi_partnership" { + cloudformation_type_name = "AWS::B2BI::Partnership" +} + +resource_schema "aws_b2bi_profile" { + cloudformation_type_name = "AWS::B2BI::Profile" +} + +resource_schema "aws_b2bi_transformer" { + cloudformation_type_name = "AWS::B2BI::Transformer" +} + +resource_schema "aws_bcmdataexports_export" { + cloudformation_type_name = "AWS::BCMDataExports::Export" +} + +resource_schema "aws_backup_backup_plan" { + cloudformation_type_name = "AWS::Backup::BackupPlan" +} + +resource_schema "aws_backup_backup_selection" { + cloudformation_type_name = "AWS::Backup::BackupSelection" +} + +resource_schema "aws_backup_backup_vault" { + cloudformation_type_name = "AWS::Backup::BackupVault" +} + +resource_schema "aws_backup_framework" { + cloudformation_type_name = "AWS::Backup::Framework" +} + +resource_schema "aws_backup_report_plan" { + cloudformation_type_name = "AWS::Backup::ReportPlan" +} + +resource_schema "aws_backup_restore_testing_plan" { + cloudformation_type_name = "AWS::Backup::RestoreTestingPlan" +} + +resource_schema "aws_backup_restore_testing_selection" { + cloudformation_type_name = "AWS::Backup::RestoreTestingSelection" +} + +resource_schema "aws_backupgateway_hypervisor" { + cloudformation_type_name = "AWS::BackupGateway::Hypervisor" +} + +resource_schema "aws_batch_compute_environment" { + cloudformation_type_name = "AWS::Batch::ComputeEnvironment" +} + +resource_schema "aws_batch_job_queue" { + cloudformation_type_name = "AWS::Batch::JobQueue" +} + +resource_schema "aws_batch_scheduling_policy" { + cloudformation_type_name = "AWS::Batch::SchedulingPolicy" +} + +resource_schema "aws_bedrock_agent" { + cloudformation_type_name = "AWS::Bedrock::Agent" +} + +resource_schema "aws_bedrock_agent_alias" { + cloudformation_type_name = "AWS::Bedrock::AgentAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_data_source" { + cloudformation_type_name = "AWS::Bedrock::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_flow" { + cloudformation_type_name = "AWS::Bedrock::Flow" +} + +resource_schema "aws_bedrock_flow_alias" { + cloudformation_type_name = "AWS::Bedrock::FlowAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_flow_version" { + cloudformation_type_name = "AWS::Bedrock::FlowVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_guardrail" { + cloudformation_type_name = "AWS::Bedrock::Guardrail" +} + +resource_schema "aws_bedrock_guardrail_version" { + cloudformation_type_name = "AWS::Bedrock::GuardrailVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_knowledge_base" { + cloudformation_type_name = "AWS::Bedrock::KnowledgeBase" +} + +resource_schema "aws_bedrock_prompt" { + cloudformation_type_name = "AWS::Bedrock::Prompt" +} + +resource_schema "aws_bedrock_prompt_version" { + cloudformation_type_name = "AWS::Bedrock::PromptVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_billingconductor_billing_group" { + cloudformation_type_name = "AWS::BillingConductor::BillingGroup" +} + +resource_schema "aws_billingconductor_custom_line_item" { + cloudformation_type_name = "AWS::BillingConductor::CustomLineItem" +} + +resource_schema "aws_billingconductor_pricing_plan" { + cloudformation_type_name = "AWS::BillingConductor::PricingPlan" +} + +resource_schema "aws_billingconductor_pricing_rule" { + cloudformation_type_name = "AWS::BillingConductor::PricingRule" +} + +resource_schema "aws_budgets_budgets_action" { + cloudformation_type_name = "AWS::Budgets::BudgetsAction" +} + +resource_schema "aws_ce_anomaly_monitor" { + cloudformation_type_name = "AWS::CE::AnomalyMonitor" +} + +resource_schema "aws_ce_anomaly_subscription" { + cloudformation_type_name = "AWS::CE::AnomalySubscription" +} + +resource_schema "aws_ce_cost_category" { + cloudformation_type_name = "AWS::CE::CostCategory" +} + +resource_schema "aws_cur_report_definition" { + cloudformation_type_name = "AWS::CUR::ReportDefinition" +} + +resource_schema "aws_cassandra_keyspace" { + cloudformation_type_name = "AWS::Cassandra::Keyspace" +} + +resource_schema "aws_cassandra_table" { + cloudformation_type_name = "AWS::Cassandra::Table" +} + +resource_schema "aws_certificatemanager_account" { + cloudformation_type_name = "AWS::CertificateManager::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_chatbot_microsoft_teams_channel_configuration" { + cloudformation_type_name = "AWS::Chatbot::MicrosoftTeamsChannelConfiguration" +} + +resource_schema "aws_chatbot_slack_channel_configuration" { + cloudformation_type_name = "AWS::Chatbot::SlackChannelConfiguration" +} + +resource_schema "aws_cleanrooms_analysis_template" { + cloudformation_type_name = "AWS::CleanRooms::AnalysisTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_collaboration" { + cloudformation_type_name = "AWS::CleanRooms::Collaboration" +} + +resource_schema "aws_cleanrooms_configured_table" { + cloudformation_type_name = "AWS::CleanRooms::ConfiguredTable" +} + +resource_schema "aws_cleanrooms_configured_table_association" { + cloudformation_type_name = "AWS::CleanRooms::ConfiguredTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_membership" { + cloudformation_type_name = "AWS::CleanRooms::Membership" +} + +resource_schema "aws_cleanrooms_privacy_budget_template" { + cloudformation_type_name = "AWS::CleanRooms::PrivacyBudgetTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanroomsml_training_dataset" { + cloudformation_type_name = "AWS::CleanRoomsML::TrainingDataset" +} + +resource_schema "aws_cloudformation_hook_default_version" { + cloudformation_type_name = "AWS::CloudFormation::HookDefaultVersion" +} + +resource_schema "aws_cloudformation_hook_type_config" { + cloudformation_type_name = "AWS::CloudFormation::HookTypeConfig" +} + +resource_schema "aws_cloudformation_hook_version" { + cloudformation_type_name = "AWS::CloudFormation::HookVersion" +} + +resource_schema "aws_cloudformation_module_default_version" { + cloudformation_type_name = "AWS::CloudFormation::ModuleDefaultVersion" +} + +resource_schema "aws_cloudformation_module_version" { + cloudformation_type_name = "AWS::CloudFormation::ModuleVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudformation_public_type_version" { + cloudformation_type_name = "AWS::CloudFormation::PublicTypeVersion" +} + +resource_schema "aws_cloudformation_publisher" { + cloudformation_type_name = "AWS::CloudFormation::Publisher" +} + +resource_schema "aws_cloudformation_resource_default_version" { + cloudformation_type_name = "AWS::CloudFormation::ResourceDefaultVersion" +} + +resource_schema "aws_cloudformation_resource_version" { + cloudformation_type_name = "AWS::CloudFormation::ResourceVersion" +} + +resource_schema "aws_cloudformation_stack" { + cloudformation_type_name = "AWS::CloudFormation::Stack" +} + +resource_schema "aws_cloudformation_stack_set" { + cloudformation_type_name = "AWS::CloudFormation::StackSet" +} + +resource_schema "aws_cloudformation_type_activation" { + cloudformation_type_name = "AWS::CloudFormation::TypeActivation" +} + +resource_schema "aws_cloudfront_cache_policy" { + cloudformation_type_name = "AWS::CloudFront::CachePolicy" +} + +resource_schema "aws_cloudfront_cloudfront_origin_access_identity" { + cloudformation_type_name = "AWS::CloudFront::CloudFrontOriginAccessIdentity" +} + +resource_schema "aws_cloudfront_continuous_deployment_policy" { + cloudformation_type_name = "AWS::CloudFront::ContinuousDeploymentPolicy" +} + +resource_schema "aws_cloudfront_distribution" { + cloudformation_type_name = "AWS::CloudFront::Distribution" +} + +resource_schema "aws_cloudfront_function" { + cloudformation_type_name = "AWS::CloudFront::Function" +} + +resource_schema "aws_cloudfront_key_group" { + cloudformation_type_name = "AWS::CloudFront::KeyGroup" +} + +resource_schema "aws_cloudfront_key_value_store" { + cloudformation_type_name = "AWS::CloudFront::KeyValueStore" +} + +resource_schema "aws_cloudfront_monitoring_subscription" { + cloudformation_type_name = "AWS::CloudFront::MonitoringSubscription" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudfront_origin_access_control" { + cloudformation_type_name = "AWS::CloudFront::OriginAccessControl" +} + +resource_schema "aws_cloudfront_origin_request_policy" { + cloudformation_type_name = "AWS::CloudFront::OriginRequestPolicy" +} + +resource_schema "aws_cloudfront_public_key" { + cloudformation_type_name = "AWS::CloudFront::PublicKey" +} + +resource_schema "aws_cloudfront_realtime_log_config" { + cloudformation_type_name = "AWS::CloudFront::RealtimeLogConfig" +} + +resource_schema "aws_cloudfront_response_headers_policy" { + cloudformation_type_name = "AWS::CloudFront::ResponseHeadersPolicy" +} + +resource_schema "aws_cloudtrail_channel" { + cloudformation_type_name = "AWS::CloudTrail::Channel" +} + +resource_schema "aws_cloudtrail_event_data_store" { + cloudformation_type_name = "AWS::CloudTrail::EventDataStore" +} + +resource_schema "aws_cloudtrail_resource_policy" { + cloudformation_type_name = "AWS::CloudTrail::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudtrail_trail" { + cloudformation_type_name = "AWS::CloudTrail::Trail" +} + +resource_schema "aws_cloudwatch_alarm" { + cloudformation_type_name = "AWS::CloudWatch::Alarm" +} + +resource_schema "aws_cloudwatch_composite_alarm" { + cloudformation_type_name = "AWS::CloudWatch::CompositeAlarm" +} + +resource_schema "aws_cloudwatch_dashboard" { + cloudformation_type_name = "AWS::CloudWatch::Dashboard" +} + +resource_schema "aws_cloudwatch_metric_stream" { + cloudformation_type_name = "AWS::CloudWatch::MetricStream" +} + +resource_schema "aws_codeartifact_domain" { + cloudformation_type_name = "AWS::CodeArtifact::Domain" +} + +resource_schema "aws_codeartifact_package_group" { + cloudformation_type_name = "AWS::CodeArtifact::PackageGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_codeartifact_repository" { + cloudformation_type_name = "AWS::CodeArtifact::Repository" +} + +resource_schema "aws_codebuild_fleet" { + cloudformation_type_name = "AWS::CodeBuild::Fleet" +} + +resource_schema "aws_codeconnections_connection" { + cloudformation_type_name = "AWS::CodeConnections::Connection" +} + +resource_schema "aws_codedeploy_application" { + cloudformation_type_name = "AWS::CodeDeploy::Application" +} + +resource_schema "aws_codedeploy_deployment_config" { + cloudformation_type_name = "AWS::CodeDeploy::DeploymentConfig" +} + +resource_schema "aws_codeguruprofiler_profiling_group" { + cloudformation_type_name = "AWS::CodeGuruProfiler::ProfilingGroup" +} + +resource_schema "aws_codegurureviewer_repository_association" { + cloudformation_type_name = "AWS::CodeGuruReviewer::RepositoryAssociation" +} + +resource_schema "aws_codepipeline_custom_action_type" { + cloudformation_type_name = "AWS::CodePipeline::CustomActionType" +} + +resource_schema "aws_codepipeline_pipeline" { + cloudformation_type_name = "AWS::CodePipeline::Pipeline" +} + +resource_schema "aws_codestarconnections_connection" { + cloudformation_type_name = "AWS::CodeStarConnections::Connection" +} + +resource_schema "aws_codestarconnections_repository_link" { + cloudformation_type_name = "AWS::CodeStarConnections::RepositoryLink" +} + +resource_schema "aws_codestarconnections_sync_configuration" { + cloudformation_type_name = "AWS::CodeStarConnections::SyncConfiguration" +} + +resource_schema "aws_codestarnotifications_notification_rule" { + cloudformation_type_name = "AWS::CodeStarNotifications::NotificationRule" +} + +resource_schema "aws_cognito_identity_pool" { + cloudformation_type_name = "AWS::Cognito::IdentityPool" +} + +resource_schema "aws_cognito_identity_pool_principal_tag" { + cloudformation_type_name = "AWS::Cognito::IdentityPoolPrincipalTag" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_identity_pool_role_attachment" { + cloudformation_type_name = "AWS::Cognito::IdentityPoolRoleAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_log_delivery_configuration" { + cloudformation_type_name = "AWS::Cognito::LogDeliveryConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool" { + cloudformation_type_name = "AWS::Cognito::UserPool" +} + +resource_schema "aws_cognito_user_pool_client" { + cloudformation_type_name = "AWS::Cognito::UserPoolClient" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_group" { + cloudformation_type_name = "AWS::Cognito::UserPoolGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_resource_server" { + cloudformation_type_name = "AWS::Cognito::UserPoolResourceServer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_risk_configuration_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolRiskConfigurationAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_ui_customization_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolUICustomizationAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_user" { + cloudformation_type_name = "AWS::Cognito::UserPoolUser" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_user_to_group_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolUserToGroupAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_comprehend_document_classifier" { + cloudformation_type_name = "AWS::Comprehend::DocumentClassifier" +} + +resource_schema "aws_comprehend_flywheel" { + cloudformation_type_name = "AWS::Comprehend::Flywheel" +} + +resource_schema "aws_config_aggregation_authorization" { + cloudformation_type_name = "AWS::Config::AggregationAuthorization" +} + +resource_schema "aws_config_config_rule" { + cloudformation_type_name = "AWS::Config::ConfigRule" +} + +resource_schema "aws_config_configuration_aggregator" { + cloudformation_type_name = "AWS::Config::ConfigurationAggregator" +} + +resource_schema "aws_config_conformance_pack" { + cloudformation_type_name = "AWS::Config::ConformancePack" +} + +resource_schema "aws_config_organization_conformance_pack" { + cloudformation_type_name = "AWS::Config::OrganizationConformancePack" +} + +resource_schema "aws_config_stored_query" { + cloudformation_type_name = "AWS::Config::StoredQuery" +} + +resource_schema "aws_connect_approved_origin" { + cloudformation_type_name = "AWS::Connect::ApprovedOrigin" +} + +resource_schema "aws_connect_contact_flow" { + cloudformation_type_name = "AWS::Connect::ContactFlow" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_contact_flow_module" { + cloudformation_type_name = "AWS::Connect::ContactFlowModule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_evaluation_form" { + cloudformation_type_name = "AWS::Connect::EvaluationForm" +} + +resource_schema "aws_connect_hours_of_operation" { + cloudformation_type_name = "AWS::Connect::HoursOfOperation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_instance" { + cloudformation_type_name = "AWS::Connect::Instance" +} + +resource_schema "aws_connect_instance_storage_config" { + cloudformation_type_name = "AWS::Connect::InstanceStorageConfig" +} + +resource_schema "aws_connect_integration_association" { + cloudformation_type_name = "AWS::Connect::IntegrationAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_phone_number" { + cloudformation_type_name = "AWS::Connect::PhoneNumber" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_predefined_attribute" { + cloudformation_type_name = "AWS::Connect::PredefinedAttribute" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_prompt" { + cloudformation_type_name = "AWS::Connect::Prompt" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_queue" { + cloudformation_type_name = "AWS::Connect::Queue" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_quick_connect" { + cloudformation_type_name = "AWS::Connect::QuickConnect" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_routing_profile" { + cloudformation_type_name = "AWS::Connect::RoutingProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_rule" { + cloudformation_type_name = "AWS::Connect::Rule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_security_key" { + cloudformation_type_name = "AWS::Connect::SecurityKey" +} + +resource_schema "aws_connect_security_profile" { + cloudformation_type_name = "AWS::Connect::SecurityProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_task_template" { + cloudformation_type_name = "AWS::Connect::TaskTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_traffic_distribution_group" { + cloudformation_type_name = "AWS::Connect::TrafficDistributionGroup" +} + +resource_schema "aws_connect_user" { + cloudformation_type_name = "AWS::Connect::User" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_user_hierarchy_group" { + cloudformation_type_name = "AWS::Connect::UserHierarchyGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_view" { + cloudformation_type_name = "AWS::Connect::View" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_view_version" { + cloudformation_type_name = "AWS::Connect::ViewVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connectcampaigns_campaign" { + cloudformation_type_name = "AWS::ConnectCampaigns::Campaign" +} + +resource_schema "aws_controltower_enabled_baseline" { + cloudformation_type_name = "AWS::ControlTower::EnabledBaseline" +} + +resource_schema "aws_controltower_enabled_control" { + cloudformation_type_name = "AWS::ControlTower::EnabledControl" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_controltower_landing_zone" { + cloudformation_type_name = "AWS::ControlTower::LandingZone" +} + +resource_schema "aws_customerprofiles_calculated_attribute_definition" { + cloudformation_type_name = "AWS::CustomerProfiles::CalculatedAttributeDefinition" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_domain" { + cloudformation_type_name = "AWS::CustomerProfiles::Domain" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_event_stream" { + cloudformation_type_name = "AWS::CustomerProfiles::EventStream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_integration" { + cloudformation_type_name = "AWS::CustomerProfiles::Integration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_object_type" { + cloudformation_type_name = "AWS::CustomerProfiles::ObjectType" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_dms_data_provider" { + cloudformation_type_name = "AWS::DMS::DataProvider" +} + +resource_schema "aws_dms_instance_profile" { + cloudformation_type_name = "AWS::DMS::InstanceProfile" +} + +resource_schema "aws_dms_migration_project" { + cloudformation_type_name = "AWS::DMS::MigrationProject" +} + +resource_schema "aws_dms_replication_config" { + cloudformation_type_name = "AWS::DMS::ReplicationConfig" +} + +resource_schema "aws_databrew_dataset" { + cloudformation_type_name = "AWS::DataBrew::Dataset" +} + +resource_schema "aws_databrew_job" { + cloudformation_type_name = "AWS::DataBrew::Job" +} + +resource_schema "aws_databrew_project" { + cloudformation_type_name = "AWS::DataBrew::Project" +} + +resource_schema "aws_databrew_recipe" { + cloudformation_type_name = "AWS::DataBrew::Recipe" +} + +resource_schema "aws_databrew_ruleset" { + cloudformation_type_name = "AWS::DataBrew::Ruleset" +} + +resource_schema "aws_databrew_schedule" { + cloudformation_type_name = "AWS::DataBrew::Schedule" +} + +resource_schema "aws_datapipeline_pipeline" { + cloudformation_type_name = "AWS::DataPipeline::Pipeline" +} + +resource_schema "aws_datasync_agent" { + cloudformation_type_name = "AWS::DataSync::Agent" +} + +resource_schema "aws_datasync_location_azure_blob" { + cloudformation_type_name = "AWS::DataSync::LocationAzureBlob" +} + +resource_schema "aws_datasync_location_efs" { + cloudformation_type_name = "AWS::DataSync::LocationEFS" +} + +resource_schema "aws_datasync_location_fsx_lustre" { + cloudformation_type_name = "AWS::DataSync::LocationFSxLustre" +} + +resource_schema "aws_datasync_location_fsx_ontap" { + cloudformation_type_name = "AWS::DataSync::LocationFSxONTAP" +} + +resource_schema "aws_datasync_location_fsx_open_zfs" { + cloudformation_type_name = "AWS::DataSync::LocationFSxOpenZFS" +} + +resource_schema "aws_datasync_location_fsx_windows" { + cloudformation_type_name = "AWS::DataSync::LocationFSxWindows" +} + +resource_schema "aws_datasync_location_hdfs" { + cloudformation_type_name = "AWS::DataSync::LocationHDFS" +} + +resource_schema "aws_datasync_location_nfs" { + cloudformation_type_name = "AWS::DataSync::LocationNFS" +} + +resource_schema "aws_datasync_location_object_storage" { + cloudformation_type_name = "AWS::DataSync::LocationObjectStorage" +} + +resource_schema "aws_datasync_location_s3" { + cloudformation_type_name = "AWS::DataSync::LocationS3" +} + +resource_schema "aws_datasync_location_smb" { + cloudformation_type_name = "AWS::DataSync::LocationSMB" +} + +resource_schema "aws_datasync_storage_system" { + cloudformation_type_name = "AWS::DataSync::StorageSystem" +} + +resource_schema "aws_datasync_task" { + cloudformation_type_name = "AWS::DataSync::Task" +} + +resource_schema "aws_datazone_data_source" { + cloudformation_type_name = "AWS::DataZone::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_domain" { + cloudformation_type_name = "AWS::DataZone::Domain" +} + +resource_schema "aws_datazone_environment" { + cloudformation_type_name = "AWS::DataZone::Environment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_environment_blueprint_configuration" { + cloudformation_type_name = "AWS::DataZone::EnvironmentBlueprintConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_environment_profile" { + cloudformation_type_name = "AWS::DataZone::EnvironmentProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_group_profile" { + cloudformation_type_name = "AWS::DataZone::GroupProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_project" { + cloudformation_type_name = "AWS::DataZone::Project" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_project_membership" { + cloudformation_type_name = "AWS::DataZone::ProjectMembership" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_subscription_target" { + cloudformation_type_name = "AWS::DataZone::SubscriptionTarget" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_user_profile" { + cloudformation_type_name = "AWS::DataZone::UserProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_farm" { + cloudformation_type_name = "AWS::Deadline::Farm" +} + +resource_schema "aws_deadline_fleet" { + cloudformation_type_name = "AWS::Deadline::Fleet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_license_endpoint" { + cloudformation_type_name = "AWS::Deadline::LicenseEndpoint" +} + +resource_schema "aws_deadline_metered_product" { + cloudformation_type_name = "AWS::Deadline::MeteredProduct" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_monitor" { + cloudformation_type_name = "AWS::Deadline::Monitor" +} + +resource_schema "aws_deadline_queue" { + cloudformation_type_name = "AWS::Deadline::Queue" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_queue_environment" { + cloudformation_type_name = "AWS::Deadline::QueueEnvironment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_queue_fleet_association" { + cloudformation_type_name = "AWS::Deadline::QueueFleetAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_storage_profile" { + cloudformation_type_name = "AWS::Deadline::StorageProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_detective_graph" { + cloudformation_type_name = "AWS::Detective::Graph" +} + +resource_schema "aws_detective_member_invitation" { + cloudformation_type_name = "AWS::Detective::MemberInvitation" +} + +resource_schema "aws_detective_organization_admin" { + cloudformation_type_name = "AWS::Detective::OrganizationAdmin" +} + +resource_schema "aws_devopsguru_log_anomaly_detection_integration" { + cloudformation_type_name = "AWS::DevOpsGuru::LogAnomalyDetectionIntegration" +} + +resource_schema "aws_devopsguru_notification_channel" { + cloudformation_type_name = "AWS::DevOpsGuru::NotificationChannel" +} + +resource_schema "aws_devopsguru_resource_collection" { + cloudformation_type_name = "AWS::DevOpsGuru::ResourceCollection" +} + +resource_schema "aws_directoryservice_simple_ad" { + cloudformation_type_name = "AWS::DirectoryService::SimpleAD" +} + +resource_schema "aws_docdbelastic_cluster" { + cloudformation_type_name = "AWS::DocDBElastic::Cluster" +} + +resource_schema "aws_dynamodb_global_table" { + cloudformation_type_name = "AWS::DynamoDB::GlobalTable" +} + +resource_schema "aws_dynamodb_table" { + cloudformation_type_name = "AWS::DynamoDB::Table" +} + +resource_schema "aws_ec2_capacity_reservation" { + cloudformation_type_name = "AWS::EC2::CapacityReservation" +} + +resource_schema "aws_ec2_capacity_reservation_fleet" { + cloudformation_type_name = "AWS::EC2::CapacityReservationFleet" +} + +resource_schema "aws_ec2_carrier_gateway" { + cloudformation_type_name = "AWS::EC2::CarrierGateway" +} + +resource_schema "aws_ec2_customer_gateway" { + cloudformation_type_name = "AWS::EC2::CustomerGateway" +} + +resource_schema "aws_ec2_dhcp_options" { + cloudformation_type_name = "AWS::EC2::DHCPOptions" +} + +resource_schema "aws_ec2_ec2_fleet" { + cloudformation_type_name = "AWS::EC2::EC2Fleet" +} + +resource_schema "aws_ec2_eip" { + cloudformation_type_name = "AWS::EC2::EIP" +} + +resource_schema "aws_ec2_eip_association" { + cloudformation_type_name = "AWS::EC2::EIPAssociation" +} + +resource_schema "aws_ec2_egress_only_internet_gateway" { + cloudformation_type_name = "AWS::EC2::EgressOnlyInternetGateway" +} + +resource_schema "aws_ec2_enclave_certificate_iam_role_association" { + cloudformation_type_name = "AWS::EC2::EnclaveCertificateIamRoleAssociation" +} + +resource_schema "aws_ec2_flow_log" { + cloudformation_type_name = "AWS::EC2::FlowLog" +} + +resource_schema "aws_ec2_gateway_route_table_association" { + cloudformation_type_name = "AWS::EC2::GatewayRouteTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_host" { + cloudformation_type_name = "AWS::EC2::Host" +} + +resource_schema "aws_ec2_ipam" { + cloudformation_type_name = "AWS::EC2::IPAM" +} + +resource_schema "aws_ec2_ipam_allocation" { + cloudformation_type_name = "AWS::EC2::IPAMAllocation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_ipam_pool" { + cloudformation_type_name = "AWS::EC2::IPAMPool" +} + +resource_schema "aws_ec2_ipam_pool_cidr" { + cloudformation_type_name = "AWS::EC2::IPAMPoolCidr" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_ipam_resource_discovery" { + cloudformation_type_name = "AWS::EC2::IPAMResourceDiscovery" +} + +resource_schema "aws_ec2_ipam_resource_discovery_association" { + cloudformation_type_name = "AWS::EC2::IPAMResourceDiscoveryAssociation" +} + +resource_schema "aws_ec2_ipam_scope" { + cloudformation_type_name = "AWS::EC2::IPAMScope" +} + +resource_schema "aws_ec2_instance" { + cloudformation_type_name = "AWS::EC2::Instance" +} + +resource_schema "aws_ec2_instance_connect_endpoint" { + cloudformation_type_name = "AWS::EC2::InstanceConnectEndpoint" +} + +resource_schema "aws_ec2_internet_gateway" { + cloudformation_type_name = "AWS::EC2::InternetGateway" +} + +resource_schema "aws_ec2_key_pair" { + cloudformation_type_name = "AWS::EC2::KeyPair" +} + +resource_schema "aws_ec2_launch_template" { + cloudformation_type_name = "AWS::EC2::LaunchTemplate" +} + +resource_schema "aws_ec2_local_gateway_route" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRoute" +} + +resource_schema "aws_ec2_local_gateway_route_table" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTable" +} + +resource_schema "aws_ec2_local_gateway_route_table_vpc_association" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTableVPCAssociation" +} + +resource_schema "aws_ec2_local_gateway_route_table_virtual_interface_group_association" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTableVirtualInterfaceGroupAssociation" +} + +resource_schema "aws_ec2_nat_gateway" { + cloudformation_type_name = "AWS::EC2::NatGateway" +} + +resource_schema "aws_ec2_network_acl" { + cloudformation_type_name = "AWS::EC2::NetworkAcl" +} + +resource_schema "aws_ec2_network_insights_access_scope" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAccessScope" +} + +resource_schema "aws_ec2_network_insights_access_scope_analysis" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAccessScopeAnalysis" +} + +resource_schema "aws_ec2_network_insights_analysis" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAnalysis" +} + +resource_schema "aws_ec2_network_insights_path" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsPath" +} + +resource_schema "aws_ec2_network_interface" { + cloudformation_type_name = "AWS::EC2::NetworkInterface" +} + +resource_schema "aws_ec2_network_interface_attachment" { + cloudformation_type_name = "AWS::EC2::NetworkInterfaceAttachment" +} + +resource_schema "aws_ec2_network_performance_metric_subscription" { + cloudformation_type_name = "AWS::EC2::NetworkPerformanceMetricSubscription" +} + +resource_schema "aws_ec2_placement_group" { + cloudformation_type_name = "AWS::EC2::PlacementGroup" +} + +resource_schema "aws_ec2_prefix_list" { + cloudformation_type_name = "AWS::EC2::PrefixList" +} + +resource_schema "aws_ec2_route" { + cloudformation_type_name = "AWS::EC2::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_route_table" { + cloudformation_type_name = "AWS::EC2::RouteTable" +} + +resource_schema "aws_ec2_security_group" { + cloudformation_type_name = "AWS::EC2::SecurityGroup" +} + +resource_schema "aws_ec2_security_group_egress" { + cloudformation_type_name = "AWS::EC2::SecurityGroupEgress" +} + +resource_schema "aws_ec2_security_group_ingress" { + cloudformation_type_name = "AWS::EC2::SecurityGroupIngress" +} + +resource_schema "aws_ec2_snapshot_block_public_access" { + cloudformation_type_name = "AWS::EC2::SnapshotBlockPublicAccess" +} + +resource_schema "aws_ec2_spot_fleet" { + cloudformation_type_name = "AWS::EC2::SpotFleet" +} + +resource_schema "aws_ec2_subnet" { + cloudformation_type_name = "AWS::EC2::Subnet" +} + +resource_schema "aws_ec2_subnet_cidr_block" { + cloudformation_type_name = "AWS::EC2::SubnetCidrBlock" +} + +resource_schema "aws_ec2_subnet_network_acl_association" { + cloudformation_type_name = "AWS::EC2::SubnetNetworkAclAssociation" +} + +resource_schema "aws_ec2_subnet_route_table_association" { + cloudformation_type_name = "AWS::EC2::SubnetRouteTableAssociation" +} + +resource_schema "aws_ec2_transit_gateway" { + cloudformation_type_name = "AWS::EC2::TransitGateway" +} + +resource_schema "aws_ec2_transit_gateway_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayAttachment" +} + +resource_schema "aws_ec2_transit_gateway_connect" { + cloudformation_type_name = "AWS::EC2::TransitGatewayConnect" +} + +resource_schema "aws_ec2_transit_gateway_multicast_domain" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastDomain" +} + +resource_schema "aws_ec2_transit_gateway_multicast_domain_association" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastDomainAssociation" +} + +resource_schema "aws_ec2_transit_gateway_multicast_group_member" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastGroupMember" +} + +resource_schema "aws_ec2_transit_gateway_multicast_group_source" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastGroupSource" +} + +resource_schema "aws_ec2_transit_gateway_peering_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayPeeringAttachment" +} + +resource_schema "aws_ec2_transit_gateway_route" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRoute" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_route_table" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTable" +} + +resource_schema "aws_ec2_transit_gateway_route_table_association" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_route_table_propagation" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTablePropagation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_vpc_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayVpcAttachment" +} + +resource_schema "aws_ec2_vpc" { + cloudformation_type_name = "AWS::EC2::VPC" +} + +resource_schema "aws_ec2_vpc_cidr_block" { + cloudformation_type_name = "AWS::EC2::VPCCidrBlock" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_vpcdhcp_options_association" { + cloudformation_type_name = "AWS::EC2::VPCDHCPOptionsAssociation" +} + +resource_schema "aws_ec2_vpc_endpoint" { + cloudformation_type_name = "AWS::EC2::VPCEndpoint" +} + +resource_schema "aws_ec2_vpc_endpoint_connection_notification" { + cloudformation_type_name = "AWS::EC2::VPCEndpointConnectionNotification" +} + +resource_schema "aws_ec2_vpc_endpoint_service" { + cloudformation_type_name = "AWS::EC2::VPCEndpointService" +} + +resource_schema "aws_ec2_vpc_endpoint_service_permissions" { + cloudformation_type_name = "AWS::EC2::VPCEndpointServicePermissions" +} + +resource_schema "aws_ec2_vpc_gateway_attachment" { + cloudformation_type_name = "AWS::EC2::VPCGatewayAttachment" +} + +resource_schema "aws_ec2_vpc_peering_connection" { + cloudformation_type_name = "AWS::EC2::VPCPeeringConnection" +} + +resource_schema "aws_ec2_vpn_connection" { + cloudformation_type_name = "AWS::EC2::VPNConnection" +} + +resource_schema "aws_ec2_vpn_connection_route" { + cloudformation_type_name = "AWS::EC2::VPNConnectionRoute" +} + +resource_schema "aws_ec2_vpn_gateway" { + cloudformation_type_name = "AWS::EC2::VPNGateway" +} + +resource_schema "aws_ec2_verified_access_endpoint" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessEndpoint" +} + +resource_schema "aws_ec2_verified_access_group" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessGroup" +} + +resource_schema "aws_ec2_verified_access_instance" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessInstance" +} + +resource_schema "aws_ec2_verified_access_trust_provider" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessTrustProvider" +} + +resource_schema "aws_ec2_volume" { + cloudformation_type_name = "AWS::EC2::Volume" +} + +resource_schema "aws_ec2_volume_attachment" { + cloudformation_type_name = "AWS::EC2::VolumeAttachment" +} + +resource_schema "aws_ecr_public_repository" { + cloudformation_type_name = "AWS::ECR::PublicRepository" +} + +resource_schema "aws_ecr_pull_through_cache_rule" { + cloudformation_type_name = "AWS::ECR::PullThroughCacheRule" +} + +resource_schema "aws_ecr_registry_policy" { + cloudformation_type_name = "AWS::ECR::RegistryPolicy" +} + +resource_schema "aws_ecr_replication_configuration" { + cloudformation_type_name = "AWS::ECR::ReplicationConfiguration" +} + +resource_schema "aws_ecr_repository" { + cloudformation_type_name = "AWS::ECR::Repository" +} + +resource_schema "aws_ecr_repository_creation_template" { + cloudformation_type_name = "AWS::ECR::RepositoryCreationTemplate" +} + +resource_schema "aws_ecs_capacity_provider" { + cloudformation_type_name = "AWS::ECS::CapacityProvider" +} + +resource_schema "aws_ecs_cluster" { + cloudformation_type_name = "AWS::ECS::Cluster" +} + +resource_schema "aws_ecs_cluster_capacity_provider_associations" { + cloudformation_type_name = "AWS::ECS::ClusterCapacityProviderAssociations" +} + +resource_schema "aws_ecs_primary_task_set" { + cloudformation_type_name = "AWS::ECS::PrimaryTaskSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ecs_service" { + cloudformation_type_name = "AWS::ECS::Service" +} + +resource_schema "aws_ecs_task_definition" { + cloudformation_type_name = "AWS::ECS::TaskDefinition" +} + +resource_schema "aws_ecs_task_set" { + cloudformation_type_name = "AWS::ECS::TaskSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_efs_access_point" { + cloudformation_type_name = "AWS::EFS::AccessPoint" +} + +resource_schema "aws_efs_file_system" { + cloudformation_type_name = "AWS::EFS::FileSystem" +} + +resource_schema "aws_efs_mount_target" { + cloudformation_type_name = "AWS::EFS::MountTarget" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_access_entry" { + cloudformation_type_name = "AWS::EKS::AccessEntry" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_addon" { + cloudformation_type_name = "AWS::EKS::Addon" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_cluster" { + cloudformation_type_name = "AWS::EKS::Cluster" +} + +resource_schema "aws_eks_fargate_profile" { + cloudformation_type_name = "AWS::EKS::FargateProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_identity_provider_config" { + cloudformation_type_name = "AWS::EKS::IdentityProviderConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_nodegroup" { + cloudformation_type_name = "AWS::EKS::Nodegroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_pod_identity_association" { + cloudformation_type_name = "AWS::EKS::PodIdentityAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_emr_security_configuration" { + cloudformation_type_name = "AWS::EMR::SecurityConfiguration" +} + +resource_schema "aws_emr_studio" { + cloudformation_type_name = "AWS::EMR::Studio" +} + +resource_schema "aws_emr_studio_session_mapping" { + cloudformation_type_name = "AWS::EMR::StudioSessionMapping" +} + +resource_schema "aws_emr_wal_workspace" { + cloudformation_type_name = "AWS::EMR::WALWorkspace" +} + +resource_schema "aws_emrcontainers_virtual_cluster" { + cloudformation_type_name = "AWS::EMRContainers::VirtualCluster" +} + +resource_schema "aws_emrserverless_application" { + cloudformation_type_name = "AWS::EMRServerless::Application" +} + +resource_schema "aws_elasticache_global_replication_group" { + cloudformation_type_name = "AWS::ElastiCache::GlobalReplicationGroup" +} + +resource_schema "aws_elasticache_parameter_group" { + cloudformation_type_name = "AWS::ElastiCache::ParameterGroup" +} + +resource_schema "aws_elasticache_serverless_cache" { + cloudformation_type_name = "AWS::ElastiCache::ServerlessCache" +} + +resource_schema "aws_elasticache_subnet_group" { + cloudformation_type_name = "AWS::ElastiCache::SubnetGroup" +} + +resource_schema "aws_elasticache_user" { + cloudformation_type_name = "AWS::ElastiCache::User" +} + +resource_schema "aws_elasticache_user_group" { + cloudformation_type_name = "AWS::ElastiCache::UserGroup" +} + +resource_schema "aws_elasticbeanstalk_application" { + cloudformation_type_name = "AWS::ElasticBeanstalk::Application" +} + +resource_schema "aws_elasticbeanstalk_application_version" { + cloudformation_type_name = "AWS::ElasticBeanstalk::ApplicationVersion" +} + +resource_schema "aws_elasticbeanstalk_configuration_template" { + cloudformation_type_name = "AWS::ElasticBeanstalk::ConfigurationTemplate" +} + +resource_schema "aws_elasticbeanstalk_environment" { + cloudformation_type_name = "AWS::ElasticBeanstalk::Environment" +} + +resource_schema "aws_elasticloadbalancingv2_listener" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::Listener" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_elasticloadbalancingv2_listener_rule" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::ListenerRule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_elasticloadbalancingv2_load_balancer" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::LoadBalancer" +} + +resource_schema "aws_elasticloadbalancingv2_target_group" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TargetGroup" +} + +resource_schema "aws_elasticloadbalancingv2_trust_store" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TrustStore" +} + +resource_schema "aws_elasticloadbalancingv2_trust_store_revocation" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TrustStoreRevocation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_entityresolution_id_mapping_workflow" { + cloudformation_type_name = "AWS::EntityResolution::IdMappingWorkflow" +} + +resource_schema "aws_entityresolution_id_namespace" { + cloudformation_type_name = "AWS::EntityResolution::IdNamespace" +} + +resource_schema "aws_entityresolution_matching_workflow" { + cloudformation_type_name = "AWS::EntityResolution::MatchingWorkflow" +} + +resource_schema "aws_entityresolution_policy_statement" { + cloudformation_type_name = "AWS::EntityResolution::PolicyStatement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_entityresolution_schema_mapping" { + cloudformation_type_name = "AWS::EntityResolution::SchemaMapping" +} + +resource_schema "aws_eventschemas_discoverer" { + cloudformation_type_name = "AWS::EventSchemas::Discoverer" +} + +resource_schema "aws_eventschemas_registry" { + cloudformation_type_name = "AWS::EventSchemas::Registry" +} + +resource_schema "aws_eventschemas_registry_policy" { + cloudformation_type_name = "AWS::EventSchemas::RegistryPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eventschemas_schema" { + cloudformation_type_name = "AWS::EventSchemas::Schema" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_events_api_destination" { + cloudformation_type_name = "AWS::Events::ApiDestination" +} + +resource_schema "aws_events_archive" { + cloudformation_type_name = "AWS::Events::Archive" +} + +resource_schema "aws_events_connection" { + cloudformation_type_name = "AWS::Events::Connection" +} + +resource_schema "aws_events_endpoint" { + cloudformation_type_name = "AWS::Events::Endpoint" +} + +resource_schema "aws_events_event_bus" { + cloudformation_type_name = "AWS::Events::EventBus" +} + +resource_schema "aws_events_rule" { + cloudformation_type_name = "AWS::Events::Rule" +} + +resource_schema "aws_evidently_experiment" { + cloudformation_type_name = "AWS::Evidently::Experiment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_feature" { + cloudformation_type_name = "AWS::Evidently::Feature" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_launch" { + cloudformation_type_name = "AWS::Evidently::Launch" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_project" { + cloudformation_type_name = "AWS::Evidently::Project" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_segment" { + cloudformation_type_name = "AWS::Evidently::Segment" +} + +resource_schema "aws_fis_experiment_template" { + cloudformation_type_name = "AWS::FIS::ExperimentTemplate" +} + +resource_schema "aws_fis_target_account_configuration" { + cloudformation_type_name = "AWS::FIS::TargetAccountConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_fms_notification_channel" { + cloudformation_type_name = "AWS::FMS::NotificationChannel" +} + +resource_schema "aws_fms_policy" { + cloudformation_type_name = "AWS::FMS::Policy" +} + +resource_schema "aws_fms_resource_set" { + cloudformation_type_name = "AWS::FMS::ResourceSet" +} + +resource_schema "aws_fsx_data_repository_association" { + cloudformation_type_name = "AWS::FSx::DataRepositoryAssociation" +} + +resource_schema "aws_finspace_environment" { + cloudformation_type_name = "AWS::FinSpace::Environment" +} + +resource_schema "aws_forecast_dataset" { + cloudformation_type_name = "AWS::Forecast::Dataset" +} + +resource_schema "aws_forecast_dataset_group" { + cloudformation_type_name = "AWS::Forecast::DatasetGroup" +} + +resource_schema "aws_frauddetector_detector" { + cloudformation_type_name = "AWS::FraudDetector::Detector" +} + +resource_schema "aws_frauddetector_entity_type" { + cloudformation_type_name = "AWS::FraudDetector::EntityType" +} + +resource_schema "aws_frauddetector_event_type" { + cloudformation_type_name = "AWS::FraudDetector::EventType" +} + +resource_schema "aws_frauddetector_label" { + cloudformation_type_name = "AWS::FraudDetector::Label" +} + +resource_schema "aws_frauddetector_list" { + cloudformation_type_name = "AWS::FraudDetector::List" +} + +resource_schema "aws_frauddetector_outcome" { + cloudformation_type_name = "AWS::FraudDetector::Outcome" +} + +resource_schema "aws_frauddetector_variable" { + cloudformation_type_name = "AWS::FraudDetector::Variable" +} + +resource_schema "aws_gamelift_alias" { + cloudformation_type_name = "AWS::GameLift::Alias" +} + +resource_schema "aws_gamelift_build" { + cloudformation_type_name = "AWS::GameLift::Build" +} + +resource_schema "aws_gamelift_container_group_definition" { + cloudformation_type_name = "AWS::GameLift::ContainerGroupDefinition" +} + +resource_schema "aws_gamelift_fleet" { + cloudformation_type_name = "AWS::GameLift::Fleet" +} + +resource_schema "aws_gamelift_game_server_group" { + cloudformation_type_name = "AWS::GameLift::GameServerGroup" +} + +resource_schema "aws_gamelift_game_session_queue" { + cloudformation_type_name = "AWS::GameLift::GameSessionQueue" +} + +resource_schema "aws_gamelift_location" { + cloudformation_type_name = "AWS::GameLift::Location" +} + +resource_schema "aws_gamelift_matchmaking_configuration" { + cloudformation_type_name = "AWS::GameLift::MatchmakingConfiguration" +} + +resource_schema "aws_gamelift_matchmaking_rule_set" { + cloudformation_type_name = "AWS::GameLift::MatchmakingRuleSet" +} + +resource_schema "aws_gamelift_script" { + cloudformation_type_name = "AWS::GameLift::Script" +} + +resource_schema "aws_globalaccelerator_accelerator" { + cloudformation_type_name = "AWS::GlobalAccelerator::Accelerator" +} + +resource_schema "aws_globalaccelerator_cross_account_attachment" { + cloudformation_type_name = "AWS::GlobalAccelerator::CrossAccountAttachment" +} + +resource_schema "aws_globalaccelerator_endpoint_group" { + cloudformation_type_name = "AWS::GlobalAccelerator::EndpointGroup" +} + +resource_schema "aws_globalaccelerator_listener" { + cloudformation_type_name = "AWS::GlobalAccelerator::Listener" +} + +resource_schema "aws_glue_registry" { + cloudformation_type_name = "AWS::Glue::Registry" +} + +resource_schema "aws_glue_schema" { + cloudformation_type_name = "AWS::Glue::Schema" +} + +resource_schema "aws_glue_schema_version" { + cloudformation_type_name = "AWS::Glue::SchemaVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_glue_schema_version_metadata" { + cloudformation_type_name = "AWS::Glue::SchemaVersionMetadata" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_glue_trigger" { + cloudformation_type_name = "AWS::Glue::Trigger" +} + +resource_schema "aws_grafana_workspace" { + cloudformation_type_name = "AWS::Grafana::Workspace" +} + +resource_schema "aws_greengrassv2_component_version" { + cloudformation_type_name = "AWS::GreengrassV2::ComponentVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_greengrassv2_deployment" { + cloudformation_type_name = "AWS::GreengrassV2::Deployment" +} + +resource_schema "aws_groundstation_config" { + cloudformation_type_name = "AWS::GroundStation::Config" +} + +resource_schema "aws_groundstation_dataflow_endpoint_group" { + cloudformation_type_name = "AWS::GroundStation::DataflowEndpointGroup" +} + +resource_schema "aws_groundstation_mission_profile" { + cloudformation_type_name = "AWS::GroundStation::MissionProfile" +} + +resource_schema "aws_guardduty_detector" { + cloudformation_type_name = "AWS::GuardDuty::Detector" +} + +resource_schema "aws_guardduty_filter" { + cloudformation_type_name = "AWS::GuardDuty::Filter" +} + +resource_schema "aws_guardduty_ip_set" { + cloudformation_type_name = "AWS::GuardDuty::IPSet" +} + +resource_schema "aws_guardduty_malware_protection_plan" { + cloudformation_type_name = "AWS::GuardDuty::MalwareProtectionPlan" +} + +resource_schema "aws_guardduty_master" { + cloudformation_type_name = "AWS::GuardDuty::Master" +} + +resource_schema "aws_guardduty_member" { + cloudformation_type_name = "AWS::GuardDuty::Member" +} + +resource_schema "aws_guardduty_threat_intel_set" { + cloudformation_type_name = "AWS::GuardDuty::ThreatIntelSet" +} + +resource_schema "aws_healthimaging_datastore" { + cloudformation_type_name = "AWS::HealthImaging::Datastore" +} + +resource_schema "aws_healthlake_fhir_datastore" { + cloudformation_type_name = "AWS::HealthLake::FHIRDatastore" +} + +resource_schema "aws_iam_group" { + cloudformation_type_name = "AWS::IAM::Group" +} + +resource_schema "aws_iam_group_policy" { + cloudformation_type_name = "AWS::IAM::GroupPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_instance_profile" { + cloudformation_type_name = "AWS::IAM::InstanceProfile" +} + +resource_schema "aws_iam_managed_policy" { + cloudformation_type_name = "AWS::IAM::ManagedPolicy" +} + +resource_schema "aws_iam_oidc_provider" { + cloudformation_type_name = "AWS::IAM::OIDCProvider" +} + +resource_schema "aws_iam_role" { + cloudformation_type_name = "AWS::IAM::Role" +} + +resource_schema "aws_iam_role_policy" { + cloudformation_type_name = "AWS::IAM::RolePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_saml_provider" { + cloudformation_type_name = "AWS::IAM::SAMLProvider" +} + +resource_schema "aws_iam_server_certificate" { + cloudformation_type_name = "AWS::IAM::ServerCertificate" +} + +resource_schema "aws_iam_service_linked_role" { + cloudformation_type_name = "AWS::IAM::ServiceLinkedRole" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_user" { + cloudformation_type_name = "AWS::IAM::User" +} + +resource_schema "aws_iam_user_policy" { + cloudformation_type_name = "AWS::IAM::UserPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_virtual_mfa_device" { + cloudformation_type_name = "AWS::IAM::VirtualMFADevice" +} + +resource_schema "aws_ivs_channel" { + cloudformation_type_name = "AWS::IVS::Channel" +} + +resource_schema "aws_ivs_encoder_configuration" { + cloudformation_type_name = "AWS::IVS::EncoderConfiguration" +} + +resource_schema "aws_ivs_playback_key_pair" { + cloudformation_type_name = "AWS::IVS::PlaybackKeyPair" +} + +resource_schema "aws_ivs_playback_restriction_policy" { + cloudformation_type_name = "AWS::IVS::PlaybackRestrictionPolicy" +} + +resource_schema "aws_ivs_recording_configuration" { + cloudformation_type_name = "AWS::IVS::RecordingConfiguration" +} + +resource_schema "aws_ivs_stage" { + cloudformation_type_name = "AWS::IVS::Stage" +} + +resource_schema "aws_ivs_storage_configuration" { + cloudformation_type_name = "AWS::IVS::StorageConfiguration" +} + +resource_schema "aws_ivs_stream_key" { + cloudformation_type_name = "AWS::IVS::StreamKey" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ivschat_logging_configuration" { + cloudformation_type_name = "AWS::IVSChat::LoggingConfiguration" +} + +resource_schema "aws_ivschat_room" { + cloudformation_type_name = "AWS::IVSChat::Room" +} + +resource_schema "aws_identitystore_group" { + cloudformation_type_name = "AWS::IdentityStore::Group" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_identitystore_group_membership" { + cloudformation_type_name = "AWS::IdentityStore::GroupMembership" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_component" { + cloudformation_type_name = "AWS::ImageBuilder::Component" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_container_recipe" { + cloudformation_type_name = "AWS::ImageBuilder::ContainerRecipe" +} + +resource_schema "aws_imagebuilder_distribution_configuration" { + cloudformation_type_name = "AWS::ImageBuilder::DistributionConfiguration" +} + +resource_schema "aws_imagebuilder_image" { + cloudformation_type_name = "AWS::ImageBuilder::Image" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_image_pipeline" { + cloudformation_type_name = "AWS::ImageBuilder::ImagePipeline" +} + +resource_schema "aws_imagebuilder_image_recipe" { + cloudformation_type_name = "AWS::ImageBuilder::ImageRecipe" +} + +resource_schema "aws_imagebuilder_infrastructure_configuration" { + cloudformation_type_name = "AWS::ImageBuilder::InfrastructureConfiguration" +} + +resource_schema "aws_imagebuilder_lifecycle_policy" { + cloudformation_type_name = "AWS::ImageBuilder::LifecyclePolicy" +} + +resource_schema "aws_imagebuilder_workflow" { + cloudformation_type_name = "AWS::ImageBuilder::Workflow" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_inspector_assessment_target" { + cloudformation_type_name = "AWS::Inspector::AssessmentTarget" +} + +resource_schema "aws_inspector_assessment_template" { + cloudformation_type_name = "AWS::Inspector::AssessmentTemplate" +} + +resource_schema "aws_inspector_resource_group" { + cloudformation_type_name = "AWS::Inspector::ResourceGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_inspectorv2_cis_scan_configuration" { + cloudformation_type_name = "AWS::InspectorV2::CisScanConfiguration" +} + +resource_schema "aws_inspectorv2_filter" { + cloudformation_type_name = "AWS::InspectorV2::Filter" +} + +resource_schema "aws_internetmonitor_monitor" { + cloudformation_type_name = "AWS::InternetMonitor::Monitor" +} + +resource_schema "aws_iot_account_audit_configuration" { + cloudformation_type_name = "AWS::IoT::AccountAuditConfiguration" +} + +resource_schema "aws_iot_authorizer" { + cloudformation_type_name = "AWS::IoT::Authorizer" +} + +resource_schema "aws_iot_billing_group" { + cloudformation_type_name = "AWS::IoT::BillingGroup" +} + +resource_schema "aws_iot_ca_certificate" { + cloudformation_type_name = "AWS::IoT::CACertificate" +} + +resource_schema "aws_iot_certificate" { + cloudformation_type_name = "AWS::IoT::Certificate" +} + +resource_schema "aws_iot_certificate_provider" { + cloudformation_type_name = "AWS::IoT::CertificateProvider" +} + +resource_schema "aws_iot_custom_metric" { + cloudformation_type_name = "AWS::IoT::CustomMetric" +} + +resource_schema "aws_iot_dimension" { + cloudformation_type_name = "AWS::IoT::Dimension" +} + +resource_schema "aws_iot_domain_configuration" { + cloudformation_type_name = "AWS::IoT::DomainConfiguration" +} + +resource_schema "aws_iot_fleet_metric" { + cloudformation_type_name = "AWS::IoT::FleetMetric" +} + +resource_schema "aws_iot_job_template" { + cloudformation_type_name = "AWS::IoT::JobTemplate" +} + +resource_schema "aws_iot_logging" { + cloudformation_type_name = "AWS::IoT::Logging" +} + +resource_schema "aws_iot_mitigation_action" { + cloudformation_type_name = "AWS::IoT::MitigationAction" +} + +resource_schema "aws_iot_policy" { + cloudformation_type_name = "AWS::IoT::Policy" +} + +resource_schema "aws_iot_provisioning_template" { + cloudformation_type_name = "AWS::IoT::ProvisioningTemplate" +} + +resource_schema "aws_iot_resource_specific_logging" { + cloudformation_type_name = "AWS::IoT::ResourceSpecificLogging" +} + +resource_schema "aws_iot_role_alias" { + cloudformation_type_name = "AWS::IoT::RoleAlias" +} + +resource_schema "aws_iot_scheduled_audit" { + cloudformation_type_name = "AWS::IoT::ScheduledAudit" +} + +resource_schema "aws_iot_security_profile" { + cloudformation_type_name = "AWS::IoT::SecurityProfile" +} + +resource_schema "aws_iot_software_package" { + cloudformation_type_name = "AWS::IoT::SoftwarePackage" +} + +resource_schema "aws_iot_software_package_version" { + cloudformation_type_name = "AWS::IoT::SoftwarePackageVersion" +} + +resource_schema "aws_iot_thing" { + cloudformation_type_name = "AWS::IoT::Thing" +} + +resource_schema "aws_iot_thing_group" { + cloudformation_type_name = "AWS::IoT::ThingGroup" +} + +resource_schema "aws_iot_thing_type" { + cloudformation_type_name = "AWS::IoT::ThingType" +} + +resource_schema "aws_iot_topic_rule" { + cloudformation_type_name = "AWS::IoT::TopicRule" +} + +resource_schema "aws_iot_topic_rule_destination" { + cloudformation_type_name = "AWS::IoT::TopicRuleDestination" +} + +resource_schema "aws_iotanalytics_channel" { + cloudformation_type_name = "AWS::IoTAnalytics::Channel" +} + +resource_schema "aws_iotanalytics_dataset" { + cloudformation_type_name = "AWS::IoTAnalytics::Dataset" +} + +resource_schema "aws_iotanalytics_datastore" { + cloudformation_type_name = "AWS::IoTAnalytics::Datastore" +} + +resource_schema "aws_iotanalytics_pipeline" { + cloudformation_type_name = "AWS::IoTAnalytics::Pipeline" +} + +resource_schema "aws_iotcoredeviceadvisor_suite_definition" { + cloudformation_type_name = "AWS::IoTCoreDeviceAdvisor::SuiteDefinition" +} + +resource_schema "aws_iotevents_alarm_model" { + cloudformation_type_name = "AWS::IoTEvents::AlarmModel" +} + +resource_schema "aws_iotevents_detector_model" { + cloudformation_type_name = "AWS::IoTEvents::DetectorModel" +} + +resource_schema "aws_iotevents_input" { + cloudformation_type_name = "AWS::IoTEvents::Input" +} + +resource_schema "aws_iotfleethub_application" { + cloudformation_type_name = "AWS::IoTFleetHub::Application" +} + +resource_schema "aws_iotfleetwise_campaign" { + cloudformation_type_name = "AWS::IoTFleetWise::Campaign" +} + +resource_schema "aws_iotfleetwise_decoder_manifest" { + cloudformation_type_name = "AWS::IoTFleetWise::DecoderManifest" +} + +resource_schema "aws_iotfleetwise_fleet" { + cloudformation_type_name = "AWS::IoTFleetWise::Fleet" +} + +resource_schema "aws_iotfleetwise_model_manifest" { + cloudformation_type_name = "AWS::IoTFleetWise::ModelManifest" +} + +resource_schema "aws_iotfleetwise_signal_catalog" { + cloudformation_type_name = "AWS::IoTFleetWise::SignalCatalog" +} + +resource_schema "aws_iotfleetwise_vehicle" { + cloudformation_type_name = "AWS::IoTFleetWise::Vehicle" +} + +resource_schema "aws_iotsitewise_access_policy" { + cloudformation_type_name = "AWS::IoTSiteWise::AccessPolicy" +} + +resource_schema "aws_iotsitewise_asset" { + cloudformation_type_name = "AWS::IoTSiteWise::Asset" +} + +resource_schema "aws_iotsitewise_asset_model" { + cloudformation_type_name = "AWS::IoTSiteWise::AssetModel" +} + +resource_schema "aws_iotsitewise_dashboard" { + cloudformation_type_name = "AWS::IoTSiteWise::Dashboard" +} + +resource_schema "aws_iotsitewise_gateway" { + cloudformation_type_name = "AWS::IoTSiteWise::Gateway" +} + +resource_schema "aws_iotsitewise_portal" { + cloudformation_type_name = "AWS::IoTSiteWise::Portal" +} + +resource_schema "aws_iotsitewise_project" { + cloudformation_type_name = "AWS::IoTSiteWise::Project" +} + +resource_schema "aws_iottwinmaker_component_type" { + cloudformation_type_name = "AWS::IoTTwinMaker::ComponentType" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_entity" { + cloudformation_type_name = "AWS::IoTTwinMaker::Entity" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_scene" { + cloudformation_type_name = "AWS::IoTTwinMaker::Scene" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_sync_job" { + cloudformation_type_name = "AWS::IoTTwinMaker::SyncJob" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_workspace" { + cloudformation_type_name = "AWS::IoTTwinMaker::Workspace" +} + +resource_schema "aws_iotwireless_destination" { + cloudformation_type_name = "AWS::IoTWireless::Destination" +} + +resource_schema "aws_iotwireless_device_profile" { + cloudformation_type_name = "AWS::IoTWireless::DeviceProfile" +} + +resource_schema "aws_iotwireless_fuota_task" { + cloudformation_type_name = "AWS::IoTWireless::FuotaTask" +} + +resource_schema "aws_iotwireless_multicast_group" { + cloudformation_type_name = "AWS::IoTWireless::MulticastGroup" +} + +resource_schema "aws_iotwireless_network_analyzer_configuration" { + cloudformation_type_name = "AWS::IoTWireless::NetworkAnalyzerConfiguration" +} + +resource_schema "aws_iotwireless_partner_account" { + cloudformation_type_name = "AWS::IoTWireless::PartnerAccount" +} + +resource_schema "aws_iotwireless_service_profile" { + cloudformation_type_name = "AWS::IoTWireless::ServiceProfile" +} + +resource_schema "aws_iotwireless_task_definition" { + cloudformation_type_name = "AWS::IoTWireless::TaskDefinition" +} + +resource_schema "aws_iotwireless_wireless_device" { + cloudformation_type_name = "AWS::IoTWireless::WirelessDevice" +} + +resource_schema "aws_iotwireless_wireless_device_import_task" { + cloudformation_type_name = "AWS::IoTWireless::WirelessDeviceImportTask" +} + +resource_schema "aws_iotwireless_wireless_gateway" { + cloudformation_type_name = "AWS::IoTWireless::WirelessGateway" +} + +resource_schema "aws_kms_alias" { + cloudformation_type_name = "AWS::KMS::Alias" +} + +resource_schema "aws_kms_key" { + cloudformation_type_name = "AWS::KMS::Key" +} + +resource_schema "aws_kms_replica_key" { + cloudformation_type_name = "AWS::KMS::ReplicaKey" +} + +resource_schema "aws_kafkaconnect_connector" { + cloudformation_type_name = "AWS::KafkaConnect::Connector" +} + +resource_schema "aws_kafkaconnect_custom_plugin" { + cloudformation_type_name = "AWS::KafkaConnect::CustomPlugin" +} + +resource_schema "aws_kafkaconnect_worker_configuration" { + cloudformation_type_name = "AWS::KafkaConnect::WorkerConfiguration" +} + +resource_schema "aws_kendra_data_source" { + cloudformation_type_name = "AWS::Kendra::DataSource" +} + +resource_schema "aws_kendra_faq" { + cloudformation_type_name = "AWS::Kendra::Faq" +} + +resource_schema "aws_kendra_index" { + cloudformation_type_name = "AWS::Kendra::Index" +} + +resource_schema "aws_kendraranking_execution_plan" { + cloudformation_type_name = "AWS::KendraRanking::ExecutionPlan" +} + +resource_schema "aws_kinesis_stream" { + cloudformation_type_name = "AWS::Kinesis::Stream" +} + +resource_schema "aws_kinesisanalyticsv2_application" { + cloudformation_type_name = "AWS::KinesisAnalyticsV2::Application" +} + +resource_schema "aws_kinesisfirehose_delivery_stream" { + cloudformation_type_name = "AWS::KinesisFirehose::DeliveryStream" +} + +resource_schema "aws_kinesisvideo_signaling_channel" { + cloudformation_type_name = "AWS::KinesisVideo::SignalingChannel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_kinesisvideo_stream" { + cloudformation_type_name = "AWS::KinesisVideo::Stream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lakeformation_data_cells_filter" { + cloudformation_type_name = "AWS::LakeFormation::DataCellsFilter" +} + +resource_schema "aws_lakeformation_principal_permissions" { + cloudformation_type_name = "AWS::LakeFormation::PrincipalPermissions" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lakeformation_tag" { + cloudformation_type_name = "AWS::LakeFormation::Tag" +} + +resource_schema "aws_lakeformation_tag_association" { + cloudformation_type_name = "AWS::LakeFormation::TagAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_alias" { + cloudformation_type_name = "AWS::Lambda::Alias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_code_signing_config" { + cloudformation_type_name = "AWS::Lambda::CodeSigningConfig" +} + +resource_schema "aws_lambda_event_invoke_config" { + cloudformation_type_name = "AWS::Lambda::EventInvokeConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_event_source_mapping" { + cloudformation_type_name = "AWS::Lambda::EventSourceMapping" +} + +resource_schema "aws_lambda_function" { + cloudformation_type_name = "AWS::Lambda::Function" +} + +resource_schema "aws_lambda_layer_version" { + cloudformation_type_name = "AWS::Lambda::LayerVersion" +} + +resource_schema "aws_lambda_layer_version_permission" { + cloudformation_type_name = "AWS::Lambda::LayerVersionPermission" +} + +resource_schema "aws_lambda_permission" { + cloudformation_type_name = "AWS::Lambda::Permission" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_url" { + cloudformation_type_name = "AWS::Lambda::Url" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_version" { + cloudformation_type_name = "AWS::Lambda::Version" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_launchwizard_deployment" { + cloudformation_type_name = "AWS::LaunchWizard::Deployment" +} + +resource_schema "aws_lex_bot" { + cloudformation_type_name = "AWS::Lex::Bot" +} + +resource_schema "aws_lex_bot_alias" { + cloudformation_type_name = "AWS::Lex::BotAlias" +} + +resource_schema "aws_lex_bot_version" { + cloudformation_type_name = "AWS::Lex::BotVersion" +} + +resource_schema "aws_lex_resource_policy" { + cloudformation_type_name = "AWS::Lex::ResourcePolicy" +} + +resource_schema "aws_licensemanager_grant" { + cloudformation_type_name = "AWS::LicenseManager::Grant" +} + +resource_schema "aws_licensemanager_license" { + cloudformation_type_name = "AWS::LicenseManager::License" +} + +resource_schema "aws_lightsail_alarm" { + cloudformation_type_name = "AWS::Lightsail::Alarm" +} + +resource_schema "aws_lightsail_bucket" { + cloudformation_type_name = "AWS::Lightsail::Bucket" +} + +resource_schema "aws_lightsail_certificate" { + cloudformation_type_name = "AWS::Lightsail::Certificate" +} + +resource_schema "aws_lightsail_container" { + cloudformation_type_name = "AWS::Lightsail::Container" +} + +resource_schema "aws_lightsail_database" { + cloudformation_type_name = "AWS::Lightsail::Database" +} + +resource_schema "aws_lightsail_disk" { + cloudformation_type_name = "AWS::Lightsail::Disk" +} + +resource_schema "aws_lightsail_distribution" { + cloudformation_type_name = "AWS::Lightsail::Distribution" +} + +resource_schema "aws_lightsail_instance" { + cloudformation_type_name = "AWS::Lightsail::Instance" +} + +resource_schema "aws_lightsail_load_balancer" { + cloudformation_type_name = "AWS::Lightsail::LoadBalancer" +} + +resource_schema "aws_lightsail_load_balancer_tls_certificate" { + cloudformation_type_name = "AWS::Lightsail::LoadBalancerTlsCertificate" +} + +resource_schema "aws_lightsail_static_ip" { + cloudformation_type_name = "AWS::Lightsail::StaticIp" +} + +resource_schema "aws_location_api_key" { + cloudformation_type_name = "AWS::Location::APIKey" +} + +resource_schema "aws_location_geofence_collection" { + cloudformation_type_name = "AWS::Location::GeofenceCollection" +} + +resource_schema "aws_location_map" { + cloudformation_type_name = "AWS::Location::Map" +} + +resource_schema "aws_location_place_index" { + cloudformation_type_name = "AWS::Location::PlaceIndex" +} + +resource_schema "aws_location_route_calculator" { + cloudformation_type_name = "AWS::Location::RouteCalculator" +} + +resource_schema "aws_location_tracker" { + cloudformation_type_name = "AWS::Location::Tracker" +} + +resource_schema "aws_location_tracker_consumer" { + cloudformation_type_name = "AWS::Location::TrackerConsumer" +} + +resource_schema "aws_logs_account_policy" { + cloudformation_type_name = "AWS::Logs::AccountPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_delivery" { + cloudformation_type_name = "AWS::Logs::Delivery" +} + +resource_schema "aws_logs_delivery_destination" { + cloudformation_type_name = "AWS::Logs::DeliveryDestination" +} + +resource_schema "aws_logs_delivery_source" { + cloudformation_type_name = "AWS::Logs::DeliverySource" +} + +resource_schema "aws_logs_destination" { + cloudformation_type_name = "AWS::Logs::Destination" +} + +resource_schema "aws_logs_log_anomaly_detector" { + cloudformation_type_name = "AWS::Logs::LogAnomalyDetector" +} + +resource_schema "aws_logs_log_group" { + cloudformation_type_name = "AWS::Logs::LogGroup" +} + +resource_schema "aws_logs_log_stream" { + cloudformation_type_name = "AWS::Logs::LogStream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_metric_filter" { + cloudformation_type_name = "AWS::Logs::MetricFilter" +} + +resource_schema "aws_logs_query_definition" { + cloudformation_type_name = "AWS::Logs::QueryDefinition" +} + +resource_schema "aws_logs_resource_policy" { + cloudformation_type_name = "AWS::Logs::ResourcePolicy" +} + +resource_schema "aws_logs_subscription_filter" { + cloudformation_type_name = "AWS::Logs::SubscriptionFilter" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lookoutequipment_inference_scheduler" { + cloudformation_type_name = "AWS::LookoutEquipment::InferenceScheduler" +} + +resource_schema "aws_lookoutmetrics_alert" { + cloudformation_type_name = "AWS::LookoutMetrics::Alert" +} + +resource_schema "aws_lookoutmetrics_anomaly_detector" { + cloudformation_type_name = "AWS::LookoutMetrics::AnomalyDetector" +} + +resource_schema "aws_lookoutvision_project" { + cloudformation_type_name = "AWS::LookoutVision::Project" +} + +resource_schema "aws_m2_application" { + cloudformation_type_name = "AWS::M2::Application" +} + +resource_schema "aws_m2_environment" { + cloudformation_type_name = "AWS::M2::Environment" +} + +resource_schema "aws_msk_batch_scram_secret" { + cloudformation_type_name = "AWS::MSK::BatchScramSecret" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_msk_cluster" { + cloudformation_type_name = "AWS::MSK::Cluster" +} + +resource_schema "aws_msk_cluster_policy" { + cloudformation_type_name = "AWS::MSK::ClusterPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_msk_configuration" { + cloudformation_type_name = "AWS::MSK::Configuration" +} + +resource_schema "aws_msk_replicator" { + cloudformation_type_name = "AWS::MSK::Replicator" +} + +resource_schema "aws_msk_serverless_cluster" { + cloudformation_type_name = "AWS::MSK::ServerlessCluster" +} + +resource_schema "aws_msk_vpc_connection" { + cloudformation_type_name = "AWS::MSK::VpcConnection" +} + +resource_schema "aws_mwaa_environment" { + cloudformation_type_name = "AWS::MWAA::Environment" +} + +resource_schema "aws_macie_allow_list" { + cloudformation_type_name = "AWS::Macie::AllowList" +} + +resource_schema "aws_macie_custom_data_identifier" { + cloudformation_type_name = "AWS::Macie::CustomDataIdentifier" +} + +resource_schema "aws_macie_findings_filter" { + cloudformation_type_name = "AWS::Macie::FindingsFilter" +} + +resource_schema "aws_macie_session" { + cloudformation_type_name = "AWS::Macie::Session" +} + +resource_schema "aws_managedblockchain_accessor" { + cloudformation_type_name = "AWS::ManagedBlockchain::Accessor" +} + +resource_schema "aws_mediaconnect_bridge" { + cloudformation_type_name = "AWS::MediaConnect::Bridge" +} + +resource_schema "aws_mediaconnect_bridge_output" { + cloudformation_type_name = "AWS::MediaConnect::BridgeOutput" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_bridge_source" { + cloudformation_type_name = "AWS::MediaConnect::BridgeSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_flow" { + cloudformation_type_name = "AWS::MediaConnect::Flow" +} + +resource_schema "aws_mediaconnect_flow_entitlement" { + cloudformation_type_name = "AWS::MediaConnect::FlowEntitlement" +} + +resource_schema "aws_mediaconnect_flow_output" { + cloudformation_type_name = "AWS::MediaConnect::FlowOutput" +} + +resource_schema "aws_mediaconnect_flow_source" { + cloudformation_type_name = "AWS::MediaConnect::FlowSource" +} + +resource_schema "aws_mediaconnect_flow_vpc_interface" { + cloudformation_type_name = "AWS::MediaConnect::FlowVpcInterface" +} + +resource_schema "aws_mediaconnect_gateway" { + cloudformation_type_name = "AWS::MediaConnect::Gateway" +} + +resource_schema "aws_medialive_multiplex" { + cloudformation_type_name = "AWS::MediaLive::Multiplex" +} + +resource_schema "aws_medialive_multiplexprogram" { + cloudformation_type_name = "AWS::MediaLive::Multiplexprogram" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackage_asset" { + cloudformation_type_name = "AWS::MediaPackage::Asset" +} + +resource_schema "aws_mediapackage_channel" { + cloudformation_type_name = "AWS::MediaPackage::Channel" +} + +resource_schema "aws_mediapackage_origin_endpoint" { + cloudformation_type_name = "AWS::MediaPackage::OriginEndpoint" +} + +resource_schema "aws_mediapackage_packaging_configuration" { + cloudformation_type_name = "AWS::MediaPackage::PackagingConfiguration" +} + +resource_schema "aws_mediapackage_packaging_group" { + cloudformation_type_name = "AWS::MediaPackage::PackagingGroup" +} + +resource_schema "aws_mediapackagev2_channel" { + cloudformation_type_name = "AWS::MediaPackageV2::Channel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_channel_group" { + cloudformation_type_name = "AWS::MediaPackageV2::ChannelGroup" +} + +resource_schema "aws_mediapackagev2_channel_policy" { + cloudformation_type_name = "AWS::MediaPackageV2::ChannelPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_origin_endpoint" { + cloudformation_type_name = "AWS::MediaPackageV2::OriginEndpoint" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_origin_endpoint_policy" { + cloudformation_type_name = "AWS::MediaPackageV2::OriginEndpointPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_channel" { + cloudformation_type_name = "AWS::MediaTailor::Channel" +} + +resource_schema "aws_mediatailor_channel_policy" { + cloudformation_type_name = "AWS::MediaTailor::ChannelPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_live_source" { + cloudformation_type_name = "AWS::MediaTailor::LiveSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_playback_configuration" { + cloudformation_type_name = "AWS::MediaTailor::PlaybackConfiguration" +} + +resource_schema "aws_mediatailor_source_location" { + cloudformation_type_name = "AWS::MediaTailor::SourceLocation" +} + +resource_schema "aws_mediatailor_vod_source" { + cloudformation_type_name = "AWS::MediaTailor::VodSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_memorydb_acl" { + cloudformation_type_name = "AWS::MemoryDB::ACL" +} + +resource_schema "aws_memorydb_cluster" { + cloudformation_type_name = "AWS::MemoryDB::Cluster" +} + +resource_schema "aws_memorydb_parameter_group" { + cloudformation_type_name = "AWS::MemoryDB::ParameterGroup" +} + +resource_schema "aws_memorydb_subnet_group" { + cloudformation_type_name = "AWS::MemoryDB::SubnetGroup" +} + +resource_schema "aws_memorydb_user" { + cloudformation_type_name = "AWS::MemoryDB::User" +} + +resource_schema "aws_neptune_db_cluster" { + cloudformation_type_name = "AWS::Neptune::DBCluster" +} + +resource_schema "aws_neptunegraph_graph" { + cloudformation_type_name = "AWS::NeptuneGraph::Graph" +} + +resource_schema "aws_neptunegraph_private_graph_endpoint" { + cloudformation_type_name = "AWS::NeptuneGraph::PrivateGraphEndpoint" +} + +resource_schema "aws_networkfirewall_firewall" { + cloudformation_type_name = "AWS::NetworkFirewall::Firewall" +} + +resource_schema "aws_networkfirewall_firewall_policy" { + cloudformation_type_name = "AWS::NetworkFirewall::FirewallPolicy" +} + +resource_schema "aws_networkfirewall_logging_configuration" { + cloudformation_type_name = "AWS::NetworkFirewall::LoggingConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkfirewall_rule_group" { + cloudformation_type_name = "AWS::NetworkFirewall::RuleGroup" +} + +resource_schema "aws_networkfirewall_tls_inspection_configuration" { + cloudformation_type_name = "AWS::NetworkFirewall::TLSInspectionConfiguration" +} + +resource_schema "aws_networkmanager_connect_attachment" { + cloudformation_type_name = "AWS::NetworkManager::ConnectAttachment" +} + +resource_schema "aws_networkmanager_connect_peer" { + cloudformation_type_name = "AWS::NetworkManager::ConnectPeer" +} + +resource_schema "aws_networkmanager_core_network" { + cloudformation_type_name = "AWS::NetworkManager::CoreNetwork" +} + +resource_schema "aws_networkmanager_customer_gateway_association" { + cloudformation_type_name = "AWS::NetworkManager::CustomerGatewayAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_device" { + cloudformation_type_name = "AWS::NetworkManager::Device" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_global_network" { + cloudformation_type_name = "AWS::NetworkManager::GlobalNetwork" +} + +resource_schema "aws_networkmanager_link" { + cloudformation_type_name = "AWS::NetworkManager::Link" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_link_association" { + cloudformation_type_name = "AWS::NetworkManager::LinkAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_site" { + cloudformation_type_name = "AWS::NetworkManager::Site" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_site_to_site_vpn_attachment" { + cloudformation_type_name = "AWS::NetworkManager::SiteToSiteVpnAttachment" +} + +resource_schema "aws_networkmanager_transit_gateway_peering" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayPeering" +} + +resource_schema "aws_networkmanager_transit_gateway_registration" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayRegistration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_transit_gateway_route_table_attachment" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayRouteTableAttachment" +} + +resource_schema "aws_networkmanager_vpc_attachment" { + cloudformation_type_name = "AWS::NetworkManager::VpcAttachment" +} + +resource_schema "aws_nimblestudio_launch_profile" { + cloudformation_type_name = "AWS::NimbleStudio::LaunchProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_nimblestudio_streaming_image" { + cloudformation_type_name = "AWS::NimbleStudio::StreamingImage" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_nimblestudio_studio" { + cloudformation_type_name = "AWS::NimbleStudio::Studio" +} + +resource_schema "aws_nimblestudio_studio_component" { + cloudformation_type_name = "AWS::NimbleStudio::StudioComponent" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_osis_pipeline" { + cloudformation_type_name = "AWS::OSIS::Pipeline" +} + +resource_schema "aws_oam_link" { + cloudformation_type_name = "AWS::Oam::Link" +} + +resource_schema "aws_oam_sink" { + cloudformation_type_name = "AWS::Oam::Sink" +} + +resource_schema "aws_omics_annotation_store" { + cloudformation_type_name = "AWS::Omics::AnnotationStore" +} + +resource_schema "aws_omics_reference_store" { + cloudformation_type_name = "AWS::Omics::ReferenceStore" +} + +resource_schema "aws_omics_run_group" { + cloudformation_type_name = "AWS::Omics::RunGroup" +} + +resource_schema "aws_omics_sequence_store" { + cloudformation_type_name = "AWS::Omics::SequenceStore" +} + +resource_schema "aws_omics_variant_store" { + cloudformation_type_name = "AWS::Omics::VariantStore" +} + +resource_schema "aws_omics_workflow" { + cloudformation_type_name = "AWS::Omics::Workflow" +} + +resource_schema "aws_opensearchserverless_access_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::AccessPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_collection" { + cloudformation_type_name = "AWS::OpenSearchServerless::Collection" +} + +resource_schema "aws_opensearchserverless_lifecycle_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::LifecyclePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_security_config" { + cloudformation_type_name = "AWS::OpenSearchServerless::SecurityConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_security_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::SecurityPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_vpc_endpoint" { + cloudformation_type_name = "AWS::OpenSearchServerless::VpcEndpoint" +} + +resource_schema "aws_opensearchservice_domain" { + cloudformation_type_name = "AWS::OpenSearchService::Domain" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opsworkscm_server" { + cloudformation_type_name = "AWS::OpsWorksCM::Server" +} + +resource_schema "aws_organizations_account" { + cloudformation_type_name = "AWS::Organizations::Account" +} + +resource_schema "aws_organizations_organization" { + cloudformation_type_name = "AWS::Organizations::Organization" +} + +resource_schema "aws_organizations_organizational_unit" { + cloudformation_type_name = "AWS::Organizations::OrganizationalUnit" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_organizations_policy" { + cloudformation_type_name = "AWS::Organizations::Policy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_organizations_resource_policy" { + cloudformation_type_name = "AWS::Organizations::ResourcePolicy" +} + +resource_schema "aws_pcaconnectorad_connector" { + cloudformation_type_name = "AWS::PCAConnectorAD::Connector" +} + +resource_schema "aws_pcaconnectorad_directory_registration" { + cloudformation_type_name = "AWS::PCAConnectorAD::DirectoryRegistration" +} + +resource_schema "aws_pcaconnectorad_service_principal_name" { + cloudformation_type_name = "AWS::PCAConnectorAD::ServicePrincipalName" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorad_template" { + cloudformation_type_name = "AWS::PCAConnectorAD::Template" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorad_template_group_access_control_entry" { + cloudformation_type_name = "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_panorama_application_instance" { + cloudformation_type_name = "AWS::Panorama::ApplicationInstance" +} + +resource_schema "aws_panorama_package" { + cloudformation_type_name = "AWS::Panorama::Package" +} + +resource_schema "aws_panorama_package_version" { + cloudformation_type_name = "AWS::Panorama::PackageVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_paymentcryptography_alias" { + cloudformation_type_name = "AWS::PaymentCryptography::Alias" +} + +resource_schema "aws_paymentcryptography_key" { + cloudformation_type_name = "AWS::PaymentCryptography::Key" +} + +resource_schema "aws_personalize_dataset" { + cloudformation_type_name = "AWS::Personalize::Dataset" +} + +resource_schema "aws_personalize_dataset_group" { + cloudformation_type_name = "AWS::Personalize::DatasetGroup" +} + +resource_schema "aws_personalize_schema" { + cloudformation_type_name = "AWS::Personalize::Schema" +} + +resource_schema "aws_personalize_solution" { + cloudformation_type_name = "AWS::Personalize::Solution" +} + +resource_schema "aws_pinpoint_in_app_template" { + cloudformation_type_name = "AWS::Pinpoint::InAppTemplate" +} + +resource_schema "aws_pipes_pipe" { + cloudformation_type_name = "AWS::Pipes::Pipe" +} + +resource_schema "aws_proton_environment_account_connection" { + cloudformation_type_name = "AWS::Proton::EnvironmentAccountConnection" +} + +resource_schema "aws_proton_environment_template" { + cloudformation_type_name = "AWS::Proton::EnvironmentTemplate" +} + +resource_schema "aws_proton_service_template" { + cloudformation_type_name = "AWS::Proton::ServiceTemplate" +} + +resource_schema "aws_qbusiness_application" { + cloudformation_type_name = "AWS::QBusiness::Application" +} + +resource_schema "aws_qbusiness_data_source" { + cloudformation_type_name = "AWS::QBusiness::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_index" { + cloudformation_type_name = "AWS::QBusiness::Index" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_plugin" { + cloudformation_type_name = "AWS::QBusiness::Plugin" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_retriever" { + cloudformation_type_name = "AWS::QBusiness::Retriever" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_web_experience" { + cloudformation_type_name = "AWS::QBusiness::WebExperience" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qldb_stream" { + cloudformation_type_name = "AWS::QLDB::Stream" +} + +resource_schema "aws_quicksight_analysis" { + cloudformation_type_name = "AWS::QuickSight::Analysis" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_dashboard" { + cloudformation_type_name = "AWS::QuickSight::Dashboard" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_data_set" { + cloudformation_type_name = "AWS::QuickSight::DataSet" +} + +resource_schema "aws_quicksight_data_source" { + cloudformation_type_name = "AWS::QuickSight::DataSource" +} + +resource_schema "aws_quicksight_refresh_schedule" { + cloudformation_type_name = "AWS::QuickSight::RefreshSchedule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_template" { + cloudformation_type_name = "AWS::QuickSight::Template" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_theme" { + cloudformation_type_name = "AWS::QuickSight::Theme" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_topic" { + cloudformation_type_name = "AWS::QuickSight::Topic" +} + +resource_schema "aws_quicksight_vpc_connection" { + cloudformation_type_name = "AWS::QuickSight::VPCConnection" +} + +resource_schema "aws_ram_permission" { + cloudformation_type_name = "AWS::RAM::Permission" +} + +resource_schema "aws_rds_custom_db_engine_version" { + cloudformation_type_name = "AWS::RDS::CustomDBEngineVersion" +} + +resource_schema "aws_rds_db_cluster" { + cloudformation_type_name = "AWS::RDS::DBCluster" +} + +resource_schema "aws_rds_db_cluster_parameter_group" { + cloudformation_type_name = "AWS::RDS::DBClusterParameterGroup" +} + +resource_schema "aws_rds_db_instance" { + cloudformation_type_name = "AWS::RDS::DBInstance" +} + +resource_schema "aws_rds_db_parameter_group" { + cloudformation_type_name = "AWS::RDS::DBParameterGroup" +} + +resource_schema "aws_rds_db_proxy" { + cloudformation_type_name = "AWS::RDS::DBProxy" +} + +resource_schema "aws_rds_db_proxy_endpoint" { + cloudformation_type_name = "AWS::RDS::DBProxyEndpoint" +} + +resource_schema "aws_rds_db_proxy_target_group" { + cloudformation_type_name = "AWS::RDS::DBProxyTargetGroup" +} + +resource_schema "aws_rds_db_subnet_group" { + cloudformation_type_name = "AWS::RDS::DBSubnetGroup" +} + +resource_schema "aws_rds_event_subscription" { + cloudformation_type_name = "AWS::RDS::EventSubscription" +} + +resource_schema "aws_rds_global_cluster" { + cloudformation_type_name = "AWS::RDS::GlobalCluster" +} + +resource_schema "aws_rds_integration" { + cloudformation_type_name = "AWS::RDS::Integration" +} + +resource_schema "aws_rds_option_group" { + cloudformation_type_name = "AWS::RDS::OptionGroup" +} + +resource_schema "aws_rum_app_monitor" { + cloudformation_type_name = "AWS::RUM::AppMonitor" +} + +resource_schema "aws_redshift_cluster" { + cloudformation_type_name = "AWS::Redshift::Cluster" +} + +resource_schema "aws_redshift_cluster_parameter_group" { + cloudformation_type_name = "AWS::Redshift::ClusterParameterGroup" +} + +resource_schema "aws_redshift_cluster_subnet_group" { + cloudformation_type_name = "AWS::Redshift::ClusterSubnetGroup" +} + +resource_schema "aws_redshift_endpoint_access" { + cloudformation_type_name = "AWS::Redshift::EndpointAccess" +} + +resource_schema "aws_redshift_endpoint_authorization" { + cloudformation_type_name = "AWS::Redshift::EndpointAuthorization" +} + +resource_schema "aws_redshift_event_subscription" { + cloudformation_type_name = "AWS::Redshift::EventSubscription" +} + +resource_schema "aws_redshift_scheduled_action" { + cloudformation_type_name = "AWS::Redshift::ScheduledAction" +} + +resource_schema "aws_redshiftserverless_namespace" { + cloudformation_type_name = "AWS::RedshiftServerless::Namespace" +} + +resource_schema "aws_redshiftserverless_workgroup" { + cloudformation_type_name = "AWS::RedshiftServerless::Workgroup" +} + +resource_schema "aws_refactorspaces_application" { + cloudformation_type_name = "AWS::RefactorSpaces::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_refactorspaces_environment" { + cloudformation_type_name = "AWS::RefactorSpaces::Environment" +} + +resource_schema "aws_refactorspaces_route" { + cloudformation_type_name = "AWS::RefactorSpaces::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_refactorspaces_service" { + cloudformation_type_name = "AWS::RefactorSpaces::Service" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_rekognition_collection" { + cloudformation_type_name = "AWS::Rekognition::Collection" +} + +resource_schema "aws_rekognition_project" { + cloudformation_type_name = "AWS::Rekognition::Project" +} + +resource_schema "aws_rekognition_stream_processor" { + cloudformation_type_name = "AWS::Rekognition::StreamProcessor" +} + +resource_schema "aws_resiliencehub_app" { + cloudformation_type_name = "AWS::ResilienceHub::App" +} + +resource_schema "aws_resiliencehub_resiliency_policy" { + cloudformation_type_name = "AWS::ResilienceHub::ResiliencyPolicy" +} + +resource_schema "aws_resourceexplorer2_default_view_association" { + cloudformation_type_name = "AWS::ResourceExplorer2::DefaultViewAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_resourceexplorer2_index" { + cloudformation_type_name = "AWS::ResourceExplorer2::Index" +} + +resource_schema "aws_resourceexplorer2_view" { + cloudformation_type_name = "AWS::ResourceExplorer2::View" +} + +resource_schema "aws_resourcegroups_group" { + cloudformation_type_name = "AWS::ResourceGroups::Group" +} + +resource_schema "aws_robomaker_fleet" { + cloudformation_type_name = "AWS::RoboMaker::Fleet" +} + +resource_schema "aws_robomaker_robot" { + cloudformation_type_name = "AWS::RoboMaker::Robot" +} + +resource_schema "aws_robomaker_robot_application" { + cloudformation_type_name = "AWS::RoboMaker::RobotApplication" +} + +resource_schema "aws_robomaker_robot_application_version" { + cloudformation_type_name = "AWS::RoboMaker::RobotApplicationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_robomaker_simulation_application" { + cloudformation_type_name = "AWS::RoboMaker::SimulationApplication" +} + +resource_schema "aws_robomaker_simulation_application_version" { + cloudformation_type_name = "AWS::RoboMaker::SimulationApplicationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_rolesanywhere_crl" { + cloudformation_type_name = "AWS::RolesAnywhere::CRL" +} + +resource_schema "aws_rolesanywhere_profile" { + cloudformation_type_name = "AWS::RolesAnywhere::Profile" +} + +resource_schema "aws_rolesanywhere_trust_anchor" { + cloudformation_type_name = "AWS::RolesAnywhere::TrustAnchor" +} + +resource_schema "aws_route53_cidr_collection" { + cloudformation_type_name = "AWS::Route53::CidrCollection" +} + +resource_schema "aws_route53_dnssec" { + cloudformation_type_name = "AWS::Route53::DNSSEC" +} + +resource_schema "aws_route53_health_check" { + cloudformation_type_name = "AWS::Route53::HealthCheck" +} + +resource_schema "aws_route53_hosted_zone" { + cloudformation_type_name = "AWS::Route53::HostedZone" +} + +resource_schema "aws_route53_key_signing_key" { + cloudformation_type_name = "AWS::Route53::KeySigningKey" +} + +resource_schema "aws_route53profiles_profile" { + cloudformation_type_name = "AWS::Route53Profiles::Profile" +} + +resource_schema "aws_route53profiles_profile_association" { + cloudformation_type_name = "AWS::Route53Profiles::ProfileAssociation" +} + +resource_schema "aws_route53profiles_profile_resource_association" { + cloudformation_type_name = "AWS::Route53Profiles::ProfileResourceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoverycontrol_cluster" { + cloudformation_type_name = "AWS::Route53RecoveryControl::Cluster" +} + +resource_schema "aws_route53recoverycontrol_control_panel" { + cloudformation_type_name = "AWS::Route53RecoveryControl::ControlPanel" +} + +resource_schema "aws_route53recoverycontrol_routing_control" { + cloudformation_type_name = "AWS::Route53RecoveryControl::RoutingControl" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoverycontrol_safety_rule" { + cloudformation_type_name = "AWS::Route53RecoveryControl::SafetyRule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoveryreadiness_cell" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::Cell" +} + +resource_schema "aws_route53recoveryreadiness_readiness_check" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::ReadinessCheck" +} + +resource_schema "aws_route53recoveryreadiness_recovery_group" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::RecoveryGroup" +} + +resource_schema "aws_route53recoveryreadiness_resource_set" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::ResourceSet" +} + +resource_schema "aws_route53resolver_firewall_domain_list" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallDomainList" +} + +resource_schema "aws_route53resolver_firewall_rule_group" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallRuleGroup" +} + +resource_schema "aws_route53resolver_firewall_rule_group_association" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallRuleGroupAssociation" +} + +resource_schema "aws_route53resolver_outpost_resolver" { + cloudformation_type_name = "AWS::Route53Resolver::OutpostResolver" +} + +resource_schema "aws_route53resolver_resolver_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverConfig" +} + +resource_schema "aws_route53resolver_resolver_dnssec_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverDNSSECConfig" +} + +resource_schema "aws_route53resolver_resolver_query_logging_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverQueryLoggingConfig" +} + +resource_schema "aws_route53resolver_resolver_query_logging_config_association" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation" +} + +resource_schema "aws_route53resolver_resolver_rule" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverRule" +} + +resource_schema "aws_route53resolver_resolver_rule_association" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverRuleAssociation" +} + +resource_schema "aws_s3_access_grant" { + cloudformation_type_name = "AWS::S3::AccessGrant" +} + +resource_schema "aws_s3_access_grants_instance" { + cloudformation_type_name = "AWS::S3::AccessGrantsInstance" +} + +resource_schema "aws_s3_access_grants_location" { + cloudformation_type_name = "AWS::S3::AccessGrantsLocation" +} + +resource_schema "aws_s3_access_point" { + cloudformation_type_name = "AWS::S3::AccessPoint" +} + +resource_schema "aws_s3_bucket" { + cloudformation_type_name = "AWS::S3::Bucket" +} + +resource_schema "aws_s3_bucket_policy" { + cloudformation_type_name = "AWS::S3::BucketPolicy" +} + +resource_schema "aws_s3_multi_region_access_point" { + cloudformation_type_name = "AWS::S3::MultiRegionAccessPoint" +} + +resource_schema "aws_s3_multi_region_access_point_policy" { + cloudformation_type_name = "AWS::S3::MultiRegionAccessPointPolicy" +} + +resource_schema "aws_s3_storage_lens" { + cloudformation_type_name = "AWS::S3::StorageLens" +} + +resource_schema "aws_s3_storage_lens_group" { + cloudformation_type_name = "AWS::S3::StorageLensGroup" +} + +resource_schema "aws_s3express_bucket_policy" { + cloudformation_type_name = "AWS::S3Express::BucketPolicy" +} + +resource_schema "aws_s3express_directory_bucket" { + cloudformation_type_name = "AWS::S3Express::DirectoryBucket" +} + +resource_schema "aws_s3objectlambda_access_point" { + cloudformation_type_name = "AWS::S3ObjectLambda::AccessPoint" +} + +resource_schema "aws_s3objectlambda_access_point_policy" { + cloudformation_type_name = "AWS::S3ObjectLambda::AccessPointPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_access_point" { + cloudformation_type_name = "AWS::S3Outposts::AccessPoint" +} + +resource_schema "aws_s3outposts_bucket" { + cloudformation_type_name = "AWS::S3Outposts::Bucket" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_bucket_policy" { + cloudformation_type_name = "AWS::S3Outposts::BucketPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_endpoint" { + cloudformation_type_name = "AWS::S3Outposts::Endpoint" +} + +resource_schema "aws_ses_configuration_set" { + cloudformation_type_name = "AWS::SES::ConfigurationSet" +} + +resource_schema "aws_ses_configuration_set_event_destination" { + cloudformation_type_name = "AWS::SES::ConfigurationSetEventDestination" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ses_contact_list" { + cloudformation_type_name = "AWS::SES::ContactList" +} + +resource_schema "aws_ses_dedicated_ip_pool" { + cloudformation_type_name = "AWS::SES::DedicatedIpPool" +} + +resource_schema "aws_ses_email_identity" { + cloudformation_type_name = "AWS::SES::EmailIdentity" +} + +resource_schema "aws_ses_mail_manager_addon_instance" { + cloudformation_type_name = "AWS::SES::MailManagerAddonInstance" +} + +resource_schema "aws_ses_mail_manager_addon_subscription" { + cloudformation_type_name = "AWS::SES::MailManagerAddonSubscription" +} + +resource_schema "aws_ses_mail_manager_archive" { + cloudformation_type_name = "AWS::SES::MailManagerArchive" +} + +resource_schema "aws_ses_mail_manager_ingress_point" { + cloudformation_type_name = "AWS::SES::MailManagerIngressPoint" +} + +resource_schema "aws_ses_mail_manager_relay" { + cloudformation_type_name = "AWS::SES::MailManagerRelay" +} + +resource_schema "aws_ses_mail_manager_rule_set" { + cloudformation_type_name = "AWS::SES::MailManagerRuleSet" +} + +resource_schema "aws_ses_mail_manager_traffic_policy" { + cloudformation_type_name = "AWS::SES::MailManagerTrafficPolicy" +} + +resource_schema "aws_ses_template" { + cloudformation_type_name = "AWS::SES::Template" +} + +resource_schema "aws_ses_vdm_attributes" { + cloudformation_type_name = "AWS::SES::VdmAttributes" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sns_topic" { + cloudformation_type_name = "AWS::SNS::Topic" +} + +resource_schema "aws_sns_topic_inline_policy" { + cloudformation_type_name = "AWS::SNS::TopicInlinePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sqs_queue" { + cloudformation_type_name = "AWS::SQS::Queue" +} + +resource_schema "aws_sqs_queue_inline_policy" { + cloudformation_type_name = "AWS::SQS::QueueInlinePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssm_association" { + cloudformation_type_name = "AWS::SSM::Association" +} + +resource_schema "aws_ssm_document" { + cloudformation_type_name = "AWS::SSM::Document" +} + +resource_schema "aws_ssm_parameter" { + cloudformation_type_name = "AWS::SSM::Parameter" +} + +resource_schema "aws_ssm_patch_baseline" { + cloudformation_type_name = "AWS::SSM::PatchBaseline" +} + +resource_schema "aws_ssm_resource_data_sync" { + cloudformation_type_name = "AWS::SSM::ResourceDataSync" +} + +resource_schema "aws_ssm_resource_policy" { + cloudformation_type_name = "AWS::SSM::ResourcePolicy" +} + +resource_schema "aws_ssmcontacts_contact" { + cloudformation_type_name = "AWS::SSMContacts::Contact" +} + +resource_schema "aws_ssmcontacts_contact_channel" { + cloudformation_type_name = "AWS::SSMContacts::ContactChannel" +} + +resource_schema "aws_ssmcontacts_plan" { + cloudformation_type_name = "AWS::SSMContacts::Plan" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssmcontacts_rotation" { + cloudformation_type_name = "AWS::SSMContacts::Rotation" +} + +resource_schema "aws_ssmincidents_replication_set" { + cloudformation_type_name = "AWS::SSMIncidents::ReplicationSet" +} + +resource_schema "aws_ssmincidents_response_plan" { + cloudformation_type_name = "AWS::SSMIncidents::ResponsePlan" +} + +resource_schema "aws_sso_application" { + cloudformation_type_name = "AWS::SSO::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sso_application_assignment" { + cloudformation_type_name = "AWS::SSO::ApplicationAssignment" +} + +resource_schema "aws_sso_assignment" { + cloudformation_type_name = "AWS::SSO::Assignment" +} + +resource_schema "aws_sso_instance" { + cloudformation_type_name = "AWS::SSO::Instance" +} + +resource_schema "aws_sso_instance_access_control_attribute_configuration" { + cloudformation_type_name = "AWS::SSO::InstanceAccessControlAttributeConfiguration" +} + +resource_schema "aws_sso_permission_set" { + cloudformation_type_name = "AWS::SSO::PermissionSet" +} + +resource_schema "aws_sagemaker_app" { + cloudformation_type_name = "AWS::SageMaker::App" +} + +resource_schema "aws_sagemaker_app_image_config" { + cloudformation_type_name = "AWS::SageMaker::AppImageConfig" +} + +resource_schema "aws_sagemaker_data_quality_job_definition" { + cloudformation_type_name = "AWS::SageMaker::DataQualityJobDefinition" +} + +resource_schema "aws_sagemaker_device" { + cloudformation_type_name = "AWS::SageMaker::Device" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_device_fleet" { + cloudformation_type_name = "AWS::SageMaker::DeviceFleet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_domain" { + cloudformation_type_name = "AWS::SageMaker::Domain" +} + +resource_schema "aws_sagemaker_feature_group" { + cloudformation_type_name = "AWS::SageMaker::FeatureGroup" +} + +resource_schema "aws_sagemaker_image" { + cloudformation_type_name = "AWS::SageMaker::Image" +} + +resource_schema "aws_sagemaker_image_version" { + cloudformation_type_name = "AWS::SageMaker::ImageVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_inference_component" { + cloudformation_type_name = "AWS::SageMaker::InferenceComponent" +} + +resource_schema "aws_sagemaker_inference_experiment" { + cloudformation_type_name = "AWS::SageMaker::InferenceExperiment" +} + +resource_schema "aws_sagemaker_mlflow_tracking_server" { + cloudformation_type_name = "AWS::SageMaker::MlflowTrackingServer" +} + +resource_schema "aws_sagemaker_model_bias_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelBiasJobDefinition" +} + +resource_schema "aws_sagemaker_model_card" { + cloudformation_type_name = "AWS::SageMaker::ModelCard" +} + +resource_schema "aws_sagemaker_model_explainability_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelExplainabilityJobDefinition" +} + +resource_schema "aws_sagemaker_model_package" { + cloudformation_type_name = "AWS::SageMaker::ModelPackage" +} + +resource_schema "aws_sagemaker_model_package_group" { + cloudformation_type_name = "AWS::SageMaker::ModelPackageGroup" +} + +resource_schema "aws_sagemaker_model_quality_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelQualityJobDefinition" +} + +resource_schema "aws_sagemaker_monitoring_schedule" { + cloudformation_type_name = "AWS::SageMaker::MonitoringSchedule" +} + +resource_schema "aws_sagemaker_pipeline" { + cloudformation_type_name = "AWS::SageMaker::Pipeline" +} + +resource_schema "aws_sagemaker_project" { + cloudformation_type_name = "AWS::SageMaker::Project" +} + +resource_schema "aws_sagemaker_space" { + cloudformation_type_name = "AWS::SageMaker::Space" +} + +resource_schema "aws_sagemaker_user_profile" { + cloudformation_type_name = "AWS::SageMaker::UserProfile" +} + +resource_schema "aws_scheduler_schedule" { + cloudformation_type_name = "AWS::Scheduler::Schedule" +} + +resource_schema "aws_scheduler_schedule_group" { + cloudformation_type_name = "AWS::Scheduler::ScheduleGroup" +} + +resource_schema "aws_secretsmanager_resource_policy" { + cloudformation_type_name = "AWS::SecretsManager::ResourcePolicy" +} + +resource_schema "aws_secretsmanager_secret" { + cloudformation_type_name = "AWS::SecretsManager::Secret" +} + +resource_schema "aws_securityhub_automation_rule" { + cloudformation_type_name = "AWS::SecurityHub::AutomationRule" +} + +resource_schema "aws_securityhub_configuration_policy" { + cloudformation_type_name = "AWS::SecurityHub::ConfigurationPolicy" +} + +resource_schema "aws_securityhub_delegated_admin" { + cloudformation_type_name = "AWS::SecurityHub::DelegatedAdmin" +} + +resource_schema "aws_securityhub_finding_aggregator" { + cloudformation_type_name = "AWS::SecurityHub::FindingAggregator" +} + +resource_schema "aws_securityhub_hub" { + cloudformation_type_name = "AWS::SecurityHub::Hub" +} + +resource_schema "aws_securityhub_insight" { + cloudformation_type_name = "AWS::SecurityHub::Insight" +} + +resource_schema "aws_securityhub_organization_configuration" { + cloudformation_type_name = "AWS::SecurityHub::OrganizationConfiguration" +} + +resource_schema "aws_securityhub_policy_association" { + cloudformation_type_name = "AWS::SecurityHub::PolicyAssociation" +} + +resource_schema "aws_securityhub_product_subscription" { + cloudformation_type_name = "AWS::SecurityHub::ProductSubscription" +} + +resource_schema "aws_securityhub_security_control" { + cloudformation_type_name = "AWS::SecurityHub::SecurityControl" +} + +resource_schema "aws_securityhub_standard" { + cloudformation_type_name = "AWS::SecurityHub::Standard" +} + +resource_schema "aws_securitylake_aws_log_source" { + cloudformation_type_name = "AWS::SecurityLake::AwsLogSource" +} + +resource_schema "aws_securitylake_data_lake" { + cloudformation_type_name = "AWS::SecurityLake::DataLake" +} + +resource_schema "aws_securitylake_subscriber" { + cloudformation_type_name = "AWS::SecurityLake::Subscriber" +} + +resource_schema "aws_securitylake_subscriber_notification" { + cloudformation_type_name = "AWS::SecurityLake::SubscriberNotification" +} + +resource_schema "aws_servicecatalog_cloudformation_provisioned_product" { + cloudformation_type_name = "AWS::ServiceCatalog::CloudFormationProvisionedProduct" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalog_service_action" { + cloudformation_type_name = "AWS::ServiceCatalog::ServiceAction" +} + +resource_schema "aws_servicecatalog_service_action_association" { + cloudformation_type_name = "AWS::ServiceCatalog::ServiceActionAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalogappregistry_application" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::Application" +} + +resource_schema "aws_servicecatalogappregistry_attribute_group" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::AttributeGroup" +} + +resource_schema "aws_servicecatalogappregistry_attribute_group_association" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalogappregistry_resource_association" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::ResourceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_shield_drt_access" { + cloudformation_type_name = "AWS::Shield::DRTAccess" +} + +resource_schema "aws_shield_proactive_engagement" { + cloudformation_type_name = "AWS::Shield::ProactiveEngagement" +} + +resource_schema "aws_shield_protection" { + cloudformation_type_name = "AWS::Shield::Protection" +} + +resource_schema "aws_shield_protection_group" { + cloudformation_type_name = "AWS::Shield::ProtectionGroup" +} + +resource_schema "aws_signer_profile_permission" { + cloudformation_type_name = "AWS::Signer::ProfilePermission" +} + +resource_schema "aws_signer_signing_profile" { + cloudformation_type_name = "AWS::Signer::SigningProfile" +} + +resource_schema "aws_simspaceweaver_simulation" { + cloudformation_type_name = "AWS::SimSpaceWeaver::Simulation" +} + +resource_schema "aws_stepfunctions_activity" { + cloudformation_type_name = "AWS::StepFunctions::Activity" +} + +resource_schema "aws_stepfunctions_state_machine" { + cloudformation_type_name = "AWS::StepFunctions::StateMachine" +} + +resource_schema "aws_stepfunctions_state_machine_alias" { + cloudformation_type_name = "AWS::StepFunctions::StateMachineAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_stepfunctions_state_machine_version" { + cloudformation_type_name = "AWS::StepFunctions::StateMachineVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_supportapp_account_alias" { + cloudformation_type_name = "AWS::SupportApp::AccountAlias" +} + +resource_schema "aws_supportapp_slack_channel_configuration" { + cloudformation_type_name = "AWS::SupportApp::SlackChannelConfiguration" +} + +resource_schema "aws_supportapp_slack_workspace_configuration" { + cloudformation_type_name = "AWS::SupportApp::SlackWorkspaceConfiguration" +} + +resource_schema "aws_synthetics_canary" { + cloudformation_type_name = "AWS::Synthetics::Canary" +} + +resource_schema "aws_synthetics_group" { + cloudformation_type_name = "AWS::Synthetics::Group" +} + +resource_schema "aws_systemsmanagersap_application" { + cloudformation_type_name = "AWS::SystemsManagerSAP::Application" +} + +resource_schema "aws_timestream_database" { + cloudformation_type_name = "AWS::Timestream::Database" +} + +resource_schema "aws_timestream_influx_db_instance" { + cloudformation_type_name = "AWS::Timestream::InfluxDBInstance" +} + +resource_schema "aws_timestream_scheduled_query" { + cloudformation_type_name = "AWS::Timestream::ScheduledQuery" +} + +resource_schema "aws_timestream_table" { + cloudformation_type_name = "AWS::Timestream::Table" +} + +resource_schema "aws_transfer_agreement" { + cloudformation_type_name = "AWS::Transfer::Agreement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_transfer_certificate" { + cloudformation_type_name = "AWS::Transfer::Certificate" +} + +resource_schema "aws_transfer_connector" { + cloudformation_type_name = "AWS::Transfer::Connector" +} + +resource_schema "aws_transfer_profile" { + cloudformation_type_name = "AWS::Transfer::Profile" +} + +resource_schema "aws_transfer_workflow" { + cloudformation_type_name = "AWS::Transfer::Workflow" +} + +resource_schema "aws_verifiedpermissions_identity_source" { + cloudformation_type_name = "AWS::VerifiedPermissions::IdentitySource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_verifiedpermissions_policy" { + cloudformation_type_name = "AWS::VerifiedPermissions::Policy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_verifiedpermissions_policy_store" { + cloudformation_type_name = "AWS::VerifiedPermissions::PolicyStore" +} + +resource_schema "aws_verifiedpermissions_policy_template" { + cloudformation_type_name = "AWS::VerifiedPermissions::PolicyTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_voiceid_domain" { + cloudformation_type_name = "AWS::VoiceID::Domain" +} + +resource_schema "aws_vpclattice_access_log_subscription" { + cloudformation_type_name = "AWS::VpcLattice::AccessLogSubscription" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_auth_policy" { + cloudformation_type_name = "AWS::VpcLattice::AuthPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_listener" { + cloudformation_type_name = "AWS::VpcLattice::Listener" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_resource_policy" { + cloudformation_type_name = "AWS::VpcLattice::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_rule" { + cloudformation_type_name = "AWS::VpcLattice::Rule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_service" { + cloudformation_type_name = "AWS::VpcLattice::Service" +} + +resource_schema "aws_vpclattice_service_network" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetwork" +} + +resource_schema "aws_vpclattice_service_network_service_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkServiceAssociation" +} + +resource_schema "aws_vpclattice_service_network_vpc_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkVpcAssociation" +} + +resource_schema "aws_vpclattice_target_group" { + cloudformation_type_name = "AWS::VpcLattice::TargetGroup" +} + +resource_schema "aws_wafv2_ip_set" { + cloudformation_type_name = "AWS::WAFv2::IPSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_logging_configuration" { + cloudformation_type_name = "AWS::WAFv2::LoggingConfiguration" +} + +resource_schema "aws_wafv2_regex_pattern_set" { + cloudformation_type_name = "AWS::WAFv2::RegexPatternSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_rule_group" { + cloudformation_type_name = "AWS::WAFv2::RuleGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_web_acl" { + cloudformation_type_name = "AWS::WAFv2::WebACL" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_web_acl_association" { + cloudformation_type_name = "AWS::WAFv2::WebACLAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_assistant" { + cloudformation_type_name = "AWS::Wisdom::Assistant" +} + +resource_schema "aws_wisdom_assistant_association" { + cloudformation_type_name = "AWS::Wisdom::AssistantAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_knowledge_base" { + cloudformation_type_name = "AWS::Wisdom::KnowledgeBase" +} + +resource_schema "aws_workspaces_connection_alias" { + cloudformation_type_name = "AWS::WorkSpaces::ConnectionAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_workspaces_workspaces_pool" { + cloudformation_type_name = "AWS::WorkSpaces::WorkspacesPool" +} + +resource_schema "aws_workspacesthinclient_environment" { + cloudformation_type_name = "AWS::WorkSpacesThinClient::Environment" +} + +resource_schema "aws_workspacesweb_browser_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::BrowserSettings" +} + +resource_schema "aws_workspacesweb_identity_provider" { + cloudformation_type_name = "AWS::WorkSpacesWeb::IdentityProvider" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_workspacesweb_ip_access_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::IpAccessSettings" +} + +resource_schema "aws_workspacesweb_network_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::NetworkSettings" +} + +resource_schema "aws_workspacesweb_portal" { + cloudformation_type_name = "AWS::WorkSpacesWeb::Portal" +} + +resource_schema "aws_workspacesweb_trust_store" { + cloudformation_type_name = "AWS::WorkSpacesWeb::TrustStore" +} + +resource_schema "aws_workspacesweb_user_access_logging_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::UserAccessLoggingSettings" +} + +resource_schema "aws_workspacesweb_user_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::UserSettings" +} + +resource_schema "aws_xray_group" { + cloudformation_type_name = "AWS::XRay::Group" +} + +resource_schema "aws_xray_resource_policy" { + cloudformation_type_name = "AWS::XRay::ResourcePolicy" +} + +resource_schema "aws_xray_sampling_rule" { + cloudformation_type_name = "AWS::XRay::SamplingRule" +} diff --git a/internal/provider/plural_data_sources.go b/internal/provider/plural_data_sources.go index 1d30ef630c..7ec5c3fa3b 100644 --- a/internal/provider/plural_data_sources.go +++ b/internal/provider/plural_data_sources.go @@ -69,6 +69,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_bedrock_agents -cftype AWS::Bedrock::Agent -package bedrock ../aws/bedrock/agent_plural_data_source_gen.go ../aws/bedrock/agent_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_bedrock_guardrails -cftype AWS::Bedrock::Guardrail -package bedrock ../aws/bedrock/guardrail_plural_data_source_gen.go ../aws/bedrock/guardrail_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_bedrock_knowledge_bases -cftype AWS::Bedrock::KnowledgeBase -package bedrock ../aws/bedrock/knowledge_base_plural_data_source_gen.go ../aws/bedrock/knowledge_base_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_bedrock_prompts -cftype AWS::Bedrock::Prompt -package bedrock ../aws/bedrock/prompt_plural_data_source_gen.go ../aws/bedrock/prompt_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_billingconductor_billing_groups -cftype AWS::BillingConductor::BillingGroup -package billingconductor ../aws/billingconductor/billing_group_plural_data_source_gen.go ../aws/billingconductor/billing_group_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_billingconductor_custom_line_items -cftype AWS::BillingConductor::CustomLineItem -package billingconductor ../aws/billingconductor/custom_line_item_plural_data_source_gen.go ../aws/billingconductor/custom_line_item_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_billingconductor_pricing_plans -cftype AWS::BillingConductor::PricingPlan -package billingconductor ../aws/billingconductor/pricing_plan_plural_data_source_gen.go ../aws/billingconductor/pricing_plan_plural_data_source_gen_test.go @@ -335,6 +336,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_globalaccelerator_listeners -cftype AWS::GlobalAccelerator::Listener -package globalaccelerator ../aws/globalaccelerator/listener_plural_data_source_gen.go ../aws/globalaccelerator/listener_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_glue_registries -cftype AWS::Glue::Registry -package glue ../aws/glue/registry_plural_data_source_gen.go ../aws/glue/registry_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_glue_schemas -cftype AWS::Glue::Schema -package glue ../aws/glue/schema_plural_data_source_gen.go ../aws/glue/schema_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_glue_triggers -cftype AWS::Glue::Trigger -package glue ../aws/glue/trigger_plural_data_source_gen.go ../aws/glue/trigger_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_grafana_workspaces -cftype AWS::Grafana::Workspace -package grafana ../aws/grafana/workspace_plural_data_source_gen.go ../aws/grafana/workspace_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_greengrassv2_deployments -cftype AWS::GreengrassV2::Deployment -package greengrassv2 ../aws/greengrassv2/deployment_plural_data_source_gen.go ../aws/greengrassv2/deployment_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_groundstation_configs -cftype AWS::GroundStation::Config -package groundstation ../aws/groundstation/config_plural_data_source_gen.go ../aws/groundstation/config_plural_data_source_gen_test.go @@ -710,6 +712,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_sagemaker_spaces -cftype AWS::SageMaker::Space -package sagemaker ../aws/sagemaker/space_plural_data_source_gen.go ../aws/sagemaker/space_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_sagemaker_user_profiles -cftype AWS::SageMaker::UserProfile -package sagemaker ../aws/sagemaker/user_profile_plural_data_source_gen.go ../aws/sagemaker/user_profile_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_scheduler_schedule_groups -cftype AWS::Scheduler::ScheduleGroup -package scheduler ../aws/scheduler/schedule_group_plural_data_source_gen.go ../aws/scheduler/schedule_group_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_secretsmanager_resource_policies -cftype AWS::SecretsManager::ResourcePolicy -package secretsmanager ../aws/secretsmanager/resource_policy_plural_data_source_gen.go ../aws/secretsmanager/resource_policy_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_secretsmanager_secrets -cftype AWS::SecretsManager::Secret -package secretsmanager ../aws/secretsmanager/secret_plural_data_source_gen.go ../aws/secretsmanager/secret_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_securityhub_configuration_policies -cftype AWS::SecurityHub::ConfigurationPolicy -package securityhub ../aws/securityhub/configuration_policy_plural_data_source_gen.go ../aws/securityhub/configuration_policy_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_securityhub_delegated_admins -cftype AWS::SecurityHub::DelegatedAdmin -package securityhub ../aws/securityhub/delegated_admin_plural_data_source_gen.go ../aws/securityhub/delegated_admin_plural_data_source_gen_test.go diff --git a/internal/provider/resources.go b/internal/provider/resources.go index a8d53a7e17..173d6f96ca 100644 --- a/internal/provider/resources.go +++ b/internal/provider/resources.go @@ -106,9 +106,13 @@ //go:generate go run generators/resource/main.go -resource awscc_bedrock_agent -cfschema ../service/cloudformation/schemas/AWS_Bedrock_Agent.json -package bedrock -- ../aws/bedrock/agent_resource_gen.go ../aws/bedrock/agent_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_bedrock_agent_alias -cfschema ../service/cloudformation/schemas/AWS_Bedrock_AgentAlias.json -package bedrock -- ../aws/bedrock/agent_alias_resource_gen.go ../aws/bedrock/agent_alias_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_bedrock_data_source -cfschema ../service/cloudformation/schemas/AWS_Bedrock_DataSource.json -package bedrock -- ../aws/bedrock/data_source_resource_gen.go ../aws/bedrock/data_source_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_bedrock_flow_alias -cfschema ../service/cloudformation/schemas/AWS_Bedrock_FlowAlias.json -package bedrock -- ../aws/bedrock/flow_alias_resource_gen.go ../aws/bedrock/flow_alias_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_bedrock_flow_version -cfschema ../service/cloudformation/schemas/AWS_Bedrock_FlowVersion.json -package bedrock -- ../aws/bedrock/flow_version_resource_gen.go ../aws/bedrock/flow_version_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_bedrock_guardrail -cfschema ../service/cloudformation/schemas/AWS_Bedrock_Guardrail.json -package bedrock -- ../aws/bedrock/guardrail_resource_gen.go ../aws/bedrock/guardrail_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_bedrock_guardrail_version -cfschema ../service/cloudformation/schemas/AWS_Bedrock_GuardrailVersion.json -package bedrock -- ../aws/bedrock/guardrail_version_resource_gen.go ../aws/bedrock/guardrail_version_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_bedrock_knowledge_base -cfschema ../service/cloudformation/schemas/AWS_Bedrock_KnowledgeBase.json -package bedrock -- ../aws/bedrock/knowledge_base_resource_gen.go ../aws/bedrock/knowledge_base_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_bedrock_prompt -cfschema ../service/cloudformation/schemas/AWS_Bedrock_Prompt.json -package bedrock -- ../aws/bedrock/prompt_resource_gen.go ../aws/bedrock/prompt_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_bedrock_prompt_version -cfschema ../service/cloudformation/schemas/AWS_Bedrock_PromptVersion.json -package bedrock -- ../aws/bedrock/prompt_version_resource_gen.go ../aws/bedrock/prompt_version_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_billingconductor_billing_group -cfschema ../service/cloudformation/schemas/AWS_BillingConductor_BillingGroup.json -package billingconductor -- ../aws/billingconductor/billing_group_resource_gen.go ../aws/billingconductor/billing_group_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_billingconductor_custom_line_item -cfschema ../service/cloudformation/schemas/AWS_BillingConductor_CustomLineItem.json -package billingconductor -- ../aws/billingconductor/custom_line_item_resource_gen.go ../aws/billingconductor/custom_line_item_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_billingconductor_pricing_plan -cfschema ../service/cloudformation/schemas/AWS_BillingConductor_PricingPlan.json -package billingconductor -- ../aws/billingconductor/pricing_plan_resource_gen.go ../aws/billingconductor/pricing_plan_resource_gen_test.go @@ -456,6 +460,7 @@ //go:generate go run generators/resource/main.go -resource awscc_glue_schema -cfschema ../service/cloudformation/schemas/AWS_Glue_Schema.json -package glue -- ../aws/glue/schema_resource_gen.go ../aws/glue/schema_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_glue_schema_version -cfschema ../service/cloudformation/schemas/AWS_Glue_SchemaVersion.json -package glue -- ../aws/glue/schema_version_resource_gen.go ../aws/glue/schema_version_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_glue_schema_version_metadata -cfschema ../service/cloudformation/schemas/AWS_Glue_SchemaVersionMetadata.json -package glue -- ../aws/glue/schema_version_metadata_resource_gen.go ../aws/glue/schema_version_metadata_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_glue_trigger -cfschema ../service/cloudformation/schemas/AWS_Glue_Trigger.json -package glue -- ../aws/glue/trigger_resource_gen.go ../aws/glue/trigger_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_grafana_workspace -cfschema ../service/cloudformation/schemas/AWS_Grafana_Workspace.json -package grafana -- ../aws/grafana/workspace_resource_gen.go ../aws/grafana/workspace_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_greengrassv2_component_version -cfschema ../service/cloudformation/schemas/AWS_GreengrassV2_ComponentVersion.json -package greengrassv2 -- ../aws/greengrassv2/component_version_resource_gen.go ../aws/greengrassv2/component_version_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_greengrassv2_deployment -cfschema ../service/cloudformation/schemas/AWS_GreengrassV2_Deployment.json -package greengrassv2 -- ../aws/greengrassv2/deployment_resource_gen.go ../aws/greengrassv2/deployment_resource_gen_test.go @@ -918,6 +923,7 @@ //go:generate go run generators/resource/main.go -resource awscc_sagemaker_space -cfschema ../service/cloudformation/schemas/AWS_SageMaker_Space.json -package sagemaker -- ../aws/sagemaker/space_resource_gen.go ../aws/sagemaker/space_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_sagemaker_user_profile -cfschema ../service/cloudformation/schemas/AWS_SageMaker_UserProfile.json -package sagemaker -- ../aws/sagemaker/user_profile_resource_gen.go ../aws/sagemaker/user_profile_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_scheduler_schedule_group -cfschema ../service/cloudformation/schemas/AWS_Scheduler_ScheduleGroup.json -package scheduler -- ../aws/scheduler/schedule_group_resource_gen.go ../aws/scheduler/schedule_group_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_secretsmanager_resource_policy -cfschema ../service/cloudformation/schemas/AWS_SecretsManager_ResourcePolicy.json -package secretsmanager -- ../aws/secretsmanager/resource_policy_resource_gen.go ../aws/secretsmanager/resource_policy_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_secretsmanager_secret -cfschema ../service/cloudformation/schemas/AWS_SecretsManager_Secret.json -package secretsmanager -- ../aws/secretsmanager/secret_resource_gen.go ../aws/secretsmanager/secret_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_securityhub_configuration_policy -cfschema ../service/cloudformation/schemas/AWS_SecurityHub_ConfigurationPolicy.json -package securityhub -- ../aws/securityhub/configuration_policy_resource_gen.go ../aws/securityhub/configuration_policy_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_securityhub_delegated_admin -cfschema ../service/cloudformation/schemas/AWS_SecurityHub_DelegatedAdmin.json -package securityhub -- ../aws/securityhub/delegated_admin_resource_gen.go ../aws/securityhub/delegated_admin_resource_gen_test.go diff --git a/internal/provider/singular_data_sources.go b/internal/provider/singular_data_sources.go index aef499b544..ecdbd935de 100644 --- a/internal/provider/singular_data_sources.go +++ b/internal/provider/singular_data_sources.go @@ -106,9 +106,13 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_agent -cfschema ../service/cloudformation/schemas/AWS_Bedrock_Agent.json -package bedrock ../aws/bedrock/agent_singular_data_source_gen.go ../aws/bedrock/agent_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_agent_alias -cfschema ../service/cloudformation/schemas/AWS_Bedrock_AgentAlias.json -package bedrock ../aws/bedrock/agent_alias_singular_data_source_gen.go ../aws/bedrock/agent_alias_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_data_source -cfschema ../service/cloudformation/schemas/AWS_Bedrock_DataSource.json -package bedrock ../aws/bedrock/data_source_singular_data_source_gen.go ../aws/bedrock/data_source_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_flow_alias -cfschema ../service/cloudformation/schemas/AWS_Bedrock_FlowAlias.json -package bedrock ../aws/bedrock/flow_alias_singular_data_source_gen.go ../aws/bedrock/flow_alias_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_flow_version -cfschema ../service/cloudformation/schemas/AWS_Bedrock_FlowVersion.json -package bedrock ../aws/bedrock/flow_version_singular_data_source_gen.go ../aws/bedrock/flow_version_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_guardrail -cfschema ../service/cloudformation/schemas/AWS_Bedrock_Guardrail.json -package bedrock ../aws/bedrock/guardrail_singular_data_source_gen.go ../aws/bedrock/guardrail_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_guardrail_version -cfschema ../service/cloudformation/schemas/AWS_Bedrock_GuardrailVersion.json -package bedrock ../aws/bedrock/guardrail_version_singular_data_source_gen.go ../aws/bedrock/guardrail_version_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_knowledge_base -cfschema ../service/cloudformation/schemas/AWS_Bedrock_KnowledgeBase.json -package bedrock ../aws/bedrock/knowledge_base_singular_data_source_gen.go ../aws/bedrock/knowledge_base_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_prompt -cfschema ../service/cloudformation/schemas/AWS_Bedrock_Prompt.json -package bedrock ../aws/bedrock/prompt_singular_data_source_gen.go ../aws/bedrock/prompt_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_prompt_version -cfschema ../service/cloudformation/schemas/AWS_Bedrock_PromptVersion.json -package bedrock ../aws/bedrock/prompt_version_singular_data_source_gen.go ../aws/bedrock/prompt_version_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_billingconductor_billing_group -cfschema ../service/cloudformation/schemas/AWS_BillingConductor_BillingGroup.json -package billingconductor ../aws/billingconductor/billing_group_singular_data_source_gen.go ../aws/billingconductor/billing_group_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_billingconductor_custom_line_item -cfschema ../service/cloudformation/schemas/AWS_BillingConductor_CustomLineItem.json -package billingconductor ../aws/billingconductor/custom_line_item_singular_data_source_gen.go ../aws/billingconductor/custom_line_item_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_billingconductor_pricing_plan -cfschema ../service/cloudformation/schemas/AWS_BillingConductor_PricingPlan.json -package billingconductor ../aws/billingconductor/pricing_plan_singular_data_source_gen.go ../aws/billingconductor/pricing_plan_singular_data_source_gen_test.go @@ -456,6 +460,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_glue_schema -cfschema ../service/cloudformation/schemas/AWS_Glue_Schema.json -package glue ../aws/glue/schema_singular_data_source_gen.go ../aws/glue/schema_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_glue_schema_version -cfschema ../service/cloudformation/schemas/AWS_Glue_SchemaVersion.json -package glue ../aws/glue/schema_version_singular_data_source_gen.go ../aws/glue/schema_version_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_glue_schema_version_metadata -cfschema ../service/cloudformation/schemas/AWS_Glue_SchemaVersionMetadata.json -package glue ../aws/glue/schema_version_metadata_singular_data_source_gen.go ../aws/glue/schema_version_metadata_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_glue_trigger -cfschema ../service/cloudformation/schemas/AWS_Glue_Trigger.json -package glue ../aws/glue/trigger_singular_data_source_gen.go ../aws/glue/trigger_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_grafana_workspace -cfschema ../service/cloudformation/schemas/AWS_Grafana_Workspace.json -package grafana ../aws/grafana/workspace_singular_data_source_gen.go ../aws/grafana/workspace_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_greengrassv2_component_version -cfschema ../service/cloudformation/schemas/AWS_GreengrassV2_ComponentVersion.json -package greengrassv2 ../aws/greengrassv2/component_version_singular_data_source_gen.go ../aws/greengrassv2/component_version_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_greengrassv2_deployment -cfschema ../service/cloudformation/schemas/AWS_GreengrassV2_Deployment.json -package greengrassv2 ../aws/greengrassv2/deployment_singular_data_source_gen.go ../aws/greengrassv2/deployment_singular_data_source_gen_test.go @@ -918,6 +923,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_sagemaker_space -cfschema ../service/cloudformation/schemas/AWS_SageMaker_Space.json -package sagemaker ../aws/sagemaker/space_singular_data_source_gen.go ../aws/sagemaker/space_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_sagemaker_user_profile -cfschema ../service/cloudformation/schemas/AWS_SageMaker_UserProfile.json -package sagemaker ../aws/sagemaker/user_profile_singular_data_source_gen.go ../aws/sagemaker/user_profile_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_scheduler_schedule_group -cfschema ../service/cloudformation/schemas/AWS_Scheduler_ScheduleGroup.json -package scheduler ../aws/scheduler/schedule_group_singular_data_source_gen.go ../aws/scheduler/schedule_group_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_secretsmanager_resource_policy -cfschema ../service/cloudformation/schemas/AWS_SecretsManager_ResourcePolicy.json -package secretsmanager ../aws/secretsmanager/resource_policy_singular_data_source_gen.go ../aws/secretsmanager/resource_policy_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_secretsmanager_secret -cfschema ../service/cloudformation/schemas/AWS_SecretsManager_Secret.json -package secretsmanager ../aws/secretsmanager/secret_singular_data_source_gen.go ../aws/secretsmanager/secret_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_securityhub_configuration_policy -cfschema ../service/cloudformation/schemas/AWS_SecurityHub_ConfigurationPolicy.json -package securityhub ../aws/securityhub/configuration_policy_singular_data_source_gen.go ../aws/securityhub/configuration_policy_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_securityhub_delegated_admin -cfschema ../service/cloudformation/schemas/AWS_SecurityHub_DelegatedAdmin.json -package securityhub ../aws/securityhub/delegated_admin_singular_data_source_gen.go ../aws/securityhub/delegated_admin_singular_data_source_gen_test.go diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_Flow.json b/internal/service/cloudformation/schemas/AWS_Bedrock_Flow.json new file mode 100644 index 0000000000..772fbea40c --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_Flow.json @@ -0,0 +1,909 @@ +{ + "typeName": "AWS::Bedrock::Flow", + "description": "Definition of AWS::Bedrock::Flow Resource Type", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-flows", + "definitions": { + "ConditionFlowNodeConfiguration": { + "type": "object", + "description": "Condition flow node configuration", + "properties": { + "Conditions": { + "type": "array", + "items": { + "$ref": "#/definitions/FlowCondition" + }, + "maxItems": 5, + "minItems": 1, + "description": "List of conditions in a condition node", + "insertionOrder": true + } + }, + "required": [ + "Conditions" + ], + "additionalProperties": false + }, + "FlowCondition": { + "type": "object", + "description": "Condition branch for a condition node", + "properties": { + "Name": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a condition in a flow" + }, + "Expression": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "description": "Expression for a condition in a flow" + } + }, + "required": [ + "Name" + ], + "additionalProperties": false + }, + "FlowConditionalConnectionConfiguration": { + "type": "object", + "description": "Conditional connection configuration", + "properties": { + "Condition": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a condition in a flow" + } + }, + "required": [ + "Condition" + ], + "additionalProperties": false + }, + "FlowConnection": { + "type": "object", + "description": "Flow connection", + "properties": { + "Type": { + "$ref": "#/definitions/FlowConnectionType" + }, + "Name": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,100}$", + "description": "Name of a connection in a flow" + }, + "Source": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node in a flow" + }, + "Target": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node in a flow" + }, + "Configuration": { + "$ref": "#/definitions/FlowConnectionConfiguration" + } + }, + "required": [ + "Name", + "Source", + "Target", + "Type" + ], + "additionalProperties": false + }, + "FlowConnectionConfiguration": { + "description": "Connection configuration", + "oneOf": [ + { + "type": "object", + "title": "Data", + "properties": { + "Data": { + "$ref": "#/definitions/FlowDataConnectionConfiguration" + } + }, + "required": [ + "Data" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Conditional", + "properties": { + "Conditional": { + "$ref": "#/definitions/FlowConditionalConnectionConfiguration" + } + }, + "required": [ + "Conditional" + ], + "additionalProperties": false + } + ] + }, + "FlowConnectionType": { + "type": "string", + "description": "Connection type", + "enum": [ + "Data", + "Conditional" + ] + }, + "FlowDataConnectionConfiguration": { + "type": "object", + "description": "Data connection configuration", + "properties": { + "SourceOutput": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node output in a flow" + }, + "TargetInput": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node input in a flow" + } + }, + "required": [ + "SourceOutput", + "TargetInput" + ], + "additionalProperties": false + }, + "FlowDefinition": { + "type": "object", + "description": "Flow definition", + "properties": { + "Nodes": { + "type": "array", + "items": { + "$ref": "#/definitions/FlowNode" + }, + "maxItems": 20, + "description": "List of nodes in a flow", + "insertionOrder": true + }, + "Connections": { + "type": "array", + "items": { + "$ref": "#/definitions/FlowConnection" + }, + "maxItems": 20, + "description": "List of connections", + "insertionOrder": true + } + }, + "additionalProperties": false + }, + "FlowNode": { + "type": "object", + "description": "Internal mixin for flow node", + "properties": { + "Name": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node in a flow" + }, + "Type": { + "$ref": "#/definitions/FlowNodeType" + }, + "Configuration": { + "$ref": "#/definitions/FlowNodeConfiguration" + }, + "Inputs": { + "type": "array", + "items": { + "$ref": "#/definitions/FlowNodeInput" + }, + "maxItems": 5, + "description": "List of node inputs in a flow", + "insertionOrder": true + }, + "Outputs": { + "type": "array", + "items": { + "$ref": "#/definitions/FlowNodeOutput" + }, + "maxItems": 5, + "description": "List of node outputs in a flow", + "insertionOrder": true + } + }, + "required": [ + "Name", + "Type" + ], + "additionalProperties": false + }, + "FlowNodeConfiguration": { + "description": "Node configuration in a flow", + "oneOf": [ + { + "type": "object", + "title": "Input", + "properties": { + "Input": { + "$ref": "#/definitions/InputFlowNodeConfiguration" + } + }, + "required": [ + "Input" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Output", + "properties": { + "Output": { + "$ref": "#/definitions/OutputFlowNodeConfiguration" + } + }, + "required": [ + "Output" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "KnowledgeBase", + "properties": { + "KnowledgeBase": { + "$ref": "#/definitions/KnowledgeBaseFlowNodeConfiguration" + } + }, + "required": [ + "KnowledgeBase" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Condition", + "properties": { + "Condition": { + "$ref": "#/definitions/ConditionFlowNodeConfiguration" + } + }, + "required": [ + "Condition" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Lex", + "properties": { + "Lex": { + "$ref": "#/definitions/LexFlowNodeConfiguration" + } + }, + "required": [ + "Lex" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Prompt", + "properties": { + "Prompt": { + "$ref": "#/definitions/PromptFlowNodeConfiguration" + } + }, + "required": [ + "Prompt" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "LambdaFunction", + "properties": { + "LambdaFunction": { + "$ref": "#/definitions/LambdaFunctionFlowNodeConfiguration" + } + }, + "required": [ + "LambdaFunction" + ], + "additionalProperties": false + } + ] + }, + "FlowNodeIODataType": { + "type": "string", + "description": "Type of input/output for a node in a flow", + "enum": [ + "String", + "Number", + "Boolean", + "Object", + "Array" + ] + }, + "FlowNodeInput": { + "type": "object", + "description": "Input to a node in a flow", + "properties": { + "Name": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node input in a flow" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + }, + "Expression": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "description": "Expression for a node input in a flow" + } + }, + "required": [ + "Expression", + "Name", + "Type" + ], + "additionalProperties": false + }, + "FlowNodeOutput": { + "type": "object", + "description": "Output of a node in a flow", + "properties": { + "Name": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node output in a flow" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Name", + "Type" + ], + "additionalProperties": false + }, + "FlowNodeType": { + "type": "string", + "description": "Flow node types", + "enum": [ + "Input", + "Output", + "KnowledgeBase", + "Condition", + "Lex", + "Prompt", + "LambdaFunction" + ] + }, + "FlowStatus": { + "type": "string", + "description": "Schema Type for Flow APIs", + "enum": [ + "Failed", + "Prepared", + "Preparing", + "NotPrepared" + ] + }, + "InputFlowNodeConfiguration": { + "type": "object", + "description": "Input flow node configuration", + "additionalProperties": false + }, + "KnowledgeBaseFlowNodeConfiguration": { + "type": "object", + "description": "Knowledge base flow node configuration", + "properties": { + "KnowledgeBaseId": { + "type": "string", + "maxLength": 10, + "pattern": "^[0-9a-zA-Z]+$", + "description": "Identifier of the KnowledgeBase" + }, + "ModelId": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", + "description": "ARN or name of a Bedrock model." + } + }, + "required": [ + "KnowledgeBaseId" + ], + "additionalProperties": false + }, + "LambdaFunctionFlowNodeConfiguration": { + "type": "object", + "description": "Lambda function flow node configuration", + "properties": { + "LambdaArn": { + "type": "string", + "maxLength": 2048, + "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "description": "ARN of a Lambda." + } + }, + "required": [ + "LambdaArn" + ], + "additionalProperties": false + }, + "LexFlowNodeConfiguration": { + "type": "object", + "description": "Lex flow node configuration", + "properties": { + "BotAliasArn": { + "type": "string", + "maxLength": 78, + "pattern": "^arn:aws(|-us-gov):lex:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:bot-alias/[0-9a-zA-Z]+/[0-9a-zA-Z]+$", + "description": "ARN of a Lex bot alias" + }, + "LocaleId": { + "type": "string", + "maxLength": 10, + "minLength": 1, + "description": "Lex bot locale id" + } + }, + "required": [ + "BotAliasArn", + "LocaleId" + ], + "additionalProperties": false + }, + "OutputFlowNodeConfiguration": { + "type": "object", + "description": "Output flow node configuration", + "additionalProperties": false + }, + "PromptFlowNodeConfiguration": { + "type": "object", + "description": "Prompt flow node configuration", + "properties": { + "SourceConfiguration": { + "$ref": "#/definitions/PromptFlowNodeSourceConfiguration" + } + }, + "required": [ + "SourceConfiguration" + ], + "additionalProperties": false + }, + "PromptFlowNodeInlineConfiguration": { + "type": "object", + "description": "Inline prompt configuration for prompt node", + "properties": { + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "ModelId": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "description": "ARN or name of a Bedrock model." + }, + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + } + }, + "required": [ + "ModelId", + "TemplateConfiguration", + "TemplateType" + ], + "additionalProperties": false + }, + "PromptFlowNodeResourceConfiguration": { + "type": "object", + "description": "Resource prompt configuration for prompt node", + "properties": { + "PromptArn": { + "type": "string", + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}(?::[0-9]{1,5})?)$", + "description": "ARN of a prompt resource possibly with a version" + } + }, + "required": [ + "PromptArn" + ], + "additionalProperties": false + }, + "PromptFlowNodeSourceConfiguration": { + "description": "Prompt source configuration for prompt node", + "oneOf": [ + { + "type": "object", + "title": "Resource", + "properties": { + "Resource": { + "$ref": "#/definitions/PromptFlowNodeResourceConfiguration" + } + }, + "required": [ + "Resource" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Inline", + "properties": { + "Inline": { + "$ref": "#/definitions/PromptFlowNodeInlineConfiguration" + } + }, + "required": [ + "Inline" + ], + "additionalProperties": false + } + ] + }, + "PromptInferenceConfiguration": { + "description": "Model inference configuration", + "oneOf": [ + { + "type": "object", + "title": "Text", + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + } + ] + }, + "PromptInputVariable": { + "type": "object", + "description": "Input variable", + "properties": { + "Name": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for an input variable" + } + }, + "additionalProperties": false + }, + "PromptModelInferenceConfiguration": { + "type": "object", + "description": "Prompt model inference configuration", + "properties": { + "Temperature": { + "type": "number", + "maximum": 1, + "minimum": 0, + "description": "Controls randomness, higher values increase diversity" + }, + "TopP": { + "type": "number", + "maximum": 1, + "minimum": 0, + "description": "Cumulative probability cutoff for token selection" + }, + "TopK": { + "type": "number", + "maximum": 500, + "minimum": 0, + "description": "Sample from the k most likely next tokens" + }, + "MaxTokens": { + "type": "number", + "maximum": 4096, + "minimum": 0, + "description": "Maximum length of output" + }, + "StopSequences": { + "type": "array", + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "description": "List of stop sequences", + "insertionOrder": true + } + }, + "additionalProperties": false + }, + "PromptTemplateConfiguration": { + "description": "Prompt template configuration", + "oneOf": [ + { + "type": "object", + "title": "Text", + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + } + ] + }, + "PromptTemplateType": { + "type": "string", + "description": "Prompt template type", + "enum": [ + "TEXT" + ] + }, + "S3Location": { + "type": "object", + "description": "A bucket, key and optional version pointing to an S3 object containing a UTF-8 encoded JSON string Definition with the same schema as the Definition property of this resource", + "properties": { + "Bucket": { + "type": "string", + "maxLength": 63, + "minLength": 3, + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "description": "A bucket in S3" + }, + "Key": { + "type": "string", + "maxLength": 1024, + "minLength": 1, + "description": "A object key in S3" + }, + "Version": { + "type": "string", + "maxLength": 1024, + "minLength": 1, + "description": "The version of the the S3 object to use" + } + }, + "required": [ + "Bucket", + "Key" + ], + "additionalProperties": false + }, + "DefinitionSubstitutions": { + "type": "object", + "description": "When supplied with DefinitionString or DefinitionS3Location, substrings in the definition matching ${keyname} will be replaced with the associated value from this map", + "additionalProperties": false, + "patternProperties": { + "": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + }, + { + "type": "boolean" + } + ] + } + }, + "minProperties": 1, + "maxProperties": 500 + }, + "TextPromptTemplateConfiguration": { + "type": "object", + "description": "Configuration for text prompt template", + "properties": { + "Text": { + "type": "string", + "maxLength": 200000, + "minLength": 1, + "description": "Prompt content for String prompt template" + }, + "InputVariables": { + "type": "array", + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 0, + "description": "List of input variables", + "insertionOrder": true + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + }, + "TagsMap": { + "type": "object", + "description": "A map of tag keys and values", + "patternProperties": { + "": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "description": "Value of a tag" + } + }, + "additionalProperties": false + } + }, + "properties": { + "Arn": { + "type": "string", + "maxLength": 1011, + "minLength": 20, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + "description": "Arn representation of the Flow" + }, + "CreatedAt": { + "type": "string", + "description": "Time Stamp.", + "format": "date-time" + }, + "Definition": { + "$ref": "#/definitions/FlowDefinition" + }, + "DefinitionString": { + "type": "string", + "description": "A JSON string containing a Definition with the same schema as the Definition property of this resource", + "maxLength": 512000 + }, + "DefinitionS3Location": { + "$ref": "#/definitions/S3Location" + }, + "DefinitionSubstitutions": { + "$ref": "#/definitions/DefinitionSubstitutions" + }, + "Description": { + "type": "string", + "maxLength": 200, + "minLength": 1, + "description": "Description of the flow" + }, + "ExecutionRoleArn": { + "type": "string", + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/(service-role/)?.+$", + "description": "ARN of a IAM role" + }, + "Id": { + "type": "string", + "pattern": "^[0-9a-zA-Z]{10}$", + "description": "Identifier for a Flow" + }, + "Name": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for the flow" + }, + "Status": { + "$ref": "#/definitions/FlowStatus" + }, + "UpdatedAt": { + "type": "string", + "description": "Time Stamp.", + "format": "date-time" + }, + "CustomerEncryptionKeyArn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + "description": "A KMS key ARN" + }, + "Version": { + "type": "string", + "maxLength": 5, + "minLength": 5, + "pattern": "^DRAFT$", + "description": "Draft Version." + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + }, + "TestAliasTags": { + "$ref": "#/definitions/TagsMap" + } + }, + "required": [ + "ExecutionRoleArn", + "Name" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/Id", + "/properties/Status", + "/properties/UpdatedAt", + "/properties/Version" + ], + "writeOnlyProperties": [ + "/properties/DefinitionString", + "/properties/DefinitionS3Location", + "/properties/DefinitionSubstitutions" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "additionalIdentifiers": [ + [ + "/properties/Id" + ] + ], + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateFlow", + "bedrock:GetFlow", + "bedrock:PrepareFlow", + "iam:PassRole", + "s3:GetObject", + "s3:GetObjectVersion", + "bedrock:TagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "read": { + "permissions": [ + "bedrock:GetFlow", + "bedrock:ListTagsForResource", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "bedrock:UpdateFlow", + "bedrock:GetFlow", + "bedrock:PrepareFlow", + "iam:PassRole", + "s3:GetObject", + "s3:GetObjectVersion", + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteFlow", + "bedrock:GetFlow" + ] + }, + "list": { + "permissions": [ + "bedrock:ListFlows" + ] + } + }, + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true, + "permissions": [ + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ] + }, + "additionalProperties": false +} diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_FlowAlias.json b/internal/service/cloudformation/schemas/AWS_Bedrock_FlowAlias.json new file mode 100644 index 0000000000..868f77ee23 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_FlowAlias.json @@ -0,0 +1,172 @@ +{ + "typeName": "AWS::Bedrock::FlowAlias", + "description": "Definition of AWS::Bedrock::FlowAlias Resource Type", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-flows", + "definitions": { + "FlowAliasRoutingConfigurationListItem": { + "type": "object", + "description": "Details about the routing configuration for a Flow alias.", + "properties": { + "FlowVersion": { + "type": "string", + "maxLength": 1, + "minLength": 1, + "pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + "description": "Version." + } + }, + "additionalProperties": false + }, + "TagsMap": { + "type": "object", + "description": "A map of tag keys and values", + "patternProperties": { + "": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "description": "Value of a tag" + } + }, + "additionalProperties": false + } + }, + "properties": { + "Arn": { + "type": "string", + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}/alias/[0-9a-zA-Z]{10}$", + "description": "Arn of the Flow Alias" + }, + "FlowArn": { + "type": "string", + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + "description": "Arn representation of the Flow" + }, + "CreatedAt": { + "type": "string", + "description": "Time Stamp.", + "format": "date-time" + }, + "Description": { + "type": "string", + "maxLength": 200, + "minLength": 1, + "description": "Description of the Resource." + }, + "FlowId": { + "type": "string", + "pattern": "^[0-9a-zA-Z]{10}$", + "description": "Identifier for a flow resource." + }, + "Id": { + "type": "string", + "maxLength": 10, + "minLength": 10, + "pattern": "^(\\bTSTALIASID\\b|[0-9a-zA-Z]+)$", + "description": "Id for a Flow Alias generated at the server side." + }, + "Name": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for a resource." + }, + "RoutingConfiguration": { + "type": "array", + "items": { + "$ref": "#/definitions/FlowAliasRoutingConfigurationListItem" + }, + "maxItems": 1, + "minItems": 1, + "description": "Routing configuration for a Flow alias.", + "insertionOrder": true + }, + "UpdatedAt": { + "type": "string", + "description": "Time Stamp.", + "format": "date-time" + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + } + }, + "required": [ + "Name", + "FlowArn", + "RoutingConfiguration" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/FlowId", + "/properties/Id", + "/properties/UpdatedAt" + ], + "createOnlyProperties": [ + "/properties/FlowArn" + ], + "primaryIdentifier": [ + "/properties/Arn", + "/properties/FlowArn" + ], + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateFlowAlias", + "bedrock:GetFlowAlias", + "bedrock:TagResource", + "bedrock:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "bedrock:GetFlowAlias", + "bedrock:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "bedrock:UpdateFlowAlias", + "bedrock:GetFlowAlias", + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteFlowAlias" + ] + }, + "list": { + "permissions": [ + "bedrock:ListFlowAliases" + ], + "handlerSchema": { + "properties": { + "FlowArn": { + "$ref": "resource-schema.json#/properties/FlowArn" + } + }, + "required": [ + "FlowArn" + ] + } + } + }, + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true, + "permissions": [ + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ] + }, + "additionalProperties": false +} diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_FlowVersion.json b/internal/service/cloudformation/schemas/AWS_Bedrock_FlowVersion.json new file mode 100644 index 0000000000..993753c370 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_FlowVersion.json @@ -0,0 +1,786 @@ +{ + "typeName": "AWS::Bedrock::FlowVersion", + "description": "Definition of AWS::Bedrock::FlowVersion Resource Type", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-flows", + "definitions": { + "ConditionFlowNodeConfiguration": { + "type": "object", + "description": "Condition flow node configuration", + "properties": { + "Conditions": { + "type": "array", + "items": { + "$ref": "#/definitions/FlowCondition" + }, + "maxItems": 5, + "minItems": 1, + "description": "List of conditions in a condition node", + "insertionOrder": true + } + }, + "required": [ + "Conditions" + ], + "additionalProperties": false + }, + "FlowCondition": { + "type": "object", + "description": "Condition branch for a condition node", + "properties": { + "Name": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a condition in a flow" + }, + "Expression": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "description": "Expression for a condition in a flow" + } + }, + "required": [ + "Name" + ], + "additionalProperties": false + }, + "FlowConditionalConnectionConfiguration": { + "type": "object", + "description": "Conditional connection configuration", + "properties": { + "Condition": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a condition in a flow" + } + }, + "required": [ + "Condition" + ], + "additionalProperties": false + }, + "FlowConnection": { + "type": "object", + "description": "Flow connection", + "properties": { + "Type": { + "$ref": "#/definitions/FlowConnectionType" + }, + "Name": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,100}$", + "description": "Name of a connection in a flow" + }, + "Source": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node in a flow" + }, + "Target": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node in a flow" + }, + "Configuration": { + "$ref": "#/definitions/FlowConnectionConfiguration" + } + }, + "required": [ + "Name", + "Source", + "Target", + "Type" + ], + "additionalProperties": false + }, + "FlowConnectionConfiguration": { + "description": "Connection configuration", + "oneOf": [ + { + "type": "object", + "title": "Data", + "properties": { + "Data": { + "$ref": "#/definitions/FlowDataConnectionConfiguration" + } + }, + "required": [ + "Data" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Conditional", + "properties": { + "Conditional": { + "$ref": "#/definitions/FlowConditionalConnectionConfiguration" + } + }, + "required": [ + "Conditional" + ], + "additionalProperties": false + } + ] + }, + "FlowConnectionType": { + "type": "string", + "description": "Connection type", + "enum": [ + "Data", + "Conditional" + ] + }, + "FlowDataConnectionConfiguration": { + "type": "object", + "description": "Data connection configuration", + "properties": { + "SourceOutput": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node output in a flow" + }, + "TargetInput": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node input in a flow" + } + }, + "required": [ + "SourceOutput", + "TargetInput" + ], + "additionalProperties": false + }, + "FlowDefinition": { + "type": "object", + "description": "Flow definition", + "properties": { + "Nodes": { + "type": "array", + "items": { + "$ref": "#/definitions/FlowNode" + }, + "maxItems": 20, + "description": "List of nodes in a flow", + "insertionOrder": true + }, + "Connections": { + "type": "array", + "items": { + "$ref": "#/definitions/FlowConnection" + }, + "maxItems": 20, + "description": "List of connections", + "insertionOrder": true + } + }, + "additionalProperties": false + }, + "FlowNode": { + "type": "object", + "description": "Internal mixin for flow node", + "properties": { + "Name": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node in a flow" + }, + "Type": { + "$ref": "#/definitions/FlowNodeType" + }, + "Configuration": { + "$ref": "#/definitions/FlowNodeConfiguration" + }, + "Inputs": { + "type": "array", + "items": { + "$ref": "#/definitions/FlowNodeInput" + }, + "maxItems": 5, + "description": "List of node inputs in a flow", + "insertionOrder": true + }, + "Outputs": { + "type": "array", + "items": { + "$ref": "#/definitions/FlowNodeOutput" + }, + "maxItems": 5, + "description": "List of node outputs in a flow", + "insertionOrder": true + } + }, + "required": [ + "Name", + "Type" + ], + "additionalProperties": false + }, + "FlowNodeConfiguration": { + "description": "Node configuration in a flow", + "oneOf": [ + { + "type": "object", + "title": "Input", + "properties": { + "Input": { + "$ref": "#/definitions/InputFlowNodeConfiguration" + } + }, + "required": [ + "Input" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Output", + "properties": { + "Output": { + "$ref": "#/definitions/OutputFlowNodeConfiguration" + } + }, + "required": [ + "Output" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "KnowledgeBase", + "properties": { + "KnowledgeBase": { + "$ref": "#/definitions/KnowledgeBaseFlowNodeConfiguration" + } + }, + "required": [ + "KnowledgeBase" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Condition", + "properties": { + "Condition": { + "$ref": "#/definitions/ConditionFlowNodeConfiguration" + } + }, + "required": [ + "Condition" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Lex", + "properties": { + "Lex": { + "$ref": "#/definitions/LexFlowNodeConfiguration" + } + }, + "required": [ + "Lex" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Prompt", + "properties": { + "Prompt": { + "$ref": "#/definitions/PromptFlowNodeConfiguration" + } + }, + "required": [ + "Prompt" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "LambdaFunction", + "properties": { + "LambdaFunction": { + "$ref": "#/definitions/LambdaFunctionFlowNodeConfiguration" + } + }, + "required": [ + "LambdaFunction" + ], + "additionalProperties": false + } + ] + }, + "LexFlowNodeConfiguration": { + "type": "object", + "description": "Lex flow node configuration", + "properties": { + "BotAliasArn": { + "type": "string", + "maxLength": 78, + "pattern": "^arn:aws(|-us-gov):lex:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:bot-alias/[0-9a-zA-Z]+/[0-9a-zA-Z]+$", + "description": "ARN of a Lex bot alias" + }, + "LocaleId": { + "type": "string", + "maxLength": 10, + "minLength": 1, + "description": "Lex bot locale id" + } + }, + "required": [ + "BotAliasArn", + "LocaleId" + ], + "additionalProperties": false + }, + "FlowNodeIODataType": { + "type": "string", + "description": "Type of input/output for a node in a flow", + "enum": [ + "String", + "Number", + "Boolean", + "Object", + "Array" + ] + }, + "FlowNodeInput": { + "type": "object", + "description": "Input to a node in a flow", + "properties": { + "Name": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node input in a flow" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + }, + "Expression": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "description": "Expression for a node input in a flow" + } + }, + "required": [ + "Expression", + "Name", + "Type" + ], + "additionalProperties": false + }, + "FlowNodeOutput": { + "type": "object", + "description": "Output of a node in a flow", + "properties": { + "Name": { + "type": "string", + "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + "description": "Name of a node output in a flow" + }, + "Type": { + "$ref": "#/definitions/FlowNodeIODataType" + } + }, + "required": [ + "Name", + "Type" + ], + "additionalProperties": false + }, + "FlowNodeType": { + "type": "string", + "description": "Flow node types", + "enum": [ + "Input", + "Output", + "KnowledgeBase", + "Condition", + "Lex", + "Prompt", + "LambdaFunction" + ] + }, + "FlowStatus": { + "type": "string", + "description": "Schema Type for Flow APIs", + "enum": [ + "Failed", + "Prepared", + "Preparing", + "NotPrepared" + ] + }, + "InputFlowNodeConfiguration": { + "type": "object", + "description": "Input flow node configuration", + "additionalProperties": false + }, + "KnowledgeBaseFlowNodeConfiguration": { + "type": "object", + "description": "Knowledge base flow node configuration", + "properties": { + "KnowledgeBaseId": { + "type": "string", + "maxLength": 10, + "pattern": "^[0-9a-zA-Z]+$", + "description": "Identifier of the KnowledgeBase" + }, + "ModelId": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", + "description": "ARN or name of a Bedrock model." + } + }, + "required": [ + "KnowledgeBaseId" + ], + "additionalProperties": false + }, + "LambdaFunctionFlowNodeConfiguration": { + "type": "object", + "description": "Lambda function flow node configuration", + "properties": { + "LambdaArn": { + "type": "string", + "maxLength": 2048, + "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "description": "ARN of a Lambda." + } + }, + "required": [ + "LambdaArn" + ], + "additionalProperties": false + }, + "OutputFlowNodeConfiguration": { + "type": "object", + "description": "Output flow node configuration", + "additionalProperties": false + }, + "PromptFlowNodeConfiguration": { + "type": "object", + "description": "Prompt flow node configuration", + "properties": { + "SourceConfiguration": { + "$ref": "#/definitions/PromptFlowNodeSourceConfiguration" + } + }, + "required": [ + "SourceConfiguration" + ], + "additionalProperties": false + }, + "PromptFlowNodeInlineConfiguration": { + "type": "object", + "description": "Inline prompt configuration for prompt node", + "properties": { + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "ModelId": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "description": "ARN or name of a Bedrock model." + }, + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + } + }, + "required": [ + "ModelId", + "TemplateConfiguration", + "TemplateType" + ], + "additionalProperties": false + }, + "PromptFlowNodeResourceConfiguration": { + "type": "object", + "description": "Resource prompt configuration for prompt node", + "properties": { + "PromptArn": { + "type": "string", + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}(?::[0-9]{1,5})?)$", + "description": "ARN of a prompt resource possibly with a version" + } + }, + "required": [ + "PromptArn" + ], + "additionalProperties": false + }, + "PromptFlowNodeSourceConfiguration": { + "description": "Prompt source configuration for prompt node", + "oneOf": [ + { + "type": "object", + "title": "Resource", + "properties": { + "Resource": { + "$ref": "#/definitions/PromptFlowNodeResourceConfiguration" + } + }, + "required": [ + "Resource" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Inline", + "properties": { + "Inline": { + "$ref": "#/definitions/PromptFlowNodeInlineConfiguration" + } + }, + "required": [ + "Inline" + ], + "additionalProperties": false + } + ] + }, + "PromptInferenceConfiguration": { + "description": "Model inference configuration", + "oneOf": [ + { + "type": "object", + "title": "Text", + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + } + ] + }, + "PromptInputVariable": { + "type": "object", + "description": "Input variable", + "properties": { + "Name": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for an input variable" + } + }, + "additionalProperties": false + }, + "PromptModelInferenceConfiguration": { + "type": "object", + "description": "Prompt model inference configuration", + "properties": { + "Temperature": { + "type": "number", + "maximum": 1, + "minimum": 0, + "description": "Controls randomness, higher values increase diversity" + }, + "TopP": { + "type": "number", + "maximum": 1, + "minimum": 0, + "description": "Cumulative probability cutoff for token selection" + }, + "TopK": { + "type": "number", + "maximum": 500, + "minimum": 0, + "description": "Sample from the k most likely next tokens" + }, + "MaxTokens": { + "type": "number", + "maximum": 4096, + "minimum": 0, + "description": "Maximum length of output" + }, + "StopSequences": { + "type": "array", + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "description": "List of stop sequences", + "insertionOrder": true + } + }, + "additionalProperties": false + }, + "PromptTemplateConfiguration": { + "description": "Prompt template configuration", + "oneOf": [ + { + "type": "object", + "title": "Text", + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + } + ] + }, + "PromptTemplateType": { + "type": "string", + "description": "Prompt template type", + "enum": [ + "TEXT" + ] + }, + "TextPromptTemplateConfiguration": { + "type": "object", + "description": "Configuration for text prompt template", + "properties": { + "Text": { + "type": "string", + "maxLength": 200000, + "minLength": 1, + "description": "Prompt content for String prompt template" + }, + "InputVariables": { + "type": "array", + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 0, + "description": "List of input variables", + "insertionOrder": true + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + } + }, + "properties": { + "FlowArn": { + "type": "string", + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + "description": "Arn representation of the Flow" + }, + "CreatedAt": { + "type": "string", + "description": "Time Stamp.", + "format": "date-time" + }, + "Definition": { + "$ref": "#/definitions/FlowDefinition" + }, + "Description": { + "type": "string", + "maxLength": 200, + "minLength": 1, + "description": "Description of the flow version" + }, + "ExecutionRoleArn": { + "type": "string", + "maxLength": 2048, + "pattern": "^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/(service-role/)?.+$", + "description": "ARN of a IAM role" + }, + "FlowId": { + "type": "string", + "pattern": "^[0-9a-zA-Z]{10}$", + "description": "Identifier for a Flow" + }, + "Name": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for the flow" + }, + "Status": { + "$ref": "#/definitions/FlowStatus" + }, + "Version": { + "type": "string", + "pattern": "^[0-9]{1,5}$", + "description": "Numerical Version." + } + }, + "required": [ + "FlowArn" + ], + "readOnlyProperties": [ + "/properties/CreatedAt", + "/properties/Definition", + "/properties/ExecutionRoleArn", + "/properties/FlowId", + "/properties/Name", + "/properties/Status", + "/properties/Version" + ], + "createOnlyProperties": [ + "/properties/Description", + "/properties/FlowArn" + ], + "primaryIdentifier": [ + "/properties/FlowArn", + "/properties/Version" + ], + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateFlowVersion", + "bedrock:GetFlowVersion" + ] + }, + "read": { + "permissions": [ + "bedrock:GetFlowVersion" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteFlowVersion", + "bedrock:GetFlowVersion" + ] + }, + "list": { + "permissions": [ + "bedrock:ListFlowVersions" + ], + "handlerSchema": { + "properties": { + "FlowArn": { + "$ref": "resource-schema.json#/properties/FlowArn" + } + }, + "required": [ + "FlowArn" + ] + } + }, + "update": { + "permissions": [ + "noservice:NoAction" + ] + } + }, + "tagging": { + "taggable": false + }, + "additionalProperties": false +} diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_Prompt.json b/internal/service/cloudformation/schemas/AWS_Bedrock_Prompt.json new file mode 100644 index 0000000000..dbdd42a3ba --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_Prompt.json @@ -0,0 +1,346 @@ +{ + "typeName": "AWS::Bedrock::Prompt", + "description": "Definition of AWS::Bedrock::Prompt Resource Type", + "definitions": { + "PromptTemplateType": { + "type": "string", + "description": "Prompt template type", + "enum": [ + "TEXT" + ] + }, + "PromptVariant": { + "type": "object", + "description": "Prompt variant", + "properties": { + "Name": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for a variant." + }, + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "ModelId": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "description": "ARN or name of a Bedrock model." + }, + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + } + }, + "required": [ + "Name", + "TemplateType" + ], + "additionalProperties": false + }, + "TextPromptTemplateConfiguration": { + "type": "object", + "description": "Configuration for text prompt template", + "properties": { + "Text": { + "type": "string", + "maxLength": 200000, + "minLength": 1, + "description": "Prompt content for String prompt template" + }, + "TextS3Location": { + "$ref": "#/definitions/TextS3Location" + }, + "InputVariables": { + "type": "array", + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 0, + "description": "List of input variables", + "insertionOrder": true + } + }, + "required": [], + "additionalProperties": false + }, + "PromptTemplateConfiguration": { + "description": "Prompt template configuration", + "oneOf": [ + { + "type": "object", + "title": "Text", + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + } + ] + }, + "TextS3Location": { + "type": "object", + "description": "The identifier for the S3 resource.", + "properties": { + "Bucket": { + "type": "string", + "maxLength": 63, + "minLength": 3, + "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "description": "A bucket in S3" + }, + "Key": { + "type": "string", + "maxLength": 1024, + "minLength": 1, + "description": "A object key in S3" + }, + "Version": { + "type": "string", + "maxLength": 1024, + "minLength": 1, + "description": "The version of the the S3 object to use" + } + }, + "required": [ + "Bucket", + "Key" + ], + "additionalProperties": false + }, + "PromptModelInferenceConfiguration": { + "type": "object", + "description": "Prompt model inference configuration", + "properties": { + "Temperature": { + "type": "number", + "maximum": 1, + "minimum": 0, + "description": "Controls randomness, higher values increase diversity" + }, + "TopP": { + "type": "number", + "maximum": 1, + "minimum": 0, + "description": "Cumulative probability cutoff for token selection" + }, + "TopK": { + "type": "number", + "maximum": 500, + "minimum": 0, + "description": "Sample from the k most likely next tokens" + }, + "MaxTokens": { + "type": "number", + "maximum": 4096, + "minimum": 0, + "description": "Maximum length of output" + }, + "StopSequences": { + "type": "array", + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "description": "List of stop sequences", + "insertionOrder": true + } + }, + "additionalProperties": false + }, + "PromptInferenceConfiguration": { + "description": "Model inference configuration", + "oneOf": [ + { + "type": "object", + "title": "Text", + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + } + ] + }, + "PromptInputVariable": { + "type": "object", + "description": "Input variable", + "properties": { + "Name": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for an input variable" + } + }, + "additionalProperties": false + }, + "TagsMap": { + "type": "object", + "description": "A map of tag keys and values", + "patternProperties": { + "": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "description": "Value of a tag" + } + }, + "additionalProperties": false + } + }, + "properties": { + "Arn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10})$", + "description": "ARN of a prompt resource possibly with a version" + }, + "CreatedAt": { + "type": "string", + "description": "Time Stamp.", + "format": "date-time" + }, + "DefaultVariant": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for a variant." + }, + "Description": { + "type": "string", + "maxLength": 200, + "minLength": 1, + "description": "Name for a prompt resource." + }, + "Id": { + "type": "string", + "pattern": "^[0-9a-zA-Z]{10}$", + "description": "Identifier for a Prompt" + }, + "Name": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for a prompt resource." + }, + "UpdatedAt": { + "type": "string", + "description": "Time Stamp.", + "format": "date-time" + }, + "Variants": { + "type": "array", + "items": { + "$ref": "#/definitions/PromptVariant" + }, + "maxItems": 3, + "minItems": 0, + "description": "List of prompt variants", + "insertionOrder": true + }, + "Tags": { + "$ref": "#/definitions/TagsMap" + }, + "CustomerEncryptionKeyArn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + "description": "A KMS key ARN" + }, + "Version": { + "type": "string", + "maxLength": 5, + "minLength": 5, + "pattern": "^DRAFT$", + "description": "Draft Version." + } + }, + "required": [ + "Name" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/Id", + "/properties/UpdatedAt", + "/properties/Version" + ], + "writeOnlyProperties": [ + "/properties/Variants/*/TemplateConfiguration/Text/TextS3Location" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "handlers": { + "create": { + "permissions": [ + "bedrock:CreatePrompt", + "bedrock:GetPrompt", + "s3:GetObject", + "s3:GetObjectVersion", + "bedrock:TagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "read": { + "permissions": [ + "bedrock:GetPrompt", + "bedrock:ListTagsForResource", + "kms:Decrypt" + ] + }, + "update": { + "permissions": [ + "bedrock:UpdatePrompt", + "bedrock:GetPrompt", + "s3:GetObject", + "s3:GetObjectVersion", + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource", + "kms:GenerateDataKey", + "kms:Decrypt" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeletePrompt", + "bedrock:GetPrompt" + ] + }, + "list": { + "permissions": [ + "bedrock:ListPrompts" + ] + } + }, + "tagging": { + "cloudFormationSystemTags": false, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true, + "permissions": [ + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ] + }, + "additionalProperties": false +} diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_PromptVersion.json b/internal/service/cloudformation/schemas/AWS_Bedrock_PromptVersion.json new file mode 100644 index 0000000000..b2f2c7b300 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_PromptVersion.json @@ -0,0 +1,288 @@ +{ + "typeName": "AWS::Bedrock::PromptVersion", + "description": "Definition of AWS::Bedrock::PromptVersion Resource Type", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-prompts", + "definitions": { + "PromptTemplateType": { + "type": "string", + "description": "Prompt template type", + "enum": [ + "TEXT" + ] + }, + "PromptVariant": { + "type": "object", + "description": "Prompt variant", + "properties": { + "Name": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for a variant." + }, + "TemplateType": { + "$ref": "#/definitions/PromptTemplateType" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/PromptTemplateConfiguration" + }, + "ModelId": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + "description": "ARN or name of a Bedrock model." + }, + "InferenceConfiguration": { + "$ref": "#/definitions/PromptInferenceConfiguration" + } + }, + "required": [ + "Name", + "TemplateType" + ], + "additionalProperties": false + }, + "TextPromptTemplateConfiguration": { + "type": "object", + "description": "Configuration for text prompt template", + "properties": { + "Text": { + "type": "string", + "maxLength": 200000, + "minLength": 1, + "description": "Prompt content for String prompt template" + }, + "InputVariables": { + "type": "array", + "items": { + "$ref": "#/definitions/PromptInputVariable" + }, + "maxItems": 5, + "minItems": 1, + "description": "List of input variables", + "insertionOrder": true + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + }, + "PromptTemplateConfiguration": { + "description": "Prompt template configuration", + "oneOf": [ + { + "type": "object", + "title": "Text", + "properties": { + "Text": { + "$ref": "#/definitions/TextPromptTemplateConfiguration" + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + } + ] + }, + "PromptModelInferenceConfiguration": { + "type": "object", + "description": "Prompt model inference configuration", + "properties": { + "Temperature": { + "type": "number", + "maximum": 1, + "minimum": 0, + "description": "Controls randomness, higher values increase diversity" + }, + "TopP": { + "type": "number", + "maximum": 1, + "minimum": 0, + "description": "Cumulative probability cutoff for token selection" + }, + "TopK": { + "type": "number", + "maximum": 500, + "minimum": 0, + "description": "Sample from the k most likely next tokens" + }, + "MaxTokens": { + "type": "number", + "maximum": 4096, + "minimum": 0, + "description": "Maximum length of output" + }, + "StopSequences": { + "type": "array", + "items": { + "type": "string" + }, + "maxItems": 4, + "minItems": 0, + "description": "List of stop sequences", + "insertionOrder": true + } + }, + "additionalProperties": false + }, + "PromptInferenceConfiguration": { + "description": "Model inference configuration", + "oneOf": [ + { + "type": "object", + "title": "Text", + "properties": { + "Text": { + "$ref": "#/definitions/PromptModelInferenceConfiguration" + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + } + ] + }, + "PromptInputVariable": { + "type": "object", + "description": "Input variable", + "properties": { + "Name": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for an input variable" + } + }, + "additionalProperties": false + } + }, + "properties": { + "PromptArn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10})$", + "description": "ARN of a prompt resource possibly with a version" + }, + "Arn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}:[0-9]{1,20})$", + "description": "ARN of a prompt version resource" + }, + "CreatedAt": { + "type": "string", + "description": "Time Stamp.", + "format": "date-time" + }, + "PromptId": { + "type": "string", + "pattern": "^[0-9a-zA-Z]{10}$", + "description": "Identifier for a Prompt" + }, + "UpdatedAt": { + "type": "string", + "description": "Time Stamp.", + "format": "date-time" + }, + "Version": { + "type": "string", + "maxLength": 5, + "minLength": 1, + "pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + "description": "Version." + }, + "Variants": { + "type": "array", + "items": { + "$ref": "#/definitions/PromptVariant" + }, + "maxItems": 3, + "minItems": 1, + "description": "List of prompt variants", + "insertionOrder": true + }, + "DefaultVariant": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for a variant." + }, + "Description": { + "type": "string", + "maxLength": 200, + "minLength": 1, + "description": "Description for a prompt version resource." + }, + "Name": { + "type": "string", + "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + "description": "Name for a prompt resource." + } + }, + "required": [ + "PromptArn" + ], + "readOnlyProperties": [ + "/properties/Arn", + "/properties/CreatedAt", + "/properties/PromptId", + "/properties/UpdatedAt", + "/properties/Version", + "/properties/Name", + "/properties/DefaultVariant", + "/properties/Variants" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "createOnlyProperties": [ + "/properties/PromptArn", + "/properties/Description" + ], + "handlers": { + "create": { + "permissions": [ + "bedrock:CreatePromptVersion", + "bedrock:GetPrompt" + ] + }, + "read": { + "permissions": [ + "bedrock:GetPrompt" + ] + }, + "update": { + "permissions": [ + "noservice:NoAction" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeletePrompt", + "bedrock:GetPrompt" + ] + }, + "list": { + "permissions": [ + "bedrock:ListPrompts" + ], + "handlerSchema": { + "properties": { + "PromptArn": { + "$ref": "resource-schema.json#/properties/PromptArn" + } + }, + "required": [ + "PromptArn" + ] + } + } + }, + "tagging": { + "taggable": false + }, + "additionalProperties": false +} diff --git a/internal/service/cloudformation/schemas/AWS_Glue_Trigger.json b/internal/service/cloudformation/schemas/AWS_Glue_Trigger.json new file mode 100644 index 0000000000..9306370b3a --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Glue_Trigger.json @@ -0,0 +1,215 @@ +{ + "typeName": "AWS::Glue::Trigger", + "description": "Resource Type definition for AWS::Glue::Trigger", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-glue.git", + "additionalProperties": false, + "properties": { + "Type": { + "type": "string", + "description": "The type of trigger that this is." + }, + "StartOnCreation": { + "type": "boolean", + "description": "Set to true to start SCHEDULED and CONDITIONAL triggers when created. True is not supported for ON_DEMAND triggers." + }, + "Description": { + "type": "string", + "description": "A description of this trigger." + }, + "Actions": { + "type": "array", + "description": "The actions initiated by this trigger.", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/Action" + } + }, + "EventBatchingCondition": { + "$ref": "#/definitions/EventBatchingCondition", + "description": "Batch condition that must be met (specified number of events received or batch time window expired) before EventBridge event trigger fires." + }, + "WorkflowName": { + "type": "string", + "description": "The name of the workflow associated with the trigger." + }, + "Schedule": { + "type": "string", + "description": "A cron expression used to specify the schedule." + }, + "Tags": { + "type": "object", + "description": "The tags to use with this trigger." + }, + "Name": { + "type": "string", + "description": "The name of the trigger." + }, + "Predicate": { + "$ref": "#/definitions/Predicate", + "description": "The predicate of this trigger, which defines when it will fire." + } + }, + "definitions": { + "Condition": { + "type": "object", + "description": "Defines a condition under which a trigger fires.", + "additionalProperties": false, + "properties": { + "JobName": { + "type": "string", + "description": "The name of the job whose JobRuns this condition applies to, and on which this trigger waits." + }, + "CrawlerName": { + "type": "string", + "description": "The name of the crawler to which this condition applies." + }, + "State": { + "type": "string", + "description": "The condition state. Currently, the values supported are SUCCEEDED, STOPPED, TIMEOUT, and FAILED." + }, + "CrawlState": { + "type": "string", + "description": "The state of the crawler to which this condition applies." + }, + "LogicalOperator": { + "type": "string", + "description": "A logical operator." + } + } + }, + "NotificationProperty": { + "type": "object", + "description": "Specifies configuration properties of a job run notification.", + "additionalProperties": false, + "properties": { + "NotifyDelayAfter": { + "type": "integer", + "description": "After a job run starts, the number of minutes to wait before sending a job run delay notification" + } + } + }, + "Action": { + "type": "object", + "description": "The actions initiated by this trigger.", + "additionalProperties": false, + "properties": { + "NotificationProperty": { + "$ref": "#/definitions/NotificationProperty", + "description": "Specifies configuration properties of a job run notification." + }, + "CrawlerName": { + "type": "string", + "description": "The name of the crawler to be used with this action." + }, + "Timeout": { + "type": "integer", + "description": "The JobRun timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. The default is 2,880 minutes (48 hours). This overrides the timeout value set in the parent job." + }, + "JobName": { + "type": "string", + "description": "The name of a job to be executed." + }, + "Arguments": { + "type": "object", + "description": "The job arguments used when this trigger fires. For this job run, they replace the default arguments set in the job definition itself." + }, + "SecurityConfiguration": { + "type": "string", + "description": "The name of the SecurityConfiguration structure to be used with this action." + } + } + }, + "EventBatchingCondition": { + "type": "object", + "description": "Batch condition that must be met (specified number of events received or batch time window expired) before EventBridge event trigger fires.", + "additionalProperties": false, + "properties": { + "BatchSize": { + "type": "integer", + "description": "Number of events that must be received from Amazon EventBridge before EventBridge event trigger fires." + }, + "BatchWindow": { + "type": "integer", + "description": "Window of time in seconds after which EventBridge event trigger fires. Window starts when first event is received." + } + }, + "required": [ + "BatchSize" + ] + }, + "Predicate": { + "type": "object", + "description": "The predicate of this trigger, which defines when it will fire.", + "additionalProperties": false, + "properties": { + "Logical": { + "type": "string", + "description": "An optional field if only one condition is listed. If multiple conditions are listed, then this field is required." + }, + "Conditions": { + "type": "array", + "description": "A list of the conditions that determine when the trigger will fire.", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/Condition" + } + } + } + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags" + }, + "required": [ + "Type", + "Actions" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/WorkflowName", + "/properties/Type" + ], + "writeOnlyProperties": [ + "/properties/StartOnCreation" + ], + "primaryIdentifier": [ + "/properties/Name" + ], + "handlers": { + "create": { + "permissions": [ + "glue:CreateTrigger", + "glue:GetTrigger", + "glue:TagResource" + ] + }, + "read": { + "permissions": [ + "glue:GetTrigger", + "glue:GetTags" + ] + }, + "update": { + "permissions": [ + "glue:UpdateTrigger", + "glue:UntagResource", + "glue:TagResource" + ] + }, + "delete": { + "permissions": [ + "glue:DeleteTrigger", + "glue:GetTrigger" + ] + }, + "list": { + "permissions": [ + "glue:ListTriggers" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_SecretsManager_ResourcePolicy.json b/internal/service/cloudformation/schemas/AWS_SecretsManager_ResourcePolicy.json new file mode 100644 index 0000000000..0f92d8d892 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_SecretsManager_ResourcePolicy.json @@ -0,0 +1,78 @@ +{ + "typeName": "AWS::SecretsManager::ResourcePolicy", + "description": "Resource Type definition for AWS::SecretsManager::ResourcePolicy", + "additionalProperties": false, + "properties": { + "Id": { + "type": "string", + "description": "The Arn of the secret." + }, + "SecretId": { + "type": "string", + "minLength": 1, + "maxLength": 2048, + "description": "The ARN or name of the secret to attach the resource-based policy." + }, + "ResourcePolicy": { + "type": [ + "string", + "object" + ], + "description": "A JSON-formatted string for an AWS resource-based policy." + }, + "BlockPublicPolicy": { + "type": "boolean", + "description": "Specifies whether to block resource-based policies that allow broad access to the secret." + } + }, + "tagging": { + "taggable": false + }, + "required": [ + "ResourcePolicy", + "SecretId" + ], + "createOnlyProperties": [ + "/properties/SecretId" + ], + "writeOnlyProperties": [ + "/properties/BlockPublicPolicy" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "readOnlyProperties": [ + "/properties/Id" + ], + "handlers": { + "create": { + "permissions": [ + "secretsmanager:PutResourcePolicy", + "secretsmanager:GetResourcePolicy" + ] + }, + "read": { + "permissions": [ + "secretsmanager:GetResourcePolicy" + ] + }, + "update": { + "permissions": [ + "secretsmanager:PutResourcePolicy", + "secretsmanager:GetResourcePolicy" + ] + }, + "delete": { + "permissions": [ + "secretsmanager:DeleteResourcePolicy", + "secretsmanager:GetResourcePolicy" + ] + }, + "list": { + "permissions": [ + "secretsmanager:GetResourcePolicy", + "secretsmanager:ListSecrets" + ] + } + } +} From 197d27b0dd7f24d2f8f42f22ff75e90b0ee64326 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 25 Jul 2024 15:07:34 -0400 Subject: [PATCH 3/6] 07/24/2024 CloudFormation schemas in us-east-1; Generate Terraform resource schemas. --- .../scaling_policy_resource_gen.go | 138 +-- .../aws/bedrock/flow_alias_resource_gen.go | 290 +++++ .../bedrock/flow_alias_resource_gen_test.go | 25 + .../aws/bedrock/flow_version_resource_gen.go | 1060 +++++++++++++++++ .../bedrock/flow_version_resource_gen_test.go | 25 + .../bedrock/knowledge_base_resource_gen.go | 320 ++++- internal/aws/bedrock/prompt_resource_gen.go | 671 +++++++++++ .../aws/bedrock/prompt_resource_gen_test.go | 25 + .../bedrock/prompt_version_resource_gen.go | 469 ++++++++ .../prompt_version_resource_gen_test.go | 25 + .../dms/replication_config_resource_gen.go | 37 +- .../replication_config_resource_gen_test.go | 27 +- .../aws/ec2/eip_association_resource_gen.go | 26 +- internal/aws/ec2/instance_resource_gen.go | 2 + .../aws/ec2/launch_template_resource_gen.go | 52 +- ...twork_interface_attachment_resource_gen.go | 32 +- ...pository_creation_template_resource_gen.go | 22 + internal/aws/ecr/repository_resource_gen.go | 4 +- internal/aws/eks/cluster_resource_gen.go | 45 + .../id_mapping_workflow_resource_gen.go | 4 +- internal/aws/fms/policy_resource_gen.go | 4 +- .../cross_account_attachment_resource_gen.go | 21 +- internal/aws/glue/trigger_resource_gen.go | 490 ++++++++ .../aws/glue/trigger_resource_gen_test.go | 25 + internal/aws/lightsail/alarm_resource_gen.go | 4 +- .../aws/lightsail/certificate_resource_gen.go | 2 +- .../mediaconnect/flow_output_resource_gen.go | 26 + .../mediapackagev2/channel_resource_gen.go | 25 + .../origin_endpoint_resource_gen.go | 55 + internal/aws/rds/db_cluster_resource_gen.go | 8 +- internal/aws/rds/db_instance_resource_gen.go | 14 +- .../resource_policy_resource_gen.go | 132 ++ .../resource_policy_resource_gen_test.go | 25 + .../user_settings_resource_gen.go | 24 + internal/provider/all_schemas.hcl | 4 +- 35 files changed, 3922 insertions(+), 236 deletions(-) create mode 100644 internal/aws/bedrock/flow_alias_resource_gen.go create mode 100644 internal/aws/bedrock/flow_alias_resource_gen_test.go create mode 100644 internal/aws/bedrock/flow_version_resource_gen.go create mode 100644 internal/aws/bedrock/flow_version_resource_gen_test.go create mode 100644 internal/aws/bedrock/prompt_resource_gen.go create mode 100644 internal/aws/bedrock/prompt_resource_gen_test.go create mode 100644 internal/aws/bedrock/prompt_version_resource_gen.go create mode 100644 internal/aws/bedrock/prompt_version_resource_gen_test.go create mode 100644 internal/aws/glue/trigger_resource_gen.go create mode 100644 internal/aws/glue/trigger_resource_gen_test.go create mode 100644 internal/aws/secretsmanager/resource_policy_resource_gen.go create mode 100644 internal/aws/secretsmanager/resource_policy_resource_gen_test.go diff --git a/internal/aws/applicationautoscaling/scaling_policy_resource_gen.go b/internal/aws/applicationautoscaling/scaling_policy_resource_gen.go index 9ab790ca9f..9c8236a933 100644 --- a/internal/aws/applicationautoscaling/scaling_policy_resource_gen.go +++ b/internal/aws/applicationautoscaling/scaling_policy_resource_gen.go @@ -34,11 +34,11 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "ARN is a read only property for the resource.", + // "description": "", // "type": "string" // } "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "ARN is a read only property for the resource.", + Description: "", Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -48,11 +48,11 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The name of the scaling policy.\n\nUpdates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing AWS::ApplicationAutoScaling::ScalingPolicy resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name.", + // "description": "The name of the scaling policy.\n Updates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name.", // "type": "string" // } "policy_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the scaling policy.\n\nUpdates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing AWS::ApplicationAutoScaling::ScalingPolicy resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name.", + Description: "The name of the scaling policy.\n Updates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name.", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), @@ -62,22 +62,22 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The scaling policy type.\n\nThe following policy types are supported:\n\nTargetTrackingScaling Not supported for Amazon EMR\n\nStepScaling Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune.", + // "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.", // "type": "string" // } "policy_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The scaling policy type.\n\nThe following policy types are supported:\n\nTargetTrackingScaling Not supported for Amazon EMR\n\nStepScaling Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune.", + 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.", Required: true, }, /*END ATTRIBUTE*/ // Property: ResourceId // CloudFormation resource type schema: // // { - // "description": "The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.", + // "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``.", // "type": "string" // } "resource_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.", + 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``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -89,11 +89,11 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The scalable dimension. This string consists of the service namespace, resource type, and scaling property.", + // "description": "The scalable dimension. This string consists of the service namespace, resource type, and scaling property.\n + ``ecs:service:DesiredCount`` - The task count of an ECS service.\n + ``elasticmapreduce:instancegroup:InstanceCount`` - The instance count of an EMR Instance Group.\n + ``ec2:spot-fleet-request:TargetCapacity`` - The target capacity of a Spot Fleet.\n + ``appstream:fleet:DesiredCapacity`` - The capacity of an AppStream 2.0 fleet.\n + ``dynamodb:table:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB table.\n + ``dynamodb:table:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB table.\n + ``dynamodb:index:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB global secondary index.\n + ``dynamodb:index:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB global secondary index.\n + ``rds:cluster:ReadReplicaCount`` - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.\n + ``sagemaker:variant:DesiredInstanceCount`` - The number of EC2 instances for a SageMaker model endpoint variant.\n + ``custom-resource:ResourceType:Property`` - The scalable dimension for a custom resource provided by your own application or service.\n + ``comprehend:document-classifier-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend document classification endpoint.\n + ``comprehend:entity-recognizer-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend entity recognizer endpoint.\n + ``lambda:function:ProvisionedConcurrency`` - The provisioned concurrency for a Lambda function.\n + ``cassandra:table:ReadCapacityUnits`` - The provisioned read capacity for an Amazon Keyspaces table.\n + ``cassandra:table:WriteCapacityUnits`` - The provisioned write capacity for an Amazon Keyspaces table.\n + ``kafka:broker-storage:VolumeSize`` - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster.\n + ``elasticache:replication-group:NodeGroups`` - The number of node groups for an Amazon ElastiCache replication group.\n + ``elasticache:replication-group:Replicas`` - The number of replicas per node group for an Amazon ElastiCache replication group.\n + ``neptune:cluster:ReadReplicaCount`` - The count of read replicas in an Amazon Neptune DB cluster.\n + ``sagemaker:variant:DesiredProvisionedConcurrency`` - The provisioned concurrency for a SageMaker serverless endpoint.\n + ``sagemaker:inference-component:DesiredCopyCount`` - The number of copies across an endpoint for a SageMaker inference component.\n + ``workspaces:workspacespool:DesiredUserSessions`` - The number of user sessions for the WorkSpaces in the pool.", // "type": "string" // } "scalable_dimension": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The scalable dimension. This string consists of the service namespace, resource type, and scaling property.", + Description: "The scalable dimension. This string consists of the service namespace, resource type, and scaling property.\n + ``ecs:service:DesiredCount`` - The task count of an ECS service.\n + ``elasticmapreduce:instancegroup:InstanceCount`` - The instance count of an EMR Instance Group.\n + ``ec2:spot-fleet-request:TargetCapacity`` - The target capacity of a Spot Fleet.\n + ``appstream:fleet:DesiredCapacity`` - The capacity of an AppStream 2.0 fleet.\n + ``dynamodb:table:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB table.\n + ``dynamodb:table:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB table.\n + ``dynamodb:index:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB global secondary index.\n + ``dynamodb:index:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB global secondary index.\n + ``rds:cluster:ReadReplicaCount`` - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.\n + ``sagemaker:variant:DesiredInstanceCount`` - The number of EC2 instances for a SageMaker model endpoint variant.\n + ``custom-resource:ResourceType:Property`` - The scalable dimension for a custom resource provided by your own application or service.\n + ``comprehend:document-classifier-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend document classification endpoint.\n + ``comprehend:entity-recognizer-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend entity recognizer endpoint.\n + ``lambda:function:ProvisionedConcurrency`` - The provisioned concurrency for a Lambda function.\n + ``cassandra:table:ReadCapacityUnits`` - The provisioned read capacity for an Amazon Keyspaces table.\n + ``cassandra:table:WriteCapacityUnits`` - The provisioned write capacity for an Amazon Keyspaces table.\n + ``kafka:broker-storage:VolumeSize`` - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster.\n + ``elasticache:replication-group:NodeGroups`` - The number of node groups for an Amazon ElastiCache replication group.\n + ``elasticache:replication-group:Replicas`` - The number of replicas per node group for an Amazon ElastiCache replication group.\n + ``neptune:cluster:ReadReplicaCount`` - The count of read replicas in an Amazon Neptune DB cluster.\n + ``sagemaker:variant:DesiredProvisionedConcurrency`` - The provisioned concurrency for a SageMaker serverless endpoint.\n + ``sagemaker:inference-component:DesiredCopyCount`` - The number of copies across an endpoint for a SageMaker inference component.\n + ``workspaces:workspacespool:DesiredUserSessions`` - The number of user sessions for the WorkSpaces in the pool.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -105,11 +105,11 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the AWS::ApplicationAutoScaling::ScalableTarget resource.", + // "description": "The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the ``AWS::ApplicationAutoScaling::ScalableTarget`` resource.\n You must specify either the ``ScalingTargetId`` property, or the ``ResourceId``, ``ScalableDimension``, and ``ServiceNamespace`` properties, but not both.", // "type": "string" // } "scaling_target_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the AWS::ApplicationAutoScaling::ScalableTarget resource.", + Description: "The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the ``AWS::ApplicationAutoScaling::ScalableTarget`` resource.\n You must specify either the ``ScalingTargetId`` property, or the ``ResourceId``, ``ScalableDimension``, and ``ServiceNamespace`` properties, but not both.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -122,11 +122,11 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The namespace of the AWS service that provides the resource, or a custom-resource.", + // "description": "The namespace of the AWS service that provides the resource, or a ``custom-resource``.", // "type": "string" // } "service_namespace": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The namespace of the AWS service that provides the resource, or a custom-resource.", + Description: "The namespace of the AWS service that provides the resource, or a ``custom-resource``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -142,38 +142,38 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // "description": "A step scaling policy.", // "properties": { // "AdjustmentType": { - // "description": "Specifies how the ScalingAdjustment value in a StepAdjustment is interpreted.", + // "description": "Specifies whether the ``ScalingAdjustment`` value in the ``StepAdjustment`` property is an absolute number or a percentage of the current capacity.", // "type": "string" // }, // "Cooldown": { - // "description": "The amount of time, in seconds, to wait for a previous scaling activity to take effect.", + // "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" // }, // "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", + // "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" // }, // "MinAdjustmentMagnitude": { - // "description": "The minimum value to scale by when the adjustment type is PercentChangeInCapacity.", + // "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" // }, // "StepAdjustments": { - // "description": "A set of adjustments that enable you to scale based on the size of the alarm breach.", + // "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, // "items": { // "additionalProperties": false, - // "description": "Represents a step adjustment for a StepScalingPolicyConfiguration. Describes an adjustment based on the difference between the value of the aggregated CloudWatch metric and the breach threshold that you've defined for the alarm.", + // "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": { // "MetricIntervalLowerBound": { - // "description": "The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity.", + // "description": "The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity.\n You must specify at least one upper or lower bound.", // "type": "number" // }, // "MetricIntervalUpperBound": { - // "description": "The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.", + // "description": "The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.\n You must specify at least one upper or lower bound.", // "type": "number" // }, // "ScalingAdjustment": { - // "description": "The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. For exact capacity, you must specify a positive value.", + // "description": "The amount by which to scale. The adjustment is based on the value that you specified in the ``AdjustmentType`` property (either an absolute number or a percentage). A positive value adds to the current capacity and a negative number subtracts from the current capacity.", // "type": "integer" // } // }, @@ -192,7 +192,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: AdjustmentType "adjustment_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies how the ScalingAdjustment value in a StepAdjustment is interpreted.", + Description: "Specifies whether the ``ScalingAdjustment`` value in the ``StepAdjustment`` property is an absolute number or a percentage of the current capacity.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -201,7 +201,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Cooldown "cooldown": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The amount of time, in seconds, to wait for a previous scaling activity to take effect.", + 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*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -210,7 +210,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: MetricAggregationType "metric_aggregation_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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", + 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``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -219,7 +219,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: MinAdjustmentMagnitude "min_adjustment_magnitude": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The minimum value to scale by when the adjustment type is PercentChangeInCapacity.", + 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.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -232,7 +232,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: MetricIntervalLowerBound "metric_interval_lower_bound": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity.", + Description: "The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity.\n You must specify at least one upper or lower bound.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ @@ -241,7 +241,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: MetricIntervalUpperBound "metric_interval_upper_bound": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.", + Description: "The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.\n You must specify at least one upper or lower bound.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ @@ -250,12 +250,12 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: ScalingAdjustment "scaling_adjustment": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. For exact capacity, you must specify a positive value.", + Description: "The amount by which to scale. The adjustment is based on the value that you specified in the ``AdjustmentType`` property (either an absolute number or a percentage). A positive value adds to the current capacity and a negative number subtracts from the current capacity.", Required: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "A set of adjustments that enable you to scale based on the size of the alarm breach.", + 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.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ @@ -282,11 +282,11 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // "description": "A customized metric. You can specify either a predefined metric or a customized metric.", // "properties": { // "Dimensions": { - // "description": "The dimensions of the metric.", + // "description": "The dimensions of the metric. \n Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Describes the dimension names and values associated with a metric.", + // "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.", // "properties": { // "Name": { // "description": "The name of the dimension.", @@ -307,7 +307,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // "uniqueItems": false // }, // "MetricName": { - // "description": "The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the Metric object that is returned by a call to ListMetrics.", + // "description": "The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that's returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html).", // "type": "string" // }, // "Metrics": { @@ -315,14 +315,14 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "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.", + // "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.", // "properties": { // "Expression": { - // "description": "The math expression to perform on the returned data, if this object is performing a math expression.", + // "description": "The math expression to perform on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. \n Conditional: Within each ``TargetTrackingMetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both.", // "type": "string" // }, // "Id": { - // "description": "A short name that identifies the object's results in the response.", + // "description": "A short name that identifies the object's results in the response. This name must be unique among all ``MetricDataQuery`` objects specified for a single scaling policy. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscores. The first character must be a lowercase letter.", // "type": "string" // }, // "Label": { @@ -331,18 +331,18 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // }, // "MetricStat": { // "additionalProperties": false, - // "description": "Information about the metric data to return.", + // "description": "Information about the metric data to return.\n Conditional: Within each ``MetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both.", // "properties": { // "Metric": { // "additionalProperties": false, - // "description": "The CloudWatch metric to return, including the metric name, namespace, and dimensions. ", + // "description": "The CloudWatch metric to return, including the metric name, namespace, and dimensions. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html).", // "properties": { // "Dimensions": { - // "description": "The dimensions for the metric.", + // "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, // "items": { // "additionalProperties": false, - // "description": "Describes the dimension of a metric.", + // "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.", // "properties": { // "Name": { // "description": "The name of the dimension.", @@ -363,25 +363,25 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // }, // "Namespace": { - // "description": "The namespace of the metric.", + // "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" // } // }, // "type": "object" // }, // "Stat": { - // "description": "The statistic to return. It can include any CloudWatch statistic or extended statistic.", + // "description": "The statistic to return. It can include any CloudWatch statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *Amazon CloudWatch User Guide*.\n The most commonly used metric for scaling is ``Average``.", // "type": "string" // }, // "Unit": { - // "description": "The unit to use for the returned data points.", + // "description": "The unit to use for the returned data points. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*.", // "type": "string" // } // }, // "type": "object" // }, // "ReturnData": { - // "description": "Indicates whether to return the timestamps and raw data values of this metric.", + // "description": "Indicates whether to return the timestamps and raw data values of this metric. \n If you use any math expressions, specify ``true`` for this value for only the final math expression that the metric specification is based on. You must specify ``false`` for ``ReturnData`` for all the other metrics and expressions used in the metric specification.\n If you are only retrieving metrics and not performing any math expressions, do not specify anything for ``ReturnData``. This sets it to its default (``true``).", // "type": "boolean" // } // }, @@ -399,14 +399,14 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // }, // "Unit": { - // "description": "The unit of the metric. For a complete list of the units that CloudWatch supports, see the MetricDatum data type in the Amazon CloudWatch API Reference.", + // "description": "The unit of the metric. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*.", // "type": "string" // } // }, // "type": "object" // }, // "DisableScaleIn": { - // "description": "Indicates whether scale in by the target tracking scaling policy is disabled. If the value is true, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is false.", + // "description": "Indicates whether scale in by the target tracking scaling policy is disabled. If the value is ``true``, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is ``false``.", // "type": "boolean" // }, // "PredefinedMetricSpecification": { @@ -414,11 +414,11 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // "description": "A predefined metric. You can specify either a predefined metric or a customized metric.", // "properties": { // "PredefinedMetricType": { - // "description": "The metric type. The ALBRequestCountPerTarget metric type applies only to Spot Fleets and ECS services.", + // "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.", + // "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/\u003cload-balancer-name\u003e/\u003cload-balancer-id\u003e is the final portion of the load balancer ARN\n + targetgroup/\u003ctarget-group-name\u003e/\u003ctarget-group-id\u003e 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" // } // }, @@ -428,11 +428,11 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // "type": "object" // }, // "ScaleInCooldown": { - // "description": "The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start.", + // "description": "The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*.", // "type": "integer" // }, // "ScaleOutCooldown": { - // "description": "The amount of time, in seconds, to wait for a previous scale-out activity to take effect.", + // "description": "The amount of time, in seconds, to wait for a previous scale-out activity to take effect. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*.", // "type": "integer" // }, // "TargetValue": { @@ -466,7 +466,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The dimensions of the metric.", + Description: "The dimensions of the metric. \n Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy.", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -476,7 +476,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: MetricName "metric_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the Metric object that is returned by a call to ListMetrics.", + Description: "The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that's returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html).", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -489,7 +489,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Expression "expression": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The math expression to perform on the returned data, if this object is performing a math expression.", + Description: "The math expression to perform on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. \n Conditional: Within each ``TargetTrackingMetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -498,7 +498,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Id "id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A short name that identifies the object's results in the response.", + Description: "A short name that identifies the object's results in the response. This name must be unique among all ``MetricDataQuery`` objects specified for a single scaling policy. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscores. The first character must be a lowercase letter.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -544,7 +544,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The dimensions for the metric.", + 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.", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -563,7 +563,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Namespace "namespace": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The namespace of the metric.", + 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*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -571,7 +571,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The CloudWatch metric to return, including the metric name, namespace, and dimensions. ", + Description: "The CloudWatch metric to return, including the metric name, namespace, and dimensions. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html).", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -580,7 +580,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Stat "stat": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The statistic to return. It can include any CloudWatch statistic or extended statistic.", + Description: "The statistic to return. It can include any CloudWatch statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *Amazon CloudWatch User Guide*.\n The most commonly used metric for scaling is ``Average``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -589,7 +589,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Unit "unit": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The unit to use for the returned data points.", + Description: "The unit to use for the returned data points. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -597,7 +597,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Information about the metric data to return.", + Description: "Information about the metric data to return.\n Conditional: Within each ``MetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -606,7 +606,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: ReturnData "return_data": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether to return the timestamps and raw data values of this metric.", + Description: "Indicates whether to return the timestamps and raw data values of this metric. \n If you use any math expressions, specify ``true`` for this value for only the final math expression that the metric specification is based on. You must specify ``false`` for ``ReturnData`` for all the other metrics and expressions used in the metric specification.\n If you are only retrieving metrics and not performing any math expressions, do not specify anything for ``ReturnData``. This sets it to its default (``true``).", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -643,7 +643,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Unit "unit": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The unit of the metric. For a complete list of the units that CloudWatch supports, see the MetricDatum data type in the Amazon CloudWatch API Reference.", + Description: "The unit of the metric. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -660,7 +660,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: DisableScaleIn "disable_scale_in": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether scale in by the target tracking scaling policy is disabled. If the value is true, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is false.", + Description: "Indicates whether scale in by the target tracking scaling policy is disabled. If the value is ``true``, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is ``false``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -672,12 +672,12 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: PredefinedMetricType "predefined_metric_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The metric type. The ALBRequestCountPerTarget metric type applies only to Spot Fleets and ECS services.", + Description: "The metric type. The ``ALBRequestCountPerTarget`` metric type applies only to Spot fleet requests and ECS services.", Required: true, }, /*END ATTRIBUTE*/ // Property: ResourceLabel "resource_label": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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.", + 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.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -695,7 +695,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: ScaleInCooldown "scale_in_cooldown": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start.", + Description: "The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -704,7 +704,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: ScaleOutCooldown "scale_out_cooldown": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The amount of time, in seconds, to wait for a previous scale-out activity to take effect.", + Description: "The amount of time, in seconds, to wait for a previous scale-out activity to take effect. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -736,7 +736,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { } schema := schema.Schema{ - Description: "Resource Type definition for AWS::ApplicationAutoScaling::ScalingPolicy", + Description: "The ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource defines a scaling policy that Application Auto Scaling uses to adjust the capacity of a scalable target. \n For more information, see [Target tracking scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) and [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*.", Version: 1, Attributes: attributes, } diff --git a/internal/aws/bedrock/flow_alias_resource_gen.go b/internal/aws/bedrock/flow_alias_resource_gen.go new file mode 100644 index 0000000000..bacdb13cbf --- /dev/null +++ b/internal/aws/bedrock/flow_alias_resource_gen.go @@ -0,0 +1,290 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package bedrock + +import ( + "context" + "regexp" + + "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/mapplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_bedrock_flow_alias", flowAliasResource) +} + +// flowAliasResource returns the Terraform awscc_bedrock_flow_alias resource. +// This Terraform resource corresponds to the CloudFormation AWS::Bedrock::FlowAlias resource. +func flowAliasResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "description": "Arn of the Flow Alias", + // "maxLength": 2048, + // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}/alias/[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Arn of the Flow Alias", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "Description of the Resource.", + // "maxLength": 200, + // "minLength": 1, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Description of the Resource.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 200), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: FlowArn + // CloudFormation resource type schema: + // + // { + // "description": "Arn representation of the Flow", + // "maxLength": 2048, + // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "flow_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Arn representation of the Flow", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(2048), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: FlowId + // CloudFormation resource type schema: + // + // { + // "description": "Identifier for a flow resource.", + // "pattern": "^[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "flow_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Identifier for a flow resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "description": "Id for a Flow Alias generated at the server side.", + // "maxLength": 10, + // "minLength": 10, + // "pattern": "^(\\bTSTALIASID\\b|[0-9a-zA-Z]+)$", + // "type": "string" + // } + "flow_alias_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Id for a Flow Alias generated at the server side.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "Name for a resource.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a resource.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^([0-9a-zA-Z][_-]?){1,100}$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: RoutingConfiguration + // CloudFormation resource type schema: + // + // { + // "description": "Routing configuration for a Flow alias.", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Details about the routing configuration for a Flow alias.", + // "properties": { + // "FlowVersion": { + // "description": "Version.", + // "maxLength": 1, + // "minLength": 1, + // "pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 1, + // "minItems": 1, + // "type": "array" + // } + "routing_configuration": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FlowVersion + "flow_version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Version.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 1), + stringvalidator.RegexMatches(regexp.MustCompile("^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Routing configuration for a Flow alias.", + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 1), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "A map of tag keys and values", + // "patternProperties": { + // "": { + // "description": "Value of a tag", + // "maxLength": 256, + // "minLength": 0, + // "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + // "type": "string" + // } + // }, + // "type": "object" + // } + "tags": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A map of tag keys and values", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UpdatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "updated_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Definition of AWS::Bedrock::FlowAlias Resource Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Bedrock::FlowAlias").WithTerraformTypeName("awscc_bedrock_flow_alias") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "created_at": "CreatedAt", + "description": "Description", + "flow_alias_id": "Id", + "flow_arn": "FlowArn", + "flow_id": "FlowId", + "flow_version": "FlowVersion", + "name": "Name", + "routing_configuration": "RoutingConfiguration", + "tags": "Tags", + "updated_at": "UpdatedAt", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/bedrock/flow_alias_resource_gen_test.go b/internal/aws/bedrock/flow_alias_resource_gen_test.go new file mode 100644 index 0000000000..bada809721 --- /dev/null +++ b/internal/aws/bedrock/flow_alias_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package bedrock_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSBedrockFlowAlias_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::FlowAlias", "awscc_bedrock_flow_alias", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/bedrock/flow_version_resource_gen.go b/internal/aws/bedrock/flow_version_resource_gen.go new file mode 100644 index 0000000000..4ac7628db5 --- /dev/null +++ b/internal/aws/bedrock/flow_version_resource_gen.go @@ -0,0 +1,1060 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package bedrock + +import ( + "context" + "regexp" + + "github.com/hashicorp/terraform-plugin-framework-jsontypes/jsontypes" + "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_bedrock_flow_version", flowVersionResource) +} + +// flowVersionResource returns the Terraform awscc_bedrock_flow_version resource. +// This Terraform resource corresponds to the CloudFormation AWS::Bedrock::FlowVersion resource. +func flowVersionResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Definition + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Flow definition", + // "properties": { + // "Connections": { + // "description": "List of connections", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Flow connection", + // "properties": { + // "Configuration": { + // "description": "Connection configuration", + // "properties": { + // "Conditional": { + // "additionalProperties": false, + // "description": "Conditional connection configuration", + // "properties": { + // "Condition": { + // "description": "Name of a condition in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // } + // }, + // "required": [ + // "Condition" + // ], + // "type": "object" + // }, + // "Data": { + // "additionalProperties": false, + // "description": "Data connection configuration", + // "properties": { + // "SourceOutput": { + // "description": "Name of a node output in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // }, + // "TargetInput": { + // "description": "Name of a node input in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // } + // }, + // "required": [ + // "SourceOutput", + // "TargetInput" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "Name": { + // "description": "Name of a connection in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,100}$", + // "type": "string" + // }, + // "Source": { + // "description": "Name of a node in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // }, + // "Target": { + // "description": "Name of a node in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // }, + // "Type": { + // "description": "Connection type", + // "enum": [ + // "Data", + // "Conditional" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "Source", + // "Target", + // "Type" + // ], + // "type": "object" + // }, + // "maxItems": 20, + // "type": "array" + // }, + // "Nodes": { + // "description": "List of nodes in a flow", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Internal mixin for flow node", + // "properties": { + // "Configuration": { + // "description": "Node configuration in a flow", + // "properties": { + // "Condition": { + // "additionalProperties": false, + // "description": "Condition flow node configuration", + // "properties": { + // "Conditions": { + // "description": "List of conditions in a condition node", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Condition branch for a condition node", + // "properties": { + // "Expression": { + // "description": "Expression for a condition in a flow", + // "maxLength": 64, + // "minLength": 1, + // "type": "string" + // }, + // "Name": { + // "description": "Name of a condition in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "maxItems": 5, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "Conditions" + // ], + // "type": "object" + // }, + // "Input": { + // "additionalProperties": false, + // "description": "Input flow node configuration", + // "type": "object" + // }, + // "KnowledgeBase": { + // "additionalProperties": false, + // "description": "Knowledge base flow node configuration", + // "properties": { + // "KnowledgeBaseId": { + // "description": "Identifier of the KnowledgeBase", + // "maxLength": 10, + // "pattern": "^[0-9a-zA-Z]+$", + // "type": "string" + // }, + // "ModelId": { + // "description": "ARN or name of a Bedrock model.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", + // "type": "string" + // } + // }, + // "required": [ + // "KnowledgeBaseId" + // ], + // "type": "object" + // }, + // "LambdaFunction": { + // "additionalProperties": false, + // "description": "Lambda function flow node configuration", + // "properties": { + // "LambdaArn": { + // "description": "ARN of a Lambda.", + // "maxLength": 2048, + // "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + // "type": "string" + // } + // }, + // "required": [ + // "LambdaArn" + // ], + // "type": "object" + // }, + // "Lex": { + // "additionalProperties": false, + // "description": "Lex flow node configuration", + // "properties": { + // "BotAliasArn": { + // "description": "ARN of a Lex bot alias", + // "maxLength": 78, + // "pattern": "^arn:aws(|-us-gov):lex:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:bot-alias/[0-9a-zA-Z]+/[0-9a-zA-Z]+$", + // "type": "string" + // }, + // "LocaleId": { + // "description": "Lex bot locale id", + // "maxLength": 10, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "BotAliasArn", + // "LocaleId" + // ], + // "type": "object" + // }, + // "Output": { + // "additionalProperties": false, + // "description": "Output flow node configuration", + // "type": "object" + // }, + // "Prompt": { + // "additionalProperties": false, + // "description": "Prompt flow node configuration", + // "properties": { + // "SourceConfiguration": { + // "description": "Prompt source configuration for prompt node", + // "properties": { + // "Inline": { + // "additionalProperties": false, + // "description": "Inline prompt configuration for prompt node", + // "properties": { + // "InferenceConfiguration": { + // "description": "Model inference configuration", + // "properties": { + // "Text": { + // "additionalProperties": false, + // "description": "Prompt model inference configuration", + // "properties": { + // "MaxTokens": { + // "description": "Maximum length of output", + // "maximum": 4096, + // "minimum": 0, + // "type": "number" + // }, + // "StopSequences": { + // "description": "List of stop sequences", + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "maxItems": 4, + // "minItems": 0, + // "type": "array" + // }, + // "Temperature": { + // "description": "Controls randomness, higher values increase diversity", + // "maximum": 1, + // "minimum": 0, + // "type": "number" + // }, + // "TopK": { + // "description": "Sample from the k most likely next tokens", + // "maximum": 500, + // "minimum": 0, + // "type": "number" + // }, + // "TopP": { + // "description": "Cumulative probability cutoff for token selection", + // "maximum": 1, + // "minimum": 0, + // "type": "number" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "ModelId": { + // "description": "ARN or name of a Bedrock model.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + // "type": "string" + // }, + // "TemplateConfiguration": { + // "description": "Prompt template configuration", + // "properties": { + // "Text": { + // "additionalProperties": false, + // "description": "Configuration for text prompt template", + // "properties": { + // "InputVariables": { + // "description": "List of input variables", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Input variable", + // "properties": { + // "Name": { + // "description": "Name for an input variable", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 5, + // "minItems": 0, + // "type": "array" + // }, + // "Text": { + // "description": "Prompt content for String prompt template", + // "maxLength": 200000, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Text" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "TemplateType": { + // "description": "Prompt template type", + // "enum": [ + // "TEXT" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "ModelId", + // "TemplateConfiguration", + // "TemplateType" + // ], + // "type": "object" + // }, + // "Resource": { + // "additionalProperties": false, + // "description": "Resource prompt configuration for prompt node", + // "properties": { + // "PromptArn": { + // "description": "ARN of a prompt resource possibly with a version", + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}(?::[0-9]{1,5})?)$", + // "type": "string" + // } + // }, + // "required": [ + // "PromptArn" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "SourceConfiguration" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "Inputs": { + // "description": "List of node inputs in a flow", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Input to a node in a flow", + // "properties": { + // "Expression": { + // "description": "Expression for a node input in a flow", + // "maxLength": 64, + // "minLength": 1, + // "type": "string" + // }, + // "Name": { + // "description": "Name of a node input in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // }, + // "Type": { + // "description": "Type of input/output for a node in a flow", + // "enum": [ + // "String", + // "Number", + // "Boolean", + // "Object", + // "Array" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Expression", + // "Name", + // "Type" + // ], + // "type": "object" + // }, + // "maxItems": 5, + // "type": "array" + // }, + // "Name": { + // "description": "Name of a node in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // }, + // "Outputs": { + // "description": "List of node outputs in a flow", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Output of a node in a flow", + // "properties": { + // "Name": { + // "description": "Name of a node output in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // }, + // "Type": { + // "description": "Type of input/output for a node in a flow", + // "enum": [ + // "String", + // "Number", + // "Boolean", + // "Object", + // "Array" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "Type" + // ], + // "type": "object" + // }, + // "maxItems": 5, + // "type": "array" + // }, + // "Type": { + // "description": "Flow node types", + // "enum": [ + // "Input", + // "Output", + // "KnowledgeBase", + // "Condition", + // "Lex", + // "Prompt", + // "LambdaFunction" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "Type" + // ], + // "type": "object" + // }, + // "maxItems": 20, + // "type": "array" + // } + // }, + // "type": "object" + // } + "definition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Connections + "connections": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Configuration + "configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Conditional + "conditional": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Condition + "condition": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a condition in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Conditional connection configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Data + "data": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SourceOutput + "source_output": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node output in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TargetInput + "target_input": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node input in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Data connection configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Connection configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a connection in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Source + "source": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Target + "target": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Connection type", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of connections", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Nodes + "nodes": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Configuration + "configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Condition + "condition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Conditions + "conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Expression + "expression": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Expression for a condition in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a condition in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of conditions in a condition node", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Condition flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Input + "input": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "Input flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KnowledgeBase + "knowledge_base": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: KnowledgeBaseId + "knowledge_base_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Identifier of the KnowledgeBase", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModelId + "model_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN or name of a Bedrock model.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Knowledge base flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LambdaFunction + "lambda_function": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: LambdaArn + "lambda_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a Lambda.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Lambda function flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Lex + "lex": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BotAliasArn + "bot_alias_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a Lex bot alias", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LocaleId + "locale_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Lex bot locale id", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Lex flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Output + "output": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "Output flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Prompt + "prompt": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SourceConfiguration + "source_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Inline + "inline": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InferenceConfiguration + "inference_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaxTokens + "max_tokens": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Maximum length of output", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: StopSequences + "stop_sequences": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "List of stop sequences", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Temperature + "temperature": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Controls randomness, higher values increase diversity", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TopK + "top_k": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Sample from the k most likely next tokens", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TopP + "top_p": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Cumulative probability cutoff for token selection", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt model inference configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Model inference configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModelId + "model_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN or name of a Bedrock model.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TemplateConfiguration + "template_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InputVariables + "input_variables": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for an input variable", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of input variables", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Text + "text": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Prompt content for String prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configuration for text prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt template configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TemplateType + "template_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Prompt template type", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Inline prompt configuration for prompt node", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Resource + "resource": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PromptArn + "prompt_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a prompt resource possibly with a version", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Resource prompt configuration for prompt node", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt source configuration for prompt node", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Node configuration in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Inputs + "inputs": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Expression + "expression": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Expression for a node input in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node input in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Type of input/output for a node in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of node inputs in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Outputs + "outputs": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node output in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Type of input/output for a node in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of node outputs in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Flow node types", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of nodes in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Flow definition", + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "Description of the flow version", + // "maxLength": 200, + // "minLength": 1, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Description of the flow version", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 200), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ExecutionRoleArn + // CloudFormation resource type schema: + // + // { + // "description": "ARN of a IAM role", + // "maxLength": 2048, + // "pattern": "^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/(service-role/)?.+$", + // "type": "string" + // } + "execution_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a IAM role", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: FlowArn + // CloudFormation resource type schema: + // + // { + // "description": "Arn representation of the Flow", + // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "flow_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Arn representation of the Flow", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: FlowId + // CloudFormation resource type schema: + // + // { + // "description": "Identifier for a Flow", + // "pattern": "^[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "flow_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Identifier for a Flow", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "Name for the flow", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for the flow", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Status + // CloudFormation resource type schema: + // + // { + // "description": "Schema Type for Flow APIs", + // "enum": [ + // "Failed", + // "Prepared", + // "Preparing", + // "NotPrepared" + // ], + // "type": "string" + // } + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Schema Type for Flow APIs", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Version + // CloudFormation resource type schema: + // + // { + // "description": "Numerical Version.", + // "pattern": "^[0-9]{1,5}$", + // "type": "string" + // } + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Numerical Version.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Definition of AWS::Bedrock::FlowVersion Resource Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Bedrock::FlowVersion").WithTerraformTypeName("awscc_bedrock_flow_version") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "bot_alias_arn": "BotAliasArn", + "condition": "Condition", + "conditional": "Conditional", + "conditions": "Conditions", + "configuration": "Configuration", + "connections": "Connections", + "created_at": "CreatedAt", + "data": "Data", + "definition": "Definition", + "description": "Description", + "execution_role_arn": "ExecutionRoleArn", + "expression": "Expression", + "flow_arn": "FlowArn", + "flow_id": "FlowId", + "inference_configuration": "InferenceConfiguration", + "inline": "Inline", + "input": "Input", + "input_variables": "InputVariables", + "inputs": "Inputs", + "knowledge_base": "KnowledgeBase", + "knowledge_base_id": "KnowledgeBaseId", + "lambda_arn": "LambdaArn", + "lambda_function": "LambdaFunction", + "lex": "Lex", + "locale_id": "LocaleId", + "max_tokens": "MaxTokens", + "model_id": "ModelId", + "name": "Name", + "nodes": "Nodes", + "output": "Output", + "outputs": "Outputs", + "prompt": "Prompt", + "prompt_arn": "PromptArn", + "resource": "Resource", + "source": "Source", + "source_configuration": "SourceConfiguration", + "source_output": "SourceOutput", + "status": "Status", + "stop_sequences": "StopSequences", + "target": "Target", + "target_input": "TargetInput", + "temperature": "Temperature", + "template_configuration": "TemplateConfiguration", + "template_type": "TemplateType", + "text": "Text", + "top_k": "TopK", + "top_p": "TopP", + "type": "Type", + "version": "Version", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/bedrock/flow_version_resource_gen_test.go b/internal/aws/bedrock/flow_version_resource_gen_test.go new file mode 100644 index 0000000000..dc45f4948c --- /dev/null +++ b/internal/aws/bedrock/flow_version_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package bedrock_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSBedrockFlowVersion_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::FlowVersion", "awscc_bedrock_flow_version", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/bedrock/knowledge_base_resource_gen.go b/internal/aws/bedrock/knowledge_base_resource_gen.go index 451dd41c9c..ca9f883865 100644 --- a/internal/aws/bedrock/knowledge_base_resource_gen.go +++ b/internal/aws/bedrock/knowledge_base_resource_gen.go @@ -9,9 +9,11 @@ import ( "context" "regexp" + "github.com/hashicorp/terraform-plugin-framework-validators/int64validator" "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" "github.com/hashicorp/terraform-plugin-framework/resource" "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/int64planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/mapplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" @@ -127,8 +129,28 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { // "description": "The ARN of the model used to create vector embeddings for the knowledge base.", // "maxLength": 2048, // "minLength": 20, - // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + // "pattern": "^(arn:aws(-[^:]+)?:[a-z0-9-]+:[a-z0-9-]{1,20}:[0-9]{0,12}:[a-zA-Z0-9-:/._+]+)$", // "type": "string" + // }, + // "EmbeddingModelConfiguration": { + // "additionalProperties": false, + // "description": "The embeddings model configuration details for the vector model used in Knowledge Base.", + // "properties": { + // "BedrockEmbeddingModelConfiguration": { + // "additionalProperties": false, + // "description": "The vector configuration details for the Bedrock embeddings model.", + // "properties": { + // "Dimensions": { + // "description": "The dimensions details for the vector configuration used on the Bedrock embeddings model.", + // "maximum": 4096, + // "minimum": 0, + // "type": "integer" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" // } // }, // "required": [ @@ -164,9 +186,43 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(20, 2048), - stringvalidator.RegexMatches(regexp.MustCompile("^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^(arn:aws(-[^:]+)?:[a-z0-9-]+:[a-z0-9-]{1,20}:[0-9]{0,12}:[a-zA-Z0-9-:/._+]+)$"), ""), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ + // Property: EmbeddingModelConfiguration + "embedding_model_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BedrockEmbeddingModelConfiguration + "bedrock_embedding_model_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Dimensions + "dimensions": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The dimensions details for the vector configuration used on the Bedrock embeddings model.", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(0, 4096), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The vector configuration details for the Bedrock embeddings model.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The embeddings model configuration details for the vector model used in Knowledge Base.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "Contains details about the model used to create vector embeddings for the knowledge base.", Required: true, @@ -268,9 +324,94 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { // "required": [ // "RdsConfiguration" // ] + // }, + // { + // "required": [ + // "MongoDbAtlasConfiguration" + // ] // } // ], // "properties": { + // "MongoDbAtlasConfiguration": { + // "additionalProperties": false, + // "description": "Contains the storage configuration of the knowledge base in MongoDb Atlas Cloud.", + // "properties": { + // "CollectionName": { + // "description": "Name of the collection within MongoDB Atlas.", + // "maxLength": 63, + // "pattern": "^.*$", + // "type": "string" + // }, + // "CredentialsSecretArn": { + // "description": "The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon Mongo database.", + // "pattern": "^arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9!/_+=.@-]{1,512}$", + // "type": "string" + // }, + // "DatabaseName": { + // "description": "Name of the database within MongoDB Atlas.", + // "maxLength": 63, + // "pattern": "^.*$", + // "type": "string" + // }, + // "Endpoint": { + // "description": "MongoDB Atlas endpoint.", + // "maxLength": 2048, + // "pattern": "^[a-zA-Z0-9_-]+\\.[a-zA-Z0-9_-]+\\.mongodb\\.net$", + // "type": "string" + // }, + // "EndpointServiceName": { + // "description": "MongoDB Atlas endpoint service name.", + // "maxLength": 255, + // "pattern": "^(?:arn:aws(?:-us-gov|-cn|-iso|-iso-[a-z])*:.+:.*:\\d+:.+/.+$|[a-zA-Z0-9*]+[a-zA-Z0-9._-]*)$", + // "type": "string" + // }, + // "FieldMapping": { + // "additionalProperties": false, + // "description": "Contains the names of the fields to which to map information about the vector store.", + // "properties": { + // "MetadataField": { + // "description": "The name of the field in which Amazon Bedrock stores metadata about the vector store.", + // "maxLength": 2048, + // "pattern": "^.*$", + // "type": "string" + // }, + // "TextField": { + // "description": "The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose.", + // "maxLength": 2048, + // "pattern": "^.*$", + // "type": "string" + // }, + // "VectorField": { + // "description": "The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources.", + // "maxLength": 2048, + // "pattern": "^.*$", + // "type": "string" + // } + // }, + // "required": [ + // "VectorField", + // "MetadataField", + // "TextField" + // ], + // "type": "object" + // }, + // "VectorIndexName": { + // "description": "Name of a MongoDB Atlas index.", + // "maxLength": 2048, + // "pattern": "^.*$", + // "type": "string" + // } + // }, + // "required": [ + // "Endpoint", + // "CredentialsSecretArn", + // "DatabaseName", + // "CollectionName", + // "VectorIndexName", + // "FieldMapping" + // ], + // "type": "object" + // }, // "OpensearchServerlessConfiguration": { // "additionalProperties": false, // "description": "Contains the storage configuration of the knowledge base in Amazon OpenSearch Service.", @@ -455,7 +596,8 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { // "enum": [ // "OPENSEARCH_SERVERLESS", // "PINECONE", - // "RDS" + // "RDS", + // "MONGO_DB_ATLAS" // ], // "type": "string" // } @@ -467,6 +609,108 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { // } "storage_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MongoDbAtlasConfiguration + "mongo_db_atlas_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CollectionName + "collection_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of the collection within MongoDB Atlas.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(63), + stringvalidator.RegexMatches(regexp.MustCompile("^.*$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: CredentialsSecretArn + "credentials_secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon Mongo database.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9!/_+=.@-]{1,512}$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: DatabaseName + "database_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of the database within MongoDB Atlas.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(63), + stringvalidator.RegexMatches(regexp.MustCompile("^.*$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Endpoint + "endpoint": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "MongoDB Atlas endpoint.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(2048), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9_-]+\\.[a-zA-Z0-9_-]+\\.mongodb\\.net$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: EndpointServiceName + "endpoint_service_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "MongoDB Atlas endpoint service name.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(255), + stringvalidator.RegexMatches(regexp.MustCompile("^(?:arn:aws(?:-us-gov|-cn|-iso|-iso-[a-z])*:.+:.*:\\d+:.+/.+$|[a-zA-Z0-9*]+[a-zA-Z0-9._-]*)$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: FieldMapping + "field_mapping": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MetadataField + "metadata_field": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the field in which Amazon Bedrock stores metadata about the vector store.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(2048), + stringvalidator.RegexMatches(regexp.MustCompile("^.*$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: TextField + "text_field": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(2048), + stringvalidator.RegexMatches(regexp.MustCompile("^.*$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: VectorField + "vector_field": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(2048), + stringvalidator.RegexMatches(regexp.MustCompile("^.*$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Contains the names of the fields to which to map information about the vector store.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: VectorIndexName + "vector_index_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a MongoDB Atlas index.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(2048), + stringvalidator.RegexMatches(regexp.MustCompile("^.*$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Contains the storage configuration of the knowledge base in MongoDb Atlas Cloud.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: OpensearchServerlessConfiguration "opensearch_serverless_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -693,6 +937,7 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { "OPENSEARCH_SERVERLESS", "PINECONE", "RDS", + "MONGO_DB_ATLAS", ), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ @@ -766,37 +1011,44 @@ func knowledgeBaseResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::Bedrock::KnowledgeBase").WithTerraformTypeName("awscc_bedrock_knowledge_base") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "collection_arn": "CollectionArn", - "connection_string": "ConnectionString", - "created_at": "CreatedAt", - "credentials_secret_arn": "CredentialsSecretArn", - "database_name": "DatabaseName", - "description": "Description", - "embedding_model_arn": "EmbeddingModelArn", - "failure_reasons": "FailureReasons", - "field_mapping": "FieldMapping", - "knowledge_base_arn": "KnowledgeBaseArn", - "knowledge_base_configuration": "KnowledgeBaseConfiguration", - "knowledge_base_id": "KnowledgeBaseId", - "metadata_field": "MetadataField", - "name": "Name", - "namespace": "Namespace", - "opensearch_serverless_configuration": "OpensearchServerlessConfiguration", - "pinecone_configuration": "PineconeConfiguration", - "primary_key_field": "PrimaryKeyField", - "rds_configuration": "RdsConfiguration", - "resource_arn": "ResourceArn", - "role_arn": "RoleArn", - "status": "Status", - "storage_configuration": "StorageConfiguration", - "table_name": "TableName", - "tags": "Tags", - "text_field": "TextField", - "type": "Type", - "updated_at": "UpdatedAt", - "vector_field": "VectorField", - "vector_index_name": "VectorIndexName", - "vector_knowledge_base_configuration": "VectorKnowledgeBaseConfiguration", + "bedrock_embedding_model_configuration": "BedrockEmbeddingModelConfiguration", + "collection_arn": "CollectionArn", + "collection_name": "CollectionName", + "connection_string": "ConnectionString", + "created_at": "CreatedAt", + "credentials_secret_arn": "CredentialsSecretArn", + "database_name": "DatabaseName", + "description": "Description", + "dimensions": "Dimensions", + "embedding_model_arn": "EmbeddingModelArn", + "embedding_model_configuration": "EmbeddingModelConfiguration", + "endpoint": "Endpoint", + "endpoint_service_name": "EndpointServiceName", + "failure_reasons": "FailureReasons", + "field_mapping": "FieldMapping", + "knowledge_base_arn": "KnowledgeBaseArn", + "knowledge_base_configuration": "KnowledgeBaseConfiguration", + "knowledge_base_id": "KnowledgeBaseId", + "metadata_field": "MetadataField", + "mongo_db_atlas_configuration": "MongoDbAtlasConfiguration", + "name": "Name", + "namespace": "Namespace", + "opensearch_serverless_configuration": "OpensearchServerlessConfiguration", + "pinecone_configuration": "PineconeConfiguration", + "primary_key_field": "PrimaryKeyField", + "rds_configuration": "RdsConfiguration", + "resource_arn": "ResourceArn", + "role_arn": "RoleArn", + "status": "Status", + "storage_configuration": "StorageConfiguration", + "table_name": "TableName", + "tags": "Tags", + "text_field": "TextField", + "type": "Type", + "updated_at": "UpdatedAt", + "vector_field": "VectorField", + "vector_index_name": "VectorIndexName", + "vector_knowledge_base_configuration": "VectorKnowledgeBaseConfiguration", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/bedrock/prompt_resource_gen.go b/internal/aws/bedrock/prompt_resource_gen.go new file mode 100644 index 0000000000..88cd88261e --- /dev/null +++ b/internal/aws/bedrock/prompt_resource_gen.go @@ -0,0 +1,671 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package bedrock + +import ( + "context" + "regexp" + + "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework-validators/float64validator" + "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/float64planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/mapplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_bedrock_prompt", promptResource) +} + +// promptResource returns the Terraform awscc_bedrock_prompt resource. +// This Terraform resource corresponds to the CloudFormation AWS::Bedrock::Prompt resource. +func promptResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "description": "ARN of a prompt resource possibly with a version", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10})$", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a prompt resource possibly with a version", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CustomerEncryptionKeyArn + // CloudFormation resource type schema: + // + // { + // "description": "A KMS key ARN", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + // "type": "string" + // } + "customer_encryption_key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A KMS key ARN", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 2048), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DefaultVariant + // CloudFormation resource type schema: + // + // { + // "description": "Name for a variant.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + "default_variant": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a variant.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^([0-9a-zA-Z][_-]?){1,100}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "Name for a prompt resource.", + // "maxLength": 200, + // "minLength": 1, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a prompt resource.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 200), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "description": "Identifier for a Prompt", + // "pattern": "^[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Identifier for a Prompt", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "Name for a prompt resource.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a prompt resource.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^([0-9a-zA-Z][_-]?){1,100}$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "A map of tag keys and values", + // "patternProperties": { + // "": { + // "description": "Value of a tag", + // "maxLength": 256, + // "minLength": 0, + // "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + // "type": "string" + // } + // }, + // "type": "object" + // } + "tags": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A map of tag keys and values", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UpdatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "updated_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Variants + // CloudFormation resource type schema: + // + // { + // "description": "List of prompt variants", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Prompt variant", + // "properties": { + // "InferenceConfiguration": { + // "description": "Model inference configuration", + // "properties": { + // "Text": { + // "additionalProperties": false, + // "description": "Prompt model inference configuration", + // "properties": { + // "MaxTokens": { + // "description": "Maximum length of output", + // "maximum": 4096, + // "minimum": 0, + // "type": "number" + // }, + // "StopSequences": { + // "description": "List of stop sequences", + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "maxItems": 4, + // "minItems": 0, + // "type": "array" + // }, + // "Temperature": { + // "description": "Controls randomness, higher values increase diversity", + // "maximum": 1, + // "minimum": 0, + // "type": "number" + // }, + // "TopK": { + // "description": "Sample from the k most likely next tokens", + // "maximum": 500, + // "minimum": 0, + // "type": "number" + // }, + // "TopP": { + // "description": "Cumulative probability cutoff for token selection", + // "maximum": 1, + // "minimum": 0, + // "type": "number" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "ModelId": { + // "description": "ARN or name of a Bedrock model.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + // "type": "string" + // }, + // "Name": { + // "description": "Name for a variant.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // }, + // "TemplateConfiguration": { + // "description": "Prompt template configuration", + // "properties": { + // "Text": { + // "additionalProperties": false, + // "description": "Configuration for text prompt template", + // "properties": { + // "InputVariables": { + // "description": "List of input variables", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Input variable", + // "properties": { + // "Name": { + // "description": "Name for an input variable", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 5, + // "minItems": 0, + // "type": "array" + // }, + // "Text": { + // "description": "Prompt content for String prompt template", + // "maxLength": 200000, + // "minLength": 1, + // "type": "string" + // }, + // "TextS3Location": { + // "additionalProperties": false, + // "description": "The identifier for the S3 resource.", + // "properties": { + // "Bucket": { + // "description": "A bucket in S3", + // "maxLength": 63, + // "minLength": 3, + // "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + // "type": "string" + // }, + // "Key": { + // "description": "A object key in S3", + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // }, + // "Version": { + // "description": "The version of the the S3 object to use", + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Bucket", + // "Key" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "TemplateType": { + // "description": "Prompt template type", + // "enum": [ + // "TEXT" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "TemplateType" + // ], + // "type": "object" + // }, + // "maxItems": 3, + // "minItems": 0, + // "type": "array" + // } + "variants": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InferenceConfiguration + "inference_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaxTokens + "max_tokens": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Maximum length of output", + Optional: true, + Computed: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(0.000000, 4096.000000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: StopSequences + "stop_sequences": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "List of stop sequences", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(0, 4), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Temperature + "temperature": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Controls randomness, higher values increase diversity", + Optional: true, + Computed: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(0.000000, 1.000000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TopK + "top_k": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Sample from the k most likely next tokens", + Optional: true, + Computed: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(0.000000, 500.000000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TopP + "top_p": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Cumulative probability cutoff for token selection", + Optional: true, + Computed: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(0.000000, 1.000000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt model inference configuration", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Model inference configuration", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ModelId + "model_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN or name of a Bedrock model.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 2048), + stringvalidator.RegexMatches(regexp.MustCompile("^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a variant.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^([0-9a-zA-Z][_-]?){1,100}$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: TemplateConfiguration + "template_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InputVariables + "input_variables": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for an input variable", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^([0-9a-zA-Z][_-]?){1,100}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of input variables", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(0, 5), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Text + "text": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Prompt content for String prompt template", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 200000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TextS3Location + "text_s3_location": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Bucket + "bucket": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A bucket in S3", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(3, 63), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A object key in S3", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 1024), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Version + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The version of the the S3 object to use", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 1024), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The identifier for the S3 resource.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configuration for text prompt template", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt template configuration", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TemplateType + "template_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Prompt template type", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "TEXT", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of prompt variants", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(0, 3), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Version + // CloudFormation resource type schema: + // + // { + // "description": "Draft Version.", + // "maxLength": 5, + // "minLength": 5, + // "pattern": "^DRAFT$", + // "type": "string" + // } + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Draft Version.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Definition of AWS::Bedrock::Prompt Resource Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Bedrock::Prompt").WithTerraformTypeName("awscc_bedrock_prompt") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "bucket": "Bucket", + "created_at": "CreatedAt", + "customer_encryption_key_arn": "CustomerEncryptionKeyArn", + "default_variant": "DefaultVariant", + "description": "Description", + "inference_configuration": "InferenceConfiguration", + "input_variables": "InputVariables", + "key": "Key", + "max_tokens": "MaxTokens", + "model_id": "ModelId", + "name": "Name", + "prompt_id": "Id", + "stop_sequences": "StopSequences", + "tags": "Tags", + "temperature": "Temperature", + "template_configuration": "TemplateConfiguration", + "template_type": "TemplateType", + "text": "Text", + "text_s3_location": "TextS3Location", + "top_k": "TopK", + "top_p": "TopP", + "updated_at": "UpdatedAt", + "variants": "Variants", + "version": "Version", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/Variants/*/TemplateConfiguration/Text/TextS3Location", + }) + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/bedrock/prompt_resource_gen_test.go b/internal/aws/bedrock/prompt_resource_gen_test.go new file mode 100644 index 0000000000..c8b6c3ea3c --- /dev/null +++ b/internal/aws/bedrock/prompt_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package bedrock_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSBedrockPrompt_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::Prompt", "awscc_bedrock_prompt", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/bedrock/prompt_version_resource_gen.go b/internal/aws/bedrock/prompt_version_resource_gen.go new file mode 100644 index 0000000000..e87951cf35 --- /dev/null +++ b/internal/aws/bedrock/prompt_version_resource_gen.go @@ -0,0 +1,469 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package bedrock + +import ( + "context" + "regexp" + + "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_bedrock_prompt_version", promptVersionResource) +} + +// promptVersionResource returns the Terraform awscc_bedrock_prompt_version resource. +// This Terraform resource corresponds to the CloudFormation AWS::Bedrock::PromptVersion resource. +func promptVersionResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "description": "ARN of a prompt version resource", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}:[0-9]{1,20})$", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a prompt version resource", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DefaultVariant + // CloudFormation resource type schema: + // + // { + // "description": "Name for a variant.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + "default_variant": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a variant.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "Description for a prompt version resource.", + // "maxLength": 200, + // "minLength": 1, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Description for a prompt version resource.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 200), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "Name for a prompt resource.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a prompt resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PromptArn + // CloudFormation resource type schema: + // + // { + // "description": "ARN of a prompt resource possibly with a version", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10})$", + // "type": "string" + // } + "prompt_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a prompt resource possibly with a version", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 2048), + stringvalidator.RegexMatches(regexp.MustCompile("^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10})$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PromptId + // CloudFormation resource type schema: + // + // { + // "description": "Identifier for a Prompt", + // "pattern": "^[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Identifier for a Prompt", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UpdatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "updated_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Variants + // CloudFormation resource type schema: + // + // { + // "description": "List of prompt variants", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Prompt variant", + // "properties": { + // "InferenceConfiguration": { + // "description": "Model inference configuration", + // "properties": { + // "Text": { + // "additionalProperties": false, + // "description": "Prompt model inference configuration", + // "properties": { + // "MaxTokens": { + // "description": "Maximum length of output", + // "maximum": 4096, + // "minimum": 0, + // "type": "number" + // }, + // "StopSequences": { + // "description": "List of stop sequences", + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "maxItems": 4, + // "minItems": 0, + // "type": "array" + // }, + // "Temperature": { + // "description": "Controls randomness, higher values increase diversity", + // "maximum": 1, + // "minimum": 0, + // "type": "number" + // }, + // "TopK": { + // "description": "Sample from the k most likely next tokens", + // "maximum": 500, + // "minimum": 0, + // "type": "number" + // }, + // "TopP": { + // "description": "Cumulative probability cutoff for token selection", + // "maximum": 1, + // "minimum": 0, + // "type": "number" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "ModelId": { + // "description": "ARN or name of a Bedrock model.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + // "type": "string" + // }, + // "Name": { + // "description": "Name for a variant.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // }, + // "TemplateConfiguration": { + // "description": "Prompt template configuration", + // "properties": { + // "Text": { + // "additionalProperties": false, + // "description": "Configuration for text prompt template", + // "properties": { + // "InputVariables": { + // "description": "List of input variables", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Input variable", + // "properties": { + // "Name": { + // "description": "Name for an input variable", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 5, + // "minItems": 1, + // "type": "array" + // }, + // "Text": { + // "description": "Prompt content for String prompt template", + // "maxLength": 200000, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Text" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "TemplateType": { + // "description": "Prompt template type", + // "enum": [ + // "TEXT" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "TemplateType" + // ], + // "type": "object" + // }, + // "maxItems": 3, + // "minItems": 1, + // "type": "array" + // } + "variants": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InferenceConfiguration + "inference_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaxTokens + "max_tokens": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Maximum length of output", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: StopSequences + "stop_sequences": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "List of stop sequences", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Temperature + "temperature": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Controls randomness, higher values increase diversity", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TopK + "top_k": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Sample from the k most likely next tokens", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TopP + "top_p": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Cumulative probability cutoff for token selection", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt model inference configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Model inference configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModelId + "model_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN or name of a Bedrock model.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a variant.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TemplateConfiguration + "template_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InputVariables + "input_variables": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for an input variable", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of input variables", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Text + "text": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Prompt content for String prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configuration for text prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt template configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TemplateType + "template_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Prompt template type", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of prompt variants", + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Version + // CloudFormation resource type schema: + // + // { + // "description": "Version.", + // "maxLength": 5, + // "minLength": 1, + // "pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + // "type": "string" + // } + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Version.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Definition of AWS::Bedrock::PromptVersion Resource Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Bedrock::PromptVersion").WithTerraformTypeName("awscc_bedrock_prompt_version") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "created_at": "CreatedAt", + "default_variant": "DefaultVariant", + "description": "Description", + "inference_configuration": "InferenceConfiguration", + "input_variables": "InputVariables", + "max_tokens": "MaxTokens", + "model_id": "ModelId", + "name": "Name", + "prompt_arn": "PromptArn", + "prompt_id": "PromptId", + "stop_sequences": "StopSequences", + "temperature": "Temperature", + "template_configuration": "TemplateConfiguration", + "template_type": "TemplateType", + "text": "Text", + "top_k": "TopK", + "top_p": "TopP", + "updated_at": "UpdatedAt", + "variants": "Variants", + "version": "Version", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/bedrock/prompt_version_resource_gen_test.go b/internal/aws/bedrock/prompt_version_resource_gen_test.go new file mode 100644 index 0000000000..938e9ebfab --- /dev/null +++ b/internal/aws/bedrock/prompt_version_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package bedrock_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSBedrockPromptVersion_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::PromptVersion", "awscc_bedrock_prompt_version", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/dms/replication_config_resource_gen.go b/internal/aws/dms/replication_config_resource_gen.go index 574e267336..3f24a3401a 100644 --- a/internal/aws/dms/replication_config_resource_gen.go +++ b/internal/aws/dms/replication_config_resource_gen.go @@ -16,7 +16,6 @@ import ( "github.com/hashicorp/terraform-plugin-framework/resource/schema/boolplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/int64planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" - "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" "github.com/hashicorp/terraform-plugin-framework/schema/validator" @@ -149,11 +148,7 @@ func replicationConfigResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "Configuration parameters for provisioning a AWS DMS Serverless replication", - Optional: true, - Computed: true, - PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ - objectplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ + Required: true, }, /*END ATTRIBUTE*/ // Property: ReplicationConfigArn // CloudFormation resource type schema: @@ -178,11 +173,7 @@ func replicationConfigResource(ctx context.Context) (resource.Resource, error) { // } "replication_config_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "A unique identifier of replication configuration", - Optional: true, - Computed: true, - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ + Required: true, }, /*END ATTRIBUTE*/ // Property: ReplicationSettings // CloudFormation resource type schema: @@ -214,8 +205,7 @@ func replicationConfigResource(ctx context.Context) (resource.Resource, error) { // } "replication_type": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The type of AWS DMS Serverless replication to provision using this replication configuration", - Optional: true, - Computed: true, + Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.OneOf( "full-load", @@ -223,9 +213,6 @@ func replicationConfigResource(ctx context.Context) (resource.Resource, error) { "cdc", ), }, /*END VALIDATORS*/ - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: ResourceIdentifier // CloudFormation resource type schema: @@ -252,11 +239,7 @@ func replicationConfigResource(ctx context.Context) (resource.Resource, error) { // } "source_endpoint_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The Amazon Resource Name (ARN) of the source endpoint for this AWS DMS Serverless replication configuration", - Optional: true, - Computed: true, - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ + Required: true, }, /*END ATTRIBUTE*/ // Property: SupplementalSettings // CloudFormation resource type schema: @@ -284,11 +267,7 @@ func replicationConfigResource(ctx context.Context) (resource.Resource, error) { "table_mappings": schema.StringAttribute{ /*START ATTRIBUTE*/ CustomType: jsontypes.NormalizedType{}, Description: "JSON table mappings for AWS DMS Serverless replications that are provisioned using this replication configuration", - Optional: true, - Computed: true, - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ + Required: true, }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: @@ -364,11 +343,7 @@ func replicationConfigResource(ctx context.Context) (resource.Resource, error) { // } "target_endpoint_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The Amazon Resource Name (ARN) of the target endpoint for this AWS DMS Serverless replication configuration", - Optional: true, - Computed: true, - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ + Required: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/dms/replication_config_resource_gen_test.go b/internal/aws/dms/replication_config_resource_gen_test.go index 0067df5026..d935653afd 100644 --- a/internal/aws/dms/replication_config_resource_gen_test.go +++ b/internal/aws/dms/replication_config_resource_gen_test.go @@ -6,6 +6,7 @@ package dms_test import ( + "regexp" "testing" "github.com/hashicorp/terraform-plugin-testing/helper/resource" @@ -17,30 +18,8 @@ func TestAccAWSDMSReplicationConfig_basic(t *testing.T) { td.ResourceTest(t, []resource.TestStep{ { - Config: td.EmptyConfig(), - Check: resource.ComposeTestCheckFunc( - td.CheckExistsInAWS(), - ), - }, - { - ResourceName: td.ResourceName, - ImportState: true, - ImportStateVerify: true, - }, - }) -} - -func TestAccAWSDMSReplicationConfig_disappears(t *testing.T) { - td := acctest.NewTestData(t, "AWS::DMS::ReplicationConfig", "awscc_dms_replication_config", "test") - - td.ResourceTest(t, []resource.TestStep{ - { - Config: td.EmptyConfig(), - Check: resource.ComposeTestCheckFunc( - td.CheckExistsInAWS(), - td.DeleteResource(), - ), - ExpectNonEmptyPlan: true, + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), }, }) } diff --git a/internal/aws/ec2/eip_association_resource_gen.go b/internal/aws/ec2/eip_association_resource_gen.go index 7b995f12bf..f6c14265e5 100644 --- a/internal/aws/ec2/eip_association_resource_gen.go +++ b/internal/aws/ec2/eip_association_resource_gen.go @@ -28,11 +28,11 @@ func eIPAssociationResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The allocation ID. This is required for EC2-VPC.", + // "description": "The allocation ID. This is required.", // "type": "string" // } "allocation_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The allocation ID. This is required for EC2-VPC.", + Description: "The allocation ID. This is required.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -44,11 +44,11 @@ func eIPAssociationResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The Elastic IP address to associate with the instance.", + // "description": "", // "type": "string" // } "eip": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Elastic IP address to associate with the instance.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -60,11 +60,11 @@ func eIPAssociationResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Composite ID of non-empty properties, to determine the identification.", + // "description": "", // "type": "string" // } "eip_association_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Composite ID of non-empty properties, to determine the identification.", + Description: "", Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -74,11 +74,11 @@ func eIPAssociationResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The ID of the instance.", + // "description": "The ID of the instance. The instance must have exactly one attached network interface. You can specify either the instance ID or the network interface ID, but not both.", // "type": "string" // } "instance_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the instance.", + Description: "The ID of the instance. The instance must have exactly one attached network interface. You can specify either the instance ID or the network interface ID, but not both.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -90,11 +90,11 @@ func eIPAssociationResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The ID of the network interface.", + // "description": "The ID of the network interface. If the instance has more than one network interface, you must specify a network interface ID.\n You can specify either the instance ID or the network interface ID, but not both.", // "type": "string" // } "network_interface_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the network interface.", + Description: "The ID of the network interface. If the instance has more than one network interface, you must specify a network interface ID.\n You can specify either the instance ID or the network interface ID, but not both.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -106,11 +106,11 @@ func eIPAssociationResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The primary or secondary private IP address to associate with the Elastic IP address.", + // "description": "The primary or secondary private IP address to associate with the Elastic IP address. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address.", // "type": "string" // } "private_ip_address": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The primary or secondary private IP address to associate with the Elastic IP address.", + Description: "The primary or secondary private IP address to associate with the Elastic IP address. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -130,7 +130,7 @@ func eIPAssociationResource(ctx context.Context) (resource.Resource, error) { } schema := schema.Schema{ - Description: "Resource schema for EC2 EIP association.", + Description: "Associates an Elastic IP address with an instance or a network interface. Before you can use an Elastic IP address, you must allocate it to your account. For more information about working with Elastic IP addresses, see [Elastic IP address concepts and rules](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#vpc-eip-overview).\n You must specify ``AllocationId`` and either ``InstanceId``, ``NetworkInterfaceId``, or ``PrivateIpAddress``.", Version: 1, Attributes: attributes, } diff --git a/internal/aws/ec2/instance_resource_gen.go b/internal/aws/ec2/instance_resource_gen.go index 93e39a5535..a57ff357a9 100644 --- a/internal/aws/ec2/instance_resource_gen.go +++ b/internal/aws/ec2/instance_resource_gen.go @@ -806,6 +806,7 @@ func instanceResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), objectplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ + // LaunchTemplate is a write-only property. }, /*END ATTRIBUTE*/ // Property: LicenseSpecifications // CloudFormation resource type schema: @@ -1787,6 +1788,7 @@ func instanceResource(ctx context.Context) (resource.Resource, error) { "/properties/Ipv6AddressCount", "/properties/Ipv6Addresses", "/properties/PropagateTagsToVolumeOnCreation", + "/properties/LaunchTemplate", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/ec2/launch_template_resource_gen.go b/internal/aws/ec2/launch_template_resource_gen.go index 44a900f3ef..1555475dfe 100644 --- a/internal/aws/ec2/launch_template_resource_gen.go +++ b/internal/aws/ec2/launch_template_resource_gen.go @@ -158,7 +158,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // }, // "CpuOptions": { // "additionalProperties": false, - // "description": "The CPU options for the instance. For more information, see [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "The CPU options for the instance. For more information, see [Optimize CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon EC2 User Guide*.", // "properties": { // "AmdSevSnp": { // "description": "Indicates whether to enable the instance for AMD SEV-SNP. AMD SEV-SNP is supported with M6a, R6a, and C6a instance types only. For more information, see [AMD SEV-SNP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sev-snp.html).", @@ -191,7 +191,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "type": "object" // }, // "DisableApiStop": { - // "description": "Indicates whether to enable the instance for stop protection. For more information, see [Stop protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "Indicates whether to enable the instance for stop protection. For more information, see [Enable stop protection for your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-stop-protection.html) in the *Amazon EC2 User Guide*.", // "type": "boolean" // }, // "DisableApiTermination": { @@ -209,7 +209,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "description": "Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances.\n Specifies a specification for an Elastic GPU for an Amazon EC2 launch template.\n ``ElasticGpuSpecification`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", // "properties": { // "Type": { - // "description": "The type of Elastic Graphics accelerator. For more information about the values to specify for ``Type``, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*.", + // "description": "The type of Elastic Graphics accelerator.", // "type": "string" // } // }, @@ -251,7 +251,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // }, // "HibernationOptions": { // "additionalProperties": false, - // "description": "Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your Amazon EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon EC2 User Guide*.", // "properties": { // "Configured": { // "description": "If you set this parameter to ``true``, the instance is enabled for hibernation.\n Default: ``false``", @@ -448,7 +448,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "uniqueItems": false // }, // "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 ``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 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``.", + // "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" // }, // "MemoryGiBPerVCpu": { @@ -557,7 +557,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "type": "object" // }, // "InstanceType": { - // "description": "The instance type. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon Elastic Compute Cloud User Guide*.\n If you specify ``InstanceType``, you can't specify ``InstanceRequirements``.", + // "description": "The instance type. For more information, see [Amazon EC2 instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*.\n If you specify ``InstanceType``, you can't specify ``InstanceRequirements``.", // "type": "string" // }, // "KernelId": { @@ -597,7 +597,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // }, // "MetadataOptions": { // "additionalProperties": false, - // "description": "The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon EC2 User Guide*.", // "properties": { // "HttpEndpoint": { // "description": "Enables or disables the HTTP metadata endpoint on your instances. If the parameter is not specified, the default state is ``enabled``.\n If you specify a value of ``disabled``, you will not be able to access your instance metadata.", @@ -709,7 +709,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "uniqueItems": false // }, // "InterfaceType": { - // "description": "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon Elastic Compute Cloud User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", + // "description": "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon EC2 User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", // "type": "string" // }, // "Ipv4PrefixCount": { @@ -723,7 +723,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "description": "Specifies an IPv4 prefix for a network interface.\n ``Ipv4PrefixSpecification`` is a property of [AWS::EC2::LaunchTemplate NetworkInterface](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html).", // "properties": { // "Ipv4Prefix": { - // "description": "The IPv4 prefix. For information, see [Assigning prefixes to Amazon EC2 network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "The IPv4 prefix. For information, see [Assigning prefixes to network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon EC2 User Guide*.", // "type": "string" // } // }, @@ -885,7 +885,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "type": "object" // }, // "RamDiskId": { - // "description": "The ID of the RAM disk.\n We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "The ID of the RAM disk.\n We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*.", // "type": "string" // }, // "SecurityGroupIds": { @@ -911,7 +911,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "description": "Specifies the tags to apply to a resource when the resource is created for the launch template.\n ``TagSpecification`` is a property type of [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications). [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications) is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", // "properties": { // "ResourceType": { - // "description": "The type of resource to tag.\n Valid Values lists all resource types for Amazon EC2 that can be tagged. When you create a launch template, you can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).", + // "description": "The type of resource to tag. You can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).", // "type": "string" // }, // "Tags": { @@ -945,7 +945,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "uniqueItems": false // }, // "UserData": { - // "description": "The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) (Linux) or [Work with instance user data](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instancedata-add-user-data.html) (Windows) in the *Amazon Elastic Compute Cloud User Guide*.\n If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*.", + // "description": "The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Amazon EC2 instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) in the *Amazon EC2 User Guide*.\n If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*.", // "type": "string" // } // }, @@ -1162,7 +1162,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The CPU options for the instance. For more information, see [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "The CPU options for the instance. For more information, see [Optimize CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon EC2 User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -1191,7 +1191,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: DisableApiStop "disable_api_stop": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether to enable the instance for stop protection. For more information, see [Stop protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "Indicates whether to enable the instance for stop protection. For more information, see [Enable stop protection for your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-stop-protection.html) in the *Amazon EC2 User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -1222,7 +1222,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Type "type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of Elastic Graphics accelerator. For more information about the values to specify for ``Type``, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*.", + Description: "The type of Elastic Graphics accelerator.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -1302,7 +1302,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your Amazon EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon EC2 User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -1631,7 +1631,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: MaxSpotPriceAsPercentageOfOptimalOnDemandPrice "max_spot_price_as_percentage_of_optimal_on_demand_price": schema.Int64Attribute{ /*START ATTRIBUTE*/ - 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 ``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 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``.", + 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``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -1849,7 +1849,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: InstanceType "instance_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The instance type. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon Elastic Compute Cloud User Guide*.\n If you specify ``InstanceType``, you can't specify ``InstanceRequirements``.", + Description: "The instance type. For more information, see [Amazon EC2 instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*.\n If you specify ``InstanceType``, you can't specify ``InstanceRequirements``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -1965,7 +1965,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon EC2 User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -2131,7 +2131,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: InterfaceType "interface_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon Elastic Compute Cloud User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", + Description: "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon EC2 User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -2153,7 +2153,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Ipv4Prefix "ipv_4_prefix": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The IPv4 prefix. For information, see [Assigning prefixes to Amazon EC2 network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "The IPv4 prefix. For information, see [Assigning prefixes to network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon EC2 User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -2457,7 +2457,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: RamDiskId "ram_disk_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the RAM disk.\n We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "The ID of the RAM disk.\n We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -2490,7 +2490,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: ResourceType "resource_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of resource to tag.\n Valid Values lists all resource types for Amazon EC2 that can be tagged. When you create a launch template, you can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).", + Description: "The type of resource to tag. You can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -2531,7 +2531,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: UserData "user_data": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) (Linux) or [Work with instance user data](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instancedata-add-user-data.html) (Windows) in the *Amazon Elastic Compute Cloud User Guide*.\n If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*.", + Description: "The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Amazon EC2 instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) in the *Amazon EC2 User Guide*.\n If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -2583,7 +2583,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "description": "Specifies the tags to apply to the launch template during creation.\n ``LaunchTemplateTagSpecification`` is a property of [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html).", // "properties": { // "ResourceType": { - // "description": "The type of resource. To tag the launch template, ``ResourceType`` must be ``launch-template``.", + // "description": "The type of resource. To tag a launch template, ``ResourceType`` must be ``launch-template``.", // "type": "string" // }, // "Tags": { @@ -2621,7 +2621,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: ResourceType "resource_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of resource. To tag the launch template, ``ResourceType`` must be ``launch-template``.", + Description: "The type of resource. To tag a launch template, ``ResourceType`` must be ``launch-template``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/ec2/network_interface_attachment_resource_gen.go b/internal/aws/ec2/network_interface_attachment_resource_gen.go index a2eda30724..95b7bd9d53 100644 --- a/internal/aws/ec2/network_interface_attachment_resource_gen.go +++ b/internal/aws/ec2/network_interface_attachment_resource_gen.go @@ -31,11 +31,11 @@ func networkInterfaceAttachmentResource(ctx context.Context) (resource.Resource, // CloudFormation resource type schema: // // { - // "description": "The ID of the network interface attachment.", + // "description": "", // "type": "string" // } "attachment_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the network interface attachment.", + Description: "", Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -46,11 +46,11 @@ func networkInterfaceAttachmentResource(ctx context.Context) (resource.Resource, // // { // "default": true, - // "description": "Whether to delete the network interface when the instance terminates. By default, this value is set to true.", + // "description": "Whether to delete the network interface when the instance terminates. By default, this value is set to ``true``.", // "type": "boolean" // } "delete_on_termination": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Whether to delete the network interface when the instance terminates. By default, this value is set to true.", + Description: "Whether to delete the network interface when the instance terminates. By default, this value is set to ``true``.", Optional: true, Computed: true, Default: booldefault.StaticBool(true), @@ -62,11 +62,11 @@ func networkInterfaceAttachmentResource(ctx context.Context) (resource.Resource, // CloudFormation resource type schema: // // { - // "description": "The network interface's position in the attachment order. For example, the first attached network interface has a DeviceIndex of 0.", + // "description": "The network interface's position in the attachment order. For example, the first attached network interface has a ``DeviceIndex`` of 0.", // "type": "string" // } "device_index": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The network interface's position in the attachment order. For example, the first attached network interface has a DeviceIndex of 0.", + Description: "The network interface's position in the attachment order. For example, the first attached network interface has a ``DeviceIndex`` of 0.", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), @@ -77,12 +77,15 @@ func networkInterfaceAttachmentResource(ctx context.Context) (resource.Resource, // // { // "additionalProperties": false, + // "description": "Configures ENA Express for the network interface that this action attaches to the instance.", // "properties": { // "EnaSrdEnabled": { + // "description": "Indicates whether ENA Express is enabled for the network interface.", // "type": "boolean" // }, // "EnaSrdUdpSpecification": { // "additionalProperties": false, + // "description": "Configures ENA Express for UDP network traffic.", // "properties": { // "EnaSrdUdpEnabled": { // "type": "boolean" @@ -97,8 +100,9 @@ func networkInterfaceAttachmentResource(ctx context.Context) (resource.Resource, Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: EnaSrdEnabled "ena_srd_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "Indicates whether ENA Express is enabled for the network interface.", + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ boolplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -115,15 +119,17 @@ func networkInterfaceAttachmentResource(ctx context.Context) (resource.Resource, }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Optional: true, - Computed: true, + Description: "Configures ENA Express for UDP network traffic.", + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Optional: true, - Computed: true, + Description: "Configures ENA Express for the network interface that this action attaches to the instance.", + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -168,7 +174,7 @@ func networkInterfaceAttachmentResource(ctx context.Context) (resource.Resource, } schema := schema.Schema{ - Description: "Resource Type definition for AWS::EC2::NetworkInterfaceAttachment", + Description: "Attaches an elastic network interface (ENI) to an Amazon EC2 instance. You can use this resource type to attach additional network interfaces to an instance without interruption.", Version: 1, Attributes: attributes, } diff --git a/internal/aws/ecr/repository_creation_template_resource_gen.go b/internal/aws/ecr/repository_creation_template_resource_gen.go index fcb16307ca..03fbb0ab9a 100644 --- a/internal/aws/ecr/repository_creation_template_resource_gen.go +++ b/internal/aws/ecr/repository_creation_template_resource_gen.go @@ -75,6 +75,27 @@ func repositoryCreationTemplateResource(ctx context.Context) (resource.Resource, stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: CustomRoleArn + // CloudFormation resource type schema: + // + // { + // "description": "The ARN of the role to be assumed by ECR. This role must be in the same account as the registry that you are configuring.", + // "maxLength": 2048, + // "pattern": "^arn:aws[-a-z0-9]*:iam::[0-9]{12}:role/[A-Za-z0-9+=,-.@_]*$", + // "type": "string" + // } + "custom_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the role to be assumed by ECR. This role must be in the same account as the registry that you are configuring.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(2048), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws[-a-z0-9]*:iam::[0-9]{12}:role/[A-Za-z0-9+=,-.@_]*$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Description // CloudFormation resource type schema: // @@ -338,6 +359,7 @@ func repositoryCreationTemplateResource(ctx context.Context) (resource.Resource, opts = opts.WithAttributeNameMap(map[string]string{ "applied_for": "AppliedFor", "created_at": "CreatedAt", + "custom_role_arn": "CustomRoleArn", "description": "Description", "encryption_configuration": "EncryptionConfiguration", "encryption_type": "EncryptionType", diff --git a/internal/aws/ecr/repository_resource_gen.go b/internal/aws/ecr/repository_resource_gen.go index 72f4b57bc8..df367ea8fa 100644 --- a/internal/aws/ecr/repository_resource_gen.go +++ b/internal/aws/ecr/repository_resource_gen.go @@ -69,7 +69,7 @@ func repositoryResource(ctx context.Context) (resource.Resource, error) { // "description": "The encryption configuration for the repository. This determines how the contents of your repository are encrypted at rest.", // "properties": { // "EncryptionType": { - // "description": "The encryption type to use.\n If you use the ``KMS`` encryption type, the contents of the repository will be encrypted using server-side encryption with KMSlong key stored in KMS. When you use KMS to encrypt your data, you can either use the default AWS managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see [Protecting data using server-side encryption with an key stored in (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*.\n If you use the ``AES256`` encryption type, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts the images in the repository using an AES-256 encryption algorithm. For more information, see [Protecting data using server-side encryption with Amazon S3-managed encryption keys (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) in the *Ama", + // "description": "The encryption type to use.\n If you use the ``KMS`` encryption type, the contents of the repository will be encrypted using server-side encryption with KMSlong key stored in KMS. When you use KMS to encrypt your data, you can either use the default AWS managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see [Protecting data using server-side encryption with an key stored in (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*.\n If you use the ``AES256`` encryption type, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts the images in the repository using an AES-256 encryption algorithm. For more information, see [Protecting data using server-side encryption with Amazon S3-managed encryption keys (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*.", // "enum": [ // "AES256", // "KMS" @@ -92,7 +92,7 @@ func repositoryResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: EncryptionType "encryption_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The encryption type to use.\n If you use the ``KMS`` encryption type, the contents of the repository will be encrypted using server-side encryption with KMSlong key stored in KMS. When you use KMS to encrypt your data, you can either use the default AWS managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see [Protecting data using server-side encryption with an key stored in (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*.\n If you use the ``AES256`` encryption type, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts the images in the repository using an AES-256 encryption algorithm. For more information, see [Protecting data using server-side encryption with Amazon S3-managed encryption keys (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) in the *Ama", + Description: "The encryption type to use.\n If you use the ``KMS`` encryption type, the contents of the repository will be encrypted using server-side encryption with KMSlong key stored in KMS. When you use KMS to encrypt your data, you can either use the default AWS managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see [Protecting data using server-side encryption with an key stored in (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*.\n If you use the ``AES256`` encryption type, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts the images in the repository using an AES-256 encryption algorithm. For more information, see [Protecting data using server-side encryption with Amazon S3-managed encryption keys (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*.", Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.OneOf( diff --git a/internal/aws/eks/cluster_resource_gen.go b/internal/aws/eks/cluster_resource_gen.go index c8a22e5d09..2188c35bce 100644 --- a/internal/aws/eks/cluster_resource_gen.go +++ b/internal/aws/eks/cluster_resource_gen.go @@ -729,6 +729,49 @@ func clusterResource(ctx context.Context) (resource.Resource, error) { setplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: UpgradePolicy + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "An object representing the Upgrade Policy to use for the cluster.", + // "properties": { + // "SupportType": { + // "description": "Specify the support type for your cluster.", + // "enum": [ + // "STANDARD", + // "EXTENDED" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // } + "upgrade_policy": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SupportType + "support_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specify the support type for your cluster.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "STANDARD", + "EXTENDED", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "An object representing the Upgrade Policy to use for the cluster.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Version // CloudFormation resource type schema: // @@ -806,8 +849,10 @@ func clusterResource(ctx context.Context) (resource.Resource, error) { "service_ipv_4_cidr": "ServiceIpv4Cidr", "service_ipv_6_cidr": "ServiceIpv6Cidr", "subnet_ids": "SubnetIds", + "support_type": "SupportType", "tags": "Tags", "type": "Type", + "upgrade_policy": "UpgradePolicy", "value": "Value", "version": "Version", }) diff --git a/internal/aws/entityresolution/id_mapping_workflow_resource_gen.go b/internal/aws/entityresolution/id_mapping_workflow_resource_gen.go index d5529622f8..f3de29c999 100644 --- a/internal/aws/entityresolution/id_mapping_workflow_resource_gen.go +++ b/internal/aws/entityresolution/id_mapping_workflow_resource_gen.go @@ -112,7 +112,7 @@ func idMappingWorkflowResource(ctx context.Context) (resource.Resource, error) { // }, // "ProviderServiceArn": { // "description": "Arn of the Provider Service being used.", - // "pattern": "^arn:(aws|aws-us-gov|aws-cn):entityresolution:([A-Za-z0-9]+(-[A-Za-z0-9]+)+)::providerservice/[A-Za-z0-9]+/[A-Za-z0-9]+$", + // "pattern": "^arn:(aws|aws-us-gov|aws-cn):(entityresolution):([a-z]{2}-[a-z]{1,10}-[0-9])::providerservice/([a-zA-Z0-9_-]{1,255})/([a-zA-Z0-9_-]{1,255})$", // "type": "string" // } // }, @@ -247,7 +247,7 @@ func idMappingWorkflowResource(ctx context.Context) (resource.Resource, error) { Description: "Arn of the Provider Service being used.", Required: true, Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.RegexMatches(regexp.MustCompile("^arn:(aws|aws-us-gov|aws-cn):entityresolution:([A-Za-z0-9]+(-[A-Za-z0-9]+)+)::providerservice/[A-Za-z0-9]+/[A-Za-z0-9]+$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:(aws|aws-us-gov|aws-cn):(entityresolution):([a-z]{2}-[a-z]{1,10}-[0-9])::providerservice/([a-zA-Z0-9_-]{1,255})/([a-zA-Z0-9_-]{1,255})$"), ""), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ diff --git a/internal/aws/fms/policy_resource_gen.go b/internal/aws/fms/policy_resource_gen.go index bbc218c983..bb64b33b94 100644 --- a/internal/aws/fms/policy_resource_gen.go +++ b/internal/aws/fms/policy_resource_gen.go @@ -437,7 +437,7 @@ func policyResource(ctx context.Context) (resource.Resource, error) { // "properties": { // "ManagedServiceData": { // "description": "Firewall managed service data.", - // "maxLength": 8192, + // "maxLength": 30000, // "minLength": 1, // "type": "string" // }, @@ -751,7 +751,7 @@ func policyResource(ctx context.Context) (resource.Resource, error) { Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(1, 8192), + stringvalidator.LengthBetween(1, 30000), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), diff --git a/internal/aws/globalaccelerator/cross_account_attachment_resource_gen.go b/internal/aws/globalaccelerator/cross_account_attachment_resource_gen.go index 10c09d8a02..e405acc77f 100644 --- a/internal/aws/globalaccelerator/cross_account_attachment_resource_gen.go +++ b/internal/aws/globalaccelerator/cross_account_attachment_resource_gen.go @@ -89,6 +89,9 @@ func crossAccountAttachmentResource(ctx context.Context) (resource.Resource, err // "additionalProperties": false, // "description": "ARN of resource to share.", // "properties": { + // "Cidr": { + // "type": "string" + // }, // "EndpointId": { // "type": "string" // }, @@ -96,9 +99,6 @@ func crossAccountAttachmentResource(ctx context.Context) (resource.Resource, err // "type": "string" // } // }, - // "required": [ - // "EndpointId" - // ], // "type": "object" // }, // "type": "array" @@ -106,9 +106,21 @@ func crossAccountAttachmentResource(ctx context.Context) (resource.Resource, err "resources": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Cidr + "cidr": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: EndpointId "endpoint_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Region "region": schema.StringAttribute{ /*START ATTRIBUTE*/ @@ -206,6 +218,7 @@ func crossAccountAttachmentResource(ctx context.Context) (resource.Resource, err opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ "attachment_arn": "AttachmentArn", + "cidr": "Cidr", "endpoint_id": "EndpointId", "key": "Key", "name": "Name", diff --git a/internal/aws/glue/trigger_resource_gen.go b/internal/aws/glue/trigger_resource_gen.go new file mode 100644 index 0000000000..c45abb8bff --- /dev/null +++ b/internal/aws/glue/trigger_resource_gen.go @@ -0,0 +1,490 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package glue + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-jsontypes/jsontypes" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/boolplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/int64planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_glue_trigger", triggerResource) +} + +// triggerResource returns the Terraform awscc_glue_trigger resource. +// This Terraform resource corresponds to the CloudFormation AWS::Glue::Trigger resource. +func triggerResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Actions + // CloudFormation resource type schema: + // + // { + // "description": "The actions initiated by this trigger.", + // "items": { + // "additionalProperties": false, + // "description": "The actions initiated by this trigger.", + // "properties": { + // "Arguments": { + // "description": "The job arguments used when this trigger fires. For this job run, they replace the default arguments set in the job definition itself.", + // "type": "object" + // }, + // "CrawlerName": { + // "description": "The name of the crawler to be used with this action.", + // "type": "string" + // }, + // "JobName": { + // "description": "The name of a job to be executed.", + // "type": "string" + // }, + // "NotificationProperty": { + // "additionalProperties": false, + // "description": "Specifies configuration properties of a job run notification.", + // "properties": { + // "NotifyDelayAfter": { + // "description": "After a job run starts, the number of minutes to wait before sending a job run delay notification", + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "SecurityConfiguration": { + // "description": "The name of the SecurityConfiguration structure to be used with this action.", + // "type": "string" + // }, + // "Timeout": { + // "description": "The JobRun timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. The default is 2,880 minutes (48 hours). This overrides the timeout value set in the parent job.", + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + "actions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arguments + "arguments": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "The job arguments used when this trigger fires. For this job run, they replace the default arguments set in the job definition itself.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CrawlerName + "crawler_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the crawler to be used with this action.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: JobName + "job_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of a job to be executed.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: NotificationProperty + "notification_property": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: NotifyDelayAfter + "notify_delay_after": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "After a job run starts, the number of minutes to wait before sending a job run delay notification", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies configuration properties of a job run notification.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SecurityConfiguration + "security_configuration": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the SecurityConfiguration structure to be used with this action.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Timeout + "timeout": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The JobRun timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. The default is 2,880 minutes (48 hours). This overrides the timeout value set in the parent job.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The actions initiated by this trigger.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "A description of this trigger.", + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A description of this trigger.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EventBatchingCondition + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Batch condition that must be met (specified number of events received or batch time window expired) before EventBridge event trigger fires.", + // "properties": { + // "BatchSize": { + // "description": "Number of events that must be received from Amazon EventBridge before EventBridge event trigger fires.", + // "type": "integer" + // }, + // "BatchWindow": { + // "description": "Window of time in seconds after which EventBridge event trigger fires. Window starts when first event is received.", + // "type": "integer" + // } + // }, + // "required": [ + // "BatchSize" + // ], + // "type": "object" + // } + "event_batching_condition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BatchSize + "batch_size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Number of events that must be received from Amazon EventBridge before EventBridge event trigger fires.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: BatchWindow + "batch_window": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Window of time in seconds after which EventBridge event trigger fires. Window starts when first event is received.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Batch condition that must be met (specified number of events received or batch time window expired) before EventBridge event trigger fires.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "The name of the trigger.", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the trigger.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Predicate + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The predicate of this trigger, which defines when it will fire.", + // "properties": { + // "Conditions": { + // "description": "A list of the conditions that determine when the trigger will fire.", + // "items": { + // "additionalProperties": false, + // "description": "Defines a condition under which a trigger fires.", + // "properties": { + // "CrawlState": { + // "description": "The state of the crawler to which this condition applies.", + // "type": "string" + // }, + // "CrawlerName": { + // "description": "The name of the crawler to which this condition applies.", + // "type": "string" + // }, + // "JobName": { + // "description": "The name of the job whose JobRuns this condition applies to, and on which this trigger waits.", + // "type": "string" + // }, + // "LogicalOperator": { + // "description": "A logical operator.", + // "type": "string" + // }, + // "State": { + // "description": "The condition state. Currently, the values supported are SUCCEEDED, STOPPED, TIMEOUT, and FAILED.", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Logical": { + // "description": "An optional field if only one condition is listed. If multiple conditions are listed, then this field is required.", + // "type": "string" + // } + // }, + // "type": "object" + // } + "predicate": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Conditions + "conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CrawlState + "crawl_state": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The state of the crawler to which this condition applies.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CrawlerName + "crawler_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the crawler to which this condition applies.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: JobName + "job_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the job whose JobRuns this condition applies to, and on which this trigger waits.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LogicalOperator + "logical_operator": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A logical operator.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: State + "state": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The condition state. Currently, the values supported are SUCCEEDED, STOPPED, TIMEOUT, and FAILED.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of the conditions that determine when the trigger will fire.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Logical + "logical": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "An optional field if only one condition is listed. If multiple conditions are listed, then this field is required.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The predicate of this trigger, which defines when it will fire.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Schedule + // CloudFormation resource type schema: + // + // { + // "description": "A cron expression used to specify the schedule.", + // "type": "string" + // } + "schedule": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A cron expression used to specify the schedule.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: StartOnCreation + // CloudFormation resource type schema: + // + // { + // "description": "Set to true to start SCHEDULED and CONDITIONAL triggers when created. True is not supported for ON_DEMAND triggers.", + // "type": "boolean" + // } + "start_on_creation": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Set to true to start SCHEDULED and CONDITIONAL triggers when created. True is not supported for ON_DEMAND triggers.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // StartOnCreation is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "The tags to use with this trigger.", + // "type": "object" + // } + "tags": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "The tags to use with this trigger.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Type + // CloudFormation resource type schema: + // + // { + // "description": "The type of trigger that this is.", + // "type": "string" + // } + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The type of trigger that this is.", + Required: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: WorkflowName + // CloudFormation resource type schema: + // + // { + // "description": "The name of the workflow associated with the trigger.", + // "type": "string" + // } + "workflow_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the workflow associated with the trigger.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Resource Type definition for AWS::Glue::Trigger", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Glue::Trigger").WithTerraformTypeName("awscc_glue_trigger") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "actions": "Actions", + "arguments": "Arguments", + "batch_size": "BatchSize", + "batch_window": "BatchWindow", + "conditions": "Conditions", + "crawl_state": "CrawlState", + "crawler_name": "CrawlerName", + "description": "Description", + "event_batching_condition": "EventBatchingCondition", + "job_name": "JobName", + "logical": "Logical", + "logical_operator": "LogicalOperator", + "name": "Name", + "notification_property": "NotificationProperty", + "notify_delay_after": "NotifyDelayAfter", + "predicate": "Predicate", + "schedule": "Schedule", + "security_configuration": "SecurityConfiguration", + "start_on_creation": "StartOnCreation", + "state": "State", + "tags": "Tags", + "timeout": "Timeout", + "type": "Type", + "workflow_name": "WorkflowName", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/StartOnCreation", + }) + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/glue/trigger_resource_gen_test.go b/internal/aws/glue/trigger_resource_gen_test.go new file mode 100644 index 0000000000..1e59d79bba --- /dev/null +++ b/internal/aws/glue/trigger_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package glue_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSGlueTrigger_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Glue::Trigger", "awscc_glue_trigger", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/lightsail/alarm_resource_gen.go b/internal/aws/lightsail/alarm_resource_gen.go index 611a6a03b2..29610623a2 100644 --- a/internal/aws/lightsail/alarm_resource_gen.go +++ b/internal/aws/lightsail/alarm_resource_gen.go @@ -137,11 +137,11 @@ func alarmResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The validation status of the SSL/TLS certificate.", + // "description": "The name of the Lightsail resource that the alarm monitors.", // "type": "string" // } "monitored_resource_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The validation status of the SSL/TLS certificate.", + Description: "The name of the Lightsail resource that the alarm monitors.", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), diff --git a/internal/aws/lightsail/certificate_resource_gen.go b/internal/aws/lightsail/certificate_resource_gen.go index 79d05cf10f..5791ffd76e 100644 --- a/internal/aws/lightsail/certificate_resource_gen.go +++ b/internal/aws/lightsail/certificate_resource_gen.go @@ -179,7 +179,7 @@ func certificateResource(ctx context.Context) (resource.Resource, error) { } schema := schema.Schema{ - Description: "An example resource schema demonstrating some basic constructs and validation rules.", + Description: "Resource Type definition for AWS::Lightsail::Certificate.", Version: 1, Attributes: attributes, } diff --git a/internal/aws/mediaconnect/flow_output_resource_gen.go b/internal/aws/mediaconnect/flow_output_resource_gen.go index 11de876121..2ed8ab03b4 100644 --- a/internal/aws/mediaconnect/flow_output_resource_gen.go +++ b/internal/aws/mediaconnect/flow_output_resource_gen.go @@ -431,6 +431,31 @@ func flowOutputResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: OutputStatus + // CloudFormation resource type schema: + // + // { + // "description": "An indication of whether the output should transmit data or not.", + // "enum": [ + // "ENABLED", + // "DISABLED" + // ], + // "type": "string" + // } + "output_status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "An indication of whether the output should transmit data or not.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ENABLED", + "DISABLED", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Port // CloudFormation resource type schema: // @@ -604,6 +629,7 @@ func flowOutputResource(ctx context.Context) (resource.Resource, error) { "min_latency": "MinLatency", "name": "Name", "output_arn": "OutputArn", + "output_status": "OutputStatus", "port": "Port", "protocol": "Protocol", "remote_id": "RemoteId", diff --git a/internal/aws/mediapackagev2/channel_resource_gen.go b/internal/aws/mediapackagev2/channel_resource_gen.go index 37a0f7c3d9..2423e6bb84 100644 --- a/internal/aws/mediapackagev2/channel_resource_gen.go +++ b/internal/aws/mediapackagev2/channel_resource_gen.go @@ -177,6 +177,30 @@ func channelResource(ctx context.Context) (resource.Resource, error) { listplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: InputType + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "HLS", + // "CMAF" + // ], + // "type": "string" + // } + "input_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "HLS", + "CMAF", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: ModifiedAt // CloudFormation resource type schema: // @@ -270,6 +294,7 @@ func channelResource(ctx context.Context) (resource.Resource, error) { "id": "Id", "ingest_endpoint_urls": "IngestEndpointUrls", "ingest_endpoints": "IngestEndpoints", + "input_type": "InputType", "key": "Key", "modified_at": "ModifiedAt", "tags": "Tags", diff --git a/internal/aws/mediapackagev2/origin_endpoint_resource_gen.go b/internal/aws/mediapackagev2/origin_endpoint_resource_gen.go index 2e72a3056c..f3826ab7eb 100644 --- a/internal/aws/mediapackagev2/origin_endpoint_resource_gen.go +++ b/internal/aws/mediapackagev2/origin_endpoint_resource_gen.go @@ -521,6 +521,59 @@ func originEndpointResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: ForceEndpointErrorConfiguration + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "\u003cp\u003eThe failover settings for the endpoint.\u003c/p\u003e", + // "properties": { + // "EndpointErrorConditions": { + // "description": "\u003cp\u003eThe failover settings for the endpoint. The options are:\u003c/p\u003e\n \u003cul\u003e\n \u003cli\u003e\n \u003cp\u003e\n \u003ccode\u003eSTALE_MANIFEST\u003c/code\u003e - The manifest stalled and there a no new segments or parts.\u003c/p\u003e\n \u003c/li\u003e\n \u003cli\u003e\n \u003cp\u003e\n \u003ccode\u003eINCOMPLETE_MANIFEST\u003c/code\u003e - There is a gap in the manifest.\u003c/p\u003e\n \u003c/li\u003e\n \u003cli\u003e\n \u003cp\u003e\n \u003ccode\u003eMISSING_DRM_KEY\u003c/code\u003e - Key rotation is enabled but we're unable to fetch the key for the current key period.\u003c/p\u003e\n \u003c/li\u003e\n \u003c/ul\u003e", + // "items": { + // "enum": [ + // "STALE_MANIFEST", + // "INCOMPLETE_MANIFEST", + // "MISSING_DRM_KEY", + // "SLATE_INPUT" + // ], + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // } + "force_endpoint_error_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EndpointErrorConditions + "endpoint_error_conditions": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "

The failover settings for the endpoint. The options are:

\n
    \n
  • \n

    \n STALE_MANIFEST - The manifest stalled and there a no new segments or parts.

    \n
  • \n
  • \n

    \n INCOMPLETE_MANIFEST - There is a gap in the manifest.

    \n
  • \n
  • \n

    \n MISSING_DRM_KEY - Key rotation is enabled but we're unable to fetch the key for the current key period.

    \n
  • \n
", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.ValueStringsAre( + stringvalidator.OneOf( + "STALE_MANIFEST", + "INCOMPLETE_MANIFEST", + "MISSING_DRM_KEY", + "SLATE_INPUT", + ), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "

The failover settings for the endpoint.

", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: HlsManifestUrls // CloudFormation resource type schema: // @@ -1594,7 +1647,9 @@ func originEndpointResource(ctx context.Context) (resource.Resource, error) { "encryption_contract_configuration": "EncryptionContractConfiguration", "encryption_method": "EncryptionMethod", "end": "End", + "endpoint_error_conditions": "EndpointErrorConditions", "filter_configuration": "FilterConfiguration", + "force_endpoint_error_configuration": "ForceEndpointErrorConfiguration", "hls_manifest_urls": "HlsManifestUrls", "hls_manifests": "HlsManifests", "include_iframe_only_streams": "IncludeIframeOnlyStreams", diff --git a/internal/aws/rds/db_cluster_resource_gen.go b/internal/aws/rds/db_cluster_resource_gen.go index f9cad29ce4..5c3538d950 100644 --- a/internal/aws/rds/db_cluster_resource_gen.go +++ b/internal/aws/rds/db_cluster_resource_gen.go @@ -672,7 +672,7 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // }, // "SecretArn": { - // "description": "The Amazon Resource Name (ARN) of the secret.", + // "description": "The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#aws-resource-rds-dbcluster-return-values).", // "type": "string" // } // }, @@ -691,7 +691,7 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: SecretArn "secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon Resource Name (ARN) of the secret.", + Description: "The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#aws-resource-rds-dbcluster-return-values).", Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -867,11 +867,11 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", + // "description": "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", // "type": "boolean" // } "publicly_accessible": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", + Description: "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/rds/db_instance_resource_gen.go b/internal/aws/rds/db_instance_resource_gen.go index ca62b30537..81a27a35b0 100644 --- a/internal/aws/rds/db_instance_resource_gen.go +++ b/internal/aws/rds/db_instance_resource_gen.go @@ -154,11 +154,11 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The destination region for the backup replication of the DB instance. For more info, see [Replicating automated backups to another Region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReplicateBackups.html) in the *Amazon RDS User Guide*.", + // "description": "", // "type": "string" // } "automatic_backup_replication_region": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The destination region for the backup replication of the DB instance. For more info, see [Replicating automated backups to another Region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReplicateBackups.html) in the *Amazon RDS User Guide*.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -466,11 +466,11 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.\n By specifying this property, you can create a DB instance from the specified DB snapshot. If the ``DBSnapshotIdentifier`` property is an empty string or the ``AWS::RDS::DBInstance`` declaration has no ``DBSnapshotIdentifier`` property, AWS CloudFormation creates a new database. If the property contains a value (other than an empty string), AWS CloudFormation creates a database from the specified snapshot. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack.\n Some DB instance properties aren't valid when you restore from a snapshot, such as the ``MasterUsername`` and ``MasterUserPassword`` properties. For information about the properties that you can specify, see the ``RestoreDBInstanceFromDBSnapshot`` action in the *Amazon RDS API Reference*.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you must specify the same ``DBSnapshotIdentifier`` property for any future updates to the DB instance. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n If you specify the ``DBSnapshotIdentifier`` property to restore a DB instance (as opposed to specifying it for DB instance updates), then don't specify the following properties:\n + ``CharacterSetName`` \n + ``DBClusterIdentifier`` \n + ``DBName`` \n + ``DeleteAutomatedBackups`` \n + ``EnablePerformanceInsights`` \n + ``KmsKeyId`` \n + ``MasterUsername`` \n + ``MasterUserPassword`` \n + ``PerformanceInsightsKMSKeyId`` \n + ``PerformanceInsightsRetentionPeriod`` \n + ``PromotionTier`` \n + ``SourceDBInstanceIdentifier`` \n + ``SourceRegion`` \n + ``StorageEncrypted`` (for an encrypted snapshot)\n + ``Timezone`` \n \n *Amazon Aurora* \n Not applicable. Snapshot restore is managed by the DB cluster.", + // "description": "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.\n By specifying this property, you can create a DB instance from the specified DB snapshot. If the ``DBSnapshotIdentifier`` property is an empty string or the ``AWS::RDS::DBInstance`` declaration has no ``DBSnapshotIdentifier`` property, AWS CloudFormation creates a new database. If the property contains a value (other than an empty string), AWS CloudFormation creates a database from the specified snapshot. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack.\n Some DB instance properties aren't valid when you restore from a snapshot, such as the ``MasterUsername`` and ``MasterUserPassword`` properties. For information about the properties that you can specify, see the ``RestoreDBInstanceFromDBSnapshot`` action in the *Amazon RDS API Reference*.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you must specify the same ``DBSnapshotIdentifier`` property for any future updates to the DB instance. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n If you specify the ``DBSnapshotIdentifier`` property to restore a DB instance (as opposed to specifying it for DB instance updates), then don't specify the following properties:\n + ``CharacterSetName`` \n + ``DBClusterIdentifier`` \n + ``DBName`` \n + ``DeleteAutomatedBackups`` \n + ``KmsKeyId`` \n + ``MasterUsername`` \n + ``MasterUserPassword`` \n + ``PerformanceInsightsKMSKeyId`` \n + ``PerformanceInsightsRetentionPeriod`` \n + ``PromotionTier`` \n + ``SourceDBInstanceIdentifier`` \n + ``SourceRegion`` \n + ``StorageEncrypted`` (for an encrypted snapshot)\n + ``Timezone`` \n \n *Amazon Aurora* \n Not applicable. Snapshot restore is managed by the DB cluster.", // "type": "string" // } "db_snapshot_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.\n By specifying this property, you can create a DB instance from the specified DB snapshot. If the ``DBSnapshotIdentifier`` property is an empty string or the ``AWS::RDS::DBInstance`` declaration has no ``DBSnapshotIdentifier`` property, AWS CloudFormation creates a new database. If the property contains a value (other than an empty string), AWS CloudFormation creates a database from the specified snapshot. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack.\n Some DB instance properties aren't valid when you restore from a snapshot, such as the ``MasterUsername`` and ``MasterUserPassword`` properties. For information about the properties that you can specify, see the ``RestoreDBInstanceFromDBSnapshot`` action in the *Amazon RDS API Reference*.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you must specify the same ``DBSnapshotIdentifier`` property for any future updates to the DB instance. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n If you specify the ``DBSnapshotIdentifier`` property to restore a DB instance (as opposed to specifying it for DB instance updates), then don't specify the following properties:\n + ``CharacterSetName`` \n + ``DBClusterIdentifier`` \n + ``DBName`` \n + ``DeleteAutomatedBackups`` \n + ``EnablePerformanceInsights`` \n + ``KmsKeyId`` \n + ``MasterUsername`` \n + ``MasterUserPassword`` \n + ``PerformanceInsightsKMSKeyId`` \n + ``PerformanceInsightsRetentionPeriod`` \n + ``PromotionTier`` \n + ``SourceDBInstanceIdentifier`` \n + ``SourceRegion`` \n + ``StorageEncrypted`` (for an encrypted snapshot)\n + ``Timezone`` \n \n *Amazon Aurora* \n Not applicable. Snapshot restore is managed by the DB cluster.", + Description: "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.\n By specifying this property, you can create a DB instance from the specified DB snapshot. If the ``DBSnapshotIdentifier`` property is an empty string or the ``AWS::RDS::DBInstance`` declaration has no ``DBSnapshotIdentifier`` property, AWS CloudFormation creates a new database. If the property contains a value (other than an empty string), AWS CloudFormation creates a database from the specified snapshot. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack.\n Some DB instance properties aren't valid when you restore from a snapshot, such as the ``MasterUsername`` and ``MasterUserPassword`` properties. For information about the properties that you can specify, see the ``RestoreDBInstanceFromDBSnapshot`` action in the *Amazon RDS API Reference*.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you must specify the same ``DBSnapshotIdentifier`` property for any future updates to the DB instance. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n If you specify the ``DBSnapshotIdentifier`` property to restore a DB instance (as opposed to specifying it for DB instance updates), then don't specify the following properties:\n + ``CharacterSetName`` \n + ``DBClusterIdentifier`` \n + ``DBName`` \n + ``DeleteAutomatedBackups`` \n + ``KmsKeyId`` \n + ``MasterUsername`` \n + ``MasterUserPassword`` \n + ``PerformanceInsightsKMSKeyId`` \n + ``PerformanceInsightsRetentionPeriod`` \n + ``PromotionTier`` \n + ``SourceDBInstanceIdentifier`` \n + ``SourceRegion`` \n + ``StorageEncrypted`` (for an encrypted snapshot)\n + ``Timezone`` \n \n *Amazon Aurora* \n Not applicable. Snapshot restore is managed by the DB cluster.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -901,7 +901,7 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // }, // "SecretArn": { - // "description": "The Amazon Resource Name (ARN) of the secret.", + // "description": "The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#aws-resource-rds-dbinstance-return-values).", // "type": "string" // } // }, @@ -920,7 +920,7 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: SecretArn "secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon Resource Name (ARN) of the secret.", + Description: "The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#aws-resource-rds-dbinstance-return-values).", Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -1153,7 +1153,7 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { // "description": "The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.\n This setting doesn't apply to Amazon Aurora or RDS Custom DB instances.", // "items": { // "additionalProperties": false, - // "description": "The ``ProcessorFeature`` property type specifies the processor features of a DB instance class status.", + // "description": "The ``ProcessorFeature`` property type specifies the processor features of a DB instance class.", // "properties": { // "Name": { // "description": "The name of the processor feature. Valid names are ``coreCount`` and ``threadsPerCore``.", diff --git a/internal/aws/secretsmanager/resource_policy_resource_gen.go b/internal/aws/secretsmanager/resource_policy_resource_gen.go new file mode 100644 index 0000000000..75337214d6 --- /dev/null +++ b/internal/aws/secretsmanager/resource_policy_resource_gen.go @@ -0,0 +1,132 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package secretsmanager + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/boolplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_secretsmanager_resource_policy", resourcePolicyResource) +} + +// resourcePolicyResource returns the Terraform awscc_secretsmanager_resource_policy resource. +// This Terraform resource corresponds to the CloudFormation AWS::SecretsManager::ResourcePolicy resource. +func resourcePolicyResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BlockPublicPolicy + // CloudFormation resource type schema: + // + // { + // "description": "Specifies whether to block resource-based policies that allow broad access to the secret.", + // "type": "boolean" + // } + "block_public_policy": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether to block resource-based policies that allow broad access to the secret.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // BlockPublicPolicy is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "description": "The Arn of the secret.", + // "type": "string" + // } + "resource_policy_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Arn of the secret.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ResourcePolicy + // CloudFormation resource type schema: + // + // { + // "description": "A JSON-formatted string for an AWS resource-based policy.", + // "type": "string" + // } + "resource_policy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A JSON-formatted string for an AWS resource-based policy.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: SecretId + // CloudFormation resource type schema: + // + // { + // "description": "The ARN or name of the secret to attach the resource-based policy.", + // "maxLength": 2048, + // "minLength": 1, + // "type": "string" + // } + "secret_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN or name of the secret to attach the resource-based policy.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 2048), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Resource Type definition for AWS::SecretsManager::ResourcePolicy", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::SecretsManager::ResourcePolicy").WithTerraformTypeName("awscc_secretsmanager_resource_policy") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "block_public_policy": "BlockPublicPolicy", + "resource_policy": "ResourcePolicy", + "resource_policy_id": "Id", + "secret_id": "SecretId", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/BlockPublicPolicy", + }) + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/secretsmanager/resource_policy_resource_gen_test.go b/internal/aws/secretsmanager/resource_policy_resource_gen_test.go new file mode 100644 index 0000000000..199935b6bb --- /dev/null +++ b/internal/aws/secretsmanager/resource_policy_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package secretsmanager_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSSecretsManagerResourcePolicy_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::SecretsManager::ResourcePolicy", "awscc_secretsmanager_resource_policy", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/workspacesweb/user_settings_resource_gen.go b/internal/aws/workspacesweb/user_settings_resource_gen.go index 8b51c27014..1fb1c0221d 100644 --- a/internal/aws/workspacesweb/user_settings_resource_gen.go +++ b/internal/aws/workspacesweb/user_settings_resource_gen.go @@ -297,6 +297,29 @@ func userSettingsResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: DeepLinkAllowed + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "Disabled", + // "Enabled" + // ], + // "type": "string" + // } + "deep_link_allowed": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "Disabled", + "Enabled", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: DisconnectTimeoutInMinutes // CloudFormation resource type schema: // @@ -515,6 +538,7 @@ func userSettingsResource(ctx context.Context) (resource.Resource, error) { "cookie_synchronization_configuration": "CookieSynchronizationConfiguration", "copy_allowed": "CopyAllowed", "customer_managed_key": "CustomerManagedKey", + "deep_link_allowed": "DeepLinkAllowed", "disconnect_timeout_in_minutes": "DisconnectTimeoutInMinutes", "domain": "Domain", "download_allowed": "DownloadAllowed", diff --git a/internal/provider/all_schemas.hcl b/internal/provider/all_schemas.hcl index 114820ef5a..cddf7ca15f 100644 --- a/internal/provider/all_schemas.hcl +++ b/internal/provider/all_schemas.hcl @@ -535,8 +535,8 @@ resource_schema "aws_bedrock_data_source" { resource_schema "aws_bedrock_flow" { cloudformation_type_name = "AWS::Bedrock::Flow" - # Suppression Reason: DefinitionSubstitutions is of unsupported type: key-value map of - # https://github.com/hashicorp/terraform-provider-awscc/issues/xxxx + # Suppression Reason: DefinitionSubstitutions is of unsupported type: key-value map of . + # https://github.com/hashicorp/terraform-provider-awscc/issues/1907 suppress_resource_generation = true suppress_singular_data_source_generation = true suppress_plural_data_source_generation = true From 1bd79207f5779ec819d32de89f413d63a55550f2 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 25 Jul 2024 15:27:49 -0400 Subject: [PATCH 4/6] 07/24/2024 CloudFormation schemas in us-east-1; Generate Terraform data source schemas. --- ...scaling_policy_singular_data_source_gen.go | 136 +-- .../flow_alias_singular_data_source_gen.go | 227 ++++ ...low_alias_singular_data_source_gen_test.go | 36 + .../flow_version_singular_data_source_gen.go | 1010 +++++++++++++++++ ...w_version_singular_data_source_gen_test.go | 36 + ...knowledge_base_singular_data_source_gen.go | 257 ++++- .../bedrock/prompt_plural_data_source_gen.go | 54 + .../prompt_plural_data_source_gen_test.go | 27 + .../prompt_singular_data_source_gen.go | 491 ++++++++ .../prompt_singular_data_source_gen_test.go | 36 + ...prompt_version_singular_data_source_gen.go | 415 +++++++ ...t_version_singular_data_source_gen_test.go | 36 + ...on_config_singular_data_source_gen_test.go | 8 +- ...ip_association_singular_data_source_gen.go | 24 +- ...aunch_template_singular_data_source_gen.go | 52 +- ...ace_attachment_singular_data_source_gen.go | 24 +- ...ation_template_singular_data_source_gen.go | 14 + .../repository_singular_data_source_gen.go | 4 +- .../eks/cluster_singular_data_source_gen.go | 31 + ...pping_workflow_singular_data_source_gen.go | 2 +- .../fms/policy_singular_data_source_gen.go | 2 +- ...unt_attachment_singular_data_source_gen.go | 11 +- .../glue/trigger_plural_data_source_gen.go | 54 + .../trigger_plural_data_source_gen_test.go | 27 + .../glue/trigger_singular_data_source_gen.go | 374 ++++++ .../trigger_singular_data_source_gen_test.go | 36 + .../alarm_singular_data_source_gen.go | 4 +- .../flow_output_singular_data_source_gen.go | 16 + .../channel_singular_data_source_gen.go | 14 + ...rigin_endpoint_singular_data_source_gen.go | 37 + .../db_cluster_singular_data_source_gen.go | 8 +- .../db_instance_singular_data_source_gen.go | 14 +- .../resource_policy_plural_data_source_gen.go | 54 + ...urce_policy_plural_data_source_gen_test.go | 27 + ...esource_policy_singular_data_source_gen.go | 101 ++ ...ce_policy_singular_data_source_gen_test.go | 36 + .../user_settings_singular_data_source_gen.go | 14 + 37 files changed, 3575 insertions(+), 174 deletions(-) create mode 100644 internal/aws/bedrock/flow_alias_singular_data_source_gen.go create mode 100644 internal/aws/bedrock/flow_alias_singular_data_source_gen_test.go create mode 100644 internal/aws/bedrock/flow_version_singular_data_source_gen.go create mode 100644 internal/aws/bedrock/flow_version_singular_data_source_gen_test.go create mode 100644 internal/aws/bedrock/prompt_plural_data_source_gen.go create mode 100644 internal/aws/bedrock/prompt_plural_data_source_gen_test.go create mode 100644 internal/aws/bedrock/prompt_singular_data_source_gen.go create mode 100644 internal/aws/bedrock/prompt_singular_data_source_gen_test.go create mode 100644 internal/aws/bedrock/prompt_version_singular_data_source_gen.go create mode 100644 internal/aws/bedrock/prompt_version_singular_data_source_gen_test.go create mode 100644 internal/aws/glue/trigger_plural_data_source_gen.go create mode 100644 internal/aws/glue/trigger_plural_data_source_gen_test.go create mode 100644 internal/aws/glue/trigger_singular_data_source_gen.go create mode 100644 internal/aws/glue/trigger_singular_data_source_gen_test.go create mode 100644 internal/aws/secretsmanager/resource_policy_plural_data_source_gen.go create mode 100644 internal/aws/secretsmanager/resource_policy_plural_data_source_gen_test.go create mode 100644 internal/aws/secretsmanager/resource_policy_singular_data_source_gen.go create mode 100644 internal/aws/secretsmanager/resource_policy_singular_data_source_gen_test.go diff --git a/internal/aws/applicationautoscaling/scaling_policy_singular_data_source_gen.go b/internal/aws/applicationautoscaling/scaling_policy_singular_data_source_gen.go index 197e1390cb..56647bade9 100644 --- a/internal/aws/applicationautoscaling/scaling_policy_singular_data_source_gen.go +++ b/internal/aws/applicationautoscaling/scaling_policy_singular_data_source_gen.go @@ -26,77 +26,77 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // CloudFormation resource type schema: // // { - // "description": "ARN is a read only property for the resource.", + // "description": "", // "type": "string" // } "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "ARN is a read only property for the resource.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: PolicyName // CloudFormation resource type schema: // // { - // "description": "The name of the scaling policy.\n\nUpdates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing AWS::ApplicationAutoScaling::ScalingPolicy resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name.", + // "description": "The name of the scaling policy.\n Updates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name.", // "type": "string" // } "policy_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the scaling policy.\n\nUpdates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing AWS::ApplicationAutoScaling::ScalingPolicy resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name.", + Description: "The name of the scaling policy.\n Updates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name.", Computed: true, }, /*END ATTRIBUTE*/ // Property: PolicyType // CloudFormation resource type schema: // // { - // "description": "The scaling policy type.\n\nThe following policy types are supported:\n\nTargetTrackingScaling Not supported for Amazon EMR\n\nStepScaling Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune.", + // "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.", // "type": "string" // } "policy_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The scaling policy type.\n\nThe following policy types are supported:\n\nTargetTrackingScaling Not supported for Amazon EMR\n\nStepScaling Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune.", + 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.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ResourceId // CloudFormation resource type schema: // // { - // "description": "The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.", + // "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``.", // "type": "string" // } "resource_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.", + 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``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ScalableDimension // CloudFormation resource type schema: // // { - // "description": "The scalable dimension. This string consists of the service namespace, resource type, and scaling property.", + // "description": "The scalable dimension. This string consists of the service namespace, resource type, and scaling property.\n + ``ecs:service:DesiredCount`` - The task count of an ECS service.\n + ``elasticmapreduce:instancegroup:InstanceCount`` - The instance count of an EMR Instance Group.\n + ``ec2:spot-fleet-request:TargetCapacity`` - The target capacity of a Spot Fleet.\n + ``appstream:fleet:DesiredCapacity`` - The capacity of an AppStream 2.0 fleet.\n + ``dynamodb:table:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB table.\n + ``dynamodb:table:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB table.\n + ``dynamodb:index:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB global secondary index.\n + ``dynamodb:index:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB global secondary index.\n + ``rds:cluster:ReadReplicaCount`` - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.\n + ``sagemaker:variant:DesiredInstanceCount`` - The number of EC2 instances for a SageMaker model endpoint variant.\n + ``custom-resource:ResourceType:Property`` - The scalable dimension for a custom resource provided by your own application or service.\n + ``comprehend:document-classifier-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend document classification endpoint.\n + ``comprehend:entity-recognizer-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend entity recognizer endpoint.\n + ``lambda:function:ProvisionedConcurrency`` - The provisioned concurrency for a Lambda function.\n + ``cassandra:table:ReadCapacityUnits`` - The provisioned read capacity for an Amazon Keyspaces table.\n + ``cassandra:table:WriteCapacityUnits`` - The provisioned write capacity for an Amazon Keyspaces table.\n + ``kafka:broker-storage:VolumeSize`` - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster.\n + ``elasticache:replication-group:NodeGroups`` - The number of node groups for an Amazon ElastiCache replication group.\n + ``elasticache:replication-group:Replicas`` - The number of replicas per node group for an Amazon ElastiCache replication group.\n + ``neptune:cluster:ReadReplicaCount`` - The count of read replicas in an Amazon Neptune DB cluster.\n + ``sagemaker:variant:DesiredProvisionedConcurrency`` - The provisioned concurrency for a SageMaker serverless endpoint.\n + ``sagemaker:inference-component:DesiredCopyCount`` - The number of copies across an endpoint for a SageMaker inference component.\n + ``workspaces:workspacespool:DesiredUserSessions`` - The number of user sessions for the WorkSpaces in the pool.", // "type": "string" // } "scalable_dimension": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The scalable dimension. This string consists of the service namespace, resource type, and scaling property.", + Description: "The scalable dimension. This string consists of the service namespace, resource type, and scaling property.\n + ``ecs:service:DesiredCount`` - The task count of an ECS service.\n + ``elasticmapreduce:instancegroup:InstanceCount`` - The instance count of an EMR Instance Group.\n + ``ec2:spot-fleet-request:TargetCapacity`` - The target capacity of a Spot Fleet.\n + ``appstream:fleet:DesiredCapacity`` - The capacity of an AppStream 2.0 fleet.\n + ``dynamodb:table:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB table.\n + ``dynamodb:table:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB table.\n + ``dynamodb:index:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB global secondary index.\n + ``dynamodb:index:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB global secondary index.\n + ``rds:cluster:ReadReplicaCount`` - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.\n + ``sagemaker:variant:DesiredInstanceCount`` - The number of EC2 instances for a SageMaker model endpoint variant.\n + ``custom-resource:ResourceType:Property`` - The scalable dimension for a custom resource provided by your own application or service.\n + ``comprehend:document-classifier-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend document classification endpoint.\n + ``comprehend:entity-recognizer-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend entity recognizer endpoint.\n + ``lambda:function:ProvisionedConcurrency`` - The provisioned concurrency for a Lambda function.\n + ``cassandra:table:ReadCapacityUnits`` - The provisioned read capacity for an Amazon Keyspaces table.\n + ``cassandra:table:WriteCapacityUnits`` - The provisioned write capacity for an Amazon Keyspaces table.\n + ``kafka:broker-storage:VolumeSize`` - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster.\n + ``elasticache:replication-group:NodeGroups`` - The number of node groups for an Amazon ElastiCache replication group.\n + ``elasticache:replication-group:Replicas`` - The number of replicas per node group for an Amazon ElastiCache replication group.\n + ``neptune:cluster:ReadReplicaCount`` - The count of read replicas in an Amazon Neptune DB cluster.\n + ``sagemaker:variant:DesiredProvisionedConcurrency`` - The provisioned concurrency for a SageMaker serverless endpoint.\n + ``sagemaker:inference-component:DesiredCopyCount`` - The number of copies across an endpoint for a SageMaker inference component.\n + ``workspaces:workspacespool:DesiredUserSessions`` - The number of user sessions for the WorkSpaces in the pool.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ScalingTargetId // CloudFormation resource type schema: // // { - // "description": "The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the AWS::ApplicationAutoScaling::ScalableTarget resource.", + // "description": "The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the ``AWS::ApplicationAutoScaling::ScalableTarget`` resource.\n You must specify either the ``ScalingTargetId`` property, or the ``ResourceId``, ``ScalableDimension``, and ``ServiceNamespace`` properties, but not both.", // "type": "string" // } "scaling_target_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the AWS::ApplicationAutoScaling::ScalableTarget resource.", + Description: "The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the ``AWS::ApplicationAutoScaling::ScalableTarget`` resource.\n You must specify either the ``ScalingTargetId`` property, or the ``ResourceId``, ``ScalableDimension``, and ``ServiceNamespace`` properties, but not both.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ServiceNamespace // CloudFormation resource type schema: // // { - // "description": "The namespace of the AWS service that provides the resource, or a custom-resource.", + // "description": "The namespace of the AWS service that provides the resource, or a ``custom-resource``.", // "type": "string" // } "service_namespace": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The namespace of the AWS service that provides the resource, or a custom-resource.", + Description: "The namespace of the AWS service that provides the resource, or a ``custom-resource``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: StepScalingPolicyConfiguration @@ -107,38 +107,38 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // "description": "A step scaling policy.", // "properties": { // "AdjustmentType": { - // "description": "Specifies how the ScalingAdjustment value in a StepAdjustment is interpreted.", + // "description": "Specifies whether the ``ScalingAdjustment`` value in the ``StepAdjustment`` property is an absolute number or a percentage of the current capacity.", // "type": "string" // }, // "Cooldown": { - // "description": "The amount of time, in seconds, to wait for a previous scaling activity to take effect.", + // "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" // }, // "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", + // "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" // }, // "MinAdjustmentMagnitude": { - // "description": "The minimum value to scale by when the adjustment type is PercentChangeInCapacity.", + // "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" // }, // "StepAdjustments": { - // "description": "A set of adjustments that enable you to scale based on the size of the alarm breach.", + // "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, // "items": { // "additionalProperties": false, - // "description": "Represents a step adjustment for a StepScalingPolicyConfiguration. Describes an adjustment based on the difference between the value of the aggregated CloudWatch metric and the breach threshold that you've defined for the alarm.", + // "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": { // "MetricIntervalLowerBound": { - // "description": "The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity.", + // "description": "The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity.\n You must specify at least one upper or lower bound.", // "type": "number" // }, // "MetricIntervalUpperBound": { - // "description": "The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.", + // "description": "The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.\n You must specify at least one upper or lower bound.", // "type": "number" // }, // "ScalingAdjustment": { - // "description": "The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. For exact capacity, you must specify a positive value.", + // "description": "The amount by which to scale. The adjustment is based on the value that you specified in the ``AdjustmentType`` property (either an absolute number or a percentage). A positive value adds to the current capacity and a negative number subtracts from the current capacity.", // "type": "integer" // } // }, @@ -157,22 +157,22 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: AdjustmentType "adjustment_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies how the ScalingAdjustment value in a StepAdjustment is interpreted.", + Description: "Specifies whether the ``ScalingAdjustment`` value in the ``StepAdjustment`` property is an absolute number or a percentage of the current capacity.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Cooldown "cooldown": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The amount of time, in seconds, to wait for a previous scaling activity to take effect.", + 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*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: MetricAggregationType "metric_aggregation_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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", + 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``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: MinAdjustmentMagnitude "min_adjustment_magnitude": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The minimum value to scale by when the adjustment type is PercentChangeInCapacity.", + 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.", Computed: true, }, /*END ATTRIBUTE*/ // Property: StepAdjustments @@ -181,22 +181,22 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: MetricIntervalLowerBound "metric_interval_lower_bound": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity.", + Description: "The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity.\n You must specify at least one upper or lower bound.", Computed: true, }, /*END ATTRIBUTE*/ // Property: MetricIntervalUpperBound "metric_interval_upper_bound": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.", + Description: "The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity.\n You must specify at least one upper or lower bound.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ScalingAdjustment "scaling_adjustment": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. For exact capacity, you must specify a positive value.", + Description: "The amount by which to scale. The adjustment is based on the value that you specified in the ``AdjustmentType`` property (either an absolute number or a percentage). A positive value adds to the current capacity and a negative number subtracts from the current capacity.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "A set of adjustments that enable you to scale based on the size of the alarm breach.", + 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.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -215,11 +215,11 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // "description": "A customized metric. You can specify either a predefined metric or a customized metric.", // "properties": { // "Dimensions": { - // "description": "The dimensions of the metric.", + // "description": "The dimensions of the metric. \n Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Describes the dimension names and values associated with a metric.", + // "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.", // "properties": { // "Name": { // "description": "The name of the dimension.", @@ -240,7 +240,7 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // "uniqueItems": false // }, // "MetricName": { - // "description": "The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the Metric object that is returned by a call to ListMetrics.", + // "description": "The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that's returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html).", // "type": "string" // }, // "Metrics": { @@ -248,14 +248,14 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "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.", + // "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.", // "properties": { // "Expression": { - // "description": "The math expression to perform on the returned data, if this object is performing a math expression.", + // "description": "The math expression to perform on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. \n Conditional: Within each ``TargetTrackingMetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both.", // "type": "string" // }, // "Id": { - // "description": "A short name that identifies the object's results in the response.", + // "description": "A short name that identifies the object's results in the response. This name must be unique among all ``MetricDataQuery`` objects specified for a single scaling policy. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscores. The first character must be a lowercase letter.", // "type": "string" // }, // "Label": { @@ -264,18 +264,18 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // }, // "MetricStat": { // "additionalProperties": false, - // "description": "Information about the metric data to return.", + // "description": "Information about the metric data to return.\n Conditional: Within each ``MetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both.", // "properties": { // "Metric": { // "additionalProperties": false, - // "description": "The CloudWatch metric to return, including the metric name, namespace, and dimensions. ", + // "description": "The CloudWatch metric to return, including the metric name, namespace, and dimensions. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html).", // "properties": { // "Dimensions": { - // "description": "The dimensions for the metric.", + // "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, // "items": { // "additionalProperties": false, - // "description": "Describes the dimension of a metric.", + // "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.", // "properties": { // "Name": { // "description": "The name of the dimension.", @@ -296,25 +296,25 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // "type": "string" // }, // "Namespace": { - // "description": "The namespace of the metric.", + // "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" // } // }, // "type": "object" // }, // "Stat": { - // "description": "The statistic to return. It can include any CloudWatch statistic or extended statistic.", + // "description": "The statistic to return. It can include any CloudWatch statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *Amazon CloudWatch User Guide*.\n The most commonly used metric for scaling is ``Average``.", // "type": "string" // }, // "Unit": { - // "description": "The unit to use for the returned data points.", + // "description": "The unit to use for the returned data points. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*.", // "type": "string" // } // }, // "type": "object" // }, // "ReturnData": { - // "description": "Indicates whether to return the timestamps and raw data values of this metric.", + // "description": "Indicates whether to return the timestamps and raw data values of this metric. \n If you use any math expressions, specify ``true`` for this value for only the final math expression that the metric specification is based on. You must specify ``false`` for ``ReturnData`` for all the other metrics and expressions used in the metric specification.\n If you are only retrieving metrics and not performing any math expressions, do not specify anything for ``ReturnData``. This sets it to its default (``true``).", // "type": "boolean" // } // }, @@ -332,14 +332,14 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // "type": "string" // }, // "Unit": { - // "description": "The unit of the metric. For a complete list of the units that CloudWatch supports, see the MetricDatum data type in the Amazon CloudWatch API Reference.", + // "description": "The unit of the metric. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*.", // "type": "string" // } // }, // "type": "object" // }, // "DisableScaleIn": { - // "description": "Indicates whether scale in by the target tracking scaling policy is disabled. If the value is true, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is false.", + // "description": "Indicates whether scale in by the target tracking scaling policy is disabled. If the value is ``true``, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is ``false``.", // "type": "boolean" // }, // "PredefinedMetricSpecification": { @@ -347,11 +347,11 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // "description": "A predefined metric. You can specify either a predefined metric or a customized metric.", // "properties": { // "PredefinedMetricType": { - // "description": "The metric type. The ALBRequestCountPerTarget metric type applies only to Spot Fleets and ECS services.", + // "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.", + // "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/\u003cload-balancer-name\u003e/\u003cload-balancer-id\u003e is the final portion of the load balancer ARN\n + targetgroup/\u003ctarget-group-name\u003e/\u003ctarget-group-id\u003e 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" // } // }, @@ -361,11 +361,11 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // "type": "object" // }, // "ScaleInCooldown": { - // "description": "The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start.", + // "description": "The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*.", // "type": "integer" // }, // "ScaleOutCooldown": { - // "description": "The amount of time, in seconds, to wait for a previous scale-out activity to take effect.", + // "description": "The amount of time, in seconds, to wait for a previous scale-out activity to take effect. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*.", // "type": "integer" // }, // "TargetValue": { @@ -399,12 +399,12 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The dimensions of the metric.", + Description: "The dimensions of the metric. \n Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy.", Computed: true, }, /*END ATTRIBUTE*/ // Property: MetricName "metric_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the Metric object that is returned by a call to ListMetrics.", + Description: "The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that's returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html).", Computed: true, }, /*END ATTRIBUTE*/ // Property: Metrics @@ -413,12 +413,12 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Expression "expression": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The math expression to perform on the returned data, if this object is performing a math expression.", + Description: "The math expression to perform on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. \n Conditional: Within each ``TargetTrackingMetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Id "id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A short name that identifies the object's results in the response.", + Description: "A short name that identifies the object's results in the response. This name must be unique among all ``MetricDataQuery`` objects specified for a single scaling policy. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscores. The first character must be a lowercase letter.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Label @@ -448,7 +448,7 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The dimensions for the metric.", + 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.", Computed: true, }, /*END ATTRIBUTE*/ // Property: MetricName @@ -458,30 +458,30 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) }, /*END ATTRIBUTE*/ // Property: Namespace "namespace": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The namespace of the metric.", + 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*.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The CloudWatch metric to return, including the metric name, namespace, and dimensions. ", + Description: "The CloudWatch metric to return, including the metric name, namespace, and dimensions. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html).", Computed: true, }, /*END ATTRIBUTE*/ // Property: Stat "stat": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The statistic to return. It can include any CloudWatch statistic or extended statistic.", + Description: "The statistic to return. It can include any CloudWatch statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *Amazon CloudWatch User Guide*.\n The most commonly used metric for scaling is ``Average``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Unit "unit": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The unit to use for the returned data points.", + Description: "The unit to use for the returned data points. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Information about the metric data to return.", + Description: "Information about the metric data to return.\n Conditional: Within each ``MetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ReturnData "return_data": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether to return the timestamps and raw data values of this metric.", + Description: "Indicates whether to return the timestamps and raw data values of this metric. \n If you use any math expressions, specify ``true`` for this value for only the final math expression that the metric specification is based on. You must specify ``false`` for ``ReturnData`` for all the other metrics and expressions used in the metric specification.\n If you are only retrieving metrics and not performing any math expressions, do not specify anything for ``ReturnData``. This sets it to its default (``true``).", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -501,7 +501,7 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) }, /*END ATTRIBUTE*/ // Property: Unit "unit": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The unit of the metric. For a complete list of the units that CloudWatch supports, see the MetricDatum data type in the Amazon CloudWatch API Reference.", + Description: "The unit of the metric. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -510,7 +510,7 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) }, /*END ATTRIBUTE*/ // Property: DisableScaleIn "disable_scale_in": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether scale in by the target tracking scaling policy is disabled. If the value is true, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is false.", + Description: "Indicates whether scale in by the target tracking scaling policy is disabled. If the value is ``true``, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is ``false``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: PredefinedMetricSpecification @@ -518,12 +518,12 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: PredefinedMetricType "predefined_metric_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The metric type. The ALBRequestCountPerTarget metric type applies only to Spot Fleets and ECS services.", + Description: "The metric type. The ``ALBRequestCountPerTarget`` metric type applies only to Spot fleet requests and ECS services.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ResourceLabel "resource_label": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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.", + 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.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -532,12 +532,12 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) }, /*END ATTRIBUTE*/ // Property: ScaleInCooldown "scale_in_cooldown": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start.", + Description: "The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ScaleOutCooldown "scale_out_cooldown": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The amount of time, in seconds, to wait for a previous scale-out activity to take effect.", + Description: "The amount of time, in seconds, to wait for a previous scale-out activity to take effect. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: TargetValue diff --git a/internal/aws/bedrock/flow_alias_singular_data_source_gen.go b/internal/aws/bedrock/flow_alias_singular_data_source_gen.go new file mode 100644 index 0000000000..e708a1df08 --- /dev/null +++ b/internal/aws/bedrock/flow_alias_singular_data_source_gen.go @@ -0,0 +1,227 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package bedrock + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_bedrock_flow_alias", flowAliasDataSource) +} + +// flowAliasDataSource returns the Terraform awscc_bedrock_flow_alias data source. +// This Terraform data source corresponds to the CloudFormation AWS::Bedrock::FlowAlias resource. +func flowAliasDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "description": "Arn of the Flow Alias", + // "maxLength": 2048, + // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}/alias/[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Arn of the Flow Alias", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "Description of the Resource.", + // "maxLength": 200, + // "minLength": 1, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Description of the Resource.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FlowArn + // CloudFormation resource type schema: + // + // { + // "description": "Arn representation of the Flow", + // "maxLength": 2048, + // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "flow_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Arn representation of the Flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FlowId + // CloudFormation resource type schema: + // + // { + // "description": "Identifier for a flow resource.", + // "pattern": "^[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "flow_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Identifier for a flow resource.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "description": "Id for a Flow Alias generated at the server side.", + // "maxLength": 10, + // "minLength": 10, + // "pattern": "^(\\bTSTALIASID\\b|[0-9a-zA-Z]+)$", + // "type": "string" + // } + "flow_alias_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Id for a Flow Alias generated at the server side.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "Name for a resource.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a resource.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RoutingConfiguration + // CloudFormation resource type schema: + // + // { + // "description": "Routing configuration for a Flow alias.", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Details about the routing configuration for a Flow alias.", + // "properties": { + // "FlowVersion": { + // "description": "Version.", + // "maxLength": 1, + // "minLength": 1, + // "pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 1, + // "minItems": 1, + // "type": "array" + // } + "routing_configuration": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FlowVersion + "flow_version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Version.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Routing configuration for a Flow alias.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "A map of tag keys and values", + // "patternProperties": { + // "": { + // "description": "Value of a tag", + // "maxLength": 256, + // "minLength": 0, + // "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + // "type": "string" + // } + // }, + // "type": "object" + // } + "tags": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A map of tag keys and values", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UpdatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "updated_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::Bedrock::FlowAlias", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Bedrock::FlowAlias").WithTerraformTypeName("awscc_bedrock_flow_alias") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "created_at": "CreatedAt", + "description": "Description", + "flow_alias_id": "Id", + "flow_arn": "FlowArn", + "flow_id": "FlowId", + "flow_version": "FlowVersion", + "name": "Name", + "routing_configuration": "RoutingConfiguration", + "tags": "Tags", + "updated_at": "UpdatedAt", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/bedrock/flow_alias_singular_data_source_gen_test.go b/internal/aws/bedrock/flow_alias_singular_data_source_gen_test.go new file mode 100644 index 0000000000..3888817951 --- /dev/null +++ b/internal/aws/bedrock/flow_alias_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package bedrock_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSBedrockFlowAliasDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::FlowAlias", "awscc_bedrock_flow_alias", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSBedrockFlowAliasDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::FlowAlias", "awscc_bedrock_flow_alias", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/bedrock/flow_version_singular_data_source_gen.go b/internal/aws/bedrock/flow_version_singular_data_source_gen.go new file mode 100644 index 0000000000..c1910e7b87 --- /dev/null +++ b/internal/aws/bedrock/flow_version_singular_data_source_gen.go @@ -0,0 +1,1010 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package bedrock + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-jsontypes/jsontypes" + "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_bedrock_flow_version", flowVersionDataSource) +} + +// flowVersionDataSource returns the Terraform awscc_bedrock_flow_version data source. +// This Terraform data source corresponds to the CloudFormation AWS::Bedrock::FlowVersion resource. +func flowVersionDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Definition + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Flow definition", + // "properties": { + // "Connections": { + // "description": "List of connections", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Flow connection", + // "properties": { + // "Configuration": { + // "description": "Connection configuration", + // "properties": { + // "Conditional": { + // "additionalProperties": false, + // "description": "Conditional connection configuration", + // "properties": { + // "Condition": { + // "description": "Name of a condition in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // } + // }, + // "required": [ + // "Condition" + // ], + // "type": "object" + // }, + // "Data": { + // "additionalProperties": false, + // "description": "Data connection configuration", + // "properties": { + // "SourceOutput": { + // "description": "Name of a node output in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // }, + // "TargetInput": { + // "description": "Name of a node input in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // } + // }, + // "required": [ + // "SourceOutput", + // "TargetInput" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "Name": { + // "description": "Name of a connection in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,100}$", + // "type": "string" + // }, + // "Source": { + // "description": "Name of a node in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // }, + // "Target": { + // "description": "Name of a node in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // }, + // "Type": { + // "description": "Connection type", + // "enum": [ + // "Data", + // "Conditional" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "Source", + // "Target", + // "Type" + // ], + // "type": "object" + // }, + // "maxItems": 20, + // "type": "array" + // }, + // "Nodes": { + // "description": "List of nodes in a flow", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Internal mixin for flow node", + // "properties": { + // "Configuration": { + // "description": "Node configuration in a flow", + // "properties": { + // "Condition": { + // "additionalProperties": false, + // "description": "Condition flow node configuration", + // "properties": { + // "Conditions": { + // "description": "List of conditions in a condition node", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Condition branch for a condition node", + // "properties": { + // "Expression": { + // "description": "Expression for a condition in a flow", + // "maxLength": 64, + // "minLength": 1, + // "type": "string" + // }, + // "Name": { + // "description": "Name of a condition in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "maxItems": 5, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "Conditions" + // ], + // "type": "object" + // }, + // "Input": { + // "additionalProperties": false, + // "description": "Input flow node configuration", + // "type": "object" + // }, + // "KnowledgeBase": { + // "additionalProperties": false, + // "description": "Knowledge base flow node configuration", + // "properties": { + // "KnowledgeBaseId": { + // "description": "Identifier of the KnowledgeBase", + // "maxLength": 10, + // "pattern": "^[0-9a-zA-Z]+$", + // "type": "string" + // }, + // "ModelId": { + // "description": "ARN or name of a Bedrock model.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", + // "type": "string" + // } + // }, + // "required": [ + // "KnowledgeBaseId" + // ], + // "type": "object" + // }, + // "LambdaFunction": { + // "additionalProperties": false, + // "description": "Lambda function flow node configuration", + // "properties": { + // "LambdaArn": { + // "description": "ARN of a Lambda.", + // "maxLength": 2048, + // "pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + // "type": "string" + // } + // }, + // "required": [ + // "LambdaArn" + // ], + // "type": "object" + // }, + // "Lex": { + // "additionalProperties": false, + // "description": "Lex flow node configuration", + // "properties": { + // "BotAliasArn": { + // "description": "ARN of a Lex bot alias", + // "maxLength": 78, + // "pattern": "^arn:aws(|-us-gov):lex:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:bot-alias/[0-9a-zA-Z]+/[0-9a-zA-Z]+$", + // "type": "string" + // }, + // "LocaleId": { + // "description": "Lex bot locale id", + // "maxLength": 10, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "BotAliasArn", + // "LocaleId" + // ], + // "type": "object" + // }, + // "Output": { + // "additionalProperties": false, + // "description": "Output flow node configuration", + // "type": "object" + // }, + // "Prompt": { + // "additionalProperties": false, + // "description": "Prompt flow node configuration", + // "properties": { + // "SourceConfiguration": { + // "description": "Prompt source configuration for prompt node", + // "properties": { + // "Inline": { + // "additionalProperties": false, + // "description": "Inline prompt configuration for prompt node", + // "properties": { + // "InferenceConfiguration": { + // "description": "Model inference configuration", + // "properties": { + // "Text": { + // "additionalProperties": false, + // "description": "Prompt model inference configuration", + // "properties": { + // "MaxTokens": { + // "description": "Maximum length of output", + // "maximum": 4096, + // "minimum": 0, + // "type": "number" + // }, + // "StopSequences": { + // "description": "List of stop sequences", + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "maxItems": 4, + // "minItems": 0, + // "type": "array" + // }, + // "Temperature": { + // "description": "Controls randomness, higher values increase diversity", + // "maximum": 1, + // "minimum": 0, + // "type": "number" + // }, + // "TopK": { + // "description": "Sample from the k most likely next tokens", + // "maximum": 500, + // "minimum": 0, + // "type": "number" + // }, + // "TopP": { + // "description": "Cumulative probability cutoff for token selection", + // "maximum": 1, + // "minimum": 0, + // "type": "number" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "ModelId": { + // "description": "ARN or name of a Bedrock model.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + // "type": "string" + // }, + // "TemplateConfiguration": { + // "description": "Prompt template configuration", + // "properties": { + // "Text": { + // "additionalProperties": false, + // "description": "Configuration for text prompt template", + // "properties": { + // "InputVariables": { + // "description": "List of input variables", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Input variable", + // "properties": { + // "Name": { + // "description": "Name for an input variable", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 5, + // "minItems": 0, + // "type": "array" + // }, + // "Text": { + // "description": "Prompt content for String prompt template", + // "maxLength": 200000, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Text" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "TemplateType": { + // "description": "Prompt template type", + // "enum": [ + // "TEXT" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "ModelId", + // "TemplateConfiguration", + // "TemplateType" + // ], + // "type": "object" + // }, + // "Resource": { + // "additionalProperties": false, + // "description": "Resource prompt configuration for prompt node", + // "properties": { + // "PromptArn": { + // "description": "ARN of a prompt resource possibly with a version", + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}(?::[0-9]{1,5})?)$", + // "type": "string" + // } + // }, + // "required": [ + // "PromptArn" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "SourceConfiguration" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "Inputs": { + // "description": "List of node inputs in a flow", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Input to a node in a flow", + // "properties": { + // "Expression": { + // "description": "Expression for a node input in a flow", + // "maxLength": 64, + // "minLength": 1, + // "type": "string" + // }, + // "Name": { + // "description": "Name of a node input in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // }, + // "Type": { + // "description": "Type of input/output for a node in a flow", + // "enum": [ + // "String", + // "Number", + // "Boolean", + // "Object", + // "Array" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Expression", + // "Name", + // "Type" + // ], + // "type": "object" + // }, + // "maxItems": 5, + // "type": "array" + // }, + // "Name": { + // "description": "Name of a node in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // }, + // "Outputs": { + // "description": "List of node outputs in a flow", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Output of a node in a flow", + // "properties": { + // "Name": { + // "description": "Name of a node output in a flow", + // "pattern": "^[a-zA-Z]([_]?[0-9a-zA-Z]){1,50}$", + // "type": "string" + // }, + // "Type": { + // "description": "Type of input/output for a node in a flow", + // "enum": [ + // "String", + // "Number", + // "Boolean", + // "Object", + // "Array" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "Type" + // ], + // "type": "object" + // }, + // "maxItems": 5, + // "type": "array" + // }, + // "Type": { + // "description": "Flow node types", + // "enum": [ + // "Input", + // "Output", + // "KnowledgeBase", + // "Condition", + // "Lex", + // "Prompt", + // "LambdaFunction" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "Type" + // ], + // "type": "object" + // }, + // "maxItems": 20, + // "type": "array" + // } + // }, + // "type": "object" + // } + "definition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Connections + "connections": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Configuration + "configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Conditional + "conditional": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Condition + "condition": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a condition in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Conditional connection configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Data + "data": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SourceOutput + "source_output": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node output in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TargetInput + "target_input": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node input in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Data connection configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Connection configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a connection in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Source + "source": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Target + "target": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Connection type", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of connections", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Nodes + "nodes": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Configuration + "configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Condition + "condition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Conditions + "conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Expression + "expression": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Expression for a condition in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a condition in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of conditions in a condition node", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Condition flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Input + "input": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "Input flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KnowledgeBase + "knowledge_base": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: KnowledgeBaseId + "knowledge_base_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Identifier of the KnowledgeBase", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModelId + "model_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN or name of a Bedrock model.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Knowledge base flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LambdaFunction + "lambda_function": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: LambdaArn + "lambda_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a Lambda.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Lambda function flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Lex + "lex": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BotAliasArn + "bot_alias_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a Lex bot alias", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LocaleId + "locale_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Lex bot locale id", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Lex flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Output + "output": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "Output flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Prompt + "prompt": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SourceConfiguration + "source_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Inline + "inline": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InferenceConfiguration + "inference_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaxTokens + "max_tokens": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Maximum length of output", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: StopSequences + "stop_sequences": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "List of stop sequences", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Temperature + "temperature": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Controls randomness, higher values increase diversity", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TopK + "top_k": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Sample from the k most likely next tokens", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TopP + "top_p": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Cumulative probability cutoff for token selection", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt model inference configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Model inference configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModelId + "model_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN or name of a Bedrock model.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TemplateConfiguration + "template_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InputVariables + "input_variables": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for an input variable", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of input variables", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Text + "text": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Prompt content for String prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configuration for text prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt template configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TemplateType + "template_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Prompt template type", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Inline prompt configuration for prompt node", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Resource + "resource": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PromptArn + "prompt_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a prompt resource possibly with a version", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Resource prompt configuration for prompt node", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt source configuration for prompt node", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt flow node configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Node configuration in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Inputs + "inputs": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Expression + "expression": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Expression for a node input in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node input in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Type of input/output for a node in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of node inputs in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Outputs + "outputs": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a node output in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Type of input/output for a node in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of node outputs in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Flow node types", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of nodes in a flow", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Flow definition", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "Description of the flow version", + // "maxLength": 200, + // "minLength": 1, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Description of the flow version", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ExecutionRoleArn + // CloudFormation resource type schema: + // + // { + // "description": "ARN of a IAM role", + // "maxLength": 2048, + // "pattern": "^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/(service-role/)?.+$", + // "type": "string" + // } + "execution_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a IAM role", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FlowArn + // CloudFormation resource type schema: + // + // { + // "description": "Arn representation of the Flow", + // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:flow/[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "flow_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Arn representation of the Flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FlowId + // CloudFormation resource type schema: + // + // { + // "description": "Identifier for a Flow", + // "pattern": "^[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "flow_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Identifier for a Flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "Name for the flow", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for the flow", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Status + // CloudFormation resource type schema: + // + // { + // "description": "Schema Type for Flow APIs", + // "enum": [ + // "Failed", + // "Prepared", + // "Preparing", + // "NotPrepared" + // ], + // "type": "string" + // } + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Schema Type for Flow APIs", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Version + // CloudFormation resource type schema: + // + // { + // "description": "Numerical Version.", + // "pattern": "^[0-9]{1,5}$", + // "type": "string" + // } + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Numerical Version.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::Bedrock::FlowVersion", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Bedrock::FlowVersion").WithTerraformTypeName("awscc_bedrock_flow_version") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "bot_alias_arn": "BotAliasArn", + "condition": "Condition", + "conditional": "Conditional", + "conditions": "Conditions", + "configuration": "Configuration", + "connections": "Connections", + "created_at": "CreatedAt", + "data": "Data", + "definition": "Definition", + "description": "Description", + "execution_role_arn": "ExecutionRoleArn", + "expression": "Expression", + "flow_arn": "FlowArn", + "flow_id": "FlowId", + "inference_configuration": "InferenceConfiguration", + "inline": "Inline", + "input": "Input", + "input_variables": "InputVariables", + "inputs": "Inputs", + "knowledge_base": "KnowledgeBase", + "knowledge_base_id": "KnowledgeBaseId", + "lambda_arn": "LambdaArn", + "lambda_function": "LambdaFunction", + "lex": "Lex", + "locale_id": "LocaleId", + "max_tokens": "MaxTokens", + "model_id": "ModelId", + "name": "Name", + "nodes": "Nodes", + "output": "Output", + "outputs": "Outputs", + "prompt": "Prompt", + "prompt_arn": "PromptArn", + "resource": "Resource", + "source": "Source", + "source_configuration": "SourceConfiguration", + "source_output": "SourceOutput", + "status": "Status", + "stop_sequences": "StopSequences", + "target": "Target", + "target_input": "TargetInput", + "temperature": "Temperature", + "template_configuration": "TemplateConfiguration", + "template_type": "TemplateType", + "text": "Text", + "top_k": "TopK", + "top_p": "TopP", + "type": "Type", + "version": "Version", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/bedrock/flow_version_singular_data_source_gen_test.go b/internal/aws/bedrock/flow_version_singular_data_source_gen_test.go new file mode 100644 index 0000000000..f379821173 --- /dev/null +++ b/internal/aws/bedrock/flow_version_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package bedrock_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSBedrockFlowVersionDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::FlowVersion", "awscc_bedrock_flow_version", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSBedrockFlowVersionDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::FlowVersion", "awscc_bedrock_flow_version", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/bedrock/knowledge_base_singular_data_source_gen.go b/internal/aws/bedrock/knowledge_base_singular_data_source_gen.go index 7acb848cb8..5be3ba3bbe 100644 --- a/internal/aws/bedrock/knowledge_base_singular_data_source_gen.go +++ b/internal/aws/bedrock/knowledge_base_singular_data_source_gen.go @@ -102,8 +102,28 @@ func knowledgeBaseDataSource(ctx context.Context) (datasource.DataSource, error) // "description": "The ARN of the model used to create vector embeddings for the knowledge base.", // "maxLength": 2048, // "minLength": 20, - // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + // "pattern": "^(arn:aws(-[^:]+)?:[a-z0-9-]+:[a-z0-9-]{1,20}:[0-9]{0,12}:[a-zA-Z0-9-:/._+]+)$", // "type": "string" + // }, + // "EmbeddingModelConfiguration": { + // "additionalProperties": false, + // "description": "The embeddings model configuration details for the vector model used in Knowledge Base.", + // "properties": { + // "BedrockEmbeddingModelConfiguration": { + // "additionalProperties": false, + // "description": "The vector configuration details for the Bedrock embeddings model.", + // "properties": { + // "Dimensions": { + // "description": "The dimensions details for the vector configuration used on the Bedrock embeddings model.", + // "maximum": 4096, + // "minimum": 0, + // "type": "integer" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" // } // }, // "required": [ @@ -133,6 +153,25 @@ func knowledgeBaseDataSource(ctx context.Context) (datasource.DataSource, error) Description: "The ARN of the model used to create vector embeddings for the knowledge base.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: EmbeddingModelConfiguration + "embedding_model_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BedrockEmbeddingModelConfiguration + "bedrock_embedding_model_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Dimensions + "dimensions": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The dimensions details for the vector configuration used on the Bedrock embeddings model.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The vector configuration details for the Bedrock embeddings model.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The embeddings model configuration details for the vector model used in Knowledge Base.", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "Contains details about the model used to create vector embeddings for the knowledge base.", Computed: true, @@ -218,9 +257,94 @@ func knowledgeBaseDataSource(ctx context.Context) (datasource.DataSource, error) // "required": [ // "RdsConfiguration" // ] + // }, + // { + // "required": [ + // "MongoDbAtlasConfiguration" + // ] // } // ], // "properties": { + // "MongoDbAtlasConfiguration": { + // "additionalProperties": false, + // "description": "Contains the storage configuration of the knowledge base in MongoDb Atlas Cloud.", + // "properties": { + // "CollectionName": { + // "description": "Name of the collection within MongoDB Atlas.", + // "maxLength": 63, + // "pattern": "^.*$", + // "type": "string" + // }, + // "CredentialsSecretArn": { + // "description": "The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon Mongo database.", + // "pattern": "^arn:aws(|-cn|-us-gov):secretsmanager:[a-z0-9-]{1,20}:([0-9]{12}|):secret:[a-zA-Z0-9!/_+=.@-]{1,512}$", + // "type": "string" + // }, + // "DatabaseName": { + // "description": "Name of the database within MongoDB Atlas.", + // "maxLength": 63, + // "pattern": "^.*$", + // "type": "string" + // }, + // "Endpoint": { + // "description": "MongoDB Atlas endpoint.", + // "maxLength": 2048, + // "pattern": "^[a-zA-Z0-9_-]+\\.[a-zA-Z0-9_-]+\\.mongodb\\.net$", + // "type": "string" + // }, + // "EndpointServiceName": { + // "description": "MongoDB Atlas endpoint service name.", + // "maxLength": 255, + // "pattern": "^(?:arn:aws(?:-us-gov|-cn|-iso|-iso-[a-z])*:.+:.*:\\d+:.+/.+$|[a-zA-Z0-9*]+[a-zA-Z0-9._-]*)$", + // "type": "string" + // }, + // "FieldMapping": { + // "additionalProperties": false, + // "description": "Contains the names of the fields to which to map information about the vector store.", + // "properties": { + // "MetadataField": { + // "description": "The name of the field in which Amazon Bedrock stores metadata about the vector store.", + // "maxLength": 2048, + // "pattern": "^.*$", + // "type": "string" + // }, + // "TextField": { + // "description": "The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose.", + // "maxLength": 2048, + // "pattern": "^.*$", + // "type": "string" + // }, + // "VectorField": { + // "description": "The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources.", + // "maxLength": 2048, + // "pattern": "^.*$", + // "type": "string" + // } + // }, + // "required": [ + // "VectorField", + // "MetadataField", + // "TextField" + // ], + // "type": "object" + // }, + // "VectorIndexName": { + // "description": "Name of a MongoDB Atlas index.", + // "maxLength": 2048, + // "pattern": "^.*$", + // "type": "string" + // } + // }, + // "required": [ + // "Endpoint", + // "CredentialsSecretArn", + // "DatabaseName", + // "CollectionName", + // "VectorIndexName", + // "FieldMapping" + // ], + // "type": "object" + // }, // "OpensearchServerlessConfiguration": { // "additionalProperties": false, // "description": "Contains the storage configuration of the knowledge base in Amazon OpenSearch Service.", @@ -405,7 +529,8 @@ func knowledgeBaseDataSource(ctx context.Context) (datasource.DataSource, error) // "enum": [ // "OPENSEARCH_SERVERLESS", // "PINECONE", - // "RDS" + // "RDS", + // "MONGO_DB_ATLAS" // ], // "type": "string" // } @@ -417,6 +542,65 @@ func knowledgeBaseDataSource(ctx context.Context) (datasource.DataSource, error) // } "storage_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MongoDbAtlasConfiguration + "mongo_db_atlas_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CollectionName + "collection_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of the collection within MongoDB Atlas.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CredentialsSecretArn + "credentials_secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon Mongo database.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DatabaseName + "database_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of the database within MongoDB Atlas.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Endpoint + "endpoint": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "MongoDB Atlas endpoint.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EndpointServiceName + "endpoint_service_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "MongoDB Atlas endpoint service name.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FieldMapping + "field_mapping": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MetadataField + "metadata_field": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the field in which Amazon Bedrock stores metadata about the vector store.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TextField + "text_field": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: VectorField + "vector_field": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Contains the names of the fields to which to map information about the vector store.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: VectorIndexName + "vector_index_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of a MongoDB Atlas index.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Contains the storage configuration of the knowledge base in MongoDb Atlas Cloud.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: OpensearchServerlessConfiguration "opensearch_serverless_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -609,37 +793,44 @@ func knowledgeBaseDataSource(ctx context.Context) (datasource.DataSource, error) opts = opts.WithCloudFormationTypeName("AWS::Bedrock::KnowledgeBase").WithTerraformTypeName("awscc_bedrock_knowledge_base") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "collection_arn": "CollectionArn", - "connection_string": "ConnectionString", - "created_at": "CreatedAt", - "credentials_secret_arn": "CredentialsSecretArn", - "database_name": "DatabaseName", - "description": "Description", - "embedding_model_arn": "EmbeddingModelArn", - "failure_reasons": "FailureReasons", - "field_mapping": "FieldMapping", - "knowledge_base_arn": "KnowledgeBaseArn", - "knowledge_base_configuration": "KnowledgeBaseConfiguration", - "knowledge_base_id": "KnowledgeBaseId", - "metadata_field": "MetadataField", - "name": "Name", - "namespace": "Namespace", - "opensearch_serverless_configuration": "OpensearchServerlessConfiguration", - "pinecone_configuration": "PineconeConfiguration", - "primary_key_field": "PrimaryKeyField", - "rds_configuration": "RdsConfiguration", - "resource_arn": "ResourceArn", - "role_arn": "RoleArn", - "status": "Status", - "storage_configuration": "StorageConfiguration", - "table_name": "TableName", - "tags": "Tags", - "text_field": "TextField", - "type": "Type", - "updated_at": "UpdatedAt", - "vector_field": "VectorField", - "vector_index_name": "VectorIndexName", - "vector_knowledge_base_configuration": "VectorKnowledgeBaseConfiguration", + "bedrock_embedding_model_configuration": "BedrockEmbeddingModelConfiguration", + "collection_arn": "CollectionArn", + "collection_name": "CollectionName", + "connection_string": "ConnectionString", + "created_at": "CreatedAt", + "credentials_secret_arn": "CredentialsSecretArn", + "database_name": "DatabaseName", + "description": "Description", + "dimensions": "Dimensions", + "embedding_model_arn": "EmbeddingModelArn", + "embedding_model_configuration": "EmbeddingModelConfiguration", + "endpoint": "Endpoint", + "endpoint_service_name": "EndpointServiceName", + "failure_reasons": "FailureReasons", + "field_mapping": "FieldMapping", + "knowledge_base_arn": "KnowledgeBaseArn", + "knowledge_base_configuration": "KnowledgeBaseConfiguration", + "knowledge_base_id": "KnowledgeBaseId", + "metadata_field": "MetadataField", + "mongo_db_atlas_configuration": "MongoDbAtlasConfiguration", + "name": "Name", + "namespace": "Namespace", + "opensearch_serverless_configuration": "OpensearchServerlessConfiguration", + "pinecone_configuration": "PineconeConfiguration", + "primary_key_field": "PrimaryKeyField", + "rds_configuration": "RdsConfiguration", + "resource_arn": "ResourceArn", + "role_arn": "RoleArn", + "status": "Status", + "storage_configuration": "StorageConfiguration", + "table_name": "TableName", + "tags": "Tags", + "text_field": "TextField", + "type": "Type", + "updated_at": "UpdatedAt", + "vector_field": "VectorField", + "vector_index_name": "VectorIndexName", + "vector_knowledge_base_configuration": "VectorKnowledgeBaseConfiguration", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/bedrock/prompt_plural_data_source_gen.go b/internal/aws/bedrock/prompt_plural_data_source_gen.go new file mode 100644 index 0000000000..08ff42f51e --- /dev/null +++ b/internal/aws/bedrock/prompt_plural_data_source_gen.go @@ -0,0 +1,54 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package bedrock + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_bedrock_prompts", promptsDataSource) +} + +// promptsDataSource returns the Terraform awscc_bedrock_prompts data source. +// This Terraform data source corresponds to the CloudFormation AWS::Bedrock::Prompt resource. +func promptsDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ + "id": schema.StringAttribute{ + Description: "Uniquely identifies the data source.", + Computed: true, + }, + "ids": schema.SetAttribute{ + Description: "Set of Resource Identifiers.", + ElementType: types.StringType, + Computed: true, + }, + } + + schema := schema.Schema{ + Description: "Plural Data Source schema for AWS::Bedrock::Prompt", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Bedrock::Prompt").WithTerraformTypeName("awscc_bedrock_prompts") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/bedrock/prompt_plural_data_source_gen_test.go b/internal/aws/bedrock/prompt_plural_data_source_gen_test.go new file mode 100644 index 0000000000..234618e87d --- /dev/null +++ b/internal/aws/bedrock/prompt_plural_data_source_gen_test.go @@ -0,0 +1,27 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package bedrock_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSBedrockPromptsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::Prompt", "awscc_bedrock_prompts", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet(fmt.Sprintf("data.%s", td.ResourceName), "ids.#"), + ), + }, + }) +} diff --git a/internal/aws/bedrock/prompt_singular_data_source_gen.go b/internal/aws/bedrock/prompt_singular_data_source_gen.go new file mode 100644 index 0000000000..13d4524baf --- /dev/null +++ b/internal/aws/bedrock/prompt_singular_data_source_gen.go @@ -0,0 +1,491 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package bedrock + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_bedrock_prompt", promptDataSource) +} + +// promptDataSource returns the Terraform awscc_bedrock_prompt data source. +// This Terraform data source corresponds to the CloudFormation AWS::Bedrock::Prompt resource. +func promptDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "description": "ARN of a prompt resource possibly with a version", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10})$", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a prompt resource possibly with a version", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CustomerEncryptionKeyArn + // CloudFormation resource type schema: + // + // { + // "description": "A KMS key ARN", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + // "type": "string" + // } + "customer_encryption_key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A KMS key ARN", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DefaultVariant + // CloudFormation resource type schema: + // + // { + // "description": "Name for a variant.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + "default_variant": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a variant.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "Name for a prompt resource.", + // "maxLength": 200, + // "minLength": 1, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a prompt resource.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "description": "Identifier for a Prompt", + // "pattern": "^[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Identifier for a Prompt", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "Name for a prompt resource.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a prompt resource.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "A map of tag keys and values", + // "patternProperties": { + // "": { + // "description": "Value of a tag", + // "maxLength": 256, + // "minLength": 0, + // "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + // "type": "string" + // } + // }, + // "type": "object" + // } + "tags": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A map of tag keys and values", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UpdatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "updated_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Variants + // CloudFormation resource type schema: + // + // { + // "description": "List of prompt variants", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Prompt variant", + // "properties": { + // "InferenceConfiguration": { + // "description": "Model inference configuration", + // "properties": { + // "Text": { + // "additionalProperties": false, + // "description": "Prompt model inference configuration", + // "properties": { + // "MaxTokens": { + // "description": "Maximum length of output", + // "maximum": 4096, + // "minimum": 0, + // "type": "number" + // }, + // "StopSequences": { + // "description": "List of stop sequences", + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "maxItems": 4, + // "minItems": 0, + // "type": "array" + // }, + // "Temperature": { + // "description": "Controls randomness, higher values increase diversity", + // "maximum": 1, + // "minimum": 0, + // "type": "number" + // }, + // "TopK": { + // "description": "Sample from the k most likely next tokens", + // "maximum": 500, + // "minimum": 0, + // "type": "number" + // }, + // "TopP": { + // "description": "Cumulative probability cutoff for token selection", + // "maximum": 1, + // "minimum": 0, + // "type": "number" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "ModelId": { + // "description": "ARN or name of a Bedrock model.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + // "type": "string" + // }, + // "Name": { + // "description": "Name for a variant.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // }, + // "TemplateConfiguration": { + // "description": "Prompt template configuration", + // "properties": { + // "Text": { + // "additionalProperties": false, + // "description": "Configuration for text prompt template", + // "properties": { + // "InputVariables": { + // "description": "List of input variables", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Input variable", + // "properties": { + // "Name": { + // "description": "Name for an input variable", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 5, + // "minItems": 0, + // "type": "array" + // }, + // "Text": { + // "description": "Prompt content for String prompt template", + // "maxLength": 200000, + // "minLength": 1, + // "type": "string" + // }, + // "TextS3Location": { + // "additionalProperties": false, + // "description": "The identifier for the S3 resource.", + // "properties": { + // "Bucket": { + // "description": "A bucket in S3", + // "maxLength": 63, + // "minLength": 3, + // "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + // "type": "string" + // }, + // "Key": { + // "description": "A object key in S3", + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // }, + // "Version": { + // "description": "The version of the the S3 object to use", + // "maxLength": 1024, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Bucket", + // "Key" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "TemplateType": { + // "description": "Prompt template type", + // "enum": [ + // "TEXT" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "TemplateType" + // ], + // "type": "object" + // }, + // "maxItems": 3, + // "minItems": 0, + // "type": "array" + // } + "variants": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InferenceConfiguration + "inference_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaxTokens + "max_tokens": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Maximum length of output", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: StopSequences + "stop_sequences": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "List of stop sequences", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Temperature + "temperature": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Controls randomness, higher values increase diversity", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TopK + "top_k": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Sample from the k most likely next tokens", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TopP + "top_p": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Cumulative probability cutoff for token selection", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt model inference configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Model inference configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModelId + "model_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN or name of a Bedrock model.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a variant.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TemplateConfiguration + "template_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InputVariables + "input_variables": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for an input variable", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of input variables", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Text + "text": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Prompt content for String prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TextS3Location + "text_s3_location": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Bucket + "bucket": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A bucket in S3", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A object key in S3", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Version + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The version of the the S3 object to use", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The identifier for the S3 resource.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configuration for text prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt template configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TemplateType + "template_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Prompt template type", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of prompt variants", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Version + // CloudFormation resource type schema: + // + // { + // "description": "Draft Version.", + // "maxLength": 5, + // "minLength": 5, + // "pattern": "^DRAFT$", + // "type": "string" + // } + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Draft Version.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::Bedrock::Prompt", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Bedrock::Prompt").WithTerraformTypeName("awscc_bedrock_prompt") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "bucket": "Bucket", + "created_at": "CreatedAt", + "customer_encryption_key_arn": "CustomerEncryptionKeyArn", + "default_variant": "DefaultVariant", + "description": "Description", + "inference_configuration": "InferenceConfiguration", + "input_variables": "InputVariables", + "key": "Key", + "max_tokens": "MaxTokens", + "model_id": "ModelId", + "name": "Name", + "prompt_id": "Id", + "stop_sequences": "StopSequences", + "tags": "Tags", + "temperature": "Temperature", + "template_configuration": "TemplateConfiguration", + "template_type": "TemplateType", + "text": "Text", + "text_s3_location": "TextS3Location", + "top_k": "TopK", + "top_p": "TopP", + "updated_at": "UpdatedAt", + "variants": "Variants", + "version": "Version", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/bedrock/prompt_singular_data_source_gen_test.go b/internal/aws/bedrock/prompt_singular_data_source_gen_test.go new file mode 100644 index 0000000000..8ff1f3fed8 --- /dev/null +++ b/internal/aws/bedrock/prompt_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package bedrock_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSBedrockPromptDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::Prompt", "awscc_bedrock_prompt", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSBedrockPromptDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::Prompt", "awscc_bedrock_prompt", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/bedrock/prompt_version_singular_data_source_gen.go b/internal/aws/bedrock/prompt_version_singular_data_source_gen.go new file mode 100644 index 0000000000..24f9a03a2b --- /dev/null +++ b/internal/aws/bedrock/prompt_version_singular_data_source_gen.go @@ -0,0 +1,415 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package bedrock + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_bedrock_prompt_version", promptVersionDataSource) +} + +// promptVersionDataSource returns the Terraform awscc_bedrock_prompt_version data source. +// This Terraform data source corresponds to the CloudFormation AWS::Bedrock::PromptVersion resource. +func promptVersionDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "description": "ARN of a prompt version resource", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10}:[0-9]{1,20})$", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a prompt version resource", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DefaultVariant + // CloudFormation resource type schema: + // + // { + // "description": "Name for a variant.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + "default_variant": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a variant.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "Description for a prompt version resource.", + // "maxLength": 200, + // "minLength": 1, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Description for a prompt version resource.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "Name for a prompt resource.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a prompt resource.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PromptArn + // CloudFormation resource type schema: + // + // { + // "description": "ARN of a prompt resource possibly with a version", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:[0-9]{12}:prompt/[0-9a-zA-Z]{10})$", + // "type": "string" + // } + "prompt_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of a prompt resource possibly with a version", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PromptId + // CloudFormation resource type schema: + // + // { + // "description": "Identifier for a Prompt", + // "pattern": "^[0-9a-zA-Z]{10}$", + // "type": "string" + // } + "prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Identifier for a Prompt", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UpdatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp.", + // "format": "date-time", + // "type": "string" + // } + "updated_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Variants + // CloudFormation resource type schema: + // + // { + // "description": "List of prompt variants", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Prompt variant", + // "properties": { + // "InferenceConfiguration": { + // "description": "Model inference configuration", + // "properties": { + // "Text": { + // "additionalProperties": false, + // "description": "Prompt model inference configuration", + // "properties": { + // "MaxTokens": { + // "description": "Maximum length of output", + // "maximum": 4096, + // "minimum": 0, + // "type": "number" + // }, + // "StopSequences": { + // "description": "List of stop sequences", + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "maxItems": 4, + // "minItems": 0, + // "type": "array" + // }, + // "Temperature": { + // "description": "Controls randomness, higher values increase diversity", + // "maximum": 1, + // "minimum": 0, + // "type": "number" + // }, + // "TopK": { + // "description": "Sample from the k most likely next tokens", + // "maximum": 500, + // "minimum": 0, + // "type": "number" + // }, + // "TopP": { + // "description": "Cumulative probability cutoff for token selection", + // "maximum": 1, + // "minimum": 0, + // "type": "number" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "ModelId": { + // "description": "ARN or name of a Bedrock model.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + // "type": "string" + // }, + // "Name": { + // "description": "Name for a variant.", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // }, + // "TemplateConfiguration": { + // "description": "Prompt template configuration", + // "properties": { + // "Text": { + // "additionalProperties": false, + // "description": "Configuration for text prompt template", + // "properties": { + // "InputVariables": { + // "description": "List of input variables", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "Input variable", + // "properties": { + // "Name": { + // "description": "Name for an input variable", + // "pattern": "^([0-9a-zA-Z][_-]?){1,100}$", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 5, + // "minItems": 1, + // "type": "array" + // }, + // "Text": { + // "description": "Prompt content for String prompt template", + // "maxLength": 200000, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Text" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "TemplateType": { + // "description": "Prompt template type", + // "enum": [ + // "TEXT" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "TemplateType" + // ], + // "type": "object" + // }, + // "maxItems": 3, + // "minItems": 1, + // "type": "array" + // } + "variants": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InferenceConfiguration + "inference_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaxTokens + "max_tokens": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Maximum length of output", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: StopSequences + "stop_sequences": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "List of stop sequences", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Temperature + "temperature": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Controls randomness, higher values increase diversity", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TopK + "top_k": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Sample from the k most likely next tokens", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TopP + "top_p": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Cumulative probability cutoff for token selection", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt model inference configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Model inference configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModelId + "model_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN or name of a Bedrock model.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for a variant.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TemplateConfiguration + "template_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InputVariables + "input_variables": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name for an input variable", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of input variables", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Text + "text": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Prompt content for String prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Configuration for text prompt template", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Prompt template configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TemplateType + "template_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Prompt template type", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of prompt variants", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Version + // CloudFormation resource type schema: + // + // { + // "description": "Version.", + // "maxLength": 5, + // "minLength": 1, + // "pattern": "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + // "type": "string" + // } + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Version.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::Bedrock::PromptVersion", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Bedrock::PromptVersion").WithTerraformTypeName("awscc_bedrock_prompt_version") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "created_at": "CreatedAt", + "default_variant": "DefaultVariant", + "description": "Description", + "inference_configuration": "InferenceConfiguration", + "input_variables": "InputVariables", + "max_tokens": "MaxTokens", + "model_id": "ModelId", + "name": "Name", + "prompt_arn": "PromptArn", + "prompt_id": "PromptId", + "stop_sequences": "StopSequences", + "temperature": "Temperature", + "template_configuration": "TemplateConfiguration", + "template_type": "TemplateType", + "text": "Text", + "top_k": "TopK", + "top_p": "TopP", + "updated_at": "UpdatedAt", + "variants": "Variants", + "version": "Version", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/bedrock/prompt_version_singular_data_source_gen_test.go b/internal/aws/bedrock/prompt_version_singular_data_source_gen_test.go new file mode 100644 index 0000000000..587e3c3b53 --- /dev/null +++ b/internal/aws/bedrock/prompt_version_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package bedrock_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSBedrockPromptVersionDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::PromptVersion", "awscc_bedrock_prompt_version", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSBedrockPromptVersionDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::PromptVersion", "awscc_bedrock_prompt_version", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/dms/replication_config_singular_data_source_gen_test.go b/internal/aws/dms/replication_config_singular_data_source_gen_test.go index 0fd265ad7e..85a85aa799 100644 --- a/internal/aws/dms/replication_config_singular_data_source_gen_test.go +++ b/internal/aws/dms/replication_config_singular_data_source_gen_test.go @@ -6,7 +6,6 @@ package dms_test import ( - "fmt" "regexp" "testing" @@ -19,11 +18,8 @@ func TestAccAWSDMSReplicationConfigDataSource_basic(t *testing.T) { td.DataSourceTest(t, []resource.TestStep{ { - Config: td.DataSourceWithEmptyResourceConfig(), - Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttrPair(fmt.Sprintf("data.%s", td.ResourceName), "id", td.ResourceName, "id"), - resource.TestCheckResourceAttrPair(fmt.Sprintf("data.%s", td.ResourceName), "arn", td.ResourceName, "arn"), - ), + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), }, }) } diff --git a/internal/aws/ec2/eip_association_singular_data_source_gen.go b/internal/aws/ec2/eip_association_singular_data_source_gen.go index c46e7156b2..df69a769ec 100644 --- a/internal/aws/ec2/eip_association_singular_data_source_gen.go +++ b/internal/aws/ec2/eip_association_singular_data_source_gen.go @@ -26,66 +26,66 @@ func eIPAssociationDataSource(ctx context.Context) (datasource.DataSource, error // CloudFormation resource type schema: // // { - // "description": "The allocation ID. This is required for EC2-VPC.", + // "description": "The allocation ID. This is required.", // "type": "string" // } "allocation_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The allocation ID. This is required for EC2-VPC.", + Description: "The allocation ID. This is required.", Computed: true, }, /*END ATTRIBUTE*/ // Property: EIP // CloudFormation resource type schema: // // { - // "description": "The Elastic IP address to associate with the instance.", + // "description": "", // "type": "string" // } "eip": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Elastic IP address to associate with the instance.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Id // CloudFormation resource type schema: // // { - // "description": "Composite ID of non-empty properties, to determine the identification.", + // "description": "", // "type": "string" // } "eip_association_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Composite ID of non-empty properties, to determine the identification.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: InstanceId // CloudFormation resource type schema: // // { - // "description": "The ID of the instance.", + // "description": "The ID of the instance. The instance must have exactly one attached network interface. You can specify either the instance ID or the network interface ID, but not both.", // "type": "string" // } "instance_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the instance.", + Description: "The ID of the instance. The instance must have exactly one attached network interface. You can specify either the instance ID or the network interface ID, but not both.", Computed: true, }, /*END ATTRIBUTE*/ // Property: NetworkInterfaceId // CloudFormation resource type schema: // // { - // "description": "The ID of the network interface.", + // "description": "The ID of the network interface. If the instance has more than one network interface, you must specify a network interface ID.\n You can specify either the instance ID or the network interface ID, but not both.", // "type": "string" // } "network_interface_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the network interface.", + Description: "The ID of the network interface. If the instance has more than one network interface, you must specify a network interface ID.\n You can specify either the instance ID or the network interface ID, but not both.", Computed: true, }, /*END ATTRIBUTE*/ // Property: PrivateIpAddress // CloudFormation resource type schema: // // { - // "description": "The primary or secondary private IP address to associate with the Elastic IP address.", + // "description": "The primary or secondary private IP address to associate with the Elastic IP address. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address.", // "type": "string" // } "private_ip_address": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The primary or secondary private IP address to associate with the Elastic IP address.", + Description: "The primary or secondary private IP address to associate with the Elastic IP address. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address.", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/ec2/launch_template_singular_data_source_gen.go b/internal/aws/ec2/launch_template_singular_data_source_gen.go index 5b47164cb0..8f6201ebba 100644 --- a/internal/aws/ec2/launch_template_singular_data_source_gen.go +++ b/internal/aws/ec2/launch_template_singular_data_source_gen.go @@ -143,7 +143,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // }, // "CpuOptions": { // "additionalProperties": false, - // "description": "The CPU options for the instance. For more information, see [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "The CPU options for the instance. For more information, see [Optimize CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon EC2 User Guide*.", // "properties": { // "AmdSevSnp": { // "description": "Indicates whether to enable the instance for AMD SEV-SNP. AMD SEV-SNP is supported with M6a, R6a, and C6a instance types only. For more information, see [AMD SEV-SNP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sev-snp.html).", @@ -176,7 +176,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "type": "object" // }, // "DisableApiStop": { - // "description": "Indicates whether to enable the instance for stop protection. For more information, see [Stop protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "Indicates whether to enable the instance for stop protection. For more information, see [Enable stop protection for your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-stop-protection.html) in the *Amazon EC2 User Guide*.", // "type": "boolean" // }, // "DisableApiTermination": { @@ -194,7 +194,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "description": "Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances.\n Specifies a specification for an Elastic GPU for an Amazon EC2 launch template.\n ``ElasticGpuSpecification`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", // "properties": { // "Type": { - // "description": "The type of Elastic Graphics accelerator. For more information about the values to specify for ``Type``, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*.", + // "description": "The type of Elastic Graphics accelerator.", // "type": "string" // } // }, @@ -236,7 +236,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // }, // "HibernationOptions": { // "additionalProperties": false, - // "description": "Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your Amazon EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon EC2 User Guide*.", // "properties": { // "Configured": { // "description": "If you set this parameter to ``true``, the instance is enabled for hibernation.\n Default: ``false``", @@ -433,7 +433,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "uniqueItems": false // }, // "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 ``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 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``.", + // "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" // }, // "MemoryGiBPerVCpu": { @@ -542,7 +542,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "type": "object" // }, // "InstanceType": { - // "description": "The instance type. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon Elastic Compute Cloud User Guide*.\n If you specify ``InstanceType``, you can't specify ``InstanceRequirements``.", + // "description": "The instance type. For more information, see [Amazon EC2 instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*.\n If you specify ``InstanceType``, you can't specify ``InstanceRequirements``.", // "type": "string" // }, // "KernelId": { @@ -582,7 +582,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // }, // "MetadataOptions": { // "additionalProperties": false, - // "description": "The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon EC2 User Guide*.", // "properties": { // "HttpEndpoint": { // "description": "Enables or disables the HTTP metadata endpoint on your instances. If the parameter is not specified, the default state is ``enabled``.\n If you specify a value of ``disabled``, you will not be able to access your instance metadata.", @@ -694,7 +694,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "uniqueItems": false // }, // "InterfaceType": { - // "description": "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon Elastic Compute Cloud User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", + // "description": "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon EC2 User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", // "type": "string" // }, // "Ipv4PrefixCount": { @@ -708,7 +708,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "description": "Specifies an IPv4 prefix for a network interface.\n ``Ipv4PrefixSpecification`` is a property of [AWS::EC2::LaunchTemplate NetworkInterface](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html).", // "properties": { // "Ipv4Prefix": { - // "description": "The IPv4 prefix. For information, see [Assigning prefixes to Amazon EC2 network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "The IPv4 prefix. For information, see [Assigning prefixes to network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon EC2 User Guide*.", // "type": "string" // } // }, @@ -870,7 +870,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "type": "object" // }, // "RamDiskId": { - // "description": "The ID of the RAM disk.\n We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon Elastic Compute Cloud User Guide*.", + // "description": "The ID of the RAM disk.\n We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*.", // "type": "string" // }, // "SecurityGroupIds": { @@ -896,7 +896,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "description": "Specifies the tags to apply to a resource when the resource is created for the launch template.\n ``TagSpecification`` is a property type of [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications). [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications) is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", // "properties": { // "ResourceType": { - // "description": "The type of resource to tag.\n Valid Values lists all resource types for Amazon EC2 that can be tagged. When you create a launch template, you can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).", + // "description": "The type of resource to tag. You can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).", // "type": "string" // }, // "Tags": { @@ -930,7 +930,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "uniqueItems": false // }, // "UserData": { - // "description": "The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) (Linux) or [Work with instance user data](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instancedata-add-user-data.html) (Windows) in the *Amazon Elastic Compute Cloud User Guide*.\n If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*.", + // "description": "The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Amazon EC2 instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) in the *Amazon EC2 User Guide*.\n If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*.", // "type": "string" // } // }, @@ -1057,7 +1057,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The CPU options for the instance. For more information, see [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "The CPU options for the instance. For more information, see [Optimize CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon EC2 User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: CreditSpecification @@ -1074,7 +1074,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error }, /*END ATTRIBUTE*/ // Property: DisableApiStop "disable_api_stop": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Indicates whether to enable the instance for stop protection. For more information, see [Stop protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "Indicates whether to enable the instance for stop protection. For more information, see [Enable stop protection for your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-stop-protection.html) in the *Amazon EC2 User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: DisableApiTermination @@ -1093,7 +1093,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Type "type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of Elastic Graphics accelerator. For more information about the values to specify for ``Type``, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*.", + Description: "The type of Elastic Graphics accelerator.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -1141,7 +1141,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your Amazon EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon EC2 User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: IamInstanceProfile @@ -1334,7 +1334,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error }, /*END ATTRIBUTE*/ // Property: MaxSpotPriceAsPercentageOfOptimalOnDemandPrice "max_spot_price_as_percentage_of_optimal_on_demand_price": schema.Int64Attribute{ /*START ATTRIBUTE*/ - 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 ``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 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``.", + 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``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: MemoryGiBPerVCpu @@ -1460,7 +1460,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error }, /*END ATTRIBUTE*/ // Property: InstanceType "instance_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The instance type. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon Elastic Compute Cloud User Guide*.\n If you specify ``InstanceType``, you can't specify ``InstanceRequirements``.", + Description: "The instance type. For more information, see [Amazon EC2 instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*.\n If you specify ``InstanceType``, you can't specify ``InstanceRequirements``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: KernelId @@ -1528,7 +1528,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon EC2 User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Monitoring @@ -1626,7 +1626,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error }, /*END ATTRIBUTE*/ // Property: InterfaceType "interface_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon Elastic Compute Cloud User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", + Description: "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon EC2 User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", Computed: true, }, /*END ATTRIBUTE*/ // Property: Ipv4PrefixCount @@ -1640,7 +1640,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Ipv4Prefix "ipv_4_prefix": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The IPv4 prefix. For information, see [Assigning prefixes to Amazon EC2 network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "The IPv4 prefix. For information, see [Assigning prefixes to network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon EC2 User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -1816,7 +1816,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error }, /*END ATTRIBUTE*/ // Property: RamDiskId "ram_disk_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the RAM disk.\n We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon Elastic Compute Cloud User Guide*.", + Description: "The ID of the RAM disk.\n We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: SecurityGroupIds @@ -1837,7 +1837,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: ResourceType "resource_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of resource to tag.\n Valid Values lists all resource types for Amazon EC2 that can be tagged. When you create a launch template, you can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).", + Description: "The type of resource to tag. You can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).", Computed: true, }, /*END ATTRIBUTE*/ // Property: Tags @@ -1866,7 +1866,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error }, /*END ATTRIBUTE*/ // Property: UserData "user_data": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) (Linux) or [Work with instance user data](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instancedata-add-user-data.html) (Windows) in the *Amazon Elastic Compute Cloud User Guide*.\n If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*.", + Description: "The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Amazon EC2 instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) in the *Amazon EC2 User Guide*.\n If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -1905,7 +1905,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "description": "Specifies the tags to apply to the launch template during creation.\n ``LaunchTemplateTagSpecification`` is a property of [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html).", // "properties": { // "ResourceType": { - // "description": "The type of resource. To tag the launch template, ``ResourceType`` must be ``launch-template``.", + // "description": "The type of resource. To tag a launch template, ``ResourceType`` must be ``launch-template``.", // "type": "string" // }, // "Tags": { @@ -1943,7 +1943,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: ResourceType "resource_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of resource. To tag the launch template, ``ResourceType`` must be ``launch-template``.", + Description: "The type of resource. To tag a launch template, ``ResourceType`` must be ``launch-template``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Tags diff --git a/internal/aws/ec2/network_interface_attachment_singular_data_source_gen.go b/internal/aws/ec2/network_interface_attachment_singular_data_source_gen.go index 7ae32f7505..a4a677e5a0 100644 --- a/internal/aws/ec2/network_interface_attachment_singular_data_source_gen.go +++ b/internal/aws/ec2/network_interface_attachment_singular_data_source_gen.go @@ -26,11 +26,11 @@ func networkInterfaceAttachmentDataSource(ctx context.Context) (datasource.DataS // CloudFormation resource type schema: // // { - // "description": "The ID of the network interface attachment.", + // "description": "", // "type": "string" // } "attachment_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the network interface attachment.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: DeleteOnTermination @@ -38,22 +38,22 @@ func networkInterfaceAttachmentDataSource(ctx context.Context) (datasource.DataS // // { // "default": true, - // "description": "Whether to delete the network interface when the instance terminates. By default, this value is set to true.", + // "description": "Whether to delete the network interface when the instance terminates. By default, this value is set to ``true``.", // "type": "boolean" // } "delete_on_termination": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Whether to delete the network interface when the instance terminates. By default, this value is set to true.", + Description: "Whether to delete the network interface when the instance terminates. By default, this value is set to ``true``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: DeviceIndex // CloudFormation resource type schema: // // { - // "description": "The network interface's position in the attachment order. For example, the first attached network interface has a DeviceIndex of 0.", + // "description": "The network interface's position in the attachment order. For example, the first attached network interface has a ``DeviceIndex`` of 0.", // "type": "string" // } "device_index": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The network interface's position in the attachment order. For example, the first attached network interface has a DeviceIndex of 0.", + Description: "The network interface's position in the attachment order. For example, the first attached network interface has a ``DeviceIndex`` of 0.", Computed: true, }, /*END ATTRIBUTE*/ // Property: EnaSrdSpecification @@ -61,12 +61,15 @@ func networkInterfaceAttachmentDataSource(ctx context.Context) (datasource.DataS // // { // "additionalProperties": false, + // "description": "Configures ENA Express for the network interface that this action attaches to the instance.", // "properties": { // "EnaSrdEnabled": { + // "description": "Indicates whether ENA Express is enabled for the network interface.", // "type": "boolean" // }, // "EnaSrdUdpSpecification": { // "additionalProperties": false, + // "description": "Configures ENA Express for UDP network traffic.", // "properties": { // "EnaSrdUdpEnabled": { // "type": "boolean" @@ -81,7 +84,8 @@ func networkInterfaceAttachmentDataSource(ctx context.Context) (datasource.DataS Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: EnaSrdEnabled "ena_srd_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "Indicates whether ENA Express is enabled for the network interface.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: EnaSrdUdpSpecification "ena_srd_udp_specification": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ @@ -91,10 +95,12 @@ func networkInterfaceAttachmentDataSource(ctx context.Context) (datasource.DataS Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Computed: true, + Description: "Configures ENA Express for UDP network traffic.", + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Computed: true, + Description: "Configures ENA Express for the network interface that this action attaches to the instance.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: InstanceId // CloudFormation resource type schema: diff --git a/internal/aws/ecr/repository_creation_template_singular_data_source_gen.go b/internal/aws/ecr/repository_creation_template_singular_data_source_gen.go index 41d5f6506b..ef24b47528 100644 --- a/internal/aws/ecr/repository_creation_template_singular_data_source_gen.go +++ b/internal/aws/ecr/repository_creation_template_singular_data_source_gen.go @@ -56,6 +56,19 @@ func repositoryCreationTemplateDataSource(ctx context.Context) (datasource.DataS Description: "Create timestamp of the template.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: CustomRoleArn + // CloudFormation resource type schema: + // + // { + // "description": "The ARN of the role to be assumed by ECR. This role must be in the same account as the registry that you are configuring.", + // "maxLength": 2048, + // "pattern": "^arn:aws[-a-z0-9]*:iam::[0-9]{12}:role/[A-Za-z0-9+=,-.@_]*$", + // "type": "string" + // } + "custom_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the role to be assumed by ECR. This role must be in the same account as the registry that you are configuring.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Description // CloudFormation resource type schema: // @@ -246,6 +259,7 @@ func repositoryCreationTemplateDataSource(ctx context.Context) (datasource.DataS opts = opts.WithAttributeNameMap(map[string]string{ "applied_for": "AppliedFor", "created_at": "CreatedAt", + "custom_role_arn": "CustomRoleArn", "description": "Description", "encryption_configuration": "EncryptionConfiguration", "encryption_type": "EncryptionType", diff --git a/internal/aws/ecr/repository_singular_data_source_gen.go b/internal/aws/ecr/repository_singular_data_source_gen.go index b69f018b36..d94e9dcb4d 100644 --- a/internal/aws/ecr/repository_singular_data_source_gen.go +++ b/internal/aws/ecr/repository_singular_data_source_gen.go @@ -52,7 +52,7 @@ func repositoryDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "The encryption configuration for the repository. This determines how the contents of your repository are encrypted at rest.", // "properties": { // "EncryptionType": { - // "description": "The encryption type to use.\n If you use the ``KMS`` encryption type, the contents of the repository will be encrypted using server-side encryption with KMSlong key stored in KMS. When you use KMS to encrypt your data, you can either use the default AWS managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see [Protecting data using server-side encryption with an key stored in (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*.\n If you use the ``AES256`` encryption type, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts the images in the repository using an AES-256 encryption algorithm. For more information, see [Protecting data using server-side encryption with Amazon S3-managed encryption keys (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) in the *Ama", + // "description": "The encryption type to use.\n If you use the ``KMS`` encryption type, the contents of the repository will be encrypted using server-side encryption with KMSlong key stored in KMS. When you use KMS to encrypt your data, you can either use the default AWS managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see [Protecting data using server-side encryption with an key stored in (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*.\n If you use the ``AES256`` encryption type, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts the images in the repository using an AES-256 encryption algorithm. For more information, see [Protecting data using server-side encryption with Amazon S3-managed encryption keys (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*.", // "enum": [ // "AES256", // "KMS" @@ -75,7 +75,7 @@ func repositoryDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: EncryptionType "encryption_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The encryption type to use.\n If you use the ``KMS`` encryption type, the contents of the repository will be encrypted using server-side encryption with KMSlong key stored in KMS. When you use KMS to encrypt your data, you can either use the default AWS managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see [Protecting data using server-side encryption with an key stored in (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*.\n If you use the ``AES256`` encryption type, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts the images in the repository using an AES-256 encryption algorithm. For more information, see [Protecting data using server-side encryption with Amazon S3-managed encryption keys (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) in the *Ama", + Description: "The encryption type to use.\n If you use the ``KMS`` encryption type, the contents of the repository will be encrypted using server-side encryption with KMSlong key stored in KMS. When you use KMS to encrypt your data, you can either use the default AWS managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see [Protecting data using server-side encryption with an key stored in (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*.\n If you use the ``AES256`` encryption type, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts the images in the repository using an AES-256 encryption algorithm. For more information, see [Protecting data using server-side encryption with Amazon S3-managed encryption keys (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: KmsKey diff --git a/internal/aws/eks/cluster_singular_data_source_gen.go b/internal/aws/eks/cluster_singular_data_source_gen.go index b004798e18..f29215883a 100644 --- a/internal/aws/eks/cluster_singular_data_source_gen.go +++ b/internal/aws/eks/cluster_singular_data_source_gen.go @@ -546,6 +546,35 @@ func clusterDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "An array of key-value pairs to apply to this resource.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: UpgradePolicy + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "An object representing the Upgrade Policy to use for the cluster.", + // "properties": { + // "SupportType": { + // "description": "Specify the support type for your cluster.", + // "enum": [ + // "STANDARD", + // "EXTENDED" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // } + "upgrade_policy": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SupportType + "support_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specify the support type for your cluster.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "An object representing the Upgrade Policy to use for the cluster.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Version // CloudFormation resource type schema: // @@ -611,8 +640,10 @@ func clusterDataSource(ctx context.Context) (datasource.DataSource, error) { "service_ipv_4_cidr": "ServiceIpv4Cidr", "service_ipv_6_cidr": "ServiceIpv6Cidr", "subnet_ids": "SubnetIds", + "support_type": "SupportType", "tags": "Tags", "type": "Type", + "upgrade_policy": "UpgradePolicy", "value": "Value", "version": "Version", }) diff --git a/internal/aws/entityresolution/id_mapping_workflow_singular_data_source_gen.go b/internal/aws/entityresolution/id_mapping_workflow_singular_data_source_gen.go index a9e679dfc0..17f753518c 100644 --- a/internal/aws/entityresolution/id_mapping_workflow_singular_data_source_gen.go +++ b/internal/aws/entityresolution/id_mapping_workflow_singular_data_source_gen.go @@ -91,7 +91,7 @@ func idMappingWorkflowDataSource(ctx context.Context) (datasource.DataSource, er // }, // "ProviderServiceArn": { // "description": "Arn of the Provider Service being used.", - // "pattern": "^arn:(aws|aws-us-gov|aws-cn):entityresolution:([A-Za-z0-9]+(-[A-Za-z0-9]+)+)::providerservice/[A-Za-z0-9]+/[A-Za-z0-9]+$", + // "pattern": "^arn:(aws|aws-us-gov|aws-cn):(entityresolution):([a-z]{2}-[a-z]{1,10}-[0-9])::providerservice/([a-zA-Z0-9_-]{1,255})/([a-zA-Z0-9_-]{1,255})$", // "type": "string" // } // }, diff --git a/internal/aws/fms/policy_singular_data_source_gen.go b/internal/aws/fms/policy_singular_data_source_gen.go index cfdd7ea4aa..dc60545aae 100644 --- a/internal/aws/fms/policy_singular_data_source_gen.go +++ b/internal/aws/fms/policy_singular_data_source_gen.go @@ -306,7 +306,7 @@ func policyDataSource(ctx context.Context) (datasource.DataSource, error) { // "properties": { // "ManagedServiceData": { // "description": "Firewall managed service data.", - // "maxLength": 8192, + // "maxLength": 30000, // "minLength": 1, // "type": "string" // }, diff --git a/internal/aws/globalaccelerator/cross_account_attachment_singular_data_source_gen.go b/internal/aws/globalaccelerator/cross_account_attachment_singular_data_source_gen.go index 962aac9041..eedc86d2ff 100644 --- a/internal/aws/globalaccelerator/cross_account_attachment_singular_data_source_gen.go +++ b/internal/aws/globalaccelerator/cross_account_attachment_singular_data_source_gen.go @@ -72,6 +72,9 @@ func crossAccountAttachmentDataSource(ctx context.Context) (datasource.DataSourc // "additionalProperties": false, // "description": "ARN of resource to share.", // "properties": { + // "Cidr": { + // "type": "string" + // }, // "EndpointId": { // "type": "string" // }, @@ -79,9 +82,6 @@ func crossAccountAttachmentDataSource(ctx context.Context) (datasource.DataSourc // "type": "string" // } // }, - // "required": [ - // "EndpointId" - // ], // "type": "object" // }, // "type": "array" @@ -89,6 +89,10 @@ func crossAccountAttachmentDataSource(ctx context.Context) (datasource.DataSourc "resources": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Cidr + "cidr": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: EndpointId "endpoint_id": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, @@ -166,6 +170,7 @@ func crossAccountAttachmentDataSource(ctx context.Context) (datasource.DataSourc opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ "attachment_arn": "AttachmentArn", + "cidr": "Cidr", "endpoint_id": "EndpointId", "key": "Key", "name": "Name", diff --git a/internal/aws/glue/trigger_plural_data_source_gen.go b/internal/aws/glue/trigger_plural_data_source_gen.go new file mode 100644 index 0000000000..89806a95ed --- /dev/null +++ b/internal/aws/glue/trigger_plural_data_source_gen.go @@ -0,0 +1,54 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package glue + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_glue_triggers", triggersDataSource) +} + +// triggersDataSource returns the Terraform awscc_glue_triggers data source. +// This Terraform data source corresponds to the CloudFormation AWS::Glue::Trigger resource. +func triggersDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ + "id": schema.StringAttribute{ + Description: "Uniquely identifies the data source.", + Computed: true, + }, + "ids": schema.SetAttribute{ + Description: "Set of Resource Identifiers.", + ElementType: types.StringType, + Computed: true, + }, + } + + schema := schema.Schema{ + Description: "Plural Data Source schema for AWS::Glue::Trigger", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Glue::Trigger").WithTerraformTypeName("awscc_glue_triggers") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/glue/trigger_plural_data_source_gen_test.go b/internal/aws/glue/trigger_plural_data_source_gen_test.go new file mode 100644 index 0000000000..3e9094f564 --- /dev/null +++ b/internal/aws/glue/trigger_plural_data_source_gen_test.go @@ -0,0 +1,27 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package glue_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSGlueTriggersDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Glue::Trigger", "awscc_glue_triggers", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet(fmt.Sprintf("data.%s", td.ResourceName), "ids.#"), + ), + }, + }) +} diff --git a/internal/aws/glue/trigger_singular_data_source_gen.go b/internal/aws/glue/trigger_singular_data_source_gen.go new file mode 100644 index 0000000000..325eddd760 --- /dev/null +++ b/internal/aws/glue/trigger_singular_data_source_gen.go @@ -0,0 +1,374 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package glue + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-jsontypes/jsontypes" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_glue_trigger", triggerDataSource) +} + +// triggerDataSource returns the Terraform awscc_glue_trigger data source. +// This Terraform data source corresponds to the CloudFormation AWS::Glue::Trigger resource. +func triggerDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Actions + // CloudFormation resource type schema: + // + // { + // "description": "The actions initiated by this trigger.", + // "items": { + // "additionalProperties": false, + // "description": "The actions initiated by this trigger.", + // "properties": { + // "Arguments": { + // "description": "The job arguments used when this trigger fires. For this job run, they replace the default arguments set in the job definition itself.", + // "type": "object" + // }, + // "CrawlerName": { + // "description": "The name of the crawler to be used with this action.", + // "type": "string" + // }, + // "JobName": { + // "description": "The name of a job to be executed.", + // "type": "string" + // }, + // "NotificationProperty": { + // "additionalProperties": false, + // "description": "Specifies configuration properties of a job run notification.", + // "properties": { + // "NotifyDelayAfter": { + // "description": "After a job run starts, the number of minutes to wait before sending a job run delay notification", + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "SecurityConfiguration": { + // "description": "The name of the SecurityConfiguration structure to be used with this action.", + // "type": "string" + // }, + // "Timeout": { + // "description": "The JobRun timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. The default is 2,880 minutes (48 hours). This overrides the timeout value set in the parent job.", + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + "actions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arguments + "arguments": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "The job arguments used when this trigger fires. For this job run, they replace the default arguments set in the job definition itself.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CrawlerName + "crawler_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the crawler to be used with this action.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: JobName + "job_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of a job to be executed.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: NotificationProperty + "notification_property": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: NotifyDelayAfter + "notify_delay_after": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "After a job run starts, the number of minutes to wait before sending a job run delay notification", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies configuration properties of a job run notification.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SecurityConfiguration + "security_configuration": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the SecurityConfiguration structure to be used with this action.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Timeout + "timeout": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The JobRun timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. The default is 2,880 minutes (48 hours). This overrides the timeout value set in the parent job.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The actions initiated by this trigger.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "A description of this trigger.", + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A description of this trigger.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EventBatchingCondition + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Batch condition that must be met (specified number of events received or batch time window expired) before EventBridge event trigger fires.", + // "properties": { + // "BatchSize": { + // "description": "Number of events that must be received from Amazon EventBridge before EventBridge event trigger fires.", + // "type": "integer" + // }, + // "BatchWindow": { + // "description": "Window of time in seconds after which EventBridge event trigger fires. Window starts when first event is received.", + // "type": "integer" + // } + // }, + // "required": [ + // "BatchSize" + // ], + // "type": "object" + // } + "event_batching_condition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BatchSize + "batch_size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Number of events that must be received from Amazon EventBridge before EventBridge event trigger fires.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: BatchWindow + "batch_window": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Window of time in seconds after which EventBridge event trigger fires. Window starts when first event is received.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Batch condition that must be met (specified number of events received or batch time window expired) before EventBridge event trigger fires.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "The name of the trigger.", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the trigger.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Predicate + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The predicate of this trigger, which defines when it will fire.", + // "properties": { + // "Conditions": { + // "description": "A list of the conditions that determine when the trigger will fire.", + // "items": { + // "additionalProperties": false, + // "description": "Defines a condition under which a trigger fires.", + // "properties": { + // "CrawlState": { + // "description": "The state of the crawler to which this condition applies.", + // "type": "string" + // }, + // "CrawlerName": { + // "description": "The name of the crawler to which this condition applies.", + // "type": "string" + // }, + // "JobName": { + // "description": "The name of the job whose JobRuns this condition applies to, and on which this trigger waits.", + // "type": "string" + // }, + // "LogicalOperator": { + // "description": "A logical operator.", + // "type": "string" + // }, + // "State": { + // "description": "The condition state. Currently, the values supported are SUCCEEDED, STOPPED, TIMEOUT, and FAILED.", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Logical": { + // "description": "An optional field if only one condition is listed. If multiple conditions are listed, then this field is required.", + // "type": "string" + // } + // }, + // "type": "object" + // } + "predicate": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Conditions + "conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CrawlState + "crawl_state": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The state of the crawler to which this condition applies.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CrawlerName + "crawler_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the crawler to which this condition applies.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: JobName + "job_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the job whose JobRuns this condition applies to, and on which this trigger waits.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LogicalOperator + "logical_operator": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A logical operator.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: State + "state": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The condition state. Currently, the values supported are SUCCEEDED, STOPPED, TIMEOUT, and FAILED.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A list of the conditions that determine when the trigger will fire.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Logical + "logical": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "An optional field if only one condition is listed. If multiple conditions are listed, then this field is required.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The predicate of this trigger, which defines when it will fire.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Schedule + // CloudFormation resource type schema: + // + // { + // "description": "A cron expression used to specify the schedule.", + // "type": "string" + // } + "schedule": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A cron expression used to specify the schedule.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: StartOnCreation + // CloudFormation resource type schema: + // + // { + // "description": "Set to true to start SCHEDULED and CONDITIONAL triggers when created. True is not supported for ON_DEMAND triggers.", + // "type": "boolean" + // } + "start_on_creation": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Set to true to start SCHEDULED and CONDITIONAL triggers when created. True is not supported for ON_DEMAND triggers.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "The tags to use with this trigger.", + // "type": "object" + // } + "tags": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Description: "The tags to use with this trigger.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + // CloudFormation resource type schema: + // + // { + // "description": "The type of trigger that this is.", + // "type": "string" + // } + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The type of trigger that this is.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: WorkflowName + // CloudFormation resource type schema: + // + // { + // "description": "The name of the workflow associated with the trigger.", + // "type": "string" + // } + "workflow_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the workflow associated with the trigger.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::Glue::Trigger", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Glue::Trigger").WithTerraformTypeName("awscc_glue_trigger") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "actions": "Actions", + "arguments": "Arguments", + "batch_size": "BatchSize", + "batch_window": "BatchWindow", + "conditions": "Conditions", + "crawl_state": "CrawlState", + "crawler_name": "CrawlerName", + "description": "Description", + "event_batching_condition": "EventBatchingCondition", + "job_name": "JobName", + "logical": "Logical", + "logical_operator": "LogicalOperator", + "name": "Name", + "notification_property": "NotificationProperty", + "notify_delay_after": "NotifyDelayAfter", + "predicate": "Predicate", + "schedule": "Schedule", + "security_configuration": "SecurityConfiguration", + "start_on_creation": "StartOnCreation", + "state": "State", + "tags": "Tags", + "timeout": "Timeout", + "type": "Type", + "workflow_name": "WorkflowName", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/glue/trigger_singular_data_source_gen_test.go b/internal/aws/glue/trigger_singular_data_source_gen_test.go new file mode 100644 index 0000000000..595471fed3 --- /dev/null +++ b/internal/aws/glue/trigger_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package glue_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSGlueTriggerDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Glue::Trigger", "awscc_glue_trigger", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSGlueTriggerDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Glue::Trigger", "awscc_glue_trigger", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/lightsail/alarm_singular_data_source_gen.go b/internal/aws/lightsail/alarm_singular_data_source_gen.go index 95001907d3..5725877c0c 100644 --- a/internal/aws/lightsail/alarm_singular_data_source_gen.go +++ b/internal/aws/lightsail/alarm_singular_data_source_gen.go @@ -109,11 +109,11 @@ func alarmDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The validation status of the SSL/TLS certificate.", + // "description": "The name of the Lightsail resource that the alarm monitors.", // "type": "string" // } "monitored_resource_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The validation status of the SSL/TLS certificate.", + Description: "The name of the Lightsail resource that the alarm monitors.", Computed: true, }, /*END ATTRIBUTE*/ // Property: NotificationEnabled diff --git a/internal/aws/mediaconnect/flow_output_singular_data_source_gen.go b/internal/aws/mediaconnect/flow_output_singular_data_source_gen.go index 4ed4bb0c16..f93c727bdc 100644 --- a/internal/aws/mediaconnect/flow_output_singular_data_source_gen.go +++ b/internal/aws/mediaconnect/flow_output_singular_data_source_gen.go @@ -339,6 +339,21 @@ func flowOutputDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The ARN of the output.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: OutputStatus + // CloudFormation resource type schema: + // + // { + // "description": "An indication of whether the output should transmit data or not.", + // "enum": [ + // "ENABLED", + // "DISABLED" + // ], + // "type": "string" + // } + "output_status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "An indication of whether the output should transmit data or not.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Port // CloudFormation resource type schema: // @@ -469,6 +484,7 @@ func flowOutputDataSource(ctx context.Context) (datasource.DataSource, error) { "min_latency": "MinLatency", "name": "Name", "output_arn": "OutputArn", + "output_status": "OutputStatus", "port": "Port", "protocol": "Protocol", "remote_id": "RemoteId", diff --git a/internal/aws/mediapackagev2/channel_singular_data_source_gen.go b/internal/aws/mediapackagev2/channel_singular_data_source_gen.go index 7b1f99df69..ab4aa7eacc 100644 --- a/internal/aws/mediapackagev2/channel_singular_data_source_gen.go +++ b/internal/aws/mediapackagev2/channel_singular_data_source_gen.go @@ -138,6 +138,19 @@ func channelDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "

The list of ingest endpoints.

", Computed: true, }, /*END ATTRIBUTE*/ + // Property: InputType + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "HLS", + // "CMAF" + // ], + // "type": "string" + // } + "input_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: ModifiedAt // CloudFormation resource type schema: // @@ -210,6 +223,7 @@ func channelDataSource(ctx context.Context) (datasource.DataSource, error) { "id": "Id", "ingest_endpoint_urls": "IngestEndpointUrls", "ingest_endpoints": "IngestEndpoints", + "input_type": "InputType", "key": "Key", "modified_at": "ModifiedAt", "tags": "Tags", diff --git a/internal/aws/mediapackagev2/origin_endpoint_singular_data_source_gen.go b/internal/aws/mediapackagev2/origin_endpoint_singular_data_source_gen.go index 7eae0474bf..33e4505276 100644 --- a/internal/aws/mediapackagev2/origin_endpoint_singular_data_source_gen.go +++ b/internal/aws/mediapackagev2/origin_endpoint_singular_data_source_gen.go @@ -348,6 +348,41 @@ func originEndpointDataSource(ctx context.Context) (datasource.DataSource, error Description: "

Enter any descriptive text that helps you to identify the origin endpoint.

", Computed: true, }, /*END ATTRIBUTE*/ + // Property: ForceEndpointErrorConfiguration + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "\u003cp\u003eThe failover settings for the endpoint.\u003c/p\u003e", + // "properties": { + // "EndpointErrorConditions": { + // "description": "\u003cp\u003eThe failover settings for the endpoint. The options are:\u003c/p\u003e\n \u003cul\u003e\n \u003cli\u003e\n \u003cp\u003e\n \u003ccode\u003eSTALE_MANIFEST\u003c/code\u003e - The manifest stalled and there a no new segments or parts.\u003c/p\u003e\n \u003c/li\u003e\n \u003cli\u003e\n \u003cp\u003e\n \u003ccode\u003eINCOMPLETE_MANIFEST\u003c/code\u003e - There is a gap in the manifest.\u003c/p\u003e\n \u003c/li\u003e\n \u003cli\u003e\n \u003cp\u003e\n \u003ccode\u003eMISSING_DRM_KEY\u003c/code\u003e - Key rotation is enabled but we're unable to fetch the key for the current key period.\u003c/p\u003e\n \u003c/li\u003e\n \u003c/ul\u003e", + // "items": { + // "enum": [ + // "STALE_MANIFEST", + // "INCOMPLETE_MANIFEST", + // "MISSING_DRM_KEY", + // "SLATE_INPUT" + // ], + // "type": "string" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // } + "force_endpoint_error_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EndpointErrorConditions + "endpoint_error_conditions": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "

The failover settings for the endpoint. The options are:

\n
    \n
  • \n

    \n STALE_MANIFEST - The manifest stalled and there a no new segments or parts.

    \n
  • \n
  • \n

    \n INCOMPLETE_MANIFEST - There is a gap in the manifest.

    \n
  • \n
  • \n

    \n MISSING_DRM_KEY - Key rotation is enabled but we're unable to fetch the key for the current key period.

    \n
  • \n
", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "

The failover settings for the endpoint.

", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: HlsManifestUrls // CloudFormation resource type schema: // @@ -1108,7 +1143,9 @@ func originEndpointDataSource(ctx context.Context) (datasource.DataSource, error "encryption_contract_configuration": "EncryptionContractConfiguration", "encryption_method": "EncryptionMethod", "end": "End", + "endpoint_error_conditions": "EndpointErrorConditions", "filter_configuration": "FilterConfiguration", + "force_endpoint_error_configuration": "ForceEndpointErrorConfiguration", "hls_manifest_urls": "HlsManifestUrls", "hls_manifests": "HlsManifests", "include_iframe_only_streams": "IncludeIframeOnlyStreams", diff --git a/internal/aws/rds/db_cluster_singular_data_source_gen.go b/internal/aws/rds/db_cluster_singular_data_source_gen.go index 5d957bc75d..6134ef2850 100644 --- a/internal/aws/rds/db_cluster_singular_data_source_gen.go +++ b/internal/aws/rds/db_cluster_singular_data_source_gen.go @@ -485,7 +485,7 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "string" // }, // "SecretArn": { - // "description": "The Amazon Resource Name (ARN) of the secret.", + // "description": "The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#aws-resource-rds-dbcluster-return-values).", // "type": "string" // } // }, @@ -500,7 +500,7 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ // Property: SecretArn "secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon Resource Name (ARN) of the secret.", + Description: "The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#aws-resource-rds-dbcluster-return-values).", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -624,11 +624,11 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", + // "description": "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", // "type": "boolean" // } "publicly_accessible": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", + Description: "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ReadEndpoint diff --git a/internal/aws/rds/db_instance_singular_data_source_gen.go b/internal/aws/rds/db_instance_singular_data_source_gen.go index 6f273bc4f2..55e1d00765 100644 --- a/internal/aws/rds/db_instance_singular_data_source_gen.go +++ b/internal/aws/rds/db_instance_singular_data_source_gen.go @@ -117,11 +117,11 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The destination region for the backup replication of the DB instance. For more info, see [Replicating automated backups to another Region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReplicateBackups.html) in the *Amazon RDS User Guide*.", + // "description": "", // "type": "string" // } "automatic_backup_replication_region": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The destination region for the backup replication of the DB instance. For more info, see [Replicating automated backups to another Region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReplicateBackups.html) in the *Amazon RDS User Guide*.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: AvailabilityZone @@ -339,11 +339,11 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.\n By specifying this property, you can create a DB instance from the specified DB snapshot. If the ``DBSnapshotIdentifier`` property is an empty string or the ``AWS::RDS::DBInstance`` declaration has no ``DBSnapshotIdentifier`` property, AWS CloudFormation creates a new database. If the property contains a value (other than an empty string), AWS CloudFormation creates a database from the specified snapshot. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack.\n Some DB instance properties aren't valid when you restore from a snapshot, such as the ``MasterUsername`` and ``MasterUserPassword`` properties. For information about the properties that you can specify, see the ``RestoreDBInstanceFromDBSnapshot`` action in the *Amazon RDS API Reference*.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you must specify the same ``DBSnapshotIdentifier`` property for any future updates to the DB instance. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n If you specify the ``DBSnapshotIdentifier`` property to restore a DB instance (as opposed to specifying it for DB instance updates), then don't specify the following properties:\n + ``CharacterSetName`` \n + ``DBClusterIdentifier`` \n + ``DBName`` \n + ``DeleteAutomatedBackups`` \n + ``EnablePerformanceInsights`` \n + ``KmsKeyId`` \n + ``MasterUsername`` \n + ``MasterUserPassword`` \n + ``PerformanceInsightsKMSKeyId`` \n + ``PerformanceInsightsRetentionPeriod`` \n + ``PromotionTier`` \n + ``SourceDBInstanceIdentifier`` \n + ``SourceRegion`` \n + ``StorageEncrypted`` (for an encrypted snapshot)\n + ``Timezone`` \n \n *Amazon Aurora* \n Not applicable. Snapshot restore is managed by the DB cluster.", + // "description": "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.\n By specifying this property, you can create a DB instance from the specified DB snapshot. If the ``DBSnapshotIdentifier`` property is an empty string or the ``AWS::RDS::DBInstance`` declaration has no ``DBSnapshotIdentifier`` property, AWS CloudFormation creates a new database. If the property contains a value (other than an empty string), AWS CloudFormation creates a database from the specified snapshot. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack.\n Some DB instance properties aren't valid when you restore from a snapshot, such as the ``MasterUsername`` and ``MasterUserPassword`` properties. For information about the properties that you can specify, see the ``RestoreDBInstanceFromDBSnapshot`` action in the *Amazon RDS API Reference*.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you must specify the same ``DBSnapshotIdentifier`` property for any future updates to the DB instance. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n If you specify the ``DBSnapshotIdentifier`` property to restore a DB instance (as opposed to specifying it for DB instance updates), then don't specify the following properties:\n + ``CharacterSetName`` \n + ``DBClusterIdentifier`` \n + ``DBName`` \n + ``DeleteAutomatedBackups`` \n + ``KmsKeyId`` \n + ``MasterUsername`` \n + ``MasterUserPassword`` \n + ``PerformanceInsightsKMSKeyId`` \n + ``PerformanceInsightsRetentionPeriod`` \n + ``PromotionTier`` \n + ``SourceDBInstanceIdentifier`` \n + ``SourceRegion`` \n + ``StorageEncrypted`` (for an encrypted snapshot)\n + ``Timezone`` \n \n *Amazon Aurora* \n Not applicable. Snapshot restore is managed by the DB cluster.", // "type": "string" // } "db_snapshot_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.\n By specifying this property, you can create a DB instance from the specified DB snapshot. If the ``DBSnapshotIdentifier`` property is an empty string or the ``AWS::RDS::DBInstance`` declaration has no ``DBSnapshotIdentifier`` property, AWS CloudFormation creates a new database. If the property contains a value (other than an empty string), AWS CloudFormation creates a database from the specified snapshot. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack.\n Some DB instance properties aren't valid when you restore from a snapshot, such as the ``MasterUsername`` and ``MasterUserPassword`` properties. For information about the properties that you can specify, see the ``RestoreDBInstanceFromDBSnapshot`` action in the *Amazon RDS API Reference*.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you must specify the same ``DBSnapshotIdentifier`` property for any future updates to the DB instance. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n If you specify the ``DBSnapshotIdentifier`` property to restore a DB instance (as opposed to specifying it for DB instance updates), then don't specify the following properties:\n + ``CharacterSetName`` \n + ``DBClusterIdentifier`` \n + ``DBName`` \n + ``DeleteAutomatedBackups`` \n + ``EnablePerformanceInsights`` \n + ``KmsKeyId`` \n + ``MasterUsername`` \n + ``MasterUserPassword`` \n + ``PerformanceInsightsKMSKeyId`` \n + ``PerformanceInsightsRetentionPeriod`` \n + ``PromotionTier`` \n + ``SourceDBInstanceIdentifier`` \n + ``SourceRegion`` \n + ``StorageEncrypted`` (for an encrypted snapshot)\n + ``Timezone`` \n \n *Amazon Aurora* \n Not applicable. Snapshot restore is managed by the DB cluster.", + Description: "The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot.\n By specifying this property, you can create a DB instance from the specified DB snapshot. If the ``DBSnapshotIdentifier`` property is an empty string or the ``AWS::RDS::DBInstance`` declaration has no ``DBSnapshotIdentifier`` property, AWS CloudFormation creates a new database. If the property contains a value (other than an empty string), AWS CloudFormation creates a database from the specified snapshot. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack.\n Some DB instance properties aren't valid when you restore from a snapshot, such as the ``MasterUsername`` and ``MasterUserPassword`` properties. For information about the properties that you can specify, see the ``RestoreDBInstanceFromDBSnapshot`` action in the *Amazon RDS API Reference*.\n After you restore a DB instance with a ``DBSnapshotIdentifier`` property, you must specify the same ``DBSnapshotIdentifier`` property for any future updates to the DB instance. When you specify this property for an update, the DB instance is not restored from the DB snapshot again, and the data in the database is not changed. However, if you don't specify the ``DBSnapshotIdentifier`` property, an empty DB instance is created, and the original DB instance is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB instance is restored from the specified ``DBSnapshotIdentifier`` property, and the original DB instance is deleted.\n If you specify the ``DBSnapshotIdentifier`` property to restore a DB instance (as opposed to specifying it for DB instance updates), then don't specify the following properties:\n + ``CharacterSetName`` \n + ``DBClusterIdentifier`` \n + ``DBName`` \n + ``DeleteAutomatedBackups`` \n + ``KmsKeyId`` \n + ``MasterUsername`` \n + ``MasterUserPassword`` \n + ``PerformanceInsightsKMSKeyId`` \n + ``PerformanceInsightsRetentionPeriod`` \n + ``PromotionTier`` \n + ``SourceDBInstanceIdentifier`` \n + ``SourceRegion`` \n + ``StorageEncrypted`` (for an encrypted snapshot)\n + ``Timezone`` \n \n *Amazon Aurora* \n Not applicable. Snapshot restore is managed by the DB cluster.", Computed: true, }, /*END ATTRIBUTE*/ // Property: DBSubnetGroupName @@ -662,7 +662,7 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "string" // }, // "SecretArn": { - // "description": "The Amazon Resource Name (ARN) of the secret.", + // "description": "The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#aws-resource-rds-dbinstance-return-values).", // "type": "string" // } // }, @@ -677,7 +677,7 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ // Property: SecretArn "secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon Resource Name (ARN) of the secret.", + Description: "The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#aws-resource-rds-dbinstance-return-values).", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -839,7 +839,7 @@ func dBInstanceDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "The number of CPU cores and the number of threads per core for the DB instance class of the DB instance.\n This setting doesn't apply to Amazon Aurora or RDS Custom DB instances.", // "items": { // "additionalProperties": false, - // "description": "The ``ProcessorFeature`` property type specifies the processor features of a DB instance class status.", + // "description": "The ``ProcessorFeature`` property type specifies the processor features of a DB instance class.", // "properties": { // "Name": { // "description": "The name of the processor feature. Valid names are ``coreCount`` and ``threadsPerCore``.", diff --git a/internal/aws/secretsmanager/resource_policy_plural_data_source_gen.go b/internal/aws/secretsmanager/resource_policy_plural_data_source_gen.go new file mode 100644 index 0000000000..11294c4878 --- /dev/null +++ b/internal/aws/secretsmanager/resource_policy_plural_data_source_gen.go @@ -0,0 +1,54 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package secretsmanager + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_secretsmanager_resource_policies", resourcePoliciesDataSource) +} + +// resourcePoliciesDataSource returns the Terraform awscc_secretsmanager_resource_policies data source. +// This Terraform data source corresponds to the CloudFormation AWS::SecretsManager::ResourcePolicy resource. +func resourcePoliciesDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ + "id": schema.StringAttribute{ + Description: "Uniquely identifies the data source.", + Computed: true, + }, + "ids": schema.SetAttribute{ + Description: "Set of Resource Identifiers.", + ElementType: types.StringType, + Computed: true, + }, + } + + schema := schema.Schema{ + Description: "Plural Data Source schema for AWS::SecretsManager::ResourcePolicy", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::SecretsManager::ResourcePolicy").WithTerraformTypeName("awscc_secretsmanager_resource_policies") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/secretsmanager/resource_policy_plural_data_source_gen_test.go b/internal/aws/secretsmanager/resource_policy_plural_data_source_gen_test.go new file mode 100644 index 0000000000..a7ea265eb1 --- /dev/null +++ b/internal/aws/secretsmanager/resource_policy_plural_data_source_gen_test.go @@ -0,0 +1,27 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package secretsmanager_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSSecretsManagerResourcePoliciesDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::SecretsManager::ResourcePolicy", "awscc_secretsmanager_resource_policies", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet(fmt.Sprintf("data.%s", td.ResourceName), "ids.#"), + ), + }, + }) +} diff --git a/internal/aws/secretsmanager/resource_policy_singular_data_source_gen.go b/internal/aws/secretsmanager/resource_policy_singular_data_source_gen.go new file mode 100644 index 0000000000..dbde13ddff --- /dev/null +++ b/internal/aws/secretsmanager/resource_policy_singular_data_source_gen.go @@ -0,0 +1,101 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package secretsmanager + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_secretsmanager_resource_policy", resourcePolicyDataSource) +} + +// resourcePolicyDataSource returns the Terraform awscc_secretsmanager_resource_policy data source. +// This Terraform data source corresponds to the CloudFormation AWS::SecretsManager::ResourcePolicy resource. +func resourcePolicyDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BlockPublicPolicy + // CloudFormation resource type schema: + // + // { + // "description": "Specifies whether to block resource-based policies that allow broad access to the secret.", + // "type": "boolean" + // } + "block_public_policy": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether to block resource-based policies that allow broad access to the secret.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "description": "The Arn of the secret.", + // "type": "string" + // } + "resource_policy_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Arn of the secret.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ResourcePolicy + // CloudFormation resource type schema: + // + // { + // "description": "A JSON-formatted string for an AWS resource-based policy.", + // "type": "string" + // } + "resource_policy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A JSON-formatted string for an AWS resource-based policy.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SecretId + // CloudFormation resource type schema: + // + // { + // "description": "The ARN or name of the secret to attach the resource-based policy.", + // "maxLength": 2048, + // "minLength": 1, + // "type": "string" + // } + "secret_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN or name of the secret to attach the resource-based policy.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::SecretsManager::ResourcePolicy", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::SecretsManager::ResourcePolicy").WithTerraformTypeName("awscc_secretsmanager_resource_policy") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "block_public_policy": "BlockPublicPolicy", + "resource_policy": "ResourcePolicy", + "resource_policy_id": "Id", + "secret_id": "SecretId", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/secretsmanager/resource_policy_singular_data_source_gen_test.go b/internal/aws/secretsmanager/resource_policy_singular_data_source_gen_test.go new file mode 100644 index 0000000000..5a2d6a3dee --- /dev/null +++ b/internal/aws/secretsmanager/resource_policy_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package secretsmanager_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSSecretsManagerResourcePolicyDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::SecretsManager::ResourcePolicy", "awscc_secretsmanager_resource_policy", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSSecretsManagerResourcePolicyDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::SecretsManager::ResourcePolicy", "awscc_secretsmanager_resource_policy", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/workspacesweb/user_settings_singular_data_source_gen.go b/internal/aws/workspacesweb/user_settings_singular_data_source_gen.go index d83e09319a..fc4863e051 100644 --- a/internal/aws/workspacesweb/user_settings_singular_data_source_gen.go +++ b/internal/aws/workspacesweb/user_settings_singular_data_source_gen.go @@ -206,6 +206,19 @@ func userSettingsDataSource(ctx context.Context) (datasource.DataSource, error) "customer_managed_key": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: DeepLinkAllowed + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "Disabled", + // "Enabled" + // ], + // "type": "string" + // } + "deep_link_allowed": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: DisconnectTimeoutInMinutes // CloudFormation resource type schema: // @@ -362,6 +375,7 @@ func userSettingsDataSource(ctx context.Context) (datasource.DataSource, error) "cookie_synchronization_configuration": "CookieSynchronizationConfiguration", "copy_allowed": "CopyAllowed", "customer_managed_key": "CustomerManagedKey", + "deep_link_allowed": "DeepLinkAllowed", "disconnect_timeout_in_minutes": "DisconnectTimeoutInMinutes", "domain": "Domain", "download_allowed": "DownloadAllowed", From 8ac397e80c90d41e0a5df667093e7a65117619c1 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 25 Jul 2024 15:31:48 -0400 Subject: [PATCH 5/6] Run 'make docs'. --- .../applicationautoscaling_scaling_policy.md | 124 ++++++--- docs/data-sources/bedrock_flow_alias.md | 40 +++ docs/data-sources/bedrock_flow_version.md | 245 +++++++++++++++++ docs/data-sources/bedrock_knowledge_base.md | 42 +++ docs/data-sources/bedrock_prompt.md | 98 +++++++ docs/data-sources/bedrock_prompt_version.md | 86 ++++++ docs/data-sources/bedrock_prompts.md | 21 ++ docs/data-sources/ec2_eip_association.md | 13 +- docs/data-sources/ec2_launch_template.md | 27 +- .../ec2_network_interface_attachment.md | 12 +- docs/data-sources/ecr_repository.md | 2 +- .../ecr_repository_creation_template.md | 1 + docs/data-sources/eks_cluster.md | 9 + ...balaccelerator_cross_account_attachment.md | 1 + docs/data-sources/glue_trigger.md | 82 ++++++ docs/data-sources/glue_triggers.md | 21 ++ docs/data-sources/lightsail_alarm.md | 2 +- docs/data-sources/mediaconnect_flow_output.md | 1 + docs/data-sources/mediapackagev2_channel.md | 1 + .../mediapackagev2_origin_endpoint.md | 23 ++ docs/data-sources/rds_db_cluster.md | 4 +- docs/data-sources/rds_db_instance.md | 5 +- .../secretsmanager_resource_policies.md | 21 ++ .../secretsmanager_resource_policy.md | 27 ++ .../workspacesweb_user_settings.md | 1 + .../applicationautoscaling_scaling_policy.md | 130 ++++++--- docs/resources/bedrock_flow_alias.md | 51 ++++ docs/resources/bedrock_flow_version.md | 256 ++++++++++++++++++ docs/resources/bedrock_knowledge_base.md | 48 ++++ docs/resources/bedrock_prompt.md | 115 ++++++++ docs/resources/bedrock_prompt_version.md | 97 +++++++ docs/resources/dms_replication_config.md | 13 +- docs/resources/ec2_eip_association.md | 19 +- docs/resources/ec2_launch_template.md | 27 +- .../ec2_network_interface_attachment.md | 16 +- docs/resources/ecr_repository.md | 2 +- .../ecr_repository_creation_template.md | 1 + docs/resources/eks_cluster.md | 9 + ...balaccelerator_cross_account_attachment.md | 6 +- docs/resources/glue_trigger.md | 96 +++++++ docs/resources/lightsail_alarm.md | 2 +- docs/resources/lightsail_certificate.md | 4 +- docs/resources/mediaconnect_flow_output.md | 1 + docs/resources/mediapackagev2_channel.md | 1 + .../mediapackagev2_origin_endpoint.md | 23 ++ docs/resources/rds_db_cluster.md | 4 +- docs/resources/rds_db_instance.md | 5 +- .../secretsmanager_resource_policy.md | 38 +++ docs/resources/workspacesweb_user_settings.md | 1 + .../awscc_bedrock_flow_alias/import.sh | 1 + .../awscc_bedrock_flow_version/import.sh | 1 + .../resources/awscc_bedrock_prompt/import.sh | 1 + .../awscc_bedrock_prompt_version/import.sh | 1 + .../resources/awscc_glue_trigger/import.sh | 1 + .../import.sh | 1 + 55 files changed, 1729 insertions(+), 151 deletions(-) create mode 100644 docs/data-sources/bedrock_flow_alias.md create mode 100644 docs/data-sources/bedrock_flow_version.md create mode 100644 docs/data-sources/bedrock_prompt.md create mode 100644 docs/data-sources/bedrock_prompt_version.md create mode 100644 docs/data-sources/bedrock_prompts.md create mode 100644 docs/data-sources/glue_trigger.md create mode 100644 docs/data-sources/glue_triggers.md create mode 100644 docs/data-sources/secretsmanager_resource_policies.md create mode 100644 docs/data-sources/secretsmanager_resource_policy.md create mode 100644 docs/resources/bedrock_flow_alias.md create mode 100644 docs/resources/bedrock_flow_version.md create mode 100644 docs/resources/bedrock_prompt.md create mode 100644 docs/resources/bedrock_prompt_version.md create mode 100644 docs/resources/glue_trigger.md create mode 100644 docs/resources/secretsmanager_resource_policy.md create mode 100644 examples/resources/awscc_bedrock_flow_alias/import.sh create mode 100644 examples/resources/awscc_bedrock_flow_version/import.sh create mode 100644 examples/resources/awscc_bedrock_prompt/import.sh create mode 100644 examples/resources/awscc_bedrock_prompt_version/import.sh create mode 100644 examples/resources/awscc_glue_trigger/import.sh create mode 100644 examples/resources/awscc_secretsmanager_resource_policy/import.sh diff --git a/docs/data-sources/applicationautoscaling_scaling_policy.md b/docs/data-sources/applicationautoscaling_scaling_policy.md index b39c4bb2aa..599fc961a8 100644 --- a/docs/data-sources/applicationautoscaling_scaling_policy.md +++ b/docs/data-sources/applicationautoscaling_scaling_policy.md @@ -21,21 +21,60 @@ Data Source schema for AWS::ApplicationAutoScaling::ScalingPolicy ### Read-Only -- `arn` (String) ARN is a read only property for the resource. +- `arn` (String) - `policy_name` (String) The name of the scaling policy. - -Updates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing AWS::ApplicationAutoScaling::ScalingPolicy resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name. + Updates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name. - `policy_type` (String) The scaling policy type. - -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. + 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. - `resource_id` (String) 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``. + + 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``. + + AppStream 2.0 fleet - The resource type is ``fleet`` and the unique identifier is the fleet name. Example: ``fleet/sample-fleet``. + + DynamoDB table - The resource type is ``table`` and the unique identifier is the table name. Example: ``table/my-table``. + + 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``. + + Aurora DB cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:my-db-cluster``. + + SageMaker endpoint variant - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``. + + 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). + + 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``. + + 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``. + + 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``. + + Amazon Keyspaces table - The resource type is ``table`` and the unique identifier is the table name. Example: ``keyspace/mykeyspace/table/mytable``. + + 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``. + + Amazon ElastiCache replication group - The resource type is ``replication-group`` and the unique identifier is the replication group name. Example: ``replication-group/mycluster``. + + Neptune cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:mycluster``. + + SageMaker serverless endpoint - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``. + + SageMaker inference component - The resource type is ``inference-component`` and the unique identifier is the resource ID. Example: ``inference-component/my-inference-component``. + + Pool of WorkSpaces - The resource type is ``workspacespool`` and the unique identifier is the pool ID. Example: ``workspacespool/wspool-123456``. - `scalable_dimension` (String) The scalable dimension. This string consists of the service namespace, resource type, and scaling property. -- `scaling_target_id` (String) The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the AWS::ApplicationAutoScaling::ScalableTarget resource. -- `service_namespace` (String) The namespace of the AWS service that provides the resource, or a custom-resource. + + ``ecs:service:DesiredCount`` - The task count of an ECS service. + + ``elasticmapreduce:instancegroup:InstanceCount`` - The instance count of an EMR Instance Group. + + ``ec2:spot-fleet-request:TargetCapacity`` - The target capacity of a Spot Fleet. + + ``appstream:fleet:DesiredCapacity`` - The capacity of an AppStream 2.0 fleet. + + ``dynamodb:table:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB table. + + ``dynamodb:table:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB table. + + ``dynamodb:index:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB global secondary index. + + ``dynamodb:index:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB global secondary index. + + ``rds:cluster:ReadReplicaCount`` - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. + + ``sagemaker:variant:DesiredInstanceCount`` - The number of EC2 instances for a SageMaker model endpoint variant. + + ``custom-resource:ResourceType:Property`` - The scalable dimension for a custom resource provided by your own application or service. + + ``comprehend:document-classifier-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend document classification endpoint. + + ``comprehend:entity-recognizer-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend entity recognizer endpoint. + + ``lambda:function:ProvisionedConcurrency`` - The provisioned concurrency for a Lambda function. + + ``cassandra:table:ReadCapacityUnits`` - The provisioned read capacity for an Amazon Keyspaces table. + + ``cassandra:table:WriteCapacityUnits`` - The provisioned write capacity for an Amazon Keyspaces table. + + ``kafka:broker-storage:VolumeSize`` - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. + + ``elasticache:replication-group:NodeGroups`` - The number of node groups for an Amazon ElastiCache replication group. + + ``elasticache:replication-group:Replicas`` - The number of replicas per node group for an Amazon ElastiCache replication group. + + ``neptune:cluster:ReadReplicaCount`` - The count of read replicas in an Amazon Neptune DB cluster. + + ``sagemaker:variant:DesiredProvisionedConcurrency`` - The provisioned concurrency for a SageMaker serverless endpoint. + + ``sagemaker:inference-component:DesiredCopyCount`` - The number of copies across an endpoint for a SageMaker inference component. + + ``workspaces:workspacespool:DesiredUserSessions`` - The number of user sessions for the WorkSpaces in the pool. +- `scaling_target_id` (String) The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the ``AWS::ApplicationAutoScaling::ScalableTarget`` resource. + You must specify either the ``ScalingTargetId`` property, or the ``ResourceId``, ``ScalableDimension``, and ``ServiceNamespace`` properties, but not both. +- `service_namespace` (String) The namespace of the AWS service that provides the resource, or a ``custom-resource``. - `step_scaling_policy_configuration` (Attributes) A step scaling policy. (see [below for nested schema](#nestedatt--step_scaling_policy_configuration)) - `target_tracking_scaling_policy_configuration` (Attributes) A target tracking scaling policy. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration)) @@ -44,11 +83,12 @@ StepScaling Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspa Read-Only: -- `adjustment_type` (String) Specifies how the ScalingAdjustment value in a StepAdjustment is interpreted. -- `cooldown` (Number) The amount of time, in seconds, to wait for a previous scaling activity to take effect. -- `metric_aggregation_type` (String) 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 -- `min_adjustment_magnitude` (Number) The minimum value to scale by when the adjustment type is PercentChangeInCapacity. -- `step_adjustments` (Attributes Set) A set of adjustments that enable you to scale based on the size of the alarm breach. (see [below for nested schema](#nestedatt--step_scaling_policy_configuration--step_adjustments)) +- `adjustment_type` (String) Specifies whether the ``ScalingAdjustment`` value in the ``StepAdjustment`` property is an absolute number or a percentage of the current capacity. +- `cooldown` (Number) 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*. +- `metric_aggregation_type` (String) 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``. +- `min_adjustment_magnitude` (Number) 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. +- `step_adjustments` (Attributes Set) A set of adjustments that enable you to scale based on the size of the alarm breach. + At least one step adjustment is required if you are adding a new step scaling policy configuration. (see [below for nested schema](#nestedatt--step_scaling_policy_configuration--step_adjustments)) ### Nested Schema for `step_scaling_policy_configuration.step_adjustments` @@ -56,8 +96,10 @@ Read-Only: Read-Only: - `metric_interval_lower_bound` (Number) The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity. + You must specify at least one upper or lower bound. - `metric_interval_upper_bound` (Number) The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity. -- `scaling_adjustment` (Number) The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. For exact capacity, you must specify a positive value. + You must specify at least one upper or lower bound. +- `scaling_adjustment` (Number) The amount by which to scale. The adjustment is based on the value that you specified in the ``AdjustmentType`` property (either an absolute number or a percentage). A positive value adds to the current capacity and a negative number subtracts from the current capacity. @@ -67,10 +109,10 @@ Read-Only: Read-Only: - `customized_metric_specification` (Attributes) A customized metric. You can specify either a predefined metric or a customized metric. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification)) -- `disable_scale_in` (Boolean) Indicates whether scale in by the target tracking scaling policy is disabled. If the value is true, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is false. +- `disable_scale_in` (Boolean) Indicates whether scale in by the target tracking scaling policy is disabled. If the value is ``true``, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is ``false``. - `predefined_metric_specification` (Attributes) A predefined metric. You can specify either a predefined metric or a customized metric. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--predefined_metric_specification)) -- `scale_in_cooldown` (Number) The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start. -- `scale_out_cooldown` (Number) The amount of time, in seconds, to wait for a previous scale-out activity to take effect. +- `scale_in_cooldown` (Number) The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*. +- `scale_out_cooldown` (Number) The amount of time, in seconds, to wait for a previous scale-out activity to take effect. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*. - `target_value` (Number) The target value for the metric. Although this property accepts numbers of type Double, it won't accept values that are either too small or too large. Values must be in the range of -2^360 to 2^360. The value must be a valid number based on the choice of metric. For example, if the metric is CPU utilization, then the target value is a percent value that represents how much of the CPU can be used before scaling out. @@ -78,12 +120,13 @@ Read-Only: Read-Only: -- `dimensions` (Attributes List) The dimensions of the metric. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--dimensions)) -- `metric_name` (String) The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the Metric object that is returned by a call to ListMetrics. +- `dimensions` (Attributes List) The dimensions of the metric. + Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--dimensions)) +- `metric_name` (String) The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that's returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html). - `metrics` (Attributes List) The metrics to include in the target tracking scaling policy, as a metric data query. This can include both raw metric and metric math expressions. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics)) - `namespace` (String) The namespace of the metric. - `statistic` (String) The statistic of the metric. -- `unit` (String) The unit of the metric. For a complete list of the units that CloudWatch supports, see the MetricDatum data type in the Amazon CloudWatch API Reference. +- `unit` (String) The unit of the metric. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*. ### Nested Schema for `target_tracking_scaling_policy_configuration.customized_metric_specification.dimensions` @@ -99,29 +142,35 @@ Read-Only: Read-Only: -- `expression` (String) The math expression to perform on the returned data, if this object is performing a math expression. -- `id` (String) A short name that identifies the object's results in the response. +- `expression` (String) The math expression to perform on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. + Conditional: Within each ``TargetTrackingMetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both. +- `id` (String) A short name that identifies the object's results in the response. This name must be unique among all ``MetricDataQuery`` objects specified for a single scaling policy. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscores. The first character must be a lowercase letter. - `label` (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. -- `metric_stat` (Attributes) Information about the metric data to return. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics--metric_stat)) -- `return_data` (Boolean) Indicates whether to return the timestamps and raw data values of this metric. +- `metric_stat` (Attributes) Information about the metric data to return. + Conditional: Within each ``MetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics--metric_stat)) +- `return_data` (Boolean) Indicates whether to return the timestamps and raw data values of this metric. + If you use any math expressions, specify ``true`` for this value for only the final math expression that the metric specification is based on. You must specify ``false`` for ``ReturnData`` for all the other metrics and expressions used in the metric specification. + If you are only retrieving metrics and not performing any math expressions, do not specify anything for ``ReturnData``. This sets it to its default (``true``). ### Nested Schema for `target_tracking_scaling_policy_configuration.customized_metric_specification.metrics.metric_stat` Read-Only: -- `metric` (Attributes) The CloudWatch metric to return, including the metric name, namespace, and dimensions. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics--metric_stat--metric)) -- `stat` (String) The statistic to return. It can include any CloudWatch statistic or extended statistic. -- `unit` (String) The unit to use for the returned data points. +- `metric` (Attributes) The CloudWatch metric to return, including the metric name, namespace, and dimensions. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html). (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics--metric_stat--metric)) +- `stat` (String) The statistic to return. It can include any CloudWatch statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *Amazon CloudWatch User Guide*. + The most commonly used metric for scaling is ``Average``. +- `unit` (String) The unit to use for the returned data points. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*. ### Nested Schema for `target_tracking_scaling_policy_configuration.customized_metric_specification.metrics.metric_stat.metric` Read-Only: -- `dimensions` (Attributes List) The dimensions for the metric. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics--metric_stat--metric--dimensions)) +- `dimensions` (Attributes List) 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*. + Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics--metric_stat--metric--dimensions)) - `metric_name` (String) The name of the metric. -- `namespace` (String) The namespace of the metric. +- `namespace` (String) 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*. ### Nested Schema for `target_tracking_scaling_policy_configuration.customized_metric_specification.metrics.metric_stat.metric.dimensions` @@ -141,5 +190,12 @@ Read-Only: Read-Only: -- `predefined_metric_type` (String) The metric type. The ALBRequestCountPerTarget metric type applies only to Spot Fleets and ECS services. -- `resource_label` (String) 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. +- `predefined_metric_type` (String) The metric type. The ``ALBRequestCountPerTarget`` metric type applies only to Spot fleet requests and ECS services. +- `resource_label` (String) 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. + 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: + ``app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff``. + Where: + + app// is the final portion of the load balancer ARN + + targetgroup// is the final portion of the target group ARN. + + 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. diff --git a/docs/data-sources/bedrock_flow_alias.md b/docs/data-sources/bedrock_flow_alias.md new file mode 100644 index 0000000000..b791f7c652 --- /dev/null +++ b/docs/data-sources/bedrock_flow_alias.md @@ -0,0 +1,40 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_bedrock_flow_alias Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Bedrock::FlowAlias +--- + +# awscc_bedrock_flow_alias (Data Source) + +Data Source schema for AWS::Bedrock::FlowAlias + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `arn` (String) Arn of the Flow Alias +- `created_at` (String) Time Stamp. +- `description` (String) Description of the Resource. +- `flow_alias_id` (String) Id for a Flow Alias generated at the server side. +- `flow_arn` (String) Arn representation of the Flow +- `flow_id` (String) Identifier for a flow resource. +- `name` (String) Name for a resource. +- `routing_configuration` (Attributes List) Routing configuration for a Flow alias. (see [below for nested schema](#nestedatt--routing_configuration)) +- `tags` (Map of String) A map of tag keys and values +- `updated_at` (String) Time Stamp. + + +### Nested Schema for `routing_configuration` + +Read-Only: + +- `flow_version` (String) Version. diff --git a/docs/data-sources/bedrock_flow_version.md b/docs/data-sources/bedrock_flow_version.md new file mode 100644 index 0000000000..5a014a6414 --- /dev/null +++ b/docs/data-sources/bedrock_flow_version.md @@ -0,0 +1,245 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_bedrock_flow_version Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Bedrock::FlowVersion +--- + +# awscc_bedrock_flow_version (Data Source) + +Data Source schema for AWS::Bedrock::FlowVersion + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `created_at` (String) Time Stamp. +- `definition` (Attributes) Flow definition (see [below for nested schema](#nestedatt--definition)) +- `description` (String) Description of the flow version +- `execution_role_arn` (String) ARN of a IAM role +- `flow_arn` (String) Arn representation of the Flow +- `flow_id` (String) Identifier for a Flow +- `name` (String) Name for the flow +- `status` (String) Schema Type for Flow APIs +- `version` (String) Numerical Version. + + +### Nested Schema for `definition` + +Read-Only: + +- `connections` (Attributes List) List of connections (see [below for nested schema](#nestedatt--definition--connections)) +- `nodes` (Attributes List) List of nodes in a flow (see [below for nested schema](#nestedatt--definition--nodes)) + + +### Nested Schema for `definition.connections` + +Read-Only: + +- `configuration` (Attributes) Connection configuration (see [below for nested schema](#nestedatt--definition--connections--configuration)) +- `name` (String) Name of a connection in a flow +- `source` (String) Name of a node in a flow +- `target` (String) Name of a node in a flow +- `type` (String) Connection type + + +### Nested Schema for `definition.connections.configuration` + +Read-Only: + +- `conditional` (Attributes) Conditional connection configuration (see [below for nested schema](#nestedatt--definition--connections--configuration--conditional)) +- `data` (Attributes) Data connection configuration (see [below for nested schema](#nestedatt--definition--connections--configuration--data)) + + +### Nested Schema for `definition.connections.configuration.conditional` + +Read-Only: + +- `condition` (String) Name of a condition in a flow + + + +### Nested Schema for `definition.connections.configuration.data` + +Read-Only: + +- `source_output` (String) Name of a node output in a flow +- `target_input` (String) Name of a node input in a flow + + + + + +### Nested Schema for `definition.nodes` + +Read-Only: + +- `configuration` (Attributes) Node configuration in a flow (see [below for nested schema](#nestedatt--definition--nodes--configuration)) +- `inputs` (Attributes List) List of node inputs in a flow (see [below for nested schema](#nestedatt--definition--nodes--inputs)) +- `name` (String) Name of a node in a flow +- `outputs` (Attributes List) List of node outputs in a flow (see [below for nested schema](#nestedatt--definition--nodes--outputs)) +- `type` (String) Flow node types + + +### Nested Schema for `definition.nodes.configuration` + +Read-Only: + +- `condition` (Attributes) Condition flow node configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--condition)) +- `input` (String) Input flow node configuration +- `knowledge_base` (Attributes) Knowledge base flow node configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--knowledge_base)) +- `lambda_function` (Attributes) Lambda function flow node configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--lambda_function)) +- `lex` (Attributes) Lex flow node configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--lex)) +- `output` (String) Output flow node configuration +- `prompt` (Attributes) Prompt flow node configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt)) + + +### Nested Schema for `definition.nodes.configuration.condition` + +Read-Only: + +- `conditions` (Attributes List) List of conditions in a condition node (see [below for nested schema](#nestedatt--definition--nodes--configuration--condition--conditions)) + + +### Nested Schema for `definition.nodes.configuration.condition.conditions` + +Read-Only: + +- `expression` (String) Expression for a condition in a flow +- `name` (String) Name of a condition in a flow + + + + +### Nested Schema for `definition.nodes.configuration.knowledge_base` + +Read-Only: + +- `knowledge_base_id` (String) Identifier of the KnowledgeBase +- `model_id` (String) ARN or name of a Bedrock model. + + + +### Nested Schema for `definition.nodes.configuration.lambda_function` + +Read-Only: + +- `lambda_arn` (String) ARN of a Lambda. + + + +### Nested Schema for `definition.nodes.configuration.lex` + +Read-Only: + +- `bot_alias_arn` (String) ARN of a Lex bot alias +- `locale_id` (String) Lex bot locale id + + + +### Nested Schema for `definition.nodes.configuration.prompt` + +Read-Only: + +- `source_configuration` (Attributes) Prompt source configuration for prompt node (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration)) + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration` + +Read-Only: + +- `inline` (Attributes) Inline prompt configuration for prompt node (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--inline)) +- `resource` (Attributes) Resource prompt configuration for prompt node (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--resource)) + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.inline` + +Read-Only: + +- `inference_configuration` (Attributes) Model inference configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--inline--inference_configuration)) +- `model_id` (String) ARN or name of a Bedrock model. +- `template_configuration` (Attributes) Prompt template configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--inline--template_configuration)) +- `template_type` (String) Prompt template type + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.inline.inference_configuration` + +Read-Only: + +- `text` (Attributes) Prompt model inference configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--inline--inference_configuration--text)) + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.inline.inference_configuration.text` + +Read-Only: + +- `max_tokens` (Number) Maximum length of output +- `stop_sequences` (List of String) List of stop sequences +- `temperature` (Number) Controls randomness, higher values increase diversity +- `top_k` (Number) Sample from the k most likely next tokens +- `top_p` (Number) Cumulative probability cutoff for token selection + + + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.inline.template_configuration` + +Read-Only: + +- `text` (Attributes) Configuration for text prompt template (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--inline--template_configuration--text)) + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.inline.template_configuration.text` + +Read-Only: + +- `input_variables` (Attributes List) List of input variables (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--inline--template_configuration--text--input_variables)) +- `text` (String) Prompt content for String prompt template + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.inline.template_configuration.text.input_variables` + +Read-Only: + +- `name` (String) Name for an input variable + + + + + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.resource` + +Read-Only: + +- `prompt_arn` (String) ARN of a prompt resource possibly with a version + + + + + + +### Nested Schema for `definition.nodes.inputs` + +Read-Only: + +- `expression` (String) Expression for a node input in a flow +- `name` (String) Name of a node input in a flow +- `type` (String) Type of input/output for a node in a flow + + + +### Nested Schema for `definition.nodes.outputs` + +Read-Only: + +- `name` (String) Name of a node output in a flow +- `type` (String) Type of input/output for a node in a flow diff --git a/docs/data-sources/bedrock_knowledge_base.md b/docs/data-sources/bedrock_knowledge_base.md index 76be225ed5..7dc4f00293 100644 --- a/docs/data-sources/bedrock_knowledge_base.md +++ b/docs/data-sources/bedrock_knowledge_base.md @@ -48,6 +48,23 @@ Read-Only: Read-Only: - `embedding_model_arn` (String) The ARN of the model used to create vector embeddings for the knowledge base. +- `embedding_model_configuration` (Attributes) The embeddings model configuration details for the vector model used in Knowledge Base. (see [below for nested schema](#nestedatt--knowledge_base_configuration--vector_knowledge_base_configuration--embedding_model_configuration)) + + +### Nested Schema for `knowledge_base_configuration.vector_knowledge_base_configuration.embedding_model_configuration` + +Read-Only: + +- `bedrock_embedding_model_configuration` (Attributes) The vector configuration details for the Bedrock embeddings model. (see [below for nested schema](#nestedatt--knowledge_base_configuration--vector_knowledge_base_configuration--embedding_model_configuration--bedrock_embedding_model_configuration)) + + +### Nested Schema for `knowledge_base_configuration.vector_knowledge_base_configuration.embedding_model_configuration.bedrock_embedding_model_configuration` + +Read-Only: + +- `dimensions` (Number) The dimensions details for the vector configuration used on the Bedrock embeddings model. + + @@ -56,11 +73,36 @@ Read-Only: Read-Only: +- `mongo_db_atlas_configuration` (Attributes) Contains the storage configuration of the knowledge base in MongoDb Atlas Cloud. (see [below for nested schema](#nestedatt--storage_configuration--mongo_db_atlas_configuration)) - `opensearch_serverless_configuration` (Attributes) Contains the storage configuration of the knowledge base in Amazon OpenSearch Service. (see [below for nested schema](#nestedatt--storage_configuration--opensearch_serverless_configuration)) - `pinecone_configuration` (Attributes) Contains the storage configuration of the knowledge base in Pinecone. (see [below for nested schema](#nestedatt--storage_configuration--pinecone_configuration)) - `rds_configuration` (Attributes) Contains details about the storage configuration of the knowledge base in Amazon RDS. For more information, see Create a vector index in Amazon RDS. (see [below for nested schema](#nestedatt--storage_configuration--rds_configuration)) - `type` (String) The storage type of a knowledge base. + +### Nested Schema for `storage_configuration.mongo_db_atlas_configuration` + +Read-Only: + +- `collection_name` (String) Name of the collection within MongoDB Atlas. +- `credentials_secret_arn` (String) The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon Mongo database. +- `database_name` (String) Name of the database within MongoDB Atlas. +- `endpoint` (String) MongoDB Atlas endpoint. +- `endpoint_service_name` (String) MongoDB Atlas endpoint service name. +- `field_mapping` (Attributes) Contains the names of the fields to which to map information about the vector store. (see [below for nested schema](#nestedatt--storage_configuration--mongo_db_atlas_configuration--field_mapping)) +- `vector_index_name` (String) Name of a MongoDB Atlas index. + + +### Nested Schema for `storage_configuration.mongo_db_atlas_configuration.field_mapping` + +Read-Only: + +- `metadata_field` (String) The name of the field in which Amazon Bedrock stores metadata about the vector store. +- `text_field` (String) The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. +- `vector_field` (String) The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + + + ### Nested Schema for `storage_configuration.opensearch_serverless_configuration` diff --git a/docs/data-sources/bedrock_prompt.md b/docs/data-sources/bedrock_prompt.md new file mode 100644 index 0000000000..3de85f0ecf --- /dev/null +++ b/docs/data-sources/bedrock_prompt.md @@ -0,0 +1,98 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_bedrock_prompt Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Bedrock::Prompt +--- + +# awscc_bedrock_prompt (Data Source) + +Data Source schema for AWS::Bedrock::Prompt + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `arn` (String) ARN of a prompt resource possibly with a version +- `created_at` (String) Time Stamp. +- `customer_encryption_key_arn` (String) A KMS key ARN +- `default_variant` (String) Name for a variant. +- `description` (String) Name for a prompt resource. +- `name` (String) Name for a prompt resource. +- `prompt_id` (String) Identifier for a Prompt +- `tags` (Map of String) A map of tag keys and values +- `updated_at` (String) Time Stamp. +- `variants` (Attributes List) List of prompt variants (see [below for nested schema](#nestedatt--variants)) +- `version` (String) Draft Version. + + +### Nested Schema for `variants` + +Read-Only: + +- `inference_configuration` (Attributes) Model inference configuration (see [below for nested schema](#nestedatt--variants--inference_configuration)) +- `model_id` (String) ARN or name of a Bedrock model. +- `name` (String) Name for a variant. +- `template_configuration` (Attributes) Prompt template configuration (see [below for nested schema](#nestedatt--variants--template_configuration)) +- `template_type` (String) Prompt template type + + +### Nested Schema for `variants.inference_configuration` + +Read-Only: + +- `text` (Attributes) Prompt model inference configuration (see [below for nested schema](#nestedatt--variants--inference_configuration--text)) + + +### Nested Schema for `variants.inference_configuration.text` + +Read-Only: + +- `max_tokens` (Number) Maximum length of output +- `stop_sequences` (List of String) List of stop sequences +- `temperature` (Number) Controls randomness, higher values increase diversity +- `top_k` (Number) Sample from the k most likely next tokens +- `top_p` (Number) Cumulative probability cutoff for token selection + + + + +### Nested Schema for `variants.template_configuration` + +Read-Only: + +- `text` (Attributes) Configuration for text prompt template (see [below for nested schema](#nestedatt--variants--template_configuration--text)) + + +### Nested Schema for `variants.template_configuration.text` + +Read-Only: + +- `input_variables` (Attributes List) List of input variables (see [below for nested schema](#nestedatt--variants--template_configuration--text--input_variables)) +- `text` (String) Prompt content for String prompt template +- `text_s3_location` (Attributes) The identifier for the S3 resource. (see [below for nested schema](#nestedatt--variants--template_configuration--text--text_s3_location)) + + +### Nested Schema for `variants.template_configuration.text.input_variables` + +Read-Only: + +- `name` (String) Name for an input variable + + + +### Nested Schema for `variants.template_configuration.text.text_s3_location` + +Read-Only: + +- `bucket` (String) A bucket in S3 +- `key` (String) A object key in S3 +- `version` (String) The version of the the S3 object to use diff --git a/docs/data-sources/bedrock_prompt_version.md b/docs/data-sources/bedrock_prompt_version.md new file mode 100644 index 0000000000..e9c4d5caa8 --- /dev/null +++ b/docs/data-sources/bedrock_prompt_version.md @@ -0,0 +1,86 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_bedrock_prompt_version Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Bedrock::PromptVersion +--- + +# awscc_bedrock_prompt_version (Data Source) + +Data Source schema for AWS::Bedrock::PromptVersion + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `arn` (String) ARN of a prompt version resource +- `created_at` (String) Time Stamp. +- `default_variant` (String) Name for a variant. +- `description` (String) Description for a prompt version resource. +- `name` (String) Name for a prompt resource. +- `prompt_arn` (String) ARN of a prompt resource possibly with a version +- `prompt_id` (String) Identifier for a Prompt +- `updated_at` (String) Time Stamp. +- `variants` (Attributes List) List of prompt variants (see [below for nested schema](#nestedatt--variants)) +- `version` (String) Version. + + +### Nested Schema for `variants` + +Read-Only: + +- `inference_configuration` (Attributes) Model inference configuration (see [below for nested schema](#nestedatt--variants--inference_configuration)) +- `model_id` (String) ARN or name of a Bedrock model. +- `name` (String) Name for a variant. +- `template_configuration` (Attributes) Prompt template configuration (see [below for nested schema](#nestedatt--variants--template_configuration)) +- `template_type` (String) Prompt template type + + +### Nested Schema for `variants.inference_configuration` + +Read-Only: + +- `text` (Attributes) Prompt model inference configuration (see [below for nested schema](#nestedatt--variants--inference_configuration--text)) + + +### Nested Schema for `variants.inference_configuration.text` + +Read-Only: + +- `max_tokens` (Number) Maximum length of output +- `stop_sequences` (List of String) List of stop sequences +- `temperature` (Number) Controls randomness, higher values increase diversity +- `top_k` (Number) Sample from the k most likely next tokens +- `top_p` (Number) Cumulative probability cutoff for token selection + + + + +### Nested Schema for `variants.template_configuration` + +Read-Only: + +- `text` (Attributes) Configuration for text prompt template (see [below for nested schema](#nestedatt--variants--template_configuration--text)) + + +### Nested Schema for `variants.template_configuration.text` + +Read-Only: + +- `input_variables` (Attributes List) List of input variables (see [below for nested schema](#nestedatt--variants--template_configuration--text--input_variables)) +- `text` (String) Prompt content for String prompt template + + +### Nested Schema for `variants.template_configuration.text.input_variables` + +Read-Only: + +- `name` (String) Name for an input variable diff --git a/docs/data-sources/bedrock_prompts.md b/docs/data-sources/bedrock_prompts.md new file mode 100644 index 0000000000..1716a0b0d9 --- /dev/null +++ b/docs/data-sources/bedrock_prompts.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_bedrock_prompts Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::Bedrock::Prompt +--- + +# awscc_bedrock_prompts (Data Source) + +Plural Data Source schema for AWS::Bedrock::Prompt + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/ec2_eip_association.md b/docs/data-sources/ec2_eip_association.md index 9f417e4118..7bab91e45f 100644 --- a/docs/data-sources/ec2_eip_association.md +++ b/docs/data-sources/ec2_eip_association.md @@ -21,9 +21,10 @@ Data Source schema for AWS::EC2::EIPAssociation ### Read-Only -- `allocation_id` (String) The allocation ID. This is required for EC2-VPC. -- `eip` (String) The Elastic IP address to associate with the instance. -- `eip_association_id` (String) Composite ID of non-empty properties, to determine the identification. -- `instance_id` (String) The ID of the instance. -- `network_interface_id` (String) The ID of the network interface. -- `private_ip_address` (String) The primary or secondary private IP address to associate with the Elastic IP address. +- `allocation_id` (String) The allocation ID. This is required. +- `eip` (String) +- `eip_association_id` (String) +- `instance_id` (String) The ID of the instance. The instance must have exactly one attached network interface. You can specify either the instance ID or the network interface ID, but not both. +- `network_interface_id` (String) The ID of the network interface. If the instance has more than one network interface, you must specify a network interface ID. + You can specify either the instance ID or the network interface ID, but not both. +- `private_ip_address` (String) The primary or secondary private IP address to associate with the Elastic IP address. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address. diff --git a/docs/data-sources/ec2_launch_template.md b/docs/data-sources/ec2_launch_template.md index 4181e6fea6..8e6f39a07f 100644 --- a/docs/data-sources/ec2_launch_template.md +++ b/docs/data-sources/ec2_launch_template.md @@ -37,9 +37,9 @@ Read-Only: - `block_device_mappings` (Attributes List) The block device mapping. (see [below for nested schema](#nestedatt--launch_template_data--block_device_mappings)) - `capacity_reservation_specification` (Attributes) The Capacity Reservation targeting option. If you do not specify this parameter, the instance's Capacity Reservation preference defaults to ``open``, which enables it to run in any open Capacity Reservation that has matching attributes (instance type, platform, Availability Zone). (see [below for nested schema](#nestedatt--launch_template_data--capacity_reservation_specification)) -- `cpu_options` (Attributes) The CPU options for the instance. For more information, see [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--cpu_options)) +- `cpu_options` (Attributes) The CPU options for the instance. For more information, see [Optimize CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon EC2 User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--cpu_options)) - `credit_specification` (Attributes) The credit option for CPU usage of the instance. Valid only for T instances. (see [below for nested schema](#nestedatt--launch_template_data--credit_specification)) -- `disable_api_stop` (Boolean) Indicates whether to enable the instance for stop protection. For more information, see [Stop protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection) in the *Amazon Elastic Compute Cloud User Guide*. +- `disable_api_stop` (Boolean) Indicates whether to enable the instance for stop protection. For more information, see [Enable stop protection for your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-stop-protection.html) in the *Amazon EC2 User Guide*. - `disable_api_termination` (Boolean) If you set this parameter to ``true``, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. To change this attribute after launch, use [ModifyInstanceAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html). Alternatively, if you set ``InstanceInitiatedShutdownBehavior`` to ``terminate``, you can terminate the instance by running the shutdown command from the instance. - `ebs_optimized` (Boolean) Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. - `elastic_gpu_specifications` (Attributes List) Deprecated. @@ -49,7 +49,7 @@ Read-Only: Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service. (see [below for nested schema](#nestedatt--launch_template_data--elastic_inference_accelerators)) - `enclave_options` (Attributes) Indicates whether the instance is enabled for AWS Nitro Enclaves. For more information, see [What is Nitro Enclaves?](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html) in the *Nitro Enclaves User Guide*. You can't enable AWS Nitro Enclaves and hibernation on the same instance. (see [below for nested schema](#nestedatt--launch_template_data--enclave_options)) -- `hibernation_options` (Attributes) Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon Elastic Compute Cloud User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--hibernation_options)) +- `hibernation_options` (Attributes) Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your Amazon EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon EC2 User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--hibernation_options)) - `iam_instance_profile` (Attributes) The name or Amazon Resource Name (ARN) of an IAM instance profile. (see [below for nested schema](#nestedatt--launch_template_data--iam_instance_profile)) - `image_id` (String) The ID of the AMI. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch. Valid formats: @@ -72,7 +72,7 @@ Read-Only: If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements)) -- `instance_type` (String) The instance type. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon Elastic Compute Cloud User Guide*. +- `instance_type` (String) The instance type. For more information, see [Amazon EC2 instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*. If you specify ``InstanceType``, you can't specify ``InstanceRequirements``. - `kernel_id` (String) The ID of the kernel. We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User Provided Kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*. @@ -80,13 +80,13 @@ Read-Only: If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in. - `license_specifications` (Attributes List) The license configurations. (see [below for nested schema](#nestedatt--launch_template_data--license_specifications)) - `maintenance_options` (Attributes) The maintenance options of your instance. (see [below for nested schema](#nestedatt--launch_template_data--maintenance_options)) -- `metadata_options` (Attributes) The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon Elastic Compute Cloud User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--metadata_options)) +- `metadata_options` (Attributes) The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon EC2 User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--metadata_options)) - `monitoring` (Attributes) The monitoring for the instance. (see [below for nested schema](#nestedatt--launch_template_data--monitoring)) - `network_interfaces` (Attributes List) The network interfaces for the instance. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces)) - `placement` (Attributes) The placement for the instance. (see [below for nested schema](#nestedatt--launch_template_data--placement)) - `private_dns_name_options` (Attributes) The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--private_dns_name_options)) - `ram_disk_id` (String) The ID of the RAM disk. - We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon Elastic Compute Cloud User Guide*. + We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*. - `security_group_ids` (List of String) The IDs of the security groups. You can specify the IDs of existing security groups and references to resources created by the stack template. If you specify a network interface, you must specify any security groups as part of the network interface instead. - `security_groups` (List of String) The names of the security groups. For a nondefault VPC, you must use security group IDs instead. @@ -94,7 +94,7 @@ Read-Only: - `tag_specifications` (Attributes List) The tags to apply to the resources that are created during instance launch. To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html). To tag the launch template itself, use [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#cfn-ec2-launchtemplate-tagspecifications). (see [below for nested schema](#nestedatt--launch_template_data--tag_specifications)) -- `user_data` (String) The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) (Linux) or [Work with instance user data](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instancedata-add-user-data.html) (Windows) in the *Amazon Elastic Compute Cloud User Guide*. +- `user_data` (String) The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Amazon EC2 instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) in the *Amazon EC2 User Guide*. If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*. @@ -180,7 +180,7 @@ Read-Only: Read-Only: -- `type` (String) The type of Elastic Graphics accelerator. For more information about the values to specify for ``Type``, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*. +- `type` (String) The type of Elastic Graphics accelerator. @@ -333,7 +333,7 @@ Read-Only: Default: ``hdd`` and ``ssd`` - `max_spot_price_as_percentage_of_optimal_on_demand_price` (Number) [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. The parameter accepts an integer, which Amazon EC2 interprets as a percentage. - 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. + 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. 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``. - `memory_gi_b_per_v_cpu` (Attributes) The minimum and maximum amount of memory per vCPU, in GiB. Default: No minimum or maximum limits (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--memory_gi_b_per_v_cpu)) @@ -503,7 +503,7 @@ Read-Only: - `device_index` (Number) The device index for the network interface attachment. Each network interface requires a device index. If you create a launch template that includes secondary network interfaces but not a primary network interface, then you must add a primary network interface as a launch parameter when you launch an instance from the template. - `ena_srd_specification` (Attributes) The ENA Express configuration for the network interface. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--ena_srd_specification)) - `groups` (List of String) The IDs of one or more security groups. -- `interface_type` (String) The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon Elastic Compute Cloud User Guide*. +- `interface_type` (String) The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon EC2 User Guide*. If you are not creating an EFA, specify ``interface`` or omit this parameter. Valid values: ``interface`` | ``efa`` - `ipv_4_prefix_count` (Number) The number of IPv4 prefixes to be automatically assigned to the network interface. You cannot use this option if you use the ``Ipv4Prefix`` option. @@ -552,7 +552,7 @@ Read-Only: Read-Only: -- `ipv_4_prefix` (String) The IPv4 prefix. For information, see [Assigning prefixes to Amazon EC2 network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon Elastic Compute Cloud User Guide*. +- `ipv_4_prefix` (String) The IPv4 prefix. For information, see [Assigning prefixes to network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon EC2 User Guide*. @@ -612,8 +612,7 @@ Read-Only: Read-Only: -- `resource_type` (String) The type of resource to tag. - Valid Values lists all resource types for Amazon EC2 that can be tagged. When you create a launch template, you can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume. +- `resource_type` (String) The type of resource to tag. You can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume. To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html). - `tags` (Attributes List) The tags to apply to the resource. (see [below for nested schema](#nestedatt--launch_template_data--tag_specifications--tags)) @@ -633,7 +632,7 @@ Read-Only: Read-Only: -- `resource_type` (String) The type of resource. To tag the launch template, ``ResourceType`` must be ``launch-template``. +- `resource_type` (String) The type of resource. To tag a launch template, ``ResourceType`` must be ``launch-template``. - `tags` (Attributes List) The tags for the resource. (see [below for nested schema](#nestedatt--tag_specifications--tags)) diff --git a/docs/data-sources/ec2_network_interface_attachment.md b/docs/data-sources/ec2_network_interface_attachment.md index 9b31ed8720..94d7f0890b 100644 --- a/docs/data-sources/ec2_network_interface_attachment.md +++ b/docs/data-sources/ec2_network_interface_attachment.md @@ -21,10 +21,10 @@ Data Source schema for AWS::EC2::NetworkInterfaceAttachment ### Read-Only -- `attachment_id` (String) The ID of the network interface attachment. -- `delete_on_termination` (Boolean) Whether to delete the network interface when the instance terminates. By default, this value is set to true. -- `device_index` (String) The network interface's position in the attachment order. For example, the first attached network interface has a DeviceIndex of 0. -- `ena_srd_specification` (Attributes) (see [below for nested schema](#nestedatt--ena_srd_specification)) +- `attachment_id` (String) +- `delete_on_termination` (Boolean) Whether to delete the network interface when the instance terminates. By default, this value is set to ``true``. +- `device_index` (String) The network interface's position in the attachment order. For example, the first attached network interface has a ``DeviceIndex`` of 0. +- `ena_srd_specification` (Attributes) Configures ENA Express for the network interface that this action attaches to the instance. (see [below for nested schema](#nestedatt--ena_srd_specification)) - `instance_id` (String) The ID of the instance to which you will attach the ENI. - `network_interface_id` (String) The ID of the ENI that you want to attach. @@ -33,8 +33,8 @@ Data Source schema for AWS::EC2::NetworkInterfaceAttachment Read-Only: -- `ena_srd_enabled` (Boolean) -- `ena_srd_udp_specification` (Attributes) (see [below for nested schema](#nestedatt--ena_srd_specification--ena_srd_udp_specification)) +- `ena_srd_enabled` (Boolean) Indicates whether ENA Express is enabled for the network interface. +- `ena_srd_udp_specification` (Attributes) Configures ENA Express for UDP network traffic. (see [below for nested schema](#nestedatt--ena_srd_specification--ena_srd_udp_specification)) ### Nested Schema for `ena_srd_specification.ena_srd_udp_specification` diff --git a/docs/data-sources/ecr_repository.md b/docs/data-sources/ecr_repository.md index 80f4ff12d7..70adadcb85 100644 --- a/docs/data-sources/ecr_repository.md +++ b/docs/data-sources/ecr_repository.md @@ -41,7 +41,7 @@ Read-Only: - `encryption_type` (String) The encryption type to use. If you use the ``KMS`` encryption type, the contents of the repository will be encrypted using server-side encryption with KMSlong key stored in KMS. When you use KMS to encrypt your data, you can either use the default AWS managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see [Protecting data using server-side encryption with an key stored in (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*. - If you use the ``AES256`` encryption type, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts the images in the repository using an AES-256 encryption algorithm. For more information, see [Protecting data using server-side encryption with Amazon S3-managed encryption keys (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) in the *Ama + If you use the ``AES256`` encryption type, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts the images in the repository using an AES-256 encryption algorithm. For more information, see [Protecting data using server-side encryption with Amazon S3-managed encryption keys (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*. - `kms_key` (String) If you use the ``KMS`` encryption type, specify the KMS key to use for encryption. The alias, key ID, or full ARN of the KMS key can be specified. The key must exist in the same Region as the repository. If no key is specified, the default AWS managed KMS key for Amazon ECR will be used. diff --git a/docs/data-sources/ecr_repository_creation_template.md b/docs/data-sources/ecr_repository_creation_template.md index 946d056c5f..ca55306d63 100644 --- a/docs/data-sources/ecr_repository_creation_template.md +++ b/docs/data-sources/ecr_repository_creation_template.md @@ -23,6 +23,7 @@ Data Source schema for AWS::ECR::RepositoryCreationTemplate - `applied_for` (Set of String) A list of enumerable Strings representing the repository creation scenarios that the template will apply towards. - `created_at` (String) Create timestamp of the template. +- `custom_role_arn` (String) The ARN of the role to be assumed by ECR. This role must be in the same account as the registry that you are configuring. - `description` (String) The description of the template. - `encryption_configuration` (Attributes) The encryption configuration for the repository. This determines how the contents of your repository are encrypted at rest. By default, when no encryption configuration is set or the AES256 encryption type is used, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts your data at rest using an AES-256 encryption algorithm. This does not require any action on your part. diff --git a/docs/data-sources/eks_cluster.md b/docs/data-sources/eks_cluster.md index fa672e03fa..33afcbb175 100644 --- a/docs/data-sources/eks_cluster.md +++ b/docs/data-sources/eks_cluster.md @@ -38,6 +38,7 @@ Data Source schema for AWS::EKS::Cluster - `resources_vpc_config` (Attributes) An object representing the VPC configuration to use for an Amazon EKS cluster. (see [below for nested schema](#nestedatt--resources_vpc_config)) - `role_arn` (String) The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make calls to AWS API operations on your behalf. - `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) +- `upgrade_policy` (Attributes) An object representing the Upgrade Policy to use for the cluster. (see [below for nested schema](#nestedatt--upgrade_policy)) - `version` (String) The desired Kubernetes version for your cluster. If you don't specify a value here, the latest version available in Amazon EKS is used. @@ -137,3 +138,11 @@ Read-Only: - `key` (String) The key name of the tag. You can specify a value that is 1 to 128 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 value for the tag. You can specify a value that is 0 to 256 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 -. + + + +### Nested Schema for `upgrade_policy` + +Read-Only: + +- `support_type` (String) Specify the support type for your cluster. diff --git a/docs/data-sources/globalaccelerator_cross_account_attachment.md b/docs/data-sources/globalaccelerator_cross_account_attachment.md index 9c55de3912..19a61fb41b 100644 --- a/docs/data-sources/globalaccelerator_cross_account_attachment.md +++ b/docs/data-sources/globalaccelerator_cross_account_attachment.md @@ -32,6 +32,7 @@ Data Source schema for AWS::GlobalAccelerator::CrossAccountAttachment Read-Only: +- `cidr` (String) - `endpoint_id` (String) - `region` (String) diff --git a/docs/data-sources/glue_trigger.md b/docs/data-sources/glue_trigger.md new file mode 100644 index 0000000000..c0619bb06a --- /dev/null +++ b/docs/data-sources/glue_trigger.md @@ -0,0 +1,82 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_glue_trigger Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Glue::Trigger +--- + +# awscc_glue_trigger (Data Source) + +Data Source schema for AWS::Glue::Trigger + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `actions` (Attributes List) The actions initiated by this trigger. (see [below for nested schema](#nestedatt--actions)) +- `description` (String) A description of this trigger. +- `event_batching_condition` (Attributes) Batch condition that must be met (specified number of events received or batch time window expired) before EventBridge event trigger fires. (see [below for nested schema](#nestedatt--event_batching_condition)) +- `name` (String) The name of the trigger. +- `predicate` (Attributes) The predicate of this trigger, which defines when it will fire. (see [below for nested schema](#nestedatt--predicate)) +- `schedule` (String) A cron expression used to specify the schedule. +- `start_on_creation` (Boolean) Set to true to start SCHEDULED and CONDITIONAL triggers when created. True is not supported for ON_DEMAND triggers. +- `tags` (String) The tags to use with this trigger. +- `type` (String) The type of trigger that this is. +- `workflow_name` (String) The name of the workflow associated with the trigger. + + +### Nested Schema for `actions` + +Read-Only: + +- `arguments` (String) The job arguments used when this trigger fires. For this job run, they replace the default arguments set in the job definition itself. +- `crawler_name` (String) The name of the crawler to be used with this action. +- `job_name` (String) The name of a job to be executed. +- `notification_property` (Attributes) Specifies configuration properties of a job run notification. (see [below for nested schema](#nestedatt--actions--notification_property)) +- `security_configuration` (String) The name of the SecurityConfiguration structure to be used with this action. +- `timeout` (Number) The JobRun timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. The default is 2,880 minutes (48 hours). This overrides the timeout value set in the parent job. + + +### Nested Schema for `actions.notification_property` + +Read-Only: + +- `notify_delay_after` (Number) After a job run starts, the number of minutes to wait before sending a job run delay notification + + + + +### Nested Schema for `event_batching_condition` + +Read-Only: + +- `batch_size` (Number) Number of events that must be received from Amazon EventBridge before EventBridge event trigger fires. +- `batch_window` (Number) Window of time in seconds after which EventBridge event trigger fires. Window starts when first event is received. + + + +### Nested Schema for `predicate` + +Read-Only: + +- `conditions` (Attributes List) A list of the conditions that determine when the trigger will fire. (see [below for nested schema](#nestedatt--predicate--conditions)) +- `logical` (String) An optional field if only one condition is listed. If multiple conditions are listed, then this field is required. + + +### Nested Schema for `predicate.conditions` + +Read-Only: + +- `crawl_state` (String) The state of the crawler to which this condition applies. +- `crawler_name` (String) The name of the crawler to which this condition applies. +- `job_name` (String) The name of the job whose JobRuns this condition applies to, and on which this trigger waits. +- `logical_operator` (String) A logical operator. +- `state` (String) The condition state. Currently, the values supported are SUCCEEDED, STOPPED, TIMEOUT, and FAILED. diff --git a/docs/data-sources/glue_triggers.md b/docs/data-sources/glue_triggers.md new file mode 100644 index 0000000000..13bf7f9468 --- /dev/null +++ b/docs/data-sources/glue_triggers.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_glue_triggers Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::Glue::Trigger +--- + +# awscc_glue_triggers (Data Source) + +Plural Data Source schema for AWS::Glue::Trigger + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/lightsail_alarm.md b/docs/data-sources/lightsail_alarm.md index 6fe85204a7..db8e9e9a31 100644 --- a/docs/data-sources/lightsail_alarm.md +++ b/docs/data-sources/lightsail_alarm.md @@ -28,7 +28,7 @@ Data Source schema for AWS::Lightsail::Alarm - `datapoints_to_alarm` (Number) The number of data points that must be not within the specified threshold to trigger the alarm. If you are setting an "M out of N" alarm, this value (datapointsToAlarm) is the M. - `evaluation_periods` (Number) The number of most recent periods over which data is compared to the specified threshold. If you are setting an "M out of N" alarm, this value (evaluationPeriods) is the N. - `metric_name` (String) The name of the metric to associate with the alarm. -- `monitored_resource_name` (String) The validation status of the SSL/TLS certificate. +- `monitored_resource_name` (String) The name of the Lightsail resource that the alarm monitors. - `notification_enabled` (Boolean) Indicates whether the alarm is enabled. Notifications are enabled by default if you don't specify this parameter. - `notification_triggers` (Set of String) The alarm states that trigger a notification. - `state` (String) The current state of the alarm. diff --git a/docs/data-sources/mediaconnect_flow_output.md b/docs/data-sources/mediaconnect_flow_output.md index d1c16ab021..e4f277833d 100644 --- a/docs/data-sources/mediaconnect_flow_output.md +++ b/docs/data-sources/mediaconnect_flow_output.md @@ -31,6 +31,7 @@ Data Source schema for AWS::MediaConnect::FlowOutput - `min_latency` (Number) The minimum latency in milliseconds. - `name` (String) The name of the output. This value must be unique within the current flow. - `output_arn` (String) The ARN of the output. +- `output_status` (String) An indication of whether the output should transmit data or not. - `port` (Number) The port to use when content is distributed to this output. - `protocol` (String) The protocol that is used by the source or output. - `remote_id` (String) The remote ID for the Zixi-pull stream. diff --git a/docs/data-sources/mediapackagev2_channel.md b/docs/data-sources/mediapackagev2_channel.md index 56db9af973..2ba2484b23 100644 --- a/docs/data-sources/mediapackagev2_channel.md +++ b/docs/data-sources/mediapackagev2_channel.md @@ -28,6 +28,7 @@ Data Source schema for AWS::MediaPackageV2::Channel - `description` (String)

Enter any descriptive text that helps you to identify the channel.

- `ingest_endpoint_urls` (List of String) - `ingest_endpoints` (Attributes List)

The list of ingest endpoints.

(see [below for nested schema](#nestedatt--ingest_endpoints)) +- `input_type` (String) - `modified_at` (String)

The date and time the channel was modified.

- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) diff --git a/docs/data-sources/mediapackagev2_origin_endpoint.md b/docs/data-sources/mediapackagev2_origin_endpoint.md index 0243177e9a..1bcdd5b3eb 100644 --- a/docs/data-sources/mediapackagev2_origin_endpoint.md +++ b/docs/data-sources/mediapackagev2_origin_endpoint.md @@ -29,6 +29,7 @@ Data Source schema for AWS::MediaPackageV2::OriginEndpoint - `dash_manifest_urls` (List of String) - `dash_manifests` (Attributes List)

A DASH manifest configuration.

(see [below for nested schema](#nestedatt--dash_manifests)) - `description` (String)

Enter any descriptive text that helps you to identify the origin endpoint.

+- `force_endpoint_error_configuration` (Attributes)

The failover settings for the endpoint.

(see [below for nested schema](#nestedatt--force_endpoint_error_configuration)) - `hls_manifest_urls` (List of String) - `hls_manifests` (Attributes List)

An HTTP live streaming (HLS) manifest configuration.

(see [below for nested schema](#nestedatt--hls_manifests)) - `low_latency_hls_manifest_urls` (List of String) @@ -86,6 +87,28 @@ Read-Only: + +### Nested Schema for `force_endpoint_error_configuration` + +Read-Only: + +- `endpoint_error_conditions` (List of String)

The failover settings for the endpoint. The options are:

+
    +
  • +

    + STALE_MANIFEST - The manifest stalled and there a no new segments or parts.

    +
  • +
  • +

    + INCOMPLETE_MANIFEST - There is a gap in the manifest.

    +
  • +
  • +

    + MISSING_DRM_KEY - Key rotation is enabled but we're unable to fetch the key for the current key period.

    +
  • +
+ + ### Nested Schema for `hls_manifests` diff --git a/docs/data-sources/rds_db_cluster.md b/docs/data-sources/rds_db_cluster.md index 28ef886e4f..09b38643be 100644 --- a/docs/data-sources/rds_db_cluster.md +++ b/docs/data-sources/rds_db_cluster.md @@ -237,7 +237,7 @@ Data Source schema for AWS::RDS::DBCluster Constraints: Minimum 30-minute window. Valid for: Aurora DB clusters and Multi-AZ DB clusters - `publicly_accessible` (Boolean) Specifies whether the DB cluster is publicly accessible. - When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it. + When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it. When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address. Valid for Cluster Type: Multi-AZ DB clusters only Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified. @@ -358,7 +358,7 @@ Read-Only: Read-Only: - `kms_key_id` (String) The AWS KMS key identifier that is used to encrypt the secret. -- `secret_arn` (String) The Amazon Resource Name (ARN) of the secret. +- `secret_arn` (String) The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#aws-resource-rds-dbcluster-return-values). diff --git a/docs/data-sources/rds_db_instance.md b/docs/data-sources/rds_db_instance.md index 6edc5f52d5..50541cc7f8 100644 --- a/docs/data-sources/rds_db_instance.md +++ b/docs/data-sources/rds_db_instance.md @@ -74,7 +74,7 @@ Data Source schema for AWS::RDS::DBInstance Not applicable. The associated roles are managed by the DB cluster. (see [below for nested schema](#nestedatt--associated_roles)) - `auto_minor_version_upgrade` (Boolean) A value that indicates whether minor engine upgrades are applied automatically to the DB instance during the maintenance window. By default, minor engine upgrades are applied automatically. - `automatic_backup_replication_kms_key_id` (String) The AWS KMS key identifier for encryption of the replicated automated backups. The KMS key ID is the Amazon Resource Name (ARN) for the KMS encryption key in the destination AWS-Region, for example, ``arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE``. -- `automatic_backup_replication_region` (String) The destination region for the backup replication of the DB instance. For more info, see [Replicating automated backups to another Region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReplicateBackups.html) in the *Amazon RDS User Guide*. +- `automatic_backup_replication_region` (String) - `availability_zone` (String) The Availability Zone (AZ) where the database will be created. For information on AWS-Regions and Availability Zones, see [Regions and Availability Zones](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html). For Amazon Aurora, each Aurora DB cluster hosts copies of its storage in three separate Availability Zones. Specify one of these Availability Zones. Aurora automatically chooses an appropriate Availability Zone if you don't specify one. Default: A random, system-chosen Availability Zone in the endpoint's AWS-Region. @@ -205,7 +205,6 @@ Data Source schema for AWS::RDS::DBInstance + ``DBClusterIdentifier`` + ``DBName`` + ``DeleteAutomatedBackups`` - + ``EnablePerformanceInsights`` + ``KmsKeyId`` + ``MasterUsername`` + ``MasterUserPassword`` @@ -580,7 +579,7 @@ Read-Only: Read-Only: - `kms_key_id` (String) The AWS KMS key identifier that is used to encrypt the secret. -- `secret_arn` (String) The Amazon Resource Name (ARN) of the secret. +- `secret_arn` (String) The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#aws-resource-rds-dbinstance-return-values). diff --git a/docs/data-sources/secretsmanager_resource_policies.md b/docs/data-sources/secretsmanager_resource_policies.md new file mode 100644 index 0000000000..39ac01167c --- /dev/null +++ b/docs/data-sources/secretsmanager_resource_policies.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_secretsmanager_resource_policies Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::SecretsManager::ResourcePolicy +--- + +# awscc_secretsmanager_resource_policies (Data Source) + +Plural Data Source schema for AWS::SecretsManager::ResourcePolicy + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/secretsmanager_resource_policy.md b/docs/data-sources/secretsmanager_resource_policy.md new file mode 100644 index 0000000000..f07345a521 --- /dev/null +++ b/docs/data-sources/secretsmanager_resource_policy.md @@ -0,0 +1,27 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_secretsmanager_resource_policy Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::SecretsManager::ResourcePolicy +--- + +# awscc_secretsmanager_resource_policy (Data Source) + +Data Source schema for AWS::SecretsManager::ResourcePolicy + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `block_public_policy` (Boolean) Specifies whether to block resource-based policies that allow broad access to the secret. +- `resource_policy` (String) A JSON-formatted string for an AWS resource-based policy. +- `resource_policy_id` (String) The Arn of the secret. +- `secret_id` (String) The ARN or name of the secret to attach the resource-based policy. diff --git a/docs/data-sources/workspacesweb_user_settings.md b/docs/data-sources/workspacesweb_user_settings.md index aade698d1d..69d77149e5 100644 --- a/docs/data-sources/workspacesweb_user_settings.md +++ b/docs/data-sources/workspacesweb_user_settings.md @@ -26,6 +26,7 @@ Data Source schema for AWS::WorkSpacesWeb::UserSettings - `cookie_synchronization_configuration` (Attributes) (see [below for nested schema](#nestedatt--cookie_synchronization_configuration)) - `copy_allowed` (String) - `customer_managed_key` (String) +- `deep_link_allowed` (String) - `disconnect_timeout_in_minutes` (Number) - `download_allowed` (String) - `idle_disconnect_timeout_in_minutes` (Number) diff --git a/docs/resources/applicationautoscaling_scaling_policy.md b/docs/resources/applicationautoscaling_scaling_policy.md index 20d85fbda4..10297577f4 100644 --- a/docs/resources/applicationautoscaling_scaling_policy.md +++ b/docs/resources/applicationautoscaling_scaling_policy.md @@ -3,12 +3,14 @@ page_title: "awscc_applicationautoscaling_scaling_policy Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::ApplicationAutoScaling::ScalingPolicy + The AWS::ApplicationAutoScaling::ScalingPolicy resource defines a scaling policy that Application Auto Scaling uses to adjust the capacity of a scalable target. + For more information, see Target tracking scaling policies https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html and 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. --- # awscc_applicationautoscaling_scaling_policy (Resource) -Resource Type definition for AWS::ApplicationAutoScaling::ScalingPolicy +The ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource defines a scaling policy that Application Auto Scaling uses to adjust the capacity of a scalable target. + For more information, see [Target tracking scaling policies](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) and [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*. @@ -18,28 +20,67 @@ Resource Type definition for AWS::ApplicationAutoScaling::ScalingPolicy ### Required - `policy_name` (String) The name of the scaling policy. - -Updates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing AWS::ApplicationAutoScaling::ScalingPolicy resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name. + Updates to the name of a target tracking scaling policy are not supported, unless you also update the metric used for scaling. To change only a target tracking scaling policy's name, first delete the policy by removing the existing ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource from the template and updating the stack. Then, recreate the resource with the same settings and a different name. - `policy_type` (String) The scaling policy type. - -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. + 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. ### Optional - `resource_id` (String) 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``. + + 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``. + + AppStream 2.0 fleet - The resource type is ``fleet`` and the unique identifier is the fleet name. Example: ``fleet/sample-fleet``. + + DynamoDB table - The resource type is ``table`` and the unique identifier is the table name. Example: ``table/my-table``. + + 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``. + + Aurora DB cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:my-db-cluster``. + + SageMaker endpoint variant - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``. + + 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). + + 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``. + + 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``. + + 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``. + + Amazon Keyspaces table - The resource type is ``table`` and the unique identifier is the table name. Example: ``keyspace/mykeyspace/table/mytable``. + + 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``. + + Amazon ElastiCache replication group - The resource type is ``replication-group`` and the unique identifier is the replication group name. Example: ``replication-group/mycluster``. + + Neptune cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:mycluster``. + + SageMaker serverless endpoint - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``. + + SageMaker inference component - The resource type is ``inference-component`` and the unique identifier is the resource ID. Example: ``inference-component/my-inference-component``. + + Pool of WorkSpaces - The resource type is ``workspacespool`` and the unique identifier is the pool ID. Example: ``workspacespool/wspool-123456``. - `scalable_dimension` (String) The scalable dimension. This string consists of the service namespace, resource type, and scaling property. -- `scaling_target_id` (String) The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the AWS::ApplicationAutoScaling::ScalableTarget resource. -- `service_namespace` (String) The namespace of the AWS service that provides the resource, or a custom-resource. + + ``ecs:service:DesiredCount`` - The task count of an ECS service. + + ``elasticmapreduce:instancegroup:InstanceCount`` - The instance count of an EMR Instance Group. + + ``ec2:spot-fleet-request:TargetCapacity`` - The target capacity of a Spot Fleet. + + ``appstream:fleet:DesiredCapacity`` - The capacity of an AppStream 2.0 fleet. + + ``dynamodb:table:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB table. + + ``dynamodb:table:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB table. + + ``dynamodb:index:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB global secondary index. + + ``dynamodb:index:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB global secondary index. + + ``rds:cluster:ReadReplicaCount`` - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition. + + ``sagemaker:variant:DesiredInstanceCount`` - The number of EC2 instances for a SageMaker model endpoint variant. + + ``custom-resource:ResourceType:Property`` - The scalable dimension for a custom resource provided by your own application or service. + + ``comprehend:document-classifier-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend document classification endpoint. + + ``comprehend:entity-recognizer-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend entity recognizer endpoint. + + ``lambda:function:ProvisionedConcurrency`` - The provisioned concurrency for a Lambda function. + + ``cassandra:table:ReadCapacityUnits`` - The provisioned read capacity for an Amazon Keyspaces table. + + ``cassandra:table:WriteCapacityUnits`` - The provisioned write capacity for an Amazon Keyspaces table. + + ``kafka:broker-storage:VolumeSize`` - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster. + + ``elasticache:replication-group:NodeGroups`` - The number of node groups for an Amazon ElastiCache replication group. + + ``elasticache:replication-group:Replicas`` - The number of replicas per node group for an Amazon ElastiCache replication group. + + ``neptune:cluster:ReadReplicaCount`` - The count of read replicas in an Amazon Neptune DB cluster. + + ``sagemaker:variant:DesiredProvisionedConcurrency`` - The provisioned concurrency for a SageMaker serverless endpoint. + + ``sagemaker:inference-component:DesiredCopyCount`` - The number of copies across an endpoint for a SageMaker inference component. + + ``workspaces:workspacespool:DesiredUserSessions`` - The number of user sessions for the WorkSpaces in the pool. +- `scaling_target_id` (String) The CloudFormation-generated ID of an Application Auto Scaling scalable target. For more information about the ID, see the Return Value section of the ``AWS::ApplicationAutoScaling::ScalableTarget`` resource. + You must specify either the ``ScalingTargetId`` property, or the ``ResourceId``, ``ScalableDimension``, and ``ServiceNamespace`` properties, but not both. +- `service_namespace` (String) The namespace of the AWS service that provides the resource, or a ``custom-resource``. - `step_scaling_policy_configuration` (Attributes) A step scaling policy. (see [below for nested schema](#nestedatt--step_scaling_policy_configuration)) - `target_tracking_scaling_policy_configuration` (Attributes) A target tracking scaling policy. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration)) ### Read-Only -- `arn` (String) ARN is a read only property for the resource. +- `arn` (String) - `id` (String) Uniquely identifies the resource. @@ -47,23 +88,26 @@ StepScaling Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspa Optional: -- `adjustment_type` (String) Specifies how the ScalingAdjustment value in a StepAdjustment is interpreted. -- `cooldown` (Number) The amount of time, in seconds, to wait for a previous scaling activity to take effect. -- `metric_aggregation_type` (String) 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 -- `min_adjustment_magnitude` (Number) The minimum value to scale by when the adjustment type is PercentChangeInCapacity. -- `step_adjustments` (Attributes Set) A set of adjustments that enable you to scale based on the size of the alarm breach. (see [below for nested schema](#nestedatt--step_scaling_policy_configuration--step_adjustments)) +- `adjustment_type` (String) Specifies whether the ``ScalingAdjustment`` value in the ``StepAdjustment`` property is an absolute number or a percentage of the current capacity. +- `cooldown` (Number) 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*. +- `metric_aggregation_type` (String) 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``. +- `min_adjustment_magnitude` (Number) 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. +- `step_adjustments` (Attributes Set) A set of adjustments that enable you to scale based on the size of the alarm breach. + At least one step adjustment is required if you are adding a new step scaling policy configuration. (see [below for nested schema](#nestedatt--step_scaling_policy_configuration--step_adjustments)) ### Nested Schema for `step_scaling_policy_configuration.step_adjustments` Required: -- `scaling_adjustment` (Number) The amount by which to scale, based on the specified adjustment type. A positive value adds to the current capacity while a negative number removes from the current capacity. For exact capacity, you must specify a positive value. +- `scaling_adjustment` (Number) The amount by which to scale. The adjustment is based on the value that you specified in the ``AdjustmentType`` property (either an absolute number or a percentage). A positive value adds to the current capacity and a negative number subtracts from the current capacity. Optional: - `metric_interval_lower_bound` (Number) The lower bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the lower bound is inclusive (the metric must be greater than or equal to the threshold plus the lower bound). Otherwise, it is exclusive (the metric must be greater than the threshold plus the lower bound). A null value indicates negative infinity. + You must specify at least one upper or lower bound. - `metric_interval_upper_bound` (Number) The upper bound for the difference between the alarm threshold and the CloudWatch metric. If the metric value is above the breach threshold, the upper bound is exclusive (the metric must be less than the threshold plus the upper bound). Otherwise, it is inclusive (the metric must be less than or equal to the threshold plus the upper bound). A null value indicates positive infinity. + You must specify at least one upper or lower bound. @@ -77,22 +121,23 @@ Required: Optional: - `customized_metric_specification` (Attributes) A customized metric. You can specify either a predefined metric or a customized metric. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification)) -- `disable_scale_in` (Boolean) Indicates whether scale in by the target tracking scaling policy is disabled. If the value is true, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is false. +- `disable_scale_in` (Boolean) Indicates whether scale in by the target tracking scaling policy is disabled. If the value is ``true``, scale in is disabled and the target tracking scaling policy won't remove capacity from the scalable target. Otherwise, scale in is enabled and the target tracking scaling policy can remove capacity from the scalable target. The default value is ``false``. - `predefined_metric_specification` (Attributes) A predefined metric. You can specify either a predefined metric or a customized metric. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--predefined_metric_specification)) -- `scale_in_cooldown` (Number) The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start. -- `scale_out_cooldown` (Number) The amount of time, in seconds, to wait for a previous scale-out activity to take effect. +- `scale_in_cooldown` (Number) The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*. +- `scale_out_cooldown` (Number) The amount of time, in seconds, to wait for a previous scale-out activity to take effect. For more information and for default values, see [Define cooldown periods](https://docs.aws.amazon.com/autoscaling/application/userguide/target-tracking-scaling-policy-overview.html#target-tracking-cooldown) in the *Application Auto Scaling User Guide*. ### Nested Schema for `target_tracking_scaling_policy_configuration.customized_metric_specification` Optional: -- `dimensions` (Attributes List) The dimensions of the metric. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--dimensions)) -- `metric_name` (String) The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the Metric object that is returned by a call to ListMetrics. +- `dimensions` (Attributes List) The dimensions of the metric. + Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--dimensions)) +- `metric_name` (String) The name of the metric. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that's returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html). - `metrics` (Attributes List) The metrics to include in the target tracking scaling policy, as a metric data query. This can include both raw metric and metric math expressions. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics)) - `namespace` (String) The namespace of the metric. - `statistic` (String) The statistic of the metric. -- `unit` (String) The unit of the metric. For a complete list of the units that CloudWatch supports, see the MetricDatum data type in the Amazon CloudWatch API Reference. +- `unit` (String) The unit of the metric. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*. ### Nested Schema for `target_tracking_scaling_policy_configuration.customized_metric_specification.dimensions` @@ -108,29 +153,35 @@ Required: Optional: -- `expression` (String) The math expression to perform on the returned data, if this object is performing a math expression. -- `id` (String) A short name that identifies the object's results in the response. +- `expression` (String) The math expression to perform on the returned data, if this object is performing a math expression. This expression can use the ``Id`` of the other metrics to refer to those metrics, and can also use the ``Id`` of other expressions to use the result of those expressions. + Conditional: Within each ``TargetTrackingMetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both. +- `id` (String) A short name that identifies the object's results in the response. This name must be unique among all ``MetricDataQuery`` objects specified for a single scaling policy. If you are performing math expressions on this set of data, this name represents that data and can serve as a variable in the mathematical expression. The valid characters are letters, numbers, and underscores. The first character must be a lowercase letter. - `label` (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. -- `metric_stat` (Attributes) Information about the metric data to return. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics--metric_stat)) -- `return_data` (Boolean) Indicates whether to return the timestamps and raw data values of this metric. +- `metric_stat` (Attributes) Information about the metric data to return. + Conditional: Within each ``MetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics--metric_stat)) +- `return_data` (Boolean) Indicates whether to return the timestamps and raw data values of this metric. + If you use any math expressions, specify ``true`` for this value for only the final math expression that the metric specification is based on. You must specify ``false`` for ``ReturnData`` for all the other metrics and expressions used in the metric specification. + If you are only retrieving metrics and not performing any math expressions, do not specify anything for ``ReturnData``. This sets it to its default (``true``). ### Nested Schema for `target_tracking_scaling_policy_configuration.customized_metric_specification.metrics.metric_stat` Optional: -- `metric` (Attributes) The CloudWatch metric to return, including the metric name, namespace, and dimensions. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics--metric_stat--metric)) -- `stat` (String) The statistic to return. It can include any CloudWatch statistic or extended statistic. -- `unit` (String) The unit to use for the returned data points. +- `metric` (Attributes) The CloudWatch metric to return, including the metric name, namespace, and dimensions. To get the exact metric name, namespace, and dimensions, inspect the [Metric](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html) object that is returned by a call to [ListMetrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html). (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics--metric_stat--metric)) +- `stat` (String) The statistic to return. It can include any CloudWatch statistic or extended statistic. For a list of valid values, see the table in [Statistics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic) in the *Amazon CloudWatch User Guide*. + The most commonly used metric for scaling is ``Average``. +- `unit` (String) The unit to use for the returned data points. For a complete list of the units that CloudWatch supports, see the [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) data type in the *Amazon CloudWatch API Reference*. ### Nested Schema for `target_tracking_scaling_policy_configuration.customized_metric_specification.metrics.metric_stat.metric` Optional: -- `dimensions` (Attributes List) The dimensions for the metric. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics--metric_stat--metric--dimensions)) +- `dimensions` (Attributes List) 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*. + Conditional: If you published your metric with dimensions, you must specify the same dimensions in your scaling policy. (see [below for nested schema](#nestedatt--target_tracking_scaling_policy_configuration--customized_metric_specification--metrics--metric_stat--metric--dimensions)) - `metric_name` (String) The name of the metric. -- `namespace` (String) The namespace of the metric. +- `namespace` (String) 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*. ### Nested Schema for `target_tracking_scaling_policy_configuration.customized_metric_specification.metrics.metric_stat.metric.dimensions` @@ -150,11 +201,18 @@ Optional: Required: -- `predefined_metric_type` (String) The metric type. The ALBRequestCountPerTarget metric type applies only to Spot Fleets and ECS services. +- `predefined_metric_type` (String) The metric type. The ``ALBRequestCountPerTarget`` metric type applies only to Spot fleet requests and ECS services. Optional: -- `resource_label` (String) 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. +- `resource_label` (String) 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. + 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: + ``app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff``. + Where: + + app// is the final portion of the load balancer ARN + + targetgroup// is the final portion of the target group ARN. + + 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. ## Import diff --git a/docs/resources/bedrock_flow_alias.md b/docs/resources/bedrock_flow_alias.md new file mode 100644 index 0000000000..c8ffd99d45 --- /dev/null +++ b/docs/resources/bedrock_flow_alias.md @@ -0,0 +1,51 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_bedrock_flow_alias Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Definition of AWS::Bedrock::FlowAlias Resource Type +--- + +# awscc_bedrock_flow_alias (Resource) + +Definition of AWS::Bedrock::FlowAlias Resource Type + + + + +## Schema + +### Required + +- `flow_arn` (String) Arn representation of the Flow +- `name` (String) Name for a resource. +- `routing_configuration` (Attributes List) Routing configuration for a Flow alias. (see [below for nested schema](#nestedatt--routing_configuration)) + +### Optional + +- `description` (String) Description of the Resource. +- `tags` (Map of String) A map of tag keys and values + +### Read-Only + +- `arn` (String) Arn of the Flow Alias +- `created_at` (String) Time Stamp. +- `flow_alias_id` (String) Id for a Flow Alias generated at the server side. +- `flow_id` (String) Identifier for a flow resource. +- `id` (String) Uniquely identifies the resource. +- `updated_at` (String) Time Stamp. + + +### Nested Schema for `routing_configuration` + +Optional: + +- `flow_version` (String) Version. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_bedrock_flow_alias.example +``` diff --git a/docs/resources/bedrock_flow_version.md b/docs/resources/bedrock_flow_version.md new file mode 100644 index 0000000000..39e6c97098 --- /dev/null +++ b/docs/resources/bedrock_flow_version.md @@ -0,0 +1,256 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_bedrock_flow_version Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Definition of AWS::Bedrock::FlowVersion Resource Type +--- + +# awscc_bedrock_flow_version (Resource) + +Definition of AWS::Bedrock::FlowVersion Resource Type + + + + +## Schema + +### Required + +- `flow_arn` (String) Arn representation of the Flow + +### Optional + +- `description` (String) Description of the flow version + +### Read-Only + +- `created_at` (String) Time Stamp. +- `definition` (Attributes) Flow definition (see [below for nested schema](#nestedatt--definition)) +- `execution_role_arn` (String) ARN of a IAM role +- `flow_id` (String) Identifier for a Flow +- `id` (String) Uniquely identifies the resource. +- `name` (String) Name for the flow +- `status` (String) Schema Type for Flow APIs +- `version` (String) Numerical Version. + + +### Nested Schema for `definition` + +Read-Only: + +- `connections` (Attributes List) List of connections (see [below for nested schema](#nestedatt--definition--connections)) +- `nodes` (Attributes List) List of nodes in a flow (see [below for nested schema](#nestedatt--definition--nodes)) + + +### Nested Schema for `definition.connections` + +Read-Only: + +- `configuration` (Attributes) Connection configuration (see [below for nested schema](#nestedatt--definition--connections--configuration)) +- `name` (String) Name of a connection in a flow +- `source` (String) Name of a node in a flow +- `target` (String) Name of a node in a flow +- `type` (String) Connection type + + +### Nested Schema for `definition.connections.configuration` + +Read-Only: + +- `conditional` (Attributes) Conditional connection configuration (see [below for nested schema](#nestedatt--definition--connections--configuration--conditional)) +- `data` (Attributes) Data connection configuration (see [below for nested schema](#nestedatt--definition--connections--configuration--data)) + + +### Nested Schema for `definition.connections.configuration.conditional` + +Read-Only: + +- `condition` (String) Name of a condition in a flow + + + +### Nested Schema for `definition.connections.configuration.data` + +Read-Only: + +- `source_output` (String) Name of a node output in a flow +- `target_input` (String) Name of a node input in a flow + + + + + +### Nested Schema for `definition.nodes` + +Read-Only: + +- `configuration` (Attributes) Node configuration in a flow (see [below for nested schema](#nestedatt--definition--nodes--configuration)) +- `inputs` (Attributes List) List of node inputs in a flow (see [below for nested schema](#nestedatt--definition--nodes--inputs)) +- `name` (String) Name of a node in a flow +- `outputs` (Attributes List) List of node outputs in a flow (see [below for nested schema](#nestedatt--definition--nodes--outputs)) +- `type` (String) Flow node types + + +### Nested Schema for `definition.nodes.configuration` + +Read-Only: + +- `condition` (Attributes) Condition flow node configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--condition)) +- `input` (String) Input flow node configuration +- `knowledge_base` (Attributes) Knowledge base flow node configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--knowledge_base)) +- `lambda_function` (Attributes) Lambda function flow node configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--lambda_function)) +- `lex` (Attributes) Lex flow node configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--lex)) +- `output` (String) Output flow node configuration +- `prompt` (Attributes) Prompt flow node configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt)) + + +### Nested Schema for `definition.nodes.configuration.condition` + +Read-Only: + +- `conditions` (Attributes List) List of conditions in a condition node (see [below for nested schema](#nestedatt--definition--nodes--configuration--condition--conditions)) + + +### Nested Schema for `definition.nodes.configuration.condition.conditions` + +Read-Only: + +- `expression` (String) Expression for a condition in a flow +- `name` (String) Name of a condition in a flow + + + + +### Nested Schema for `definition.nodes.configuration.knowledge_base` + +Read-Only: + +- `knowledge_base_id` (String) Identifier of the KnowledgeBase +- `model_id` (String) ARN or name of a Bedrock model. + + + +### Nested Schema for `definition.nodes.configuration.lambda_function` + +Read-Only: + +- `lambda_arn` (String) ARN of a Lambda. + + + +### Nested Schema for `definition.nodes.configuration.lex` + +Read-Only: + +- `bot_alias_arn` (String) ARN of a Lex bot alias +- `locale_id` (String) Lex bot locale id + + + +### Nested Schema for `definition.nodes.configuration.prompt` + +Read-Only: + +- `source_configuration` (Attributes) Prompt source configuration for prompt node (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration)) + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration` + +Read-Only: + +- `inline` (Attributes) Inline prompt configuration for prompt node (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--inline)) +- `resource` (Attributes) Resource prompt configuration for prompt node (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--resource)) + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.inline` + +Read-Only: + +- `inference_configuration` (Attributes) Model inference configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--inline--inference_configuration)) +- `model_id` (String) ARN or name of a Bedrock model. +- `template_configuration` (Attributes) Prompt template configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--inline--template_configuration)) +- `template_type` (String) Prompt template type + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.inline.inference_configuration` + +Read-Only: + +- `text` (Attributes) Prompt model inference configuration (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--inline--inference_configuration--text)) + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.inline.inference_configuration.text` + +Read-Only: + +- `max_tokens` (Number) Maximum length of output +- `stop_sequences` (List of String) List of stop sequences +- `temperature` (Number) Controls randomness, higher values increase diversity +- `top_k` (Number) Sample from the k most likely next tokens +- `top_p` (Number) Cumulative probability cutoff for token selection + + + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.inline.template_configuration` + +Read-Only: + +- `text` (Attributes) Configuration for text prompt template (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--inline--template_configuration--text)) + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.inline.template_configuration.text` + +Read-Only: + +- `input_variables` (Attributes List) List of input variables (see [below for nested schema](#nestedatt--definition--nodes--configuration--prompt--source_configuration--inline--template_configuration--text--input_variables)) +- `text` (String) Prompt content for String prompt template + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.inline.template_configuration.text.input_variables` + +Read-Only: + +- `name` (String) Name for an input variable + + + + + + +### Nested Schema for `definition.nodes.configuration.prompt.source_configuration.resource` + +Read-Only: + +- `prompt_arn` (String) ARN of a prompt resource possibly with a version + + + + + + +### Nested Schema for `definition.nodes.inputs` + +Read-Only: + +- `expression` (String) Expression for a node input in a flow +- `name` (String) Name of a node input in a flow +- `type` (String) Type of input/output for a node in a flow + + + +### Nested Schema for `definition.nodes.outputs` + +Read-Only: + +- `name` (String) Name of a node output in a flow +- `type` (String) Type of input/output for a node in a flow + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_bedrock_flow_version.example +``` diff --git a/docs/resources/bedrock_knowledge_base.md b/docs/resources/bedrock_knowledge_base.md index 48c5fcd85f..6b52768f1d 100644 --- a/docs/resources/bedrock_knowledge_base.md +++ b/docs/resources/bedrock_knowledge_base.md @@ -104,6 +104,26 @@ Required: - `embedding_model_arn` (String) The ARN of the model used to create vector embeddings for the knowledge base. +Optional: + +- `embedding_model_configuration` (Attributes) The embeddings model configuration details for the vector model used in Knowledge Base. (see [below for nested schema](#nestedatt--knowledge_base_configuration--vector_knowledge_base_configuration--embedding_model_configuration)) + + +### Nested Schema for `knowledge_base_configuration.vector_knowledge_base_configuration.embedding_model_configuration` + +Optional: + +- `bedrock_embedding_model_configuration` (Attributes) The vector configuration details for the Bedrock embeddings model. (see [below for nested schema](#nestedatt--knowledge_base_configuration--vector_knowledge_base_configuration--embedding_model_configuration--bedrock_embedding_model_configuration)) + + +### Nested Schema for `knowledge_base_configuration.vector_knowledge_base_configuration.embedding_model_configuration.bedrock_embedding_model_configuration` + +Optional: + +- `dimensions` (Number) The dimensions details for the vector configuration used on the Bedrock embeddings model. + + + @@ -115,10 +135,38 @@ Required: Optional: +- `mongo_db_atlas_configuration` (Attributes) Contains the storage configuration of the knowledge base in MongoDb Atlas Cloud. (see [below for nested schema](#nestedatt--storage_configuration--mongo_db_atlas_configuration)) - `opensearch_serverless_configuration` (Attributes) Contains the storage configuration of the knowledge base in Amazon OpenSearch Service. (see [below for nested schema](#nestedatt--storage_configuration--opensearch_serverless_configuration)) - `pinecone_configuration` (Attributes) Contains the storage configuration of the knowledge base in Pinecone. (see [below for nested schema](#nestedatt--storage_configuration--pinecone_configuration)) - `rds_configuration` (Attributes) Contains details about the storage configuration of the knowledge base in Amazon RDS. For more information, see Create a vector index in Amazon RDS. (see [below for nested schema](#nestedatt--storage_configuration--rds_configuration)) + +### Nested Schema for `storage_configuration.mongo_db_atlas_configuration` + +Required: + +- `collection_name` (String) Name of the collection within MongoDB Atlas. +- `credentials_secret_arn` (String) The ARN of the secret that you created in AWS Secrets Manager that is linked to your Amazon Mongo database. +- `database_name` (String) Name of the database within MongoDB Atlas. +- `endpoint` (String) MongoDB Atlas endpoint. +- `field_mapping` (Attributes) Contains the names of the fields to which to map information about the vector store. (see [below for nested schema](#nestedatt--storage_configuration--mongo_db_atlas_configuration--field_mapping)) +- `vector_index_name` (String) Name of a MongoDB Atlas index. + +Optional: + +- `endpoint_service_name` (String) MongoDB Atlas endpoint service name. + + +### Nested Schema for `storage_configuration.mongo_db_atlas_configuration.field_mapping` + +Required: + +- `metadata_field` (String) The name of the field in which Amazon Bedrock stores metadata about the vector store. +- `text_field` (String) The name of the field in which Amazon Bedrock stores the raw text from your data. The text is split according to the chunking strategy you choose. +- `vector_field` (String) The name of the field in which Amazon Bedrock stores the vector embeddings for your data sources. + + + ### Nested Schema for `storage_configuration.opensearch_serverless_configuration` diff --git a/docs/resources/bedrock_prompt.md b/docs/resources/bedrock_prompt.md new file mode 100644 index 0000000000..dc97d0a67d --- /dev/null +++ b/docs/resources/bedrock_prompt.md @@ -0,0 +1,115 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_bedrock_prompt Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Definition of AWS::Bedrock::Prompt Resource Type +--- + +# awscc_bedrock_prompt (Resource) + +Definition of AWS::Bedrock::Prompt Resource Type + + + + +## Schema + +### Required + +- `name` (String) Name for a prompt resource. + +### Optional + +- `customer_encryption_key_arn` (String) A KMS key ARN +- `default_variant` (String) Name for a variant. +- `description` (String) Name for a prompt resource. +- `tags` (Map of String) A map of tag keys and values +- `variants` (Attributes List) List of prompt variants (see [below for nested schema](#nestedatt--variants)) + +### Read-Only + +- `arn` (String) ARN of a prompt resource possibly with a version +- `created_at` (String) Time Stamp. +- `id` (String) Uniquely identifies the resource. +- `prompt_id` (String) Identifier for a Prompt +- `updated_at` (String) Time Stamp. +- `version` (String) Draft Version. + + +### Nested Schema for `variants` + +Required: + +- `name` (String) Name for a variant. +- `template_type` (String) Prompt template type + +Optional: + +- `inference_configuration` (Attributes) Model inference configuration (see [below for nested schema](#nestedatt--variants--inference_configuration)) +- `model_id` (String) ARN or name of a Bedrock model. +- `template_configuration` (Attributes) Prompt template configuration (see [below for nested schema](#nestedatt--variants--template_configuration)) + + +### Nested Schema for `variants.inference_configuration` + +Optional: + +- `text` (Attributes) Prompt model inference configuration (see [below for nested schema](#nestedatt--variants--inference_configuration--text)) + + +### Nested Schema for `variants.inference_configuration.text` + +Optional: + +- `max_tokens` (Number) Maximum length of output +- `stop_sequences` (List of String) List of stop sequences +- `temperature` (Number) Controls randomness, higher values increase diversity +- `top_k` (Number) Sample from the k most likely next tokens +- `top_p` (Number) Cumulative probability cutoff for token selection + + + + +### Nested Schema for `variants.template_configuration` + +Optional: + +- `text` (Attributes) Configuration for text prompt template (see [below for nested schema](#nestedatt--variants--template_configuration--text)) + + +### Nested Schema for `variants.template_configuration.text` + +Optional: + +- `input_variables` (Attributes List) List of input variables (see [below for nested schema](#nestedatt--variants--template_configuration--text--input_variables)) +- `text` (String) Prompt content for String prompt template +- `text_s3_location` (Attributes) The identifier for the S3 resource. (see [below for nested schema](#nestedatt--variants--template_configuration--text--text_s3_location)) + + +### Nested Schema for `variants.template_configuration.text.input_variables` + +Optional: + +- `name` (String) Name for an input variable + + + +### Nested Schema for `variants.template_configuration.text.text_s3_location` + +Required: + +- `bucket` (String) A bucket in S3 +- `key` (String) A object key in S3 + +Optional: + +- `version` (String) The version of the the S3 object to use + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_bedrock_prompt.example +``` diff --git a/docs/resources/bedrock_prompt_version.md b/docs/resources/bedrock_prompt_version.md new file mode 100644 index 0000000000..7aad1490dd --- /dev/null +++ b/docs/resources/bedrock_prompt_version.md @@ -0,0 +1,97 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_bedrock_prompt_version Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Definition of AWS::Bedrock::PromptVersion Resource Type +--- + +# awscc_bedrock_prompt_version (Resource) + +Definition of AWS::Bedrock::PromptVersion Resource Type + + + + +## Schema + +### Required + +- `prompt_arn` (String) ARN of a prompt resource possibly with a version + +### Optional + +- `description` (String) Description for a prompt version resource. + +### Read-Only + +- `arn` (String) ARN of a prompt version resource +- `created_at` (String) Time Stamp. +- `default_variant` (String) Name for a variant. +- `id` (String) Uniquely identifies the resource. +- `name` (String) Name for a prompt resource. +- `prompt_id` (String) Identifier for a Prompt +- `updated_at` (String) Time Stamp. +- `variants` (Attributes List) List of prompt variants (see [below for nested schema](#nestedatt--variants)) +- `version` (String) Version. + + +### Nested Schema for `variants` + +Read-Only: + +- `inference_configuration` (Attributes) Model inference configuration (see [below for nested schema](#nestedatt--variants--inference_configuration)) +- `model_id` (String) ARN or name of a Bedrock model. +- `name` (String) Name for a variant. +- `template_configuration` (Attributes) Prompt template configuration (see [below for nested schema](#nestedatt--variants--template_configuration)) +- `template_type` (String) Prompt template type + + +### Nested Schema for `variants.inference_configuration` + +Read-Only: + +- `text` (Attributes) Prompt model inference configuration (see [below for nested schema](#nestedatt--variants--inference_configuration--text)) + + +### Nested Schema for `variants.inference_configuration.text` + +Read-Only: + +- `max_tokens` (Number) Maximum length of output +- `stop_sequences` (List of String) List of stop sequences +- `temperature` (Number) Controls randomness, higher values increase diversity +- `top_k` (Number) Sample from the k most likely next tokens +- `top_p` (Number) Cumulative probability cutoff for token selection + + + + +### Nested Schema for `variants.template_configuration` + +Read-Only: + +- `text` (Attributes) Configuration for text prompt template (see [below for nested schema](#nestedatt--variants--template_configuration--text)) + + +### Nested Schema for `variants.template_configuration.text` + +Read-Only: + +- `input_variables` (Attributes List) List of input variables (see [below for nested schema](#nestedatt--variants--template_configuration--text--input_variables)) +- `text` (String) Prompt content for String prompt template + + +### Nested Schema for `variants.template_configuration.text.input_variables` + +Read-Only: + +- `name` (String) Name for an input variable + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_bedrock_prompt_version.example +``` diff --git a/docs/resources/dms_replication_config.md b/docs/resources/dms_replication_config.md index 1d2e51327e..d6e4a28622 100644 --- a/docs/resources/dms_replication_config.md +++ b/docs/resources/dms_replication_config.md @@ -15,19 +15,22 @@ A replication configuration that you later provide to configure and start a AWS ## Schema -### Optional +### Required - `compute_config` (Attributes) Configuration parameters for provisioning a AWS DMS Serverless replication (see [below for nested schema](#nestedatt--compute_config)) - `replication_config_identifier` (String) A unique identifier of replication configuration -- `replication_settings` (String) JSON settings for Servereless replications that are provisioned using this replication configuration - `replication_type` (String) The type of AWS DMS Serverless replication to provision using this replication configuration -- `resource_identifier` (String) A unique value or name that you get set for a given resource that can be used to construct an Amazon Resource Name (ARN) for that resource - `source_endpoint_arn` (String) The Amazon Resource Name (ARN) of the source endpoint for this AWS DMS Serverless replication configuration -- `supplemental_settings` (String) JSON settings for specifying supplemental data - `table_mappings` (String) JSON table mappings for AWS DMS Serverless replications that are provisioned using this replication configuration -- `tags` (Attributes List)

Contains a map of the key-value pairs for the resource tag or tags assigned to the dataset.

(see [below for nested schema](#nestedatt--tags)) - `target_endpoint_arn` (String) The Amazon Resource Name (ARN) of the target endpoint for this AWS DMS Serverless replication configuration +### Optional + +- `replication_settings` (String) JSON settings for Servereless replications that are provisioned using this replication configuration +- `resource_identifier` (String) A unique value or name that you get set for a given resource that can be used to construct an Amazon Resource Name (ARN) for that resource +- `supplemental_settings` (String) JSON settings for specifying supplemental data +- `tags` (Attributes List)

Contains a map of the key-value pairs for the resource tag or tags assigned to the dataset.

(see [below for nested schema](#nestedatt--tags)) + ### Read-Only - `id` (String) Uniquely identifies the resource. diff --git a/docs/resources/ec2_eip_association.md b/docs/resources/ec2_eip_association.md index 46b20c5e2a..0c30d777c8 100644 --- a/docs/resources/ec2_eip_association.md +++ b/docs/resources/ec2_eip_association.md @@ -3,12 +3,14 @@ page_title: "awscc_ec2_eip_association Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource schema for EC2 EIP association. + Associates an Elastic IP address with an instance or a network interface. Before you can use an Elastic IP address, you must allocate it to your account. For more information about working with Elastic IP addresses, see Elastic IP address concepts and rules https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#vpc-eip-overview. + You must specify AllocationId and either InstanceId, NetworkInterfaceId, or PrivateIpAddress. --- # awscc_ec2_eip_association (Resource) -Resource schema for EC2 EIP association. +Associates an Elastic IP address with an instance or a network interface. Before you can use an Elastic IP address, you must allocate it to your account. For more information about working with Elastic IP addresses, see [Elastic IP address concepts and rules](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#vpc-eip-overview). + You must specify ``AllocationId`` and either ``InstanceId``, ``NetworkInterfaceId``, or ``PrivateIpAddress``. @@ -17,15 +19,16 @@ Resource schema for EC2 EIP association. ### Optional -- `allocation_id` (String) The allocation ID. This is required for EC2-VPC. -- `eip` (String) The Elastic IP address to associate with the instance. -- `instance_id` (String) The ID of the instance. -- `network_interface_id` (String) The ID of the network interface. -- `private_ip_address` (String) The primary or secondary private IP address to associate with the Elastic IP address. +- `allocation_id` (String) The allocation ID. This is required. +- `eip` (String) +- `instance_id` (String) The ID of the instance. The instance must have exactly one attached network interface. You can specify either the instance ID or the network interface ID, but not both. +- `network_interface_id` (String) The ID of the network interface. If the instance has more than one network interface, you must specify a network interface ID. + You can specify either the instance ID or the network interface ID, but not both. +- `private_ip_address` (String) The primary or secondary private IP address to associate with the Elastic IP address. If no private IP address is specified, the Elastic IP address is associated with the primary private IP address. ### Read-Only -- `eip_association_id` (String) Composite ID of non-empty properties, to determine the identification. +- `eip_association_id` (String) - `id` (String) Uniquely identifies the resource. ## Import diff --git a/docs/resources/ec2_launch_template.md b/docs/resources/ec2_launch_template.md index 33e310da66..0ef49a900e 100644 --- a/docs/resources/ec2_launch_template.md +++ b/docs/resources/ec2_launch_template.md @@ -143,9 +143,9 @@ Optional: - `block_device_mappings` (Attributes List) The block device mapping. (see [below for nested schema](#nestedatt--launch_template_data--block_device_mappings)) - `capacity_reservation_specification` (Attributes) The Capacity Reservation targeting option. If you do not specify this parameter, the instance's Capacity Reservation preference defaults to ``open``, which enables it to run in any open Capacity Reservation that has matching attributes (instance type, platform, Availability Zone). (see [below for nested schema](#nestedatt--launch_template_data--capacity_reservation_specification)) -- `cpu_options` (Attributes) The CPU options for the instance. For more information, see [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--cpu_options)) +- `cpu_options` (Attributes) The CPU options for the instance. For more information, see [Optimize CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon EC2 User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--cpu_options)) - `credit_specification` (Attributes) The credit option for CPU usage of the instance. Valid only for T instances. (see [below for nested schema](#nestedatt--launch_template_data--credit_specification)) -- `disable_api_stop` (Boolean) Indicates whether to enable the instance for stop protection. For more information, see [Stop protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection) in the *Amazon Elastic Compute Cloud User Guide*. +- `disable_api_stop` (Boolean) Indicates whether to enable the instance for stop protection. For more information, see [Enable stop protection for your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-stop-protection.html) in the *Amazon EC2 User Guide*. - `disable_api_termination` (Boolean) If you set this parameter to ``true``, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. To change this attribute after launch, use [ModifyInstanceAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html). Alternatively, if you set ``InstanceInitiatedShutdownBehavior`` to ``terminate``, you can terminate the instance by running the shutdown command from the instance. - `ebs_optimized` (Boolean) Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. - `elastic_gpu_specifications` (Attributes List) Deprecated. @@ -155,7 +155,7 @@ Optional: Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service. (see [below for nested schema](#nestedatt--launch_template_data--elastic_inference_accelerators)) - `enclave_options` (Attributes) Indicates whether the instance is enabled for AWS Nitro Enclaves. For more information, see [What is Nitro Enclaves?](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html) in the *Nitro Enclaves User Guide*. You can't enable AWS Nitro Enclaves and hibernation on the same instance. (see [below for nested schema](#nestedatt--launch_template_data--enclave_options)) -- `hibernation_options` (Attributes) Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon Elastic Compute Cloud User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--hibernation_options)) +- `hibernation_options` (Attributes) Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your Amazon EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon EC2 User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--hibernation_options)) - `iam_instance_profile` (Attributes) The name or Amazon Resource Name (ARN) of an IAM instance profile. (see [below for nested schema](#nestedatt--launch_template_data--iam_instance_profile)) - `image_id` (String) The ID of the AMI. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch. Valid formats: @@ -178,7 +178,7 @@ Optional: If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements)) -- `instance_type` (String) The instance type. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon Elastic Compute Cloud User Guide*. +- `instance_type` (String) The instance type. For more information, see [Amazon EC2 instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*. If you specify ``InstanceType``, you can't specify ``InstanceRequirements``. - `kernel_id` (String) The ID of the kernel. We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User Provided Kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*. @@ -186,13 +186,13 @@ Optional: If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in. - `license_specifications` (Attributes List) The license configurations. (see [below for nested schema](#nestedatt--launch_template_data--license_specifications)) - `maintenance_options` (Attributes) The maintenance options of your instance. (see [below for nested schema](#nestedatt--launch_template_data--maintenance_options)) -- `metadata_options` (Attributes) The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon Elastic Compute Cloud User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--metadata_options)) +- `metadata_options` (Attributes) The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon EC2 User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--metadata_options)) - `monitoring` (Attributes) The monitoring for the instance. (see [below for nested schema](#nestedatt--launch_template_data--monitoring)) - `network_interfaces` (Attributes List) The network interfaces for the instance. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces)) - `placement` (Attributes) The placement for the instance. (see [below for nested schema](#nestedatt--launch_template_data--placement)) - `private_dns_name_options` (Attributes) The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--private_dns_name_options)) - `ram_disk_id` (String) The ID of the RAM disk. - We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon Elastic Compute Cloud User Guide*. + We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*. - `security_group_ids` (List of String) The IDs of the security groups. You can specify the IDs of existing security groups and references to resources created by the stack template. If you specify a network interface, you must specify any security groups as part of the network interface instead. - `security_groups` (List of String) The names of the security groups. For a nondefault VPC, you must use security group IDs instead. @@ -200,7 +200,7 @@ Optional: - `tag_specifications` (Attributes List) The tags to apply to the resources that are created during instance launch. To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html). To tag the launch template itself, use [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#cfn-ec2-launchtemplate-tagspecifications). (see [below for nested schema](#nestedatt--launch_template_data--tag_specifications)) -- `user_data` (String) The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) (Linux) or [Work with instance user data](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instancedata-add-user-data.html) (Windows) in the *Amazon Elastic Compute Cloud User Guide*. +- `user_data` (String) The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Amazon EC2 instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) in the *Amazon EC2 User Guide*. If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*. @@ -286,7 +286,7 @@ Optional: Optional: -- `type` (String) The type of Elastic Graphics accelerator. For more information about the values to specify for ``Type``, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*. +- `type` (String) The type of Elastic Graphics accelerator. @@ -439,7 +439,7 @@ Optional: Default: ``hdd`` and ``ssd`` - `max_spot_price_as_percentage_of_optimal_on_demand_price` (Number) [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. The parameter accepts an integer, which Amazon EC2 interprets as a percentage. - 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. + 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. 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``. - `memory_gi_b_per_v_cpu` (Attributes) The minimum and maximum amount of memory per vCPU, in GiB. Default: No minimum or maximum limits (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--memory_gi_b_per_v_cpu)) @@ -609,7 +609,7 @@ Optional: - `device_index` (Number) The device index for the network interface attachment. Each network interface requires a device index. If you create a launch template that includes secondary network interfaces but not a primary network interface, then you must add a primary network interface as a launch parameter when you launch an instance from the template. - `ena_srd_specification` (Attributes) The ENA Express configuration for the network interface. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--ena_srd_specification)) - `groups` (List of String) The IDs of one or more security groups. -- `interface_type` (String) The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon Elastic Compute Cloud User Guide*. +- `interface_type` (String) The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon EC2 User Guide*. If you are not creating an EFA, specify ``interface`` or omit this parameter. Valid values: ``interface`` | ``efa`` - `ipv_4_prefix_count` (Number) The number of IPv4 prefixes to be automatically assigned to the network interface. You cannot use this option if you use the ``Ipv4Prefix`` option. @@ -658,7 +658,7 @@ Optional: Optional: -- `ipv_4_prefix` (String) The IPv4 prefix. For information, see [Assigning prefixes to Amazon EC2 network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon Elastic Compute Cloud User Guide*. +- `ipv_4_prefix` (String) The IPv4 prefix. For information, see [Assigning prefixes to network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon EC2 User Guide*. @@ -718,8 +718,7 @@ Optional: Optional: -- `resource_type` (String) The type of resource to tag. - Valid Values lists all resource types for Amazon EC2 that can be tagged. When you create a launch template, you can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume. +- `resource_type` (String) The type of resource to tag. You can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume. To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html). - `tags` (Attributes List) The tags to apply to the resource. (see [below for nested schema](#nestedatt--launch_template_data--tag_specifications--tags)) @@ -739,7 +738,7 @@ Required: Optional: -- `resource_type` (String) The type of resource. To tag the launch template, ``ResourceType`` must be ``launch-template``. +- `resource_type` (String) The type of resource. To tag a launch template, ``ResourceType`` must be ``launch-template``. - `tags` (Attributes List) The tags for the resource. (see [below for nested schema](#nestedatt--tag_specifications--tags)) diff --git a/docs/resources/ec2_network_interface_attachment.md b/docs/resources/ec2_network_interface_attachment.md index 5e42dccf42..b2c202f1b1 100644 --- a/docs/resources/ec2_network_interface_attachment.md +++ b/docs/resources/ec2_network_interface_attachment.md @@ -3,12 +3,12 @@ page_title: "awscc_ec2_network_interface_attachment Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::EC2::NetworkInterfaceAttachment + Attaches an elastic network interface (ENI) to an Amazon EC2 instance. You can use this resource type to attach additional network interfaces to an instance without interruption. --- # awscc_ec2_network_interface_attachment (Resource) -Resource Type definition for AWS::EC2::NetworkInterfaceAttachment +Attaches an elastic network interface (ENI) to an Amazon EC2 instance. You can use this resource type to attach additional network interfaces to an instance without interruption. @@ -17,18 +17,18 @@ Resource Type definition for AWS::EC2::NetworkInterfaceAttachment ### Required -- `device_index` (String) The network interface's position in the attachment order. For example, the first attached network interface has a DeviceIndex of 0. +- `device_index` (String) The network interface's position in the attachment order. For example, the first attached network interface has a ``DeviceIndex`` of 0. - `instance_id` (String) The ID of the instance to which you will attach the ENI. - `network_interface_id` (String) The ID of the ENI that you want to attach. ### Optional -- `delete_on_termination` (Boolean) Whether to delete the network interface when the instance terminates. By default, this value is set to true. -- `ena_srd_specification` (Attributes) (see [below for nested schema](#nestedatt--ena_srd_specification)) +- `delete_on_termination` (Boolean) Whether to delete the network interface when the instance terminates. By default, this value is set to ``true``. +- `ena_srd_specification` (Attributes) Configures ENA Express for the network interface that this action attaches to the instance. (see [below for nested schema](#nestedatt--ena_srd_specification)) ### Read-Only -- `attachment_id` (String) The ID of the network interface attachment. +- `attachment_id` (String) - `id` (String) Uniquely identifies the resource. @@ -36,8 +36,8 @@ Resource Type definition for AWS::EC2::NetworkInterfaceAttachment Optional: -- `ena_srd_enabled` (Boolean) -- `ena_srd_udp_specification` (Attributes) (see [below for nested schema](#nestedatt--ena_srd_specification--ena_srd_udp_specification)) +- `ena_srd_enabled` (Boolean) Indicates whether ENA Express is enabled for the network interface. +- `ena_srd_udp_specification` (Attributes) Configures ENA Express for UDP network traffic. (see [below for nested schema](#nestedatt--ena_srd_specification--ena_srd_udp_specification)) ### Nested Schema for `ena_srd_specification.ena_srd_udp_specification` diff --git a/docs/resources/ecr_repository.md b/docs/resources/ecr_repository.md index 76818a454f..5c36fde84c 100644 --- a/docs/resources/ecr_repository.md +++ b/docs/resources/ecr_repository.md @@ -124,7 +124,7 @@ Required: - `encryption_type` (String) The encryption type to use. If you use the ``KMS`` encryption type, the contents of the repository will be encrypted using server-side encryption with KMSlong key stored in KMS. When you use KMS to encrypt your data, you can either use the default AWS managed KMS key for Amazon ECR, or specify your own KMS key, which you already created. For more information, see [Protecting data using server-side encryption with an key stored in (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*. - If you use the ``AES256`` encryption type, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts the images in the repository using an AES-256 encryption algorithm. For more information, see [Protecting data using server-side encryption with Amazon S3-managed encryption keys (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) in the *Ama + If you use the ``AES256`` encryption type, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts the images in the repository using an AES-256 encryption algorithm. For more information, see [Protecting data using server-side encryption with Amazon S3-managed encryption keys (SSE-S3)](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) in the *Amazon Simple Storage Service Console Developer Guide*. Optional: diff --git a/docs/resources/ecr_repository_creation_template.md b/docs/resources/ecr_repository_creation_template.md index eaf03dbf5f..4101bb647e 100644 --- a/docs/resources/ecr_repository_creation_template.md +++ b/docs/resources/ecr_repository_creation_template.md @@ -22,6 +22,7 @@ AWS::ECR::RepositoryCreationTemplate is used to create repository with configura ### Optional +- `custom_role_arn` (String) The ARN of the role to be assumed by ECR. This role must be in the same account as the registry that you are configuring. - `description` (String) The description of the template. - `encryption_configuration` (Attributes) The encryption configuration for the repository. This determines how the contents of your repository are encrypted at rest. By default, when no encryption configuration is set or the AES256 encryption type is used, Amazon ECR uses server-side encryption with Amazon S3-managed encryption keys which encrypts your data at rest using an AES-256 encryption algorithm. This does not require any action on your part. diff --git a/docs/resources/eks_cluster.md b/docs/resources/eks_cluster.md index c6a6176b68..658179feb6 100644 --- a/docs/resources/eks_cluster.md +++ b/docs/resources/eks_cluster.md @@ -221,6 +221,7 @@ resource "awscc_kms_key" "main" { - `name` (String) The unique name to give to your cluster. - `outpost_config` (Attributes) An object representing the Outpost configuration to use for AWS EKS outpost cluster. (see [below for nested schema](#nestedatt--outpost_config)) - `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) +- `upgrade_policy` (Attributes) An object representing the Upgrade Policy to use for the cluster. (see [below for nested schema](#nestedatt--upgrade_policy)) - `version` (String) The desired Kubernetes version for your cluster. If you don't specify a value here, the latest version available in Amazon EKS is used. ### Read-Only @@ -341,6 +342,14 @@ Required: - `key` (String) The key name of the tag. You can specify a value that is 1 to 128 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 value for the tag. You can specify a value that is 0 to 256 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 -. + + +### Nested Schema for `upgrade_policy` + +Optional: + +- `support_type` (String) Specify the support type for your cluster. + ## Import Import is supported using the following syntax: diff --git a/docs/resources/globalaccelerator_cross_account_attachment.md b/docs/resources/globalaccelerator_cross_account_attachment.md index 03e0ee6827..e2d43d64b7 100644 --- a/docs/resources/globalaccelerator_cross_account_attachment.md +++ b/docs/resources/globalaccelerator_cross_account_attachment.md @@ -33,12 +33,10 @@ Resource Type definition for AWS::GlobalAccelerator::CrossAccountAttachment ### Nested Schema for `resources` -Required: - -- `endpoint_id` (String) - Optional: +- `cidr` (String) +- `endpoint_id` (String) - `region` (String) diff --git a/docs/resources/glue_trigger.md b/docs/resources/glue_trigger.md new file mode 100644 index 0000000000..66a6ec6c2f --- /dev/null +++ b/docs/resources/glue_trigger.md @@ -0,0 +1,96 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_glue_trigger Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::Glue::Trigger +--- + +# awscc_glue_trigger (Resource) + +Resource Type definition for AWS::Glue::Trigger + + + + +## Schema + +### Required + +- `actions` (Attributes List) The actions initiated by this trigger. (see [below for nested schema](#nestedatt--actions)) +- `type` (String) The type of trigger that this is. + +### Optional + +- `description` (String) A description of this trigger. +- `event_batching_condition` (Attributes) Batch condition that must be met (specified number of events received or batch time window expired) before EventBridge event trigger fires. (see [below for nested schema](#nestedatt--event_batching_condition)) +- `name` (String) The name of the trigger. +- `predicate` (Attributes) The predicate of this trigger, which defines when it will fire. (see [below for nested schema](#nestedatt--predicate)) +- `schedule` (String) A cron expression used to specify the schedule. +- `start_on_creation` (Boolean) Set to true to start SCHEDULED and CONDITIONAL triggers when created. True is not supported for ON_DEMAND triggers. +- `tags` (String) The tags to use with this trigger. +- `workflow_name` (String) The name of the workflow associated with the trigger. + +### Read-Only + +- `id` (String) Uniquely identifies the resource. + + +### Nested Schema for `actions` + +Optional: + +- `arguments` (String) The job arguments used when this trigger fires. For this job run, they replace the default arguments set in the job definition itself. +- `crawler_name` (String) The name of the crawler to be used with this action. +- `job_name` (String) The name of a job to be executed. +- `notification_property` (Attributes) Specifies configuration properties of a job run notification. (see [below for nested schema](#nestedatt--actions--notification_property)) +- `security_configuration` (String) The name of the SecurityConfiguration structure to be used with this action. +- `timeout` (Number) The JobRun timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. The default is 2,880 minutes (48 hours). This overrides the timeout value set in the parent job. + + +### Nested Schema for `actions.notification_property` + +Optional: + +- `notify_delay_after` (Number) After a job run starts, the number of minutes to wait before sending a job run delay notification + + + + +### Nested Schema for `event_batching_condition` + +Required: + +- `batch_size` (Number) Number of events that must be received from Amazon EventBridge before EventBridge event trigger fires. + +Optional: + +- `batch_window` (Number) Window of time in seconds after which EventBridge event trigger fires. Window starts when first event is received. + + + +### Nested Schema for `predicate` + +Optional: + +- `conditions` (Attributes List) A list of the conditions that determine when the trigger will fire. (see [below for nested schema](#nestedatt--predicate--conditions)) +- `logical` (String) An optional field if only one condition is listed. If multiple conditions are listed, then this field is required. + + +### Nested Schema for `predicate.conditions` + +Optional: + +- `crawl_state` (String) The state of the crawler to which this condition applies. +- `crawler_name` (String) The name of the crawler to which this condition applies. +- `job_name` (String) The name of the job whose JobRuns this condition applies to, and on which this trigger waits. +- `logical_operator` (String) A logical operator. +- `state` (String) The condition state. Currently, the values supported are SUCCEEDED, STOPPED, TIMEOUT, and FAILED. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_glue_trigger.example +``` diff --git a/docs/resources/lightsail_alarm.md b/docs/resources/lightsail_alarm.md index 96c17a69db..7593e24e8a 100644 --- a/docs/resources/lightsail_alarm.md +++ b/docs/resources/lightsail_alarm.md @@ -102,7 +102,7 @@ resource "awscc_lightsail_alarm" "example" { - `comparison_operator` (String) The arithmetic operation to use when comparing the specified statistic to the threshold. The specified statistic value is used as the first operand. - `evaluation_periods` (Number) The number of most recent periods over which data is compared to the specified threshold. If you are setting an "M out of N" alarm, this value (evaluationPeriods) is the N. - `metric_name` (String) The name of the metric to associate with the alarm. -- `monitored_resource_name` (String) The validation status of the SSL/TLS certificate. +- `monitored_resource_name` (String) The name of the Lightsail resource that the alarm monitors. - `threshold` (Number) The value against which the specified statistic is compared. ### Optional diff --git a/docs/resources/lightsail_certificate.md b/docs/resources/lightsail_certificate.md index 501c3e6343..41cc9ee93f 100644 --- a/docs/resources/lightsail_certificate.md +++ b/docs/resources/lightsail_certificate.md @@ -2,12 +2,12 @@ page_title: "awscc_lightsail_certificate Resource - terraform-provider-awscc" subcategory: "" description: |- - An example resource schema demonstrating some basic constructs and validation rules. + Resource Type definition for AWS::Lightsail::Certificate. --- # awscc_lightsail_certificate (Resource) -An example resource schema demonstrating some basic constructs and validation rules. +Resource Type definition for AWS::Lightsail::Certificate. ## Example Usage diff --git a/docs/resources/mediaconnect_flow_output.md b/docs/resources/mediaconnect_flow_output.md index 556f4693b0..2c8de6d885 100644 --- a/docs/resources/mediaconnect_flow_output.md +++ b/docs/resources/mediaconnect_flow_output.md @@ -30,6 +30,7 @@ Resource schema for AWS::MediaConnect::FlowOutput - `media_stream_output_configurations` (Attributes List) The definition for each media stream that is associated with the output. (see [below for nested schema](#nestedatt--media_stream_output_configurations)) - `min_latency` (Number) The minimum latency in milliseconds. - `name` (String) The name of the output. This value must be unique within the current flow. +- `output_status` (String) An indication of whether the output should transmit data or not. - `port` (Number) The port to use when content is distributed to this output. - `remote_id` (String) The remote ID for the Zixi-pull stream. - `smoothing_latency` (Number) The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams. diff --git a/docs/resources/mediapackagev2_channel.md b/docs/resources/mediapackagev2_channel.md index cf3d94ce45..df54907935 100644 --- a/docs/resources/mediapackagev2_channel.md +++ b/docs/resources/mediapackagev2_channel.md @@ -23,6 +23,7 @@ description: |- ### Optional - `description` (String)

Enter any descriptive text that helps you to identify the channel.

+- `input_type` (String) - `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) ### Read-Only diff --git a/docs/resources/mediapackagev2_origin_endpoint.md b/docs/resources/mediapackagev2_origin_endpoint.md index eb0ef2e5ce..d3766b0bb1 100644 --- a/docs/resources/mediapackagev2_origin_endpoint.md +++ b/docs/resources/mediapackagev2_origin_endpoint.md @@ -26,6 +26,7 @@ description: |- - `container_type` (String) - `dash_manifests` (Attributes List)

A DASH manifest configuration.

(see [below for nested schema](#nestedatt--dash_manifests)) - `description` (String)

Enter any descriptive text that helps you to identify the origin endpoint.

+- `force_endpoint_error_configuration` (Attributes)

The failover settings for the endpoint.

(see [below for nested schema](#nestedatt--force_endpoint_error_configuration)) - `hls_manifests` (Attributes List)

An HTTP live streaming (HLS) manifest configuration.

(see [below for nested schema](#nestedatt--hls_manifests)) - `low_latency_hls_manifests` (Attributes List)

A low-latency HLS manifest configuration.

(see [below for nested schema](#nestedatt--low_latency_hls_manifests)) - `segment` (Attributes)

The segment configuration, including the segment name, duration, and other configuration values.

(see [below for nested schema](#nestedatt--segment)) @@ -92,6 +93,28 @@ Optional: + +### Nested Schema for `force_endpoint_error_configuration` + +Optional: + +- `endpoint_error_conditions` (List of String)

The failover settings for the endpoint. The options are:

+
    +
  • +

    + STALE_MANIFEST - The manifest stalled and there a no new segments or parts.

    +
  • +
  • +

    + INCOMPLETE_MANIFEST - There is a gap in the manifest.

    +
  • +
  • +

    + MISSING_DRM_KEY - Key rotation is enabled but we're unable to fetch the key for the current key period.

    +
  • +
+ + ### Nested Schema for `hls_manifests` diff --git a/docs/resources/rds_db_cluster.md b/docs/resources/rds_db_cluster.md index de869ff08c..b69e9668ca 100644 --- a/docs/resources/rds_db_cluster.md +++ b/docs/resources/rds_db_cluster.md @@ -269,7 +269,7 @@ resource "awscc_rds_db_cluster" "example_db_cluster" { Constraints: Minimum 30-minute window. Valid for: Aurora DB clusters and Multi-AZ DB clusters - `publicly_accessible` (Boolean) Specifies whether the DB cluster is publicly accessible. - When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint resolves to the private IP address from within the DB cluster's virtual private cloud (VPC). It resolves to the public IP address from outside of the DB cluster's VPC. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it. + When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it. When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address. Valid for Cluster Type: Multi-AZ DB clusters only Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified. @@ -394,7 +394,7 @@ Optional: Read-Only: -- `secret_arn` (String) The Amazon Resource Name (ARN) of the secret. +- `secret_arn` (String) The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#aws-resource-rds-dbcluster-return-values). diff --git a/docs/resources/rds_db_instance.md b/docs/resources/rds_db_instance.md index d16a660e7c..5a65f505dd 100644 --- a/docs/resources/rds_db_instance.md +++ b/docs/resources/rds_db_instance.md @@ -198,7 +198,7 @@ resource "awscc_rds_db_instance" "this" { Not applicable. The associated roles are managed by the DB cluster. (see [below for nested schema](#nestedatt--associated_roles)) - `auto_minor_version_upgrade` (Boolean) A value that indicates whether minor engine upgrades are applied automatically to the DB instance during the maintenance window. By default, minor engine upgrades are applied automatically. - `automatic_backup_replication_kms_key_id` (String) The AWS KMS key identifier for encryption of the replicated automated backups. The KMS key ID is the Amazon Resource Name (ARN) for the KMS encryption key in the destination AWS-Region, for example, ``arn:aws:kms:us-east-1:123456789012:key/AKIAIOSFODNN7EXAMPLE``. -- `automatic_backup_replication_region` (String) The destination region for the backup replication of the DB instance. For more info, see [Replicating automated backups to another Region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReplicateBackups.html) in the *Amazon RDS User Guide*. +- `automatic_backup_replication_region` (String) - `availability_zone` (String) The Availability Zone (AZ) where the database will be created. For information on AWS-Regions and Availability Zones, see [Regions and Availability Zones](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html). For Amazon Aurora, each Aurora DB cluster hosts copies of its storage in three separate Availability Zones. Specify one of these Availability Zones. Aurora automatically chooses an appropriate Availability Zone if you don't specify one. Default: A random, system-chosen Availability Zone in the endpoint's AWS-Region. @@ -328,7 +328,6 @@ resource "awscc_rds_db_instance" "this" { + ``DBClusterIdentifier`` + ``DBName`` + ``DeleteAutomatedBackups`` - + ``EnablePerformanceInsights`` + ``KmsKeyId`` + ``MasterUsername`` + ``MasterUserPassword`` @@ -711,7 +710,7 @@ Optional: Read-Only: -- `secret_arn` (String) The Amazon Resource Name (ARN) of the secret. +- `secret_arn` (String) The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html#aws-resource-rds-dbinstance-return-values). diff --git a/docs/resources/secretsmanager_resource_policy.md b/docs/resources/secretsmanager_resource_policy.md new file mode 100644 index 0000000000..30d1925b7a --- /dev/null +++ b/docs/resources/secretsmanager_resource_policy.md @@ -0,0 +1,38 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_secretsmanager_resource_policy Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::SecretsManager::ResourcePolicy +--- + +# awscc_secretsmanager_resource_policy (Resource) + +Resource Type definition for AWS::SecretsManager::ResourcePolicy + + + + +## Schema + +### Required + +- `resource_policy` (String) A JSON-formatted string for an AWS resource-based policy. +- `secret_id` (String) The ARN or name of the secret to attach the resource-based policy. + +### Optional + +- `block_public_policy` (Boolean) Specifies whether to block resource-based policies that allow broad access to the secret. + +### Read-Only + +- `id` (String) Uniquely identifies the resource. +- `resource_policy_id` (String) The Arn of the secret. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_secretsmanager_resource_policy.example +``` diff --git a/docs/resources/workspacesweb_user_settings.md b/docs/resources/workspacesweb_user_settings.md index a440b0802b..68f712efee 100644 --- a/docs/resources/workspacesweb_user_settings.md +++ b/docs/resources/workspacesweb_user_settings.md @@ -28,6 +28,7 @@ Definition of AWS::WorkSpacesWeb::UserSettings Resource Type - `additional_encryption_context` (Map of String) - `cookie_synchronization_configuration` (Attributes) (see [below for nested schema](#nestedatt--cookie_synchronization_configuration)) - `customer_managed_key` (String) +- `deep_link_allowed` (String) - `disconnect_timeout_in_minutes` (Number) - `idle_disconnect_timeout_in_minutes` (Number) - `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) diff --git a/examples/resources/awscc_bedrock_flow_alias/import.sh b/examples/resources/awscc_bedrock_flow_alias/import.sh new file mode 100644 index 0000000000..4d851093b7 --- /dev/null +++ b/examples/resources/awscc_bedrock_flow_alias/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_bedrock_flow_alias.example \ No newline at end of file diff --git a/examples/resources/awscc_bedrock_flow_version/import.sh b/examples/resources/awscc_bedrock_flow_version/import.sh new file mode 100644 index 0000000000..56f7a9156f --- /dev/null +++ b/examples/resources/awscc_bedrock_flow_version/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_bedrock_flow_version.example \ No newline at end of file diff --git a/examples/resources/awscc_bedrock_prompt/import.sh b/examples/resources/awscc_bedrock_prompt/import.sh new file mode 100644 index 0000000000..384400c14a --- /dev/null +++ b/examples/resources/awscc_bedrock_prompt/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_bedrock_prompt.example \ No newline at end of file diff --git a/examples/resources/awscc_bedrock_prompt_version/import.sh b/examples/resources/awscc_bedrock_prompt_version/import.sh new file mode 100644 index 0000000000..9f6bcf6d80 --- /dev/null +++ b/examples/resources/awscc_bedrock_prompt_version/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_bedrock_prompt_version.example \ No newline at end of file diff --git a/examples/resources/awscc_glue_trigger/import.sh b/examples/resources/awscc_glue_trigger/import.sh new file mode 100644 index 0000000000..77260aba17 --- /dev/null +++ b/examples/resources/awscc_glue_trigger/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_glue_trigger.example \ No newline at end of file diff --git a/examples/resources/awscc_secretsmanager_resource_policy/import.sh b/examples/resources/awscc_secretsmanager_resource_policy/import.sh new file mode 100644 index 0000000000..b1441fac02 --- /dev/null +++ b/examples/resources/awscc_secretsmanager_resource_policy/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_secretsmanager_resource_policy.example \ No newline at end of file From 2e5eeb326542d32cac2ecabe474b203adf7261aa Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 25 Jul 2024 15:33:04 -0400 Subject: [PATCH 6/6] Add CHANGELOG entries. --- CHANGELOG.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c6d2825aa..ee0ac57c9f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,23 @@ ## 1.7.0 (Unreleased) + +FEATURES: + +* **New Data Source:** `awscc_bedrock_flow_alias` +* **New Data Source:** `awscc_bedrock_flow_version` +* **New Data Source:** `awscc_bedrock_prompt` +* **New Data Source:** `awscc_bedrock_prompt_version` +* **New Data Source:** `awscc_bedrock_prompts` +* **New Data Source:** `awscc_glue_trigger` +* **New Data Source:** `awscc_glue_triggers` +* **New Data Source:** `awscc_secretsmanager_resource_policies` +* **New Data Source:** `awscc_secretsmanager_resource_policy` +* **New Resource:** `awscc_bedrock_flow_alias` +* **New Resource:** `awscc_bedrock_flow_version` +* **New Resource:** `awscc_bedrock_prompt` +* **New Resource:** `awscc_bedrock_prompt_version` +* **New Resource:** `awscc_glue_trigger` +* **New Resource:** `awscc_secretsmanager_resource_policy` + ## 1.6.0 (July 18, 2024) FEATURES: