diff --git a/CHANGELOG.md b/CHANGELOG.md index df4b037a94..43d5f2a27d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,44 @@ ## 1.24.0 (Unreleased) + +FEATURES: + +* **New Data Source:** `awscc_batch_job_definition` +* **New Data Source:** `awscc_batch_job_definitions` +* **New Data Source:** `awscc_cassandra_type` +* **New Data Source:** `awscc_cassandra_types` +* **New Data Source:** `awscc_iot_command` +* **New Data Source:** `awscc_iot_commands` +* **New Data Source:** `awscc_networkmanager_direct_connect_gateway_attachment` +* **New Data Source:** `awscc_networkmanager_direct_connect_gateway_attachments` +* **New Data Source:** `awscc_qbusiness_permission` +* **New Data Source:** `awscc_ram_resource_share` +* **New Data Source:** `awscc_ram_resource_shares` +* **New Data Source:** `awscc_s3tables_table_bucket` +* **New Data Source:** `awscc_s3tables_table_bucket_policies` +* **New Data Source:** `awscc_s3tables_table_bucket_policy` +* **New Data Source:** `awscc_s3tables_table_buckets` +* **New Data Source:** `awscc_vpclattice_resource_configuration` +* **New Data Source:** `awscc_vpclattice_resource_configurations` +* **New Data Source:** `awscc_vpclattice_resource_gateway` +* **New Data Source:** `awscc_vpclattice_resource_gateways` +* **New Data Source:** `awscc_vpclattice_service_network_resource_association` +* **New Data Source:** `awscc_vpclattice_service_network_resource_associations` +* **New Data Source:** `awscc_wisdom_ai_guardrail` +* **New Data Source:** `awscc_wisdom_ai_guardrail_version` +* **New Resource:** `awscc_batch_job_definition` +* **New Resource:** `awscc_cassandra_type` +* **New Resource:** `awscc_iot_command` +* **New Resource:** `awscc_networkmanager_direct_connect_gateway_attachment` +* **New Resource:** `awscc_qbusiness_permission` +* **New Resource:** `awscc_ram_resource_share` +* **New Resource:** `awscc_s3tables_table_bucket` +* **New Resource:** `awscc_s3tables_table_bucket_policy` +* **New Resource:** `awscc_vpclattice_resource_configuration` +* **New Resource:** `awscc_vpclattice_resource_gateway` +* **New Resource:** `awscc_vpclattice_service_network_resource_association` +* **New Resource:** `awscc_wisdom_ai_guardrail` +* **New Resource:** `awscc_wisdom_ai_guardrail_version` + ## 1.23.0 (December 5, 2024) FEATURES: diff --git a/docs/data-sources/appconfig_configuration_profile.md b/docs/data-sources/appconfig_configuration_profile.md index 04cba8c796..17fdd39a7b 100644 --- a/docs/data-sources/appconfig_configuration_profile.md +++ b/docs/data-sources/appconfig_configuration_profile.md @@ -23,6 +23,7 @@ Data Source schema for AWS::AppConfig::ConfigurationProfile - `application_id` (String) The application ID. - `configuration_profile_id` (String) The configuration profile ID +- `deletion_protection_check` (String) On resource deletion this controls whether the Deletion Protection check should be applied, bypassed, or (the default) whether the behavior should be controlled by the account-level Deletion Protection setting. See https://docs.aws.amazon.com/appconfig/latest/userguide/deletion-protection.html - `description` (String) A description of the configuration profile. - `kms_key_arn` (String) The Amazon Resource Name of the AWS Key Management Service key to encrypt new configuration data versions in the AWS AppConfig hosted configuration store. This attribute is only used for hosted configuration types. To encrypt data managed in other configuration stores, see the documentation for how to specify an AWS KMS key for that particular service. - `kms_key_identifier` (String) The AWS Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated. diff --git a/docs/data-sources/appconfig_environment.md b/docs/data-sources/appconfig_environment.md index 500f8dd3bb..7895f0bc1a 100644 --- a/docs/data-sources/appconfig_environment.md +++ b/docs/data-sources/appconfig_environment.md @@ -22,6 +22,7 @@ Data Source schema for AWS::AppConfig::Environment ### Read-Only - `application_id` (String) The application ID. +- `deletion_protection_check` (String) On resource deletion this controls whether the Deletion Protection check should be applied, bypassed, or (the default) whether the behavior should be controlled by the account-level Deletion Protection setting. See https://docs.aws.amazon.com/appconfig/latest/userguide/deletion-protection.html - `description` (String) A description of the environment. - `environment_id` (String) The environment ID. - `monitors` (Attributes List) Amazon CloudWatch alarms to monitor during the deployment process. (see [below for nested schema](#nestedatt--monitors)) diff --git a/docs/data-sources/applicationautoscaling_scaling_policy.md b/docs/data-sources/applicationautoscaling_scaling_policy.md index 84f807e9c2..dfa69dd4ba 100644 --- a/docs/data-sources/applicationautoscaling_scaling_policy.md +++ b/docs/data-sources/applicationautoscaling_scaling_policy.md @@ -28,7 +28,7 @@ Data Source schema for AWS::ApplicationAutoScaling::ScalingPolicy 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. -- `predictive_scaling_policy_configuration` (Attributes) (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration)) +- `predictive_scaling_policy_configuration` (Attributes) The predictive scaling policy configuration. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration)) - `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``. @@ -84,58 +84,66 @@ Data Source schema for AWS::ApplicationAutoScaling::ScalingPolicy Read-Only: -- `max_capacity_breach_behavior` (String) -- `max_capacity_buffer` (Number) -- `metric_specifications` (Attributes Set) (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications)) -- `mode` (String) -- `scheduling_buffer_time` (Number) +- `max_capacity_breach_behavior` (String) Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity. Defaults to ``HonorMaxCapacity`` if not specified. +- `max_capacity_buffer` (Number) The size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity. The value is specified as a percentage relative to the forecast capacity. For example, if the buffer is 10, this means a 10 percent buffer, such that if the forecast capacity is 50, and the maximum capacity is 40, then the effective maximum capacity is 55. + Required if the ``MaxCapacityBreachBehavior`` property is set to ``IncreaseMaxCapacity``, and cannot be used otherwise. +- `metric_specifications` (Attributes Set) This structure includes the metrics and target utilization to use for predictive scaling. + This is an array, but we currently only support a single metric specification. That is, you can specify a target value and a single metric pair, or a target value and one scaling metric and one load metric. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications)) +- `mode` (String) The predictive scaling mode. Defaults to ``ForecastOnly`` if not specified. +- `scheduling_buffer_time` (Number) The amount of time, in seconds, that the start time can be advanced. + The value must be less than the forecast interval duration of 3600 seconds (60 minutes). Defaults to 300 seconds if not specified. ### Nested Schema for `predictive_scaling_policy_configuration.metric_specifications` Read-Only: -- `customized_capacity_metric_specification` (Attributes) (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_capacity_metric_specification)) -- `customized_load_metric_specification` (Attributes) (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_load_metric_specification)) -- `customized_scaling_metric_specification` (Attributes) (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_scaling_metric_specification)) -- `predefined_load_metric_specification` (Attributes) (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--predefined_load_metric_specification)) -- `predefined_metric_pair_specification` (Attributes) (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--predefined_metric_pair_specification)) -- `predefined_scaling_metric_specification` (Attributes) (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--predefined_scaling_metric_specification)) -- `target_value` (Number) +- `customized_capacity_metric_specification` (Attributes) The customized capacity metric specification. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_capacity_metric_specification)) +- `customized_load_metric_specification` (Attributes) The customized load metric specification. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_load_metric_specification)) +- `customized_scaling_metric_specification` (Attributes) The customized scaling metric specification. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_scaling_metric_specification)) +- `predefined_load_metric_specification` (Attributes) The predefined load metric specification. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--predefined_load_metric_specification)) +- `predefined_metric_pair_specification` (Attributes) The predefined metric pair specification that determines the appropriate scaling metric and load metric to use. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--predefined_metric_pair_specification)) +- `predefined_scaling_metric_specification` (Attributes) The predefined scaling metric specification. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--predefined_scaling_metric_specification)) +- `target_value` (Number) Specifies the target utilization. ### Nested Schema for `predictive_scaling_policy_configuration.metric_specifications.customized_capacity_metric_specification` Read-Only: -- `metric_data_queries` (Attributes Set) (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_capacity_metric_specification--metric_data_queries)) +- `metric_data_queries` (Attributes Set) One or more metric data queries to provide data points for a metric specification. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_capacity_metric_specification--metric_data_queries)) ### Nested Schema for `predictive_scaling_policy_configuration.metric_specifications.customized_capacity_metric_specification.metric_data_queries` 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 ``MetricDataQuery`` 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--predictive_scaling_policy_configuration--metric_specifications--customized_capacity_metric_specification--metric_data_queries--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--predictive_scaling_policy_configuration--metric_specifications--customized_capacity_metric_specification--metric_data_queries--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 `predictive_scaling_policy_configuration.metric_specifications.customized_capacity_metric_specification.metric_data_queries.metric_stat` Read-Only: -- `metric` (Attributes) The CloudWatch metric to return, including the metric name, namespace, and dimensions. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_capacity_metric_specification--metric_data_queries--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--predictive_scaling_policy_configuration--metric_specifications--customized_capacity_metric_specification--metric_data_queries--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 metrics for predictive scaling are ``Average`` and ``Sum``. +- `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 `predictive_scaling_policy_configuration.metric_specifications.customized_capacity_metric_specification.metric_data_queries.metric_stat.metric` Read-Only: -- `dimensions` (Attributes List) The dimensions for the metric. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_capacity_metric_specification--metric_data_queries--metric_stat--metric--dimensions)) +- `dimensions` (Attributes List) Describes the dimensions of the metric. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_capacity_metric_specification--metric_data_queries--metric_stat--metric--dimensions)) - `metric_name` (String) The name of the metric. - `namespace` (String) The namespace of the metric. @@ -164,27 +172,32 @@ 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 ``MetricDataQuery`` 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--predictive_scaling_policy_configuration--metric_specifications--customized_load_metric_specification--metric_data_queries--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--predictive_scaling_policy_configuration--metric_specifications--customized_load_metric_specification--metric_data_queries--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 `predictive_scaling_policy_configuration.metric_specifications.customized_load_metric_specification.metric_data_queries.metric_stat` Read-Only: -- `metric` (Attributes) The CloudWatch metric to return, including the metric name, namespace, and dimensions. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_load_metric_specification--metric_data_queries--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--predictive_scaling_policy_configuration--metric_specifications--customized_load_metric_specification--metric_data_queries--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 metrics for predictive scaling are ``Average`` and ``Sum``. +- `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 `predictive_scaling_policy_configuration.metric_specifications.customized_load_metric_specification.metric_data_queries.metric_stat.metric` Read-Only: -- `dimensions` (Attributes List) The dimensions for the metric. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_load_metric_specification--metric_data_queries--metric_stat--metric--dimensions)) +- `dimensions` (Attributes List) Describes the dimensions of the metric. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_load_metric_specification--metric_data_queries--metric_stat--metric--dimensions)) - `metric_name` (String) The name of the metric. - `namespace` (String) The namespace of the metric. @@ -206,34 +219,39 @@ Read-Only: Read-Only: -- `metric_data_queries` (Attributes Set) (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_scaling_metric_specification--metric_data_queries)) +- `metric_data_queries` (Attributes Set) One or more metric data queries to provide data points for a metric specification. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_scaling_metric_specification--metric_data_queries)) ### Nested Schema for `predictive_scaling_policy_configuration.metric_specifications.customized_scaling_metric_specification.metric_data_queries` 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 ``MetricDataQuery`` 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--predictive_scaling_policy_configuration--metric_specifications--customized_scaling_metric_specification--metric_data_queries--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--predictive_scaling_policy_configuration--metric_specifications--customized_scaling_metric_specification--metric_data_queries--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 `predictive_scaling_policy_configuration.metric_specifications.customized_scaling_metric_specification.metric_data_queries.metric_stat` Read-Only: -- `metric` (Attributes) The CloudWatch metric to return, including the metric name, namespace, and dimensions. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_scaling_metric_specification--metric_data_queries--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--predictive_scaling_policy_configuration--metric_specifications--customized_scaling_metric_specification--metric_data_queries--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 metrics for predictive scaling are ``Average`` and ``Sum``. +- `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 `predictive_scaling_policy_configuration.metric_specifications.customized_scaling_metric_specification.metric_data_queries.metric_stat.metric` Read-Only: -- `dimensions` (Attributes List) The dimensions for the metric. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_scaling_metric_specification--metric_data_queries--metric_stat--metric--dimensions)) +- `dimensions` (Attributes List) Describes the dimensions of the metric. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_scaling_metric_specification--metric_data_queries--metric_stat--metric--dimensions)) - `metric_name` (String) The name of the metric. - `namespace` (String) The namespace of the metric. @@ -255,8 +273,8 @@ Read-Only: Read-Only: -- `predefined_metric_type` (String) -- `resource_label` (String) +- `predefined_metric_type` (String) The metric type. +- `resource_label` (String) A label that uniquely identifies a target group. @@ -264,8 +282,8 @@ Read-Only: Read-Only: -- `predefined_metric_type` (String) -- `resource_label` (String) +- `predefined_metric_type` (String) Indicates which metrics to use. There are two different types of metrics for each metric type: one is a load metric and one is a scaling metric. +- `resource_label` (String) A label that uniquely identifies a specific target group from which to determine the total and average request count. @@ -273,8 +291,8 @@ Read-Only: Read-Only: -- `predefined_metric_type` (String) -- `resource_label` (String) +- `predefined_metric_type` (String) The metric type. +- `resource_label` (String) A label that uniquely identifies a specific target group from which to determine the average request count. diff --git a/docs/data-sources/batch_job_definition.md b/docs/data-sources/batch_job_definition.md new file mode 100644 index 0000000000..2c19af7bcb --- /dev/null +++ b/docs/data-sources/batch_job_definition.md @@ -0,0 +1,1293 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_batch_job_definition Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Batch::JobDefinition +--- + +# awscc_batch_job_definition (Data Source) + +Data Source schema for AWS::Batch::JobDefinition + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `container_properties` (Attributes) (see [below for nested schema](#nestedatt--container_properties)) +- `ecs_properties` (Attributes) (see [below for nested schema](#nestedatt--ecs_properties)) +- `eks_properties` (Attributes) (see [below for nested schema](#nestedatt--eks_properties)) +- `job_definition_name` (String) +- `node_properties` (Attributes) (see [below for nested schema](#nestedatt--node_properties)) +- `parameters` (Map of String) +- `platform_capabilities` (List of String) +- `propagate_tags` (Boolean) +- `retry_strategy` (Attributes) (see [below for nested schema](#nestedatt--retry_strategy)) +- `scheduling_priority` (Number) +- `tags` (Map of String) A key-value pair to associate with a resource. +- `timeout` (Attributes) (see [below for nested schema](#nestedatt--timeout)) +- `type` (String) + + +### Nested Schema for `container_properties` + +Read-Only: + +- `command` (List of String) +- `environment` (Attributes List) (see [below for nested schema](#nestedatt--container_properties--environment)) +- `ephemeral_storage` (Attributes) (see [below for nested schema](#nestedatt--container_properties--ephemeral_storage)) +- `execution_role_arn` (String) +- `fargate_platform_configuration` (Attributes) (see [below for nested schema](#nestedatt--container_properties--fargate_platform_configuration)) +- `image` (String) +- `job_role_arn` (String) +- `linux_parameters` (Attributes) (see [below for nested schema](#nestedatt--container_properties--linux_parameters)) +- `log_configuration` (Attributes) (see [below for nested schema](#nestedatt--container_properties--log_configuration)) +- `memory` (Number) +- `mount_points` (Attributes List) (see [below for nested schema](#nestedatt--container_properties--mount_points)) +- `network_configuration` (Attributes) (see [below for nested schema](#nestedatt--container_properties--network_configuration)) +- `privileged` (Boolean) +- `readonly_root_filesystem` (Boolean) +- `repository_credentials` (Attributes) (see [below for nested schema](#nestedatt--container_properties--repository_credentials)) +- `resource_requirements` (Attributes List) (see [below for nested schema](#nestedatt--container_properties--resource_requirements)) +- `runtime_platform` (Attributes) (see [below for nested schema](#nestedatt--container_properties--runtime_platform)) +- `secrets` (Attributes List) (see [below for nested schema](#nestedatt--container_properties--secrets)) +- `ulimits` (Attributes List) (see [below for nested schema](#nestedatt--container_properties--ulimits)) +- `user` (String) +- `vcpus` (Number) +- `volumes` (Attributes List) (see [below for nested schema](#nestedatt--container_properties--volumes)) + + +### Nested Schema for `container_properties.environment` + +Read-Only: + +- `name` (String) +- `value` (String) + + + +### Nested Schema for `container_properties.ephemeral_storage` + +Read-Only: + +- `size_in_gi_b` (Number) + + + +### Nested Schema for `container_properties.fargate_platform_configuration` + +Read-Only: + +- `platform_version` (String) + + + +### Nested Schema for `container_properties.linux_parameters` + +Read-Only: + +- `devices` (Attributes List) (see [below for nested schema](#nestedatt--container_properties--linux_parameters--devices)) +- `init_process_enabled` (Boolean) +- `max_swap` (Number) +- `shared_memory_size` (Number) +- `swappiness` (Number) +- `tmpfs` (Attributes List) (see [below for nested schema](#nestedatt--container_properties--linux_parameters--tmpfs)) + + +### Nested Schema for `container_properties.linux_parameters.devices` + +Read-Only: + +- `container_path` (String) +- `host_path` (String) +- `permissions` (List of String) + + + +### Nested Schema for `container_properties.linux_parameters.tmpfs` + +Read-Only: + +- `container_path` (String) +- `mount_options` (List of String) +- `size` (Number) + + + + +### Nested Schema for `container_properties.log_configuration` + +Read-Only: + +- `log_driver` (String) +- `options` (Map of String) +- `secret_options` (Attributes List) (see [below for nested schema](#nestedatt--container_properties--log_configuration--secret_options)) + + +### Nested Schema for `container_properties.log_configuration.secret_options` + +Read-Only: + +- `name` (String) +- `value_from` (String) + + + + +### Nested Schema for `container_properties.mount_points` + +Read-Only: + +- `container_path` (String) +- `read_only` (Boolean) +- `source_volume` (String) + + + +### Nested Schema for `container_properties.network_configuration` + +Read-Only: + +- `assign_public_ip` (String) + + + +### Nested Schema for `container_properties.repository_credentials` + +Read-Only: + +- `credentials_parameter` (String) + + + +### Nested Schema for `container_properties.resource_requirements` + +Read-Only: + +- `type` (String) +- `value` (String) + + + +### Nested Schema for `container_properties.runtime_platform` + +Read-Only: + +- `cpu_architecture` (String) +- `operating_system_family` (String) + + + +### Nested Schema for `container_properties.secrets` + +Read-Only: + +- `name` (String) +- `value_from` (String) + + + +### Nested Schema for `container_properties.ulimits` + +Read-Only: + +- `hard_limit` (Number) +- `name` (String) +- `soft_limit` (Number) + + + +### Nested Schema for `container_properties.volumes` + +Read-Only: + +- `efs_volume_configuration` (Attributes) (see [below for nested schema](#nestedatt--container_properties--volumes--efs_volume_configuration)) +- `host` (Attributes) (see [below for nested schema](#nestedatt--container_properties--volumes--host)) +- `name` (String) + + +### Nested Schema for `container_properties.volumes.efs_volume_configuration` + +Read-Only: + +- `authorization_config` (Attributes) (see [below for nested schema](#nestedatt--container_properties--volumes--efs_volume_configuration--authorization_config)) +- `file_system_id` (String) +- `root_directory` (String) +- `transit_encryption` (String) +- `transit_encryption_port` (Number) + + +### Nested Schema for `container_properties.volumes.efs_volume_configuration.authorization_config` + +Read-Only: + +- `access_point_id` (String) +- `iam` (String) + + + + +### Nested Schema for `container_properties.volumes.host` + +Read-Only: + +- `source_path` (String) + + + + + +### Nested Schema for `ecs_properties` + +Read-Only: + +- `task_properties` (Attributes List) (see [below for nested schema](#nestedatt--ecs_properties--task_properties)) + + +### Nested Schema for `ecs_properties.task_properties` + +Read-Only: + +- `containers` (Attributes List) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers)) +- `ephemeral_storage` (Attributes) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--ephemeral_storage)) +- `execution_role_arn` (String) +- `ipc_mode` (String) +- `network_configuration` (Attributes) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--network_configuration)) +- `pid_mode` (String) +- `platform_version` (String) +- `runtime_platform` (Attributes) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--runtime_platform)) +- `task_role_arn` (String) +- `volumes` (Attributes List) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--volumes)) + + +### Nested Schema for `ecs_properties.task_properties.containers` + +Read-Only: + +- `command` (List of String) +- `depends_on` (Attributes List) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers--depends_on)) +- `environment` (Attributes List) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers--environment)) +- `essential` (Boolean) +- `image` (String) +- `linux_parameters` (Attributes) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers--linux_parameters)) +- `log_configuration` (Attributes) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers--log_configuration)) +- `mount_points` (Attributes List) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers--mount_points)) +- `name` (String) +- `privileged` (Boolean) +- `readonly_root_filesystem` (Boolean) +- `repository_credentials` (Attributes) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers--repository_credentials)) +- `resource_requirements` (Attributes List) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers--resource_requirements)) +- `secrets` (Attributes List) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers--secrets)) +- `ulimits` (Attributes List) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers--ulimits)) +- `user` (String) + + +### Nested Schema for `ecs_properties.task_properties.containers.depends_on` + +Read-Only: + +- `condition` (String) +- `container_name` (String) + + + +### Nested Schema for `ecs_properties.task_properties.containers.environment` + +Read-Only: + +- `name` (String) +- `value` (String) + + + +### Nested Schema for `ecs_properties.task_properties.containers.linux_parameters` + +Read-Only: + +- `devices` (Attributes List) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers--linux_parameters--devices)) +- `init_process_enabled` (Boolean) +- `max_swap` (Number) +- `shared_memory_size` (Number) +- `swappiness` (Number) +- `tmpfs` (Attributes List) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers--linux_parameters--tmpfs)) + + +### Nested Schema for `ecs_properties.task_properties.containers.linux_parameters.devices` + +Read-Only: + +- `container_path` (String) +- `host_path` (String) +- `permissions` (List of String) + + + +### Nested Schema for `ecs_properties.task_properties.containers.linux_parameters.tmpfs` + +Read-Only: + +- `container_path` (String) +- `mount_options` (List of String) +- `size` (Number) + + + + +### Nested Schema for `ecs_properties.task_properties.containers.log_configuration` + +Read-Only: + +- `log_driver` (String) +- `options` (Map of String) +- `secret_options` (Attributes List) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers--log_configuration--secret_options)) + + +### Nested Schema for `ecs_properties.task_properties.containers.log_configuration.secret_options` + +Read-Only: + +- `name` (String) +- `value_from` (String) + + + + +### Nested Schema for `ecs_properties.task_properties.containers.mount_points` + +Read-Only: + +- `container_path` (String) +- `read_only` (Boolean) +- `source_volume` (String) + + + +### Nested Schema for `ecs_properties.task_properties.containers.repository_credentials` + +Read-Only: + +- `credentials_parameter` (String) + + + +### Nested Schema for `ecs_properties.task_properties.containers.resource_requirements` + +Read-Only: + +- `type` (String) +- `value` (String) + + + +### Nested Schema for `ecs_properties.task_properties.containers.secrets` + +Read-Only: + +- `name` (String) +- `value_from` (String) + + + +### Nested Schema for `ecs_properties.task_properties.containers.ulimits` + +Read-Only: + +- `hard_limit` (Number) +- `name` (String) +- `soft_limit` (Number) + + + + +### Nested Schema for `ecs_properties.task_properties.ephemeral_storage` + +Read-Only: + +- `size_in_gi_b` (Number) + + + +### Nested Schema for `ecs_properties.task_properties.network_configuration` + +Read-Only: + +- `assign_public_ip` (String) + + + +### Nested Schema for `ecs_properties.task_properties.runtime_platform` + +Read-Only: + +- `cpu_architecture` (String) +- `operating_system_family` (String) + + + +### Nested Schema for `ecs_properties.task_properties.volumes` + +Read-Only: + +- `efs_volume_configuration` (Attributes) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--volumes--efs_volume_configuration)) +- `host` (Attributes) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--volumes--host)) +- `name` (String) + + +### Nested Schema for `ecs_properties.task_properties.volumes.efs_volume_configuration` + +Read-Only: + +- `authorization_config` (Attributes) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--volumes--efs_volume_configuration--authorization_config)) +- `file_system_id` (String) +- `root_directory` (String) +- `transit_encryption` (String) +- `transit_encryption_port` (Number) + + +### Nested Schema for `ecs_properties.task_properties.volumes.efs_volume_configuration.authorization_config` + +Read-Only: + +- `access_point_id` (String) +- `iam` (String) + + + + +### Nested Schema for `ecs_properties.task_properties.volumes.host` + +Read-Only: + +- `source_path` (String) + + + + + + +### Nested Schema for `eks_properties` + +Read-Only: + +- `pod_properties` (Attributes) (see [below for nested schema](#nestedatt--eks_properties--pod_properties)) + + +### Nested Schema for `eks_properties.pod_properties` + +Read-Only: + +- `containers` (Attributes List) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--containers)) +- `dns_policy` (String) +- `host_network` (Boolean) +- `image_pull_secrets` (Attributes List) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--image_pull_secrets)) +- `init_containers` (Attributes List) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--init_containers)) +- `metadata` (Attributes) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--metadata)) +- `service_account_name` (String) +- `share_process_namespace` (Boolean) +- `volumes` (Attributes List) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--volumes)) + + +### Nested Schema for `eks_properties.pod_properties.containers` + +Read-Only: + +- `args` (List of String) +- `command` (List of String) +- `env` (Attributes List) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--containers--env)) +- `image` (String) +- `image_pull_policy` (String) +- `name` (String) +- `resources` (Attributes) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--containers--resources)) +- `security_context` (Attributes) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--containers--security_context)) +- `volume_mounts` (Attributes List) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--containers--volume_mounts)) + + +### Nested Schema for `eks_properties.pod_properties.containers.env` + +Read-Only: + +- `name` (String) +- `value` (String) + + + +### Nested Schema for `eks_properties.pod_properties.containers.resources` + +Read-Only: + +- `limits` (Map of String) +- `requests` (Map of String) + + + +### Nested Schema for `eks_properties.pod_properties.containers.security_context` + +Read-Only: + +- `allow_privilege_escalation` (Boolean) +- `privileged` (Boolean) +- `read_only_root_filesystem` (Boolean) +- `run_as_group` (Number) +- `run_as_non_root` (Boolean) +- `run_as_user` (Number) + + + +### Nested Schema for `eks_properties.pod_properties.containers.volume_mounts` + +Read-Only: + +- `mount_path` (String) +- `name` (String) +- `read_only` (Boolean) + + + + +### Nested Schema for `eks_properties.pod_properties.image_pull_secrets` + +Read-Only: + +- `name` (String) + + + +### Nested Schema for `eks_properties.pod_properties.init_containers` + +Read-Only: + +- `args` (List of String) +- `command` (List of String) +- `env` (Attributes List) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--init_containers--env)) +- `image` (String) +- `image_pull_policy` (String) +- `name` (String) +- `resources` (Attributes) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--init_containers--resources)) +- `security_context` (Attributes) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--init_containers--security_context)) +- `volume_mounts` (Attributes List) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--init_containers--volume_mounts)) + + +### Nested Schema for `eks_properties.pod_properties.init_containers.env` + +Read-Only: + +- `name` (String) +- `value` (String) + + + +### Nested Schema for `eks_properties.pod_properties.init_containers.resources` + +Read-Only: + +- `limits` (Map of String) +- `requests` (Map of String) + + + +### Nested Schema for `eks_properties.pod_properties.init_containers.security_context` + +Read-Only: + +- `allow_privilege_escalation` (Boolean) +- `privileged` (Boolean) +- `read_only_root_filesystem` (Boolean) +- `run_as_group` (Number) +- `run_as_non_root` (Boolean) +- `run_as_user` (Number) + + + +### Nested Schema for `eks_properties.pod_properties.init_containers.volume_mounts` + +Read-Only: + +- `mount_path` (String) +- `name` (String) +- `read_only` (Boolean) + + + + +### Nested Schema for `eks_properties.pod_properties.metadata` + +Read-Only: + +- `labels` (Map of String) + + + +### Nested Schema for `eks_properties.pod_properties.volumes` + +Read-Only: + +- `empty_dir` (Attributes) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--volumes--empty_dir)) +- `host_path` (Attributes) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--volumes--host_path)) +- `name` (String) +- `secret` (Attributes) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--volumes--secret)) + + +### Nested Schema for `eks_properties.pod_properties.volumes.empty_dir` + +Read-Only: + +- `medium` (String) +- `size_limit` (String) + + + +### Nested Schema for `eks_properties.pod_properties.volumes.host_path` + +Read-Only: + +- `path` (String) + + + +### Nested Schema for `eks_properties.pod_properties.volumes.secret` + +Read-Only: + +- `optional` (Boolean) +- `secret_name` (String) + + + + + + +### Nested Schema for `node_properties` + +Read-Only: + +- `main_node` (Number) +- `node_range_properties` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties)) +- `num_nodes` (Number) + + +### Nested Schema for `node_properties.node_range_properties` + +Read-Only: + +- `container` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container)) +- `ecs_properties` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties)) +- `eks_properties` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties)) +- `instance_types` (List of String) +- `target_nodes` (String) + + +### Nested Schema for `node_properties.node_range_properties.container` + +Read-Only: + +- `command` (List of String) +- `environment` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--environment)) +- `ephemeral_storage` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--ephemeral_storage)) +- `execution_role_arn` (String) +- `image` (String) +- `instance_type` (String) +- `job_role_arn` (String) +- `linux_parameters` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--linux_parameters)) +- `log_configuration` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--log_configuration)) +- `memory` (Number) +- `mount_points` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--mount_points)) +- `privileged` (Boolean) +- `readonly_root_filesystem` (Boolean) +- `repository_credentials` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--repository_credentials)) +- `resource_requirements` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--resource_requirements)) +- `runtime_platform` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--runtime_platform)) +- `secrets` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--secrets)) +- `ulimits` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--ulimits)) +- `user` (String) +- `vcpus` (Number) +- `volumes` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--volumes)) + + +### Nested Schema for `node_properties.node_range_properties.container.environment` + +Read-Only: + +- `name` (String) +- `value` (String) + + + +### Nested Schema for `node_properties.node_range_properties.container.ephemeral_storage` + +Read-Only: + +- `size_in_gi_b` (Number) + + + +### Nested Schema for `node_properties.node_range_properties.container.linux_parameters` + +Read-Only: + +- `devices` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--linux_parameters--devices)) +- `init_process_enabled` (Boolean) +- `max_swap` (Number) +- `shared_memory_size` (Number) +- `swappiness` (Number) +- `tmpfs` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--linux_parameters--tmpfs)) + + +### Nested Schema for `node_properties.node_range_properties.container.linux_parameters.devices` + +Read-Only: + +- `container_path` (String) +- `host_path` (String) +- `permissions` (List of String) + + + +### Nested Schema for `node_properties.node_range_properties.container.linux_parameters.tmpfs` + +Read-Only: + +- `container_path` (String) +- `mount_options` (List of String) +- `size` (Number) + + + + +### Nested Schema for `node_properties.node_range_properties.container.log_configuration` + +Read-Only: + +- `log_driver` (String) +- `options` (Map of String) +- `secret_options` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--log_configuration--secret_options)) + + +### Nested Schema for `node_properties.node_range_properties.container.log_configuration.secret_options` + +Read-Only: + +- `name` (String) +- `value_from` (String) + + + + +### Nested Schema for `node_properties.node_range_properties.container.mount_points` + +Read-Only: + +- `container_path` (String) +- `read_only` (Boolean) +- `source_volume` (String) + + + +### Nested Schema for `node_properties.node_range_properties.container.repository_credentials` + +Read-Only: + +- `credentials_parameter` (String) + + + +### Nested Schema for `node_properties.node_range_properties.container.resource_requirements` + +Read-Only: + +- `type` (String) +- `value` (String) + + + +### Nested Schema for `node_properties.node_range_properties.container.runtime_platform` + +Read-Only: + +- `cpu_architecture` (String) +- `operating_system_family` (String) + + + +### Nested Schema for `node_properties.node_range_properties.container.secrets` + +Read-Only: + +- `name` (String) +- `value_from` (String) + + + +### Nested Schema for `node_properties.node_range_properties.container.ulimits` + +Read-Only: + +- `hard_limit` (Number) +- `name` (String) +- `soft_limit` (Number) + + + +### Nested Schema for `node_properties.node_range_properties.container.volumes` + +Read-Only: + +- `efs_volume_configuration` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--volumes--efs_volume_configuration)) +- `host` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--volumes--host)) +- `name` (String) + + +### Nested Schema for `node_properties.node_range_properties.container.volumes.efs_volume_configuration` + +Read-Only: + +- `authorization_config` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--volumes--efs_volume_configuration--authorization_config)) +- `file_system_id` (String) +- `root_directory` (String) +- `transit_encryption` (String) +- `transit_encryption_port` (Number) + + +### Nested Schema for `node_properties.node_range_properties.container.volumes.efs_volume_configuration.authorization_config` + +Read-Only: + +- `access_point_id` (String) +- `iam` (String) + + + + +### Nested Schema for `node_properties.node_range_properties.container.volumes.host` + +Read-Only: + +- `source_path` (String) + + + + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties` + +Read-Only: + +- `task_properties` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties)) + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties` + +Read-Only: + +- `containers` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers)) +- `execution_role_arn` (String) +- `ipc_mode` (String) +- `pid_mode` (String) +- `task_role_arn` (String) +- `volumes` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--volumes)) + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers` + +Read-Only: + +- `command` (List of String) +- `depends_on` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers--depends_on)) +- `environment` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers--environment)) +- `essential` (Boolean) +- `image` (String) +- `linux_parameters` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers--linux_parameters)) +- `log_configuration` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers--log_configuration)) +- `mount_points` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers--mount_points)) +- `name` (String) +- `privileged` (Boolean) +- `readonly_root_filesystem` (Boolean) +- `repository_credentials` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers--repository_credentials)) +- `resource_requirements` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers--resource_requirements)) +- `secrets` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers--secrets)) +- `ulimits` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers--ulimits)) +- `user` (String) + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers.depends_on` + +Read-Only: + +- `condition` (String) +- `container_name` (String) + + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers.environment` + +Read-Only: + +- `name` (String) +- `value` (String) + + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers.linux_parameters` + +Read-Only: + +- `devices` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers--linux_parameters--devices)) +- `init_process_enabled` (Boolean) +- `max_swap` (Number) +- `shared_memory_size` (Number) +- `swappiness` (Number) +- `tmpfs` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers--linux_parameters--tmpfs)) + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers.linux_parameters.devices` + +Read-Only: + +- `container_path` (String) +- `host_path` (String) +- `permissions` (List of String) + + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers.linux_parameters.tmpfs` + +Read-Only: + +- `container_path` (String) +- `mount_options` (List of String) +- `size` (Number) + + + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers.log_configuration` + +Read-Only: + +- `log_driver` (String) +- `options` (Map of String) +- `secret_options` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers--log_configuration--secret_options)) + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers.log_configuration.secret_options` + +Read-Only: + +- `name` (String) +- `value_from` (String) + + + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers.mount_points` + +Read-Only: + +- `container_path` (String) +- `read_only` (Boolean) +- `source_volume` (String) + + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers.repository_credentials` + +Read-Only: + +- `credentials_parameter` (String) + + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers.resource_requirements` + +Read-Only: + +- `type` (String) +- `value` (String) + + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers.secrets` + +Read-Only: + +- `name` (String) +- `value_from` (String) + + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers.ulimits` + +Read-Only: + +- `hard_limit` (Number) +- `name` (String) +- `soft_limit` (Number) + + + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.volumes` + +Read-Only: + +- `efs_volume_configuration` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--volumes--efs_volume_configuration)) +- `host` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--volumes--host)) +- `name` (String) + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.volumes.efs_volume_configuration` + +Read-Only: + +- `authorization_config` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--volumes--efs_volume_configuration--authorization_config)) +- `file_system_id` (String) +- `root_directory` (String) +- `transit_encryption` (String) +- `transit_encryption_port` (Number) + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.volumes.efs_volume_configuration.authorization_config` + +Read-Only: + +- `access_point_id` (String) +- `iam` (String) + + + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.volumes.host` + +Read-Only: + +- `source_path` (String) + + + + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties` + +Read-Only: + +- `pod_properties` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties)) + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties` + +Read-Only: + +- `containers` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--containers)) +- `dns_policy` (String) +- `host_network` (Boolean) +- `image_pull_secrets` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--image_pull_secrets)) +- `init_containers` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--init_containers)) +- `metadata` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--metadata)) +- `service_account_name` (String) +- `share_process_namespace` (Boolean) +- `volumes` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--volumes)) + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.containers` + +Read-Only: + +- `args` (List of String) +- `command` (List of String) +- `env` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--containers--env)) +- `image` (String) +- `image_pull_policy` (String) +- `name` (String) +- `resources` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--containers--resources)) +- `security_context` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--containers--security_context)) +- `volume_mounts` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--containers--volume_mounts)) + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.containers.env` + +Read-Only: + +- `name` (String) +- `value` (String) + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.containers.resources` + +Read-Only: + +- `limits` (Map of String) +- `requests` (Map of String) + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.containers.security_context` + +Read-Only: + +- `allow_privilege_escalation` (Boolean) +- `privileged` (Boolean) +- `read_only_root_filesystem` (Boolean) +- `run_as_group` (Number) +- `run_as_non_root` (Boolean) +- `run_as_user` (Number) + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.containers.volume_mounts` + +Read-Only: + +- `mount_path` (String) +- `name` (String) +- `read_only` (Boolean) + + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.image_pull_secrets` + +Read-Only: + +- `name` (String) + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.init_containers` + +Read-Only: + +- `args` (List of String) +- `command` (List of String) +- `env` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--init_containers--env)) +- `image` (String) +- `image_pull_policy` (String) +- `name` (String) +- `resources` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--init_containers--resources)) +- `security_context` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--init_containers--security_context)) +- `volume_mounts` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--init_containers--volume_mounts)) + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.init_containers.env` + +Read-Only: + +- `name` (String) +- `value` (String) + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.init_containers.resources` + +Read-Only: + +- `limits` (Map of String) +- `requests` (Map of String) + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.init_containers.security_context` + +Read-Only: + +- `allow_privilege_escalation` (Boolean) +- `privileged` (Boolean) +- `read_only_root_filesystem` (Boolean) +- `run_as_group` (Number) +- `run_as_non_root` (Boolean) +- `run_as_user` (Number) + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.init_containers.volume_mounts` + +Read-Only: + +- `mount_path` (String) +- `name` (String) +- `read_only` (Boolean) + + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.metadata` + +Read-Only: + +- `labels` (Map of String) + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.volumes` + +Read-Only: + +- `empty_dir` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--volumes--empty_dir)) +- `host_path` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--volumes--host_path)) +- `name` (String) +- `secret` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--volumes--secret)) + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.volumes.empty_dir` + +Read-Only: + +- `medium` (String) +- `size_limit` (String) + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.volumes.host_path` + +Read-Only: + +- `path` (String) + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.volumes.secret` + +Read-Only: + +- `optional` (Boolean) +- `secret_name` (String) + + + + + + + + +### Nested Schema for `retry_strategy` + +Read-Only: + +- `attempts` (Number) +- `evaluate_on_exit` (Attributes List) (see [below for nested schema](#nestedatt--retry_strategy--evaluate_on_exit)) + + +### Nested Schema for `retry_strategy.evaluate_on_exit` + +Read-Only: + +- `action` (String) +- `on_exit_code` (String) +- `on_reason` (String) +- `on_status_reason` (String) + + + + +### Nested Schema for `timeout` + +Read-Only: + +- `attempt_duration_seconds` (Number) diff --git a/docs/data-sources/batch_job_definitions.md b/docs/data-sources/batch_job_definitions.md new file mode 100644 index 0000000000..eb13dc5864 --- /dev/null +++ b/docs/data-sources/batch_job_definitions.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_batch_job_definitions Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::Batch::JobDefinition +--- + +# awscc_batch_job_definitions (Data Source) + +Plural Data Source schema for AWS::Batch::JobDefinition + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/cassandra_keyspace.md b/docs/data-sources/cassandra_keyspace.md index 602a986ba9..746527b00b 100644 --- a/docs/data-sources/cassandra_keyspace.md +++ b/docs/data-sources/cassandra_keyspace.md @@ -21,6 +21,7 @@ Data Source schema for AWS::Cassandra::Keyspace ### Read-Only +- `client_side_timestamps_enabled` (Boolean) Indicates whether client-side timestamps are enabled (true) or disabled (false) for all tables in the keyspace. To add a Region to a single-Region keyspace with at least one table, the value must be set to true. After you enabled client-side timestamps for a table, you can?t disable it again. - `keyspace_name` (String) Name for Cassandra keyspace - `replication_specification` (Attributes) (see [below for nested schema](#nestedatt--replication_specification)) - `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) diff --git a/docs/data-sources/cassandra_type.md b/docs/data-sources/cassandra_type.md new file mode 100644 index 0000000000..a2b894d093 --- /dev/null +++ b/docs/data-sources/cassandra_type.md @@ -0,0 +1,39 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_cassandra_type Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Cassandra::Type +--- + +# awscc_cassandra_type (Data Source) + +Data Source schema for AWS::Cassandra::Type + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `direct_parent_types` (Set of String) List of parent User-Defined Types that directly reference the User-Defined Type in their fields. +- `direct_referring_tables` (Set of String) List of Tables that directly reference the User-Defined Type in their columns. +- `fields` (Attributes Set) Field definitions of the User-Defined Type (see [below for nested schema](#nestedatt--fields)) +- `keyspace_arn` (String) ARN of the Keyspace which contains the User-Defined Type. +- `keyspace_name` (String) Name of the Keyspace which contains the User-Defined Type. +- `last_modified_timestamp` (Number) Timestamp of the last time the User-Defined Type's meta data was modified. +- `max_nesting_depth` (Number) Maximum nesting depth of the User-Defined Type across the field types. +- `type_name` (String) Name of the User-Defined Type. + + +### Nested Schema for `fields` + +Read-Only: + +- `field_name` (String) +- `field_type` (String) diff --git a/docs/data-sources/cassandra_types.md b/docs/data-sources/cassandra_types.md new file mode 100644 index 0000000000..79e8686f7a --- /dev/null +++ b/docs/data-sources/cassandra_types.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_cassandra_types Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::Cassandra::Type +--- + +# awscc_cassandra_types (Data Source) + +Plural Data Source schema for AWS::Cassandra::Type + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/cleanrooms_configured_table.md b/docs/data-sources/cleanrooms_configured_table.md index 4071ce8b1c..b65cf4c7d3 100644 --- a/docs/data-sources/cleanrooms_configured_table.md +++ b/docs/data-sources/cleanrooms_configured_table.md @@ -136,7 +136,20 @@ Read-Only: Read-Only: +- `athena` (Attributes) (see [below for nested schema](#nestedatt--table_reference--athena)) - `glue` (Attributes) (see [below for nested schema](#nestedatt--table_reference--glue)) +- `snowflake` (Attributes) (see [below for nested schema](#nestedatt--table_reference--snowflake)) + + +### Nested Schema for `table_reference.athena` + +Read-Only: + +- `database_name` (String) +- `output_location` (String) +- `table_name` (String) +- `work_group` (String) + ### Nested Schema for `table_reference.glue` @@ -147,6 +160,36 @@ Read-Only: - `table_name` (String) + +### Nested Schema for `table_reference.snowflake` + +Read-Only: + +- `account_identifier` (String) +- `database_name` (String) +- `schema_name` (String) +- `secret_arn` (String) +- `table_name` (String) +- `table_schema` (Attributes) (see [below for nested schema](#nestedatt--table_reference--snowflake--table_schema)) + + +### Nested Schema for `table_reference.snowflake.table_schema` + +Read-Only: + +- `v1` (Attributes List) (see [below for nested schema](#nestedatt--table_reference--snowflake--table_schema--v1)) + + +### Nested Schema for `table_reference.snowflake.table_schema.v1` + +Read-Only: + +- `column_name` (String) +- `column_type` (String) + + + + ### Nested Schema for `tags` diff --git a/docs/data-sources/connect_queue.md b/docs/data-sources/connect_queue.md index f4a583efdc..20b225ec08 100644 --- a/docs/data-sources/connect_queue.md +++ b/docs/data-sources/connect_queue.md @@ -27,6 +27,7 @@ Data Source schema for AWS::Connect::Queue - `max_contacts` (Number) The maximum number of contacts that can be in the queue before it is considered full. - `name` (String) The name of the queue. - `outbound_caller_config` (Attributes) The outbound caller ID name, number, and outbound whisper flow. (see [below for nested schema](#nestedatt--outbound_caller_config)) +- `outbound_email_config` (Attributes) The outbound email address ID. (see [below for nested schema](#nestedatt--outbound_email_config)) - `queue_arn` (String) The Amazon Resource Name (ARN) for the queue. - `quick_connect_arns` (List of String) The quick connects available to agents who are working the queue. - `status` (String) The status of the queue. @@ -43,6 +44,14 @@ Read-Only: - `outbound_flow_arn` (String) The outbound whisper flow to be used during an outbound call. + +### Nested Schema for `outbound_email_config` + +Read-Only: + +- `outbound_email_address_id` (String) The email address connect resource ID. + + ### Nested Schema for `tags` diff --git a/docs/data-sources/connect_task_template.md b/docs/data-sources/connect_task_template.md index 0b486d8c52..fa9a87bfb4 100644 --- a/docs/data-sources/connect_task_template.md +++ b/docs/data-sources/connect_task_template.md @@ -30,6 +30,7 @@ Data Source schema for AWS::Connect::TaskTemplate - `fields` (Attributes List) The list of task template's fields (see [below for nested schema](#nestedatt--fields)) - `instance_arn` (String) The identifier (arn) of the instance. - `name` (String) The name of the task template. +- `self_assign_contact_flow_arn` (String) The identifier of the contact flow. - `status` (String) The status of the task template - `tags` (Attributes Set) One or more tags. (see [below for nested schema](#nestedatt--tags)) diff --git a/docs/data-sources/connectcampaignsv2_campaign.md b/docs/data-sources/connectcampaignsv2_campaign.md index fae13578d7..b7bd64964a 100644 --- a/docs/data-sources/connectcampaignsv2_campaign.md +++ b/docs/data-sources/connectcampaignsv2_campaign.md @@ -29,7 +29,7 @@ Data Source schema for AWS::ConnectCampaignsV2::Campaign - `connect_instance_id` (String) Amazon Connect Instance Id - `name` (String) Campaign name - `schedule` (Attributes) Campaign schedule (see [below for nested schema](#nestedatt--schedule)) -- `source` (Attributes) The possible types of channel config parameters (see [below for nested schema](#nestedatt--source)) +- `source` (Attributes) The possible source of the campaign (see [below for nested schema](#nestedatt--source)) - `tags` (Attributes Set) One or more tags. (see [below for nested schema](#nestedatt--tags)) @@ -374,6 +374,15 @@ Read-Only: Read-Only: - `customer_profiles_segment_arn` (String) Arn +- `event_trigger` (Attributes) The event trigger of the campaign (see [below for nested schema](#nestedatt--source--event_trigger)) + + +### Nested Schema for `source.event_trigger` + +Read-Only: + +- `customer_profiles_domain_arn` (String) Arn + diff --git a/docs/data-sources/dynamodb_table.md b/docs/data-sources/dynamodb_table.md index e85ca9aaa3..df6558fcc2 100644 --- a/docs/data-sources/dynamodb_table.md +++ b/docs/data-sources/dynamodb_table.md @@ -39,8 +39,8 @@ Data Source schema for AWS::DynamoDB::Table Updates are not supported. The following are exceptions: + If you update either the contributor insights specification or the provisioned throughput values of global secondary indexes, you can update the table without interruption. + You can delete or add one global secondary index without interruption. If you do both in the same update (for example, by changing the index's logical ID), the update fails. (see [below for nested schema](#nestedatt--global_secondary_indexes)) -- `import_source_specification` (Attributes) Specifies the properties of data being imported from the S3 bucket source to the table. - If you specify the ``ImportSourceSpecification`` property, and also specify either the ``StreamSpecification``, the ``TableClass`` property, or the ``DeletionProtectionEnabled`` property, the IAM entity creating/updating stack must have ``UpdateTable`` permission. (see [below for nested schema](#nestedatt--import_source_specification)) +- `import_source_specification` (Attributes) Specifies the properties of data being imported from the S3 bucket source to the" table. + If you specify the ``ImportSourceSpecification`` property, and also specify either the ``StreamSpecification``, the ``TableClass`` property, the ``DeletionProtectionEnabled`` property, or the ``WarmThroughput`` property, the IAM entity creating/updating stack must have ``UpdateTable`` permission. (see [below for nested schema](#nestedatt--import_source_specification)) - `key_schema` (String) Specifies the attributes that make up the primary key for the table. The attributes in the ``KeySchema`` property must also be defined in the ``AttributeDefinitions`` property. - `kinesis_stream_specification` (Attributes) The Kinesis Data Streams configuration for the specified table. (see [below for nested schema](#nestedatt--kinesis_stream_specification)) - `local_secondary_indexes` (Attributes List) Local secondary indexes to be created on the table. You can create up to 5 local secondary indexes. Each index is scoped to a given hash key value. The size of each hash key can be up to 10 gigabytes. (see [below for nested schema](#nestedatt--local_secondary_indexes)) diff --git a/docs/data-sources/ecs_service.md b/docs/data-sources/ecs_service.md index d8b0842036..5171994296 100644 --- a/docs/data-sources/ecs_service.md +++ b/docs/data-sources/ecs_service.md @@ -21,7 +21,8 @@ Data Source schema for AWS::ECS::Service ### Read-Only -- `availability_zone_rebalancing` (String) +- `availability_zone_rebalancing` (String) Indicates whether to use Availability Zone rebalancing for the service. + For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide*. - `capacity_provider_strategy` (Attributes List) The capacity provider strategy to use for the service. If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used. A capacity provider strategy may contain a maximum of 6 capacity providers. (see [below for nested schema](#nestedatt--capacity_provider_strategy)) @@ -34,9 +35,8 @@ Data Source schema for AWS::ECS::Service - `enable_ecs_managed_tags` (Boolean) Specifies whether to turn on Amazon ECS managed tags for the tasks within the service. For more information, see [Tagging your Amazon ECS resources](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) in the *Amazon Elastic Container Service Developer Guide*. When you use Amazon ECS managed tags, you need to set the ``propagateTags`` request parameter. - `enable_execute_command` (Boolean) Determines whether the execute command functionality is turned on for the service. If ``true``, the execute command functionality is turned on for all containers in tasks as part of the service. -- `health_check_grace_period_seconds` (Number) The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started. This is only used when your service is configured to use a load balancer. If your service has a load balancer defined and you don't specify a health check grace period value, the default value of ``0`` is used. - If you do not use an Elastic Load Balancing, we recommend that you use the ``startPeriod`` in the task definition health check parameters. For more information, see [Health check](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_HealthCheck.html). - If your service's tasks take a while to start and respond to Elastic Load Balancing health checks, you can specify a health check grace period of up to 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS service scheduler ignores health check status. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up. +- `health_check_grace_period_seconds` (Number) The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started. If you don't specify a health check grace period value, the default value of ``0`` is used. If you don't use any of the health checks, then ``healthCheckGracePeriodSeconds`` is unused. + If your service's tasks take a while to start and respond to health checks, you can specify a health check grace period of up to 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS service scheduler ignores health check status. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up. - `launch_type` (String) The launch type on which to run your service. For more information, see [Amazon ECS Launch Types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*. - `load_balancers` (Attributes List) A list of load balancer objects to associate with the service. If you specify the ``Role`` property, ``LoadBalancers`` must be specified as well. For information about the number of load balancers that you can specify per service, see [Service Load Balancing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html) in the *Amazon Elastic Container Service Developer Guide*. (see [below for nested schema](#nestedatt--load_balancers)) - `name` (String) @@ -75,7 +75,7 @@ Data Source schema for AWS::ECS::Service A task definition must be specified if the service uses either the ``ECS`` or ``CODE_DEPLOY`` deployment controllers. For more information about deployment types, see [Amazon ECS deployment types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html). - `volume_configurations` (Attributes List) The configuration for a volume specified in the task definition as a volume that is configured at launch time. Currently, the only supported volume type is an Amazon EBS volume. (see [below for nested schema](#nestedatt--volume_configurations)) -- `vpc_lattice_configurations` (Attributes List) (see [below for nested schema](#nestedatt--vpc_lattice_configurations)) +- `vpc_lattice_configurations` (Attributes List) The VPC Lattice configuration for the service being created. (see [below for nested schema](#nestedatt--vpc_lattice_configurations)) ### Nested Schema for `capacity_provider_strategy` @@ -176,7 +176,7 @@ Read-Only: Read-Only: -- `assign_public_ip` (String) Whether the task's elastic network interface receives a public IP address. The default value is ``DISABLED``. +- `assign_public_ip` (String) Whether the task's elastic network interface receives a public IP address. The default value is ``ENABLED``. - `security_groups` (List of String) The IDs of the security groups associated with the task or service. If you don't specify a security group, the default security group for the VPC is used. There's a limit of 5 security groups that can be specified per ``awsvpcConfiguration``. All specified security groups must be from the same VPC. - `subnets` (List of String) The IDs of the subnets associated with the task or service. There's a limit of 16 subnets that can be specified per ``awsvpcConfiguration``. @@ -411,6 +411,6 @@ Read-Only: Read-Only: -- `port_name` (String) -- `role_arn` (String) -- `target_group_arn` (String) +- `port_name` (String) The name of the port mapping to register in the VPC Lattice target group. This is the name of the ``portMapping`` you defined in your task definition. +- `role_arn` (String) The ARN of the IAM role to associate with this VPC Lattice configuration. This is the Amazon ECS
 infrastructure IAM role that is used to manage your VPC Lattice infrastructure. +- `target_group_arn` (String) The full Amazon Resource Name (ARN) of the target group or groups associated with the VPC Lattice configuration that the Amazon ECS tasks will be registered to. diff --git a/docs/data-sources/ecs_task_definition.md b/docs/data-sources/ecs_task_definition.md index 1389eee1bc..f6ec41df1d 100644 --- a/docs/data-sources/ecs_task_definition.md +++ b/docs/data-sources/ecs_task_definition.md @@ -34,6 +34,7 @@ Data Source schema for AWS::ECS::TaskDefinition This option requires Linux platform ``1.4.0`` or later. + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments This option requires Linux platform ``1.4.0`` or later. +- `enable_fault_injection` (Boolean) - `ephemeral_storage` (Attributes) The ephemeral storage settings to use for tasks run with the task definition. (see [below for nested schema](#nestedatt--ephemeral_storage)) - `execution_role_arn` (String) The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission to make AWS API calls on your behalf. For informationabout the required IAM roles for Amazon ECS, see [IAM roles for Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/security-ecs-iam-role-overview.html) in the *Amazon Elastic Container Service Developer Guide*. - `family` (String) The name of a family that this task definition is registered to. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. @@ -225,7 +226,7 @@ Read-Only: + ``uid:group`` This parameter is not supported for Windows containers. -- `version_consistency` (String) +- `version_consistency` (String) Specifies whether Amazon ECS will resolve the container image tag provided in the container definition to an image digest. By default, the value is ``enabled``. If you set the value for a container as ``disabled``, Amazon ECS will not resolve the provided container image tag to a digest and will use the original image URI specified in the container definition for deployment. For more information about container image resolution, see [Container image resolution](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html#deployment-container-image-stability) in the *Amazon ECS Developer Guide*. - `volumes_from` (Attributes Set) Data volumes to mount from another container. This parameter maps to ``VolumesFrom`` in the docker container create command and the ``--volumes-from`` option to docker run. (see [below for nested schema](#nestedatt--container_definitions--volumes_from)) - `working_directory` (String) The working directory to run commands inside the container in. This parameter maps to ``WorkingDir`` in the docker container create command and the ``--workdir`` option to docker run. @@ -292,7 +293,7 @@ Read-Only: ``[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]`` You don't include the double quotes and brackets when you use the AWS Management Console. ``CMD-SHELL, curl -f http://localhost/ || exit 1`` - An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command + An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command. - `interval` (Number) The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. - `retries` (Number) The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. - `start_period` (Number) The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. @@ -442,8 +443,7 @@ Read-Only: If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version. The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under ``/proc/sys/net/ipv4/ip_local_port_range``. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 (Linux) or 49152 through 65535 (Windows) is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the ``remainingResources`` of [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota. -- `name` (String) The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. - For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. +- `name` (String) The name that's used for the port mapping. This parameter is the name that you use in the ``serviceConnectConfiguration`` and the ``vpcLatticeConfigurations`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. - `protocol` (String) The protocol used for the port mapping. Valid values are ``tcp`` and ``udp``. The default is ``tcp``. ``protocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. @@ -525,7 +525,7 @@ Read-Only: Read-Only: -- `size_in_gi_b` (Number) The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``20`` GiB and the maximum supported value is ``200`` GiB. +- `size_in_gi_b` (Number) The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``21`` GiB and the maximum supported value is ``200`` GiB. diff --git a/docs/data-sources/iot_command.md b/docs/data-sources/iot_command.md new file mode 100644 index 0000000000..52649d0ac3 --- /dev/null +++ b/docs/data-sources/iot_command.md @@ -0,0 +1,92 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_iot_command Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::IoT::Command +--- + +# awscc_iot_command (Data Source) + +Data Source schema for AWS::IoT::Command + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `command_arn` (String) The Amazon Resource Name (ARN) of the command. +- `command_id` (String) The unique identifier for the command. +- `created_at` (String) The date and time when the command was created. +- `deprecated` (Boolean) A flag indicating whether the command is deprecated. +- `description` (String) The description of the command. +- `display_name` (String) The display name for the command. +- `last_updated_at` (String) The date and time when the command was last updated. +- `mandatory_parameters` (Attributes List) The list of mandatory parameters for the command. (see [below for nested schema](#nestedatt--mandatory_parameters)) +- `namespace` (String) The namespace to which the command belongs. +- `payload` (Attributes) The payload associated with the command. (see [below for nested schema](#nestedatt--payload)) +- `pending_deletion` (Boolean) A flag indicating whether the command is pending deletion. +- `role_arn` (String) The customer role associated with the command. +- `tags` (Attributes List) The tags to be associated with the command. (see [below for nested schema](#nestedatt--tags)) + + +### Nested Schema for `mandatory_parameters` + +Read-Only: + +- `default_value` (Attributes) (see [below for nested schema](#nestedatt--mandatory_parameters--default_value)) +- `description` (String) +- `name` (String) +- `value` (Attributes) (see [below for nested schema](#nestedatt--mandatory_parameters--value)) + + +### Nested Schema for `mandatory_parameters.default_value` + +Read-Only: + +- `b` (Boolean) +- `bin` (String) +- `d` (Number) +- `i` (Number) +- `l` (String) +- `s` (String) +- `ul` (String) + + + +### Nested Schema for `mandatory_parameters.value` + +Read-Only: + +- `b` (Boolean) +- `bin` (String) +- `d` (Number) +- `i` (Number) +- `l` (String) +- `s` (String) +- `ul` (String) + + + + +### Nested Schema for `payload` + +Read-Only: + +- `content` (String) +- `content_type` (String) + + + +### Nested Schema for `tags` + +Read-Only: + +- `key` (String) The tag's key. +- `value` (String) The tag's value. diff --git a/docs/data-sources/iot_commands.md b/docs/data-sources/iot_commands.md new file mode 100644 index 0000000000..f3a5e1dcd8 --- /dev/null +++ b/docs/data-sources/iot_commands.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_iot_commands Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::IoT::Command +--- + +# awscc_iot_commands (Data Source) + +Plural Data Source schema for AWS::IoT::Command + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/lambda_function.md b/docs/data-sources/lambda_function.md index 09e39b43a7..177fc52c86 100644 --- a/docs/data-sources/lambda_function.md +++ b/docs/data-sources/lambda_function.md @@ -38,7 +38,13 @@ Data Source schema for AWS::Lambda::Function If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. - `handler` (String) The name of the method within your code that Lambda calls to run your function. Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see [Lambda programming model](https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html). - `image_config` (Attributes) Configuration values that override the container image Dockerfile settings. For more information, see [Container image settings](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms). (see [below for nested schema](#nestedatt--image_config)) -- `kms_key_arn` (String) The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's [environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption). When [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) is activated, LAM also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, LAM also uses this key to encrypt your function when it's deployed. Note that this is not the same key that's used to protect your container image in the ECRlong (ECR). If you don't provide a customer managed key, LAM uses a default service key. +- `kms_key_arn` (String) The ARN of the KMSlong (KMS) customer managed key that's used to encrypt the following resources: + + The function's [environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption). + + The function's [Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) snapshots. + + When used with ``SourceKMSKeyArn``, the unzipped version of the .zip deployment package that's used for function invocations. For more information, see [Specifying a customer managed key for Lambda](https://docs.aws.amazon.com/lambda/latest/dg/encrypt-zip-package.html#enable-zip-custom-encryption). + + The optimized version of the container image that's used for function invocations. Note that this is not the same key that's used to protect your container image in the Amazon Elastic Container Registry (Amazon ECR). For more information, see [Function lifecycle](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-lifecycle). + + If you don't provide a customer managed key, Lambda uses an [owned key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) or an [](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk). - `layers` (List of String) A list of [function layers](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) to add to the function's execution environment. Specify each layer by its ARN, including the version. - `logging_config` (Attributes) The function's Amazon CloudWatch Logs configuration settings. (see [below for nested schema](#nestedatt--logging_config)) - `memory_size` (Number) The amount of [memory available to the function](https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html#configuration-memory-console) at runtime. Increasing the function memory also increases its CPU allocation. The default value is 128 MB. The value can be any multiple of 1 MB. Note that new AWS accounts have reduced concurrency and memory quotas. AWS raises these quotas automatically based on your usage. You can also request a quota increase. @@ -69,9 +75,10 @@ Read-Only: - `s3_bucket` (String) An Amazon S3 bucket in the same AWS-Region as your function. The bucket can be in a different AWS-account. - `s3_key` (String) The Amazon S3 key of the deployment package. - `s3_object_version` (String) For versioned objects, the version of the deployment package object to use. -- `source_kms_key_arn` (String) +- `source_kms_key_arn` (String) The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's .zip deployment package. If you don't provide a customer managed key, Lambda uses an [owned key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk). - `zip_file` (String) (Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, CFN places it in a file named ``index`` and zips it to create a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html). This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index``. For example, ``index.handler``. - For JSON, you must escape quotes and special characters such as newline (``\n``) with a backslash. + When you specify source code inline for a Node.js function, the ``index`` file that CFN creates uses the extension ``.js``. This means that LAM treats the file as a CommonJS module. ES modules aren't supported for inline functions. + For JSON, you must escape quotes and special characters such as newline (``\n``) with a backslash. If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module ([cfn-response](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html)) that simplifies sending responses. See [Using Lambda with CloudFormation](https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html) for details. diff --git a/docs/data-sources/logs_metric_filter.md b/docs/data-sources/logs_metric_filter.md index 620c8c97ec..34698fdadc 100644 --- a/docs/data-sources/logs_metric_filter.md +++ b/docs/data-sources/logs_metric_filter.md @@ -21,6 +21,7 @@ Data Source schema for AWS::Logs::MetricFilter ### Read-Only +- `apply_on_transformed_logs` (Boolean) - `filter_name` (String) The name of the metric filter. - `filter_pattern` (String) A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). - `log_group_name` (String) The name of an existing log group that you want to associate with this metric filter. diff --git a/docs/data-sources/logs_query_definition.md b/docs/data-sources/logs_query_definition.md index e9f5690f90..0961298352 100644 --- a/docs/data-sources/logs_query_definition.md +++ b/docs/data-sources/logs_query_definition.md @@ -24,4 +24,5 @@ Data Source schema for AWS::Logs::QueryDefinition - `log_group_names` (List of String) Optionally define specific log groups as part of your query definition - `name` (String) A name for the saved query definition - `query_definition_id` (String) Unique identifier of a query definition +- `query_language` (String) Query language of the query string. Possible values are CWLI, SQL, PPL, with CWLI being the default. - `query_string` (String) The query string to use for this definition diff --git a/docs/data-sources/logs_subscription_filter.md b/docs/data-sources/logs_subscription_filter.md index 8d23cfe2a9..6e1b8e526e 100644 --- a/docs/data-sources/logs_subscription_filter.md +++ b/docs/data-sources/logs_subscription_filter.md @@ -21,6 +21,7 @@ Data Source schema for AWS::Logs::SubscriptionFilter ### Read-Only +- `apply_on_transformed_logs` (Boolean) - `destination_arn` (String) The Amazon Resource Name (ARN) of the destination. - `distribution` (String) The method used to distribute log data to the destination, which can be either random or grouped by log stream. - `filter_name` (String) The name of the subscription filter. diff --git a/docs/data-sources/m2_environment.md b/docs/data-sources/m2_environment.md index 178c50b96d..5de0190fc2 100644 --- a/docs/data-sources/m2_environment.md +++ b/docs/data-sources/m2_environment.md @@ -30,6 +30,7 @@ Data Source schema for AWS::M2::Environment - `instance_type` (String) The type of instance underlying the environment. - `kms_key_id` (String) The ID or the Amazon Resource Name (ARN) of the customer managed KMS Key used for encrypting environment-related resources. - `name` (String) The name of the environment. +- `network_type` (String) - `preferred_maintenance_window` (String) Configures a desired maintenance window for the environment. If you do not provide a value, a random system-generated value will be assigned. - `publicly_accessible` (Boolean) Specifies whether the environment is publicly accessible. - `security_group_ids` (List of String) The list of security groups for the VPC associated with this environment. diff --git a/docs/data-sources/networkmanager_direct_connect_gateway_attachment.md b/docs/data-sources/networkmanager_direct_connect_gateway_attachment.md new file mode 100644 index 0000000000..30e2c15411 --- /dev/null +++ b/docs/data-sources/networkmanager_direct_connect_gateway_attachment.md @@ -0,0 +1,86 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_networkmanager_direct_connect_gateway_attachment Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::NetworkManager::DirectConnectGatewayAttachment +--- + +# awscc_networkmanager_direct_connect_gateway_attachment (Data Source) + +Data Source schema for AWS::NetworkManager::DirectConnectGatewayAttachment + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `attachment_id` (String) Id of the attachment. +- `attachment_policy_rule_number` (Number) The policy rule number associated with the attachment. +- `attachment_type` (String) Attachment type. +- `core_network_arn` (String) The ARN of a core network for the Direct Connect Gateway attachment. +- `core_network_id` (String) The ID of a core network for the Direct Connect Gateway attachment. +- `created_at` (String) Creation time of the attachment. +- `direct_connect_gateway_arn` (String) The ARN of the Direct Connect Gateway. +- `edge_locations` (List of String) The Regions where the edges are located. +- `network_function_group_name` (String) The name of the network function group attachment. +- `owner_account_id` (String) Owner account of the attachment. +- `proposed_network_function_group_change` (Attributes) The attachment to move from one network function group to another. (see [below for nested schema](#nestedatt--proposed_network_function_group_change)) +- `proposed_segment_change` (Attributes) The attachment to move from one segment to another. (see [below for nested schema](#nestedatt--proposed_segment_change)) +- `resource_arn` (String) The ARN of the Resource. +- `segment_name` (String) The name of the segment attachment.. +- `state` (String) State of the attachment. +- `tags` (Attributes Set) Tags for the attachment. (see [below for nested schema](#nestedatt--tags)) +- `updated_at` (String) Last update time of the attachment. + + +### Nested Schema for `proposed_network_function_group_change` + +Read-Only: + +- `attachment_policy_rule_number` (Number) The rule number in the policy document that applies to this change. +- `network_function_group_name` (String) The name of the network function group to change. +- `tags` (Attributes Set) The key-value tags that changed for the network function group. (see [below for nested schema](#nestedatt--proposed_network_function_group_change--tags)) + + +### Nested Schema for `proposed_network_function_group_change.tags` + +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 `proposed_segment_change` + +Read-Only: + +- `attachment_policy_rule_number` (Number) The rule number in the policy document that applies to this change. +- `segment_name` (String) The name of the segment to change. +- `tags` (Attributes Set) The key-value tags that changed for the segment. (see [below for nested schema](#nestedatt--proposed_segment_change--tags)) + + +### Nested Schema for `proposed_segment_change.tags` + +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 `tags` + +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 -. diff --git a/docs/data-sources/networkmanager_direct_connect_gateway_attachments.md b/docs/data-sources/networkmanager_direct_connect_gateway_attachments.md new file mode 100644 index 0000000000..841b0168f5 --- /dev/null +++ b/docs/data-sources/networkmanager_direct_connect_gateway_attachments.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_networkmanager_direct_connect_gateway_attachments Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::NetworkManager::DirectConnectGatewayAttachment +--- + +# awscc_networkmanager_direct_connect_gateway_attachments (Data Source) + +Plural Data Source schema for AWS::NetworkManager::DirectConnectGatewayAttachment + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/organizations_policy.md b/docs/data-sources/organizations_policy.md index 1aa06b778f..00c66ffec7 100644 --- a/docs/data-sources/organizations_policy.md +++ b/docs/data-sources/organizations_policy.md @@ -29,7 +29,7 @@ Data Source schema for AWS::Organizations::Policy - `policy_id` (String) Id of the Policy - `tags` (Attributes Set) A list of tags that you want to attach to the newly created policy. For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty string, but you can't set it to null. (see [below for nested schema](#nestedatt--tags)) - `target_ids` (Set of String) List of unique identifiers (IDs) of the root, OU, or account that you want to attach the policy to -- `type` (String) The type of policy to create. You can specify one of the following values: AISERVICES_OPT_OUT_POLICY, BACKUP_POLICY, SERVICE_CONTROL_POLICY, TAG_POLICY, CHATBOT_POLICY, RESOURCE_CONTROL_POLICY +- `type` (String) The type of policy to create. You can specify one of the following values: AISERVICES_OPT_OUT_POLICY, BACKUP_POLICY, SERVICE_CONTROL_POLICY, TAG_POLICY, CHATBOT_POLICY, RESOURCE_CONTROL_POLICY,DECLARATIVE_POLICY_EC2 ### Nested Schema for `tags` diff --git a/docs/data-sources/qbusiness_application.md b/docs/data-sources/qbusiness_application.md index 86575eb934..fe4f27ed20 100644 --- a/docs/data-sources/qbusiness_application.md +++ b/docs/data-sources/qbusiness_application.md @@ -36,6 +36,7 @@ Data Source schema for AWS::QBusiness::Application - `identity_type` (String) - `personalization_configuration` (Attributes) (see [below for nested schema](#nestedatt--personalization_configuration)) - `q_apps_configuration` (Attributes) (see [below for nested schema](#nestedatt--q_apps_configuration)) +- `quick_sight_configuration` (Attributes) (see [below for nested schema](#nestedatt--quick_sight_configuration)) - `role_arn` (String) - `status` (String) - `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) @@ -82,6 +83,14 @@ Read-Only: - `q_apps_control_mode` (String) + +### Nested Schema for `quick_sight_configuration` + +Read-Only: + +- `client_namespace` (String) + + ### Nested Schema for `tags` diff --git a/docs/data-sources/qbusiness_data_source.md b/docs/data-sources/qbusiness_data_source.md index 62a5243754..4a61dee3a9 100644 --- a/docs/data-sources/qbusiness_data_source.md +++ b/docs/data-sources/qbusiness_data_source.md @@ -30,6 +30,7 @@ Data Source schema for AWS::QBusiness::DataSource - `display_name` (String) - `document_enrichment_configuration` (Attributes) (see [below for nested schema](#nestedatt--document_enrichment_configuration)) - `index_id` (String) +- `media_extraction_configuration` (Attributes) (see [below for nested schema](#nestedatt--media_extraction_configuration)) - `role_arn` (String) - `status` (String) - `sync_schedule` (String) @@ -164,6 +165,22 @@ Read-Only: + +### Nested Schema for `media_extraction_configuration` + +Read-Only: + +- `image_extraction_configuration` (Attributes) (see [below for nested schema](#nestedatt--media_extraction_configuration--image_extraction_configuration)) + + +### Nested Schema for `media_extraction_configuration.image_extraction_configuration` + +Read-Only: + +- `image_extraction_status` (String) + + + ### Nested Schema for `tags` diff --git a/docs/data-sources/qbusiness_permission.md b/docs/data-sources/qbusiness_permission.md new file mode 100644 index 0000000000..3d929d7128 --- /dev/null +++ b/docs/data-sources/qbusiness_permission.md @@ -0,0 +1,27 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_qbusiness_permission Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::QBusiness::Permission +--- + +# awscc_qbusiness_permission (Data Source) + +Data Source schema for AWS::QBusiness::Permission + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `actions` (List of String) +- `application_id` (String) +- `principal` (String) +- `statement_id` (String) diff --git a/docs/data-sources/qbusiness_plugin.md b/docs/data-sources/qbusiness_plugin.md index 7b1368fabc..67890a31b7 100644 --- a/docs/data-sources/qbusiness_plugin.md +++ b/docs/data-sources/qbusiness_plugin.md @@ -58,8 +58,10 @@ Read-Only: Read-Only: +- `authorization_url` (String) - `role_arn` (String) - `secret_arn` (String) +- `token_url` (String) diff --git a/docs/data-sources/qbusiness_web_experience.md b/docs/data-sources/qbusiness_web_experience.md index 6d28d0cc97..daa81dc230 100644 --- a/docs/data-sources/qbusiness_web_experience.md +++ b/docs/data-sources/qbusiness_web_experience.md @@ -23,6 +23,7 @@ Data Source schema for AWS::QBusiness::WebExperience - `application_id` (String) - `created_at` (String) +- `customization_configuration` (Attributes) (see [below for nested schema](#nestedatt--customization_configuration)) - `default_endpoint` (String) - `identity_provider_configuration` (Attributes) (see [below for nested schema](#nestedatt--identity_provider_configuration)) - `origins` (List of String) @@ -37,6 +38,17 @@ Data Source schema for AWS::QBusiness::WebExperience - `web_experience_id` (String) - `welcome_message` (String) + +### Nested Schema for `customization_configuration` + +Read-Only: + +- `custom_css_url` (String) +- `favicon_url` (String) +- `font_url` (String) +- `logo_url` (String) + + ### Nested Schema for `identity_provider_configuration` diff --git a/docs/data-sources/ram_resource_share.md b/docs/data-sources/ram_resource_share.md new file mode 100644 index 0000000000..fc6da1317d --- /dev/null +++ b/docs/data-sources/ram_resource_share.md @@ -0,0 +1,49 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_ram_resource_share Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::RAM::ResourceShare +--- + +# awscc_ram_resource_share (Data Source) + +Data Source schema for AWS::RAM::ResourceShare + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `allow_external_principals` (Boolean) Specifies whether principals outside your organization in AWS Organizations can be associated with a resource share. A value of `true` lets you share with individual AWS accounts that are not in your organization. A value of `false` only has meaning if your account is a member of an AWS Organization. The default value is `true`. +- `arn` (String) +- `name` (String) Specifies the name of the resource share. +- `permission_arns` (List of String) Specifies the [Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the AWS RAM permission to associate with the resource share. If you do not specify an ARN for the permission, AWS RAM automatically attaches the default version of the permission for each resource type. You can associate only one permission with each resource type included in the resource share. +- `principals` (List of String) Specifies the principals to associate with the resource share. The possible values are: + +- An AWS account ID + +- An Amazon Resource Name (ARN) of an organization in AWS Organizations + +- An ARN of an organizational unit (OU) in AWS Organizations + +- An ARN of an IAM role + +- An ARN of an IAM user +- `resource_arns` (List of String) Specifies a list of one or more ARNs of the resources to associate with the resource share. +- `sources` (List of String) Specifies from which source accounts the service principal has access to the resources in this resource share. +- `tags` (Attributes Set) Specifies one or more tags to attach to the resource share itself. It doesn't attach the tags to the resources associated with the resource share. (see [below for nested schema](#nestedatt--tags)) + + +### Nested Schema for `tags` + +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 -. diff --git a/docs/data-sources/ram_resource_shares.md b/docs/data-sources/ram_resource_shares.md new file mode 100644 index 0000000000..07643b652c --- /dev/null +++ b/docs/data-sources/ram_resource_shares.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_ram_resource_shares Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::RAM::ResourceShare +--- + +# awscc_ram_resource_shares (Data Source) + +Plural Data Source schema for AWS::RAM::ResourceShare + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/rds_custom_db_engine_version.md b/docs/data-sources/rds_custom_db_engine_version.md index 4ab474b7cf..4575331be8 100644 --- a/docs/data-sources/rds_custom_db_engine_version.md +++ b/docs/data-sources/rds_custom_db_engine_version.md @@ -21,24 +21,34 @@ Data Source schema for AWS::RDS::CustomDBEngineVersion ### Read-Only -- `database_installation_files_s3_bucket_name` (String) The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is `my-custom-installation-files`. -- `database_installation_files_s3_prefix` (String) The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is `123456789012/cev1`. If this setting isn't specified, no prefix is assumed. -- `db_engine_version_arn` (String) The ARN of the custom engine version. +- `database_installation_files_s3_bucket_name` (String) The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is ``my-custom-installation-files``. +- `database_installation_files_s3_prefix` (String) The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is ``123456789012/cev1``. If this setting isn't specified, no prefix is assumed. +- `db_engine_version_arn` (String) - `description` (String) An optional description of your CEV. -- `engine` (String) The database engine to use for your custom engine version (CEV). The only supported value is `custom-oracle-ee`. -- `engine_version` (String) The name of your CEV. The name format is 19.customized_string . For example, a valid name is 19.my_cev1. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Region. -- `image_id` (String) The identifier of Amazon Machine Image (AMI) used for CEV. -- `kms_key_id` (String) The AWS KMS key identifier for an encrypted CEV. A symmetric KMS key is required for RDS Custom, but optional for Amazon RDS. +- `engine` (String) The database engine to use for your custom engine version (CEV). + Valid values: + + ``custom-oracle-ee`` + + ``custom-oracle-ee-cdb`` +- `engine_version` (String) The name of your CEV. The name format is ``major version.customized_string``. For example, a valid CEV name is ``19.my_cev1``. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of ``Engine`` and ``EngineVersion`` is unique per customer per Region. + *Constraints:* Minimum length is 1. Maximum length is 60. + *Pattern:* ``^[a-z0-9_.-]{1,60$``} +- `image_id` (String) A value that indicates the ID of the AMI. +- `kms_key_id` (String) The AWS KMS key identifier for an encrypted CEV. A symmetric encryption KMS key is required for RDS Custom, but optional for Amazon RDS. + If you have an existing symmetric encryption KMS key in your account, you can use it with RDS Custom. No further action is necessary. If you don't already have a symmetric encryption KMS key in your account, follow the instructions in [Creating a symmetric encryption KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) in the *Key Management Service Developer Guide*. + You can choose the same symmetric encryption key when you create a CEV and a DB instance, or choose different keys. - `manifest` (String) The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed. -- `source_custom_db_engine_version_identifier` (String) The identifier of the source custom engine version. -- `status` (String) The availability status to be assigned to the CEV. -- `tags` (Attributes List) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) -- `use_aws_provided_latest_image` (Boolean) A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create. + The following JSON fields are valid: + + MediaImportTemplateVersion Version of the CEV manifest. The date is in the format YYYY-MM-DD. + databaseInstallationFileNames Ordered list of installation files for the CEV. + opatchFileNames Ordered list of OPatch installers used for the Oracle DB engine. + psuRuPatchFileNames The PSU and RU patches for this CEV. + OtherPatchFileNames The patches that are not in the list of PSU and RU patches. Amazon RDS applies these patches after applying the PSU and RU patches. + For more information, see [Creating the CEV manifest](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev.html#custom-cev.preparing.manifest) in the *Amazon RDS User Guide*. +- `source_custom_db_engine_version_identifier` (String) The ARN of a CEV to use as a source for creating a new CEV. You can specify a different Amazon Machine Imagine (AMI) by using either ``Source`` or ``UseAwsProvidedLatestImage``. You can't specify a different JSON manifest when you specify ``SourceCustomDbEngineVersionIdentifier``. +- `status` (String) A value that indicates the status of a custom engine version (CEV). +- `tags` (Attributes List) A list of tags. 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.* (see [below for nested schema](#nestedatt--tags)) +- `use_aws_provided_latest_image` (Boolean) Specifies whether to use the latest service-provided Amazon Machine Image (AMI) for the CEV. If you specify ``UseAwsProvidedLatestImage``, you can't also specify ``ImageId``. ### Nested Schema for `tags` 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 -. +- `key` (String) A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"). +- `value` (String) A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"). diff --git a/docs/data-sources/rds_db_cluster.md b/docs/data-sources/rds_db_cluster.md index 4add00998b..ca9476fbca 100644 --- a/docs/data-sources/rds_db_cluster.md +++ b/docs/data-sources/rds_db_cluster.md @@ -41,7 +41,7 @@ Data Source schema for AWS::RDS::DBCluster + Must be a value from 1 to 35 Valid for: Aurora DB clusters and Multi-AZ DB clusters -- `cluster_scalability_type` (String) +- `cluster_scalability_type` (String) Specifies the scalability mode of the Aurora DB cluster. When set to ``limitless``, the cluster operates as an Aurora Limitless Database, allowing you to create a DB shard group for horizontal scaling (sharding) capabilities. When set to ``standard`` (the default), the cluster uses normal DB instance creation. - `copy_tags_to_snapshot` (Boolean) A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them. Valid for: Aurora DB clusters and Multi-AZ DB clusters - `database_name` (String) The name of your database. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For naming constraints, see [Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon Aurora User Guide*. @@ -119,7 +119,7 @@ Data Source schema for AWS::RDS::DBCluster - `engine_lifecycle_support` (String) The life cycle type for this DB cluster. By default, this value is set to ``open-source-rds-extended-support``, which enrolls your DB cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to ``open-source-rds-extended-support-disabled``. In this case, creating the DB cluster will fail if the DB major version is past its end of standard support date. You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections: - + Amazon Aurora (PostgreSQL only) - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) in the *Amazon Aurora User Guide* + + Amazon Aurora - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) in the *Amazon Aurora User Guide* + Amazon RDS - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) in the *Amazon RDS User Guide* Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters @@ -402,7 +402,8 @@ Read-Only: - `max_capacity` (Number) The maximum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 40, 40.5, 41, and so on. The largest value that you can use is 128. The maximum capacity must be higher than 0.5 ACUs. For more information, see [Choosing the maximum Aurora Serverless v2 capacity setting for a cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.setting-capacity.html#aurora-serverless-v2.max_capacity_considerations) in the *Amazon Aurora User Guide*. Aurora automatically sets certain parameters for Aurora Serverless V2 DB instances to values that depend on the maximum ACU value in the capacity range. When you update the maximum capacity value, the ``ParameterApplyStatus`` value for the DB instance changes to ``pending-reboot``. You can update the parameter values by rebooting the DB instance after changing the capacity range. -- `min_capacity` (Number) The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. The smallest value that you can use is 0.5. +- `min_capacity` (Number) The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. For Aurora versions that support the Aurora Serverless v2 auto-pause feature, the smallest value that you can use is 0. For versions that don't support Aurora Serverless v2 auto-pause, the smallest value that you can use is 0.5. +- `seconds_until_auto_pause` (Number) diff --git a/docs/data-sources/redshiftserverless_workgroup.md b/docs/data-sources/redshiftserverless_workgroup.md index 099f11ef6d..f80c366a97 100644 --- a/docs/data-sources/redshiftserverless_workgroup.md +++ b/docs/data-sources/redshiftserverless_workgroup.md @@ -27,6 +27,7 @@ Data Source schema for AWS::RedshiftServerless::Workgroup - `max_capacity` (Number) The max compute capacity of the workgroup in Redshift Processing Units (RPUs). - `namespace_name` (String) The namespace the workgroup is associated with. - `port` (Number) The custom port to use when connecting to a workgroup. Valid port ranges are 5431-5455 and 8191-8215. The default is 5439. +- `price_performance_target` (Attributes) A property that represents the price performance target settings for the workgroup. (see [below for nested schema](#nestedatt--price_performance_target)) - `publicly_accessible` (Boolean) A value that specifies whether the workgroup can be accessible from a public network. - `security_group_ids` (List of String) A list of security group IDs to associate with the workgroup. - `subnet_ids` (List of String) A list of subnet IDs the workgroup is associated with. @@ -43,6 +44,15 @@ Read-Only: - `parameter_value` (String) + +### Nested Schema for `price_performance_target` + +Read-Only: + +- `level` (Number) +- `status` (String) + + ### Nested Schema for `tags` @@ -64,6 +74,7 @@ Read-Only: - `enhanced_vpc_routing` (Boolean) - `max_capacity` (Number) - `namespace_name` (String) +- `price_performance_target` (Attributes) (see [below for nested schema](#nestedatt--workgroup--price_performance_target)) - `publicly_accessible` (Boolean) - `security_group_ids` (List of String) - `status` (String) @@ -108,3 +119,14 @@ Read-Only: - `network_interface_id` (String) - `private_ip_address` (String) - `subnet_id` (String) + + + + + +### Nested Schema for `workgroup.price_performance_target` + +Read-Only: + +- `level` (Number) +- `status` (String) diff --git a/docs/data-sources/s3express_directory_bucket.md b/docs/data-sources/s3express_directory_bucket.md index 7a5f27cba9..e015201475 100644 --- a/docs/data-sources/s3express_directory_bucket.md +++ b/docs/data-sources/s3express_directory_bucket.md @@ -22,12 +22,12 @@ Data Source schema for AWS::S3Express::DirectoryBucket ### Read-Only - `arn` (String) Returns the Amazon Resource Name (ARN) of the specified bucket. -- `availability_zone_name` (String) Returns the code for the Availability Zone where the directory bucket was created. +- `availability_zone_name` (String) Returns the code for the Availability Zone or Local Zone where the directory bucket was created. An example for the code of an Availability Zone is 'us-east-1f'. - `bucket_encryption` (Attributes) Specifies default encryption for a bucket using server-side encryption with Amazon S3 managed keys (SSE-S3) or AWS KMS keys (SSE-KMS). (see [below for nested schema](#nestedatt--bucket_encryption)) -- `bucket_name` (String) Specifies a name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone. The bucket name must also follow the format 'bucket_base_name--az_id--x-s3' (for example, 'DOC-EXAMPLE-BUCKET--usw2-az1--x-s3'). If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name. -- `data_redundancy` (String) Specifies the number of Availability Zone that's used for redundancy for the bucket. +- `bucket_name` (String) Specifies a name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone or Local Zone. The bucket name must also follow the format 'bucket_base_name--zone_id--x-s3'. The zone_id can be the ID of an Availability Zone or a Local Zone. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name. +- `data_redundancy` (String) Specifies the number of Availability Zone or Local Zone that's used for redundancy for the bucket. - `lifecycle_configuration` (Attributes) Lifecycle rules that define how Amazon S3 Express manages objects during their lifetime. (see [below for nested schema](#nestedatt--lifecycle_configuration)) -- `location_name` (String) Specifies the AZ ID of the Availability Zone where the directory bucket will be created. An example AZ ID value is 'use1-az5'. +- `location_name` (String) Specifies the Zone ID of the Availability Zone or Local Zone where the directory bucket will be created. An example Availability Zone ID value is 'use1-az5'. ### Nested Schema for `bucket_encryption` diff --git a/docs/data-sources/s3tables_table_bucket.md b/docs/data-sources/s3tables_table_bucket.md new file mode 100644 index 0000000000..58b9f766de --- /dev/null +++ b/docs/data-sources/s3tables_table_bucket.md @@ -0,0 +1,35 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_s3tables_table_bucket Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::S3Tables::TableBucket +--- + +# awscc_s3tables_table_bucket (Data Source) + +Data Source schema for AWS::S3Tables::TableBucket + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `table_bucket_arn` (String) The Amazon Resource Name (ARN) of the specified table bucket. +- `table_bucket_name` (String) A name for the table bucket. +- `unreferenced_file_removal` (Attributes) Settings governing the Unreferenced File Removal maintenance action. Unreferenced file removal identifies and deletes all objects that are not referenced by any table snapshots. (see [below for nested schema](#nestedatt--unreferenced_file_removal)) + + +### Nested Schema for `unreferenced_file_removal` + +Read-Only: + +- `noncurrent_days` (Number) S3 permanently deletes noncurrent objects after the number of days specified by the NoncurrentDays property. +- `status` (String) Indicates whether the Unreferenced File Removal maintenance action is enabled. +- `unreferenced_days` (Number) For any object not referenced by your table and older than the UnreferencedDays property, S3 creates a delete marker and marks the object version as noncurrent. diff --git a/docs/data-sources/s3tables_table_bucket_policies.md b/docs/data-sources/s3tables_table_bucket_policies.md new file mode 100644 index 0000000000..c48240e43a --- /dev/null +++ b/docs/data-sources/s3tables_table_bucket_policies.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_s3tables_table_bucket_policies Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::S3Tables::TableBucketPolicy +--- + +# awscc_s3tables_table_bucket_policies (Data Source) + +Plural Data Source schema for AWS::S3Tables::TableBucketPolicy + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/s3tables_table_bucket_policy.md b/docs/data-sources/s3tables_table_bucket_policy.md new file mode 100644 index 0000000000..0516ef5805 --- /dev/null +++ b/docs/data-sources/s3tables_table_bucket_policy.md @@ -0,0 +1,25 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_s3tables_table_bucket_policy Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::S3Tables::TableBucketPolicy +--- + +# awscc_s3tables_table_bucket_policy (Data Source) + +Data Source schema for AWS::S3Tables::TableBucketPolicy + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `resource_policy` (String) A policy document containing permissions to add to the specified table bucket. In IAM, you must provide policy documents in JSON format. However, in CloudFormation you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to IAM. +- `table_bucket_arn` (String) The Amazon Resource Name (ARN) of the table bucket to which the policy applies. diff --git a/docs/data-sources/s3tables_table_buckets.md b/docs/data-sources/s3tables_table_buckets.md new file mode 100644 index 0000000000..4875a82baa --- /dev/null +++ b/docs/data-sources/s3tables_table_buckets.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_s3tables_table_buckets Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::S3Tables::TableBucket +--- + +# awscc_s3tables_table_buckets (Data Source) + +Plural Data Source schema for AWS::S3Tables::TableBucket + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/transfer_server.md b/docs/data-sources/transfer_server.md index 419af24720..240452edeb 100644 --- a/docs/data-sources/transfer_server.md +++ b/docs/data-sources/transfer_server.md @@ -37,6 +37,7 @@ Data Source schema for AWS::Transfer::Server - `s3_storage_options` (Attributes) (see [below for nested schema](#nestedatt--s3_storage_options)) - `security_policy_name` (String) - `server_id` (String) +- `state` (String) - `structured_log_destinations` (List of String) - `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) - `workflow_details` (Attributes) (see [below for nested schema](#nestedatt--workflow_details)) diff --git a/docs/data-sources/vpclattice_resource_configuration.md b/docs/data-sources/vpclattice_resource_configuration.md new file mode 100644 index 0000000000..f382e30a49 --- /dev/null +++ b/docs/data-sources/vpclattice_resource_configuration.md @@ -0,0 +1,62 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_vpclattice_resource_configuration Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::VpcLattice::ResourceConfiguration +--- + +# awscc_vpclattice_resource_configuration (Data Source) + +Data Source schema for AWS::VpcLattice::ResourceConfiguration + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `allow_association_to_sharable_service_network` (Boolean) +- `arn` (String) +- `name` (String) +- `port_ranges` (List of String) +- `protocol_type` (String) +- `resource_configuration_auth_type` (String) +- `resource_configuration_definition` (Attributes) (see [below for nested schema](#nestedatt--resource_configuration_definition)) +- `resource_configuration_group_id` (String) +- `resource_configuration_id` (String) +- `resource_configuration_type` (String) +- `resource_gateway_id` (String) +- `tags` (Attributes Set) (see [below for nested schema](#nestedatt--tags)) + + +### Nested Schema for `resource_configuration_definition` + +Read-Only: + +- `arn_resource` (String) +- `dns_resource` (Attributes) (see [below for nested schema](#nestedatt--resource_configuration_definition--dns_resource)) +- `ip_resource` (String) + + +### Nested Schema for `resource_configuration_definition.dns_resource` + +Read-Only: + +- `domain_name` (String) +- `ip_address_type` (String) + + + + +### Nested Schema for `tags` + +Read-Only: + +- `key` (String) +- `value` (String) diff --git a/docs/data-sources/vpclattice_resource_configurations.md b/docs/data-sources/vpclattice_resource_configurations.md new file mode 100644 index 0000000000..81cb87dc8e --- /dev/null +++ b/docs/data-sources/vpclattice_resource_configurations.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_vpclattice_resource_configurations Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::VpcLattice::ResourceConfiguration +--- + +# awscc_vpclattice_resource_configurations (Data Source) + +Plural Data Source schema for AWS::VpcLattice::ResourceConfiguration + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/vpclattice_resource_gateway.md b/docs/data-sources/vpclattice_resource_gateway.md new file mode 100644 index 0000000000..d712143e8d --- /dev/null +++ b/docs/data-sources/vpclattice_resource_gateway.md @@ -0,0 +1,39 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_vpclattice_resource_gateway Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::VpcLattice::ResourceGateway +--- + +# awscc_vpclattice_resource_gateway (Data Source) + +Data Source schema for AWS::VpcLattice::ResourceGateway + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `arn` (String) +- `ip_address_type` (String) +- `name` (String) +- `resource_gateway_id` (String) +- `security_group_ids` (Set of String) The ID of one or more security groups to associate with the endpoint network interface. +- `subnet_ids` (Set of String) The ID of one or more subnets in which to create an endpoint network interface. +- `tags` (Attributes Set) (see [below for nested schema](#nestedatt--tags)) +- `vpc_identifier` (String) + + +### Nested Schema for `tags` + +Read-Only: + +- `key` (String) +- `value` (String) diff --git a/docs/data-sources/vpclattice_resource_gateways.md b/docs/data-sources/vpclattice_resource_gateways.md new file mode 100644 index 0000000000..f49991120e --- /dev/null +++ b/docs/data-sources/vpclattice_resource_gateways.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_vpclattice_resource_gateways Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::VpcLattice::ResourceGateway +--- + +# awscc_vpclattice_resource_gateways (Data Source) + +Plural Data Source schema for AWS::VpcLattice::ResourceGateway + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/vpclattice_service_network_resource_association.md b/docs/data-sources/vpclattice_service_network_resource_association.md new file mode 100644 index 0000000000..d8187b7dfe --- /dev/null +++ b/docs/data-sources/vpclattice_service_network_resource_association.md @@ -0,0 +1,36 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_vpclattice_service_network_resource_association Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::VpcLattice::ServiceNetworkResourceAssociation +--- + +# awscc_vpclattice_service_network_resource_association (Data Source) + +Data Source schema for AWS::VpcLattice::ServiceNetworkResourceAssociation + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `arn` (String) +- `resource_configuration_id` (String) +- `service_network_id` (String) +- `service_network_resource_association_id` (String) +- `tags` (Attributes Set) (see [below for nested schema](#nestedatt--tags)) + + +### Nested Schema for `tags` + +Read-Only: + +- `key` (String) +- `value` (String) diff --git a/docs/data-sources/vpclattice_service_network_resource_associations.md b/docs/data-sources/vpclattice_service_network_resource_associations.md new file mode 100644 index 0000000000..c06fd8896e --- /dev/null +++ b/docs/data-sources/vpclattice_service_network_resource_associations.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_vpclattice_service_network_resource_associations Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::VpcLattice::ServiceNetworkResourceAssociation +--- + +# awscc_vpclattice_service_network_resource_associations (Data Source) + +Plural Data Source schema for AWS::VpcLattice::ServiceNetworkResourceAssociation + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/wisdom_ai_agent.md b/docs/data-sources/wisdom_ai_agent.md index 46c205178c..a26fcacbcd 100644 --- a/docs/data-sources/wisdom_ai_agent.md +++ b/docs/data-sources/wisdom_ai_agent.md @@ -38,12 +38,14 @@ Read-Only: - `answer_recommendation_ai_agent_configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration--answer_recommendation_ai_agent_configuration)) - `manual_search_ai_agent_configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration--manual_search_ai_agent_configuration)) +- `self_service_ai_agent_configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration--self_service_ai_agent_configuration)) ### Nested Schema for `configuration.answer_recommendation_ai_agent_configuration` Read-Only: +- `answer_generation_ai_guardrail_id` (String) - `answer_generation_ai_prompt_id` (String) - `association_configurations` (Attributes List) (see [below for nested schema](#nestedatt--configuration--answer_recommendation_ai_agent_configuration--association_configurations)) - `intent_labeling_generation_ai_prompt_id` (String) @@ -138,6 +140,7 @@ Read-Only: Read-Only: +- `answer_generation_ai_guardrail_id` (String) - `answer_generation_ai_prompt_id` (String) - `association_configurations` (Attributes List) (see [below for nested schema](#nestedatt--configuration--manual_search_ai_agent_configuration--association_configurations)) @@ -218,3 +221,97 @@ Read-Only: - `key` (String) - `value` (String) + + + + + + + + +### Nested Schema for `configuration.self_service_ai_agent_configuration` + +Read-Only: + +- `association_configurations` (Attributes List) (see [below for nested schema](#nestedatt--configuration--self_service_ai_agent_configuration--association_configurations)) +- `self_service_ai_guardrail_id` (String) +- `self_service_answer_generation_ai_prompt_id` (String) +- `self_service_pre_processing_ai_prompt_id` (String) + + +### Nested Schema for `configuration.self_service_ai_agent_configuration.association_configurations` + +Read-Only: + +- `association_configuration_data` (Attributes) (see [below for nested schema](#nestedatt--configuration--self_service_ai_agent_configuration--association_configurations--association_configuration_data)) +- `association_id` (String) +- `association_type` (String) + + +### Nested Schema for `configuration.self_service_ai_agent_configuration.association_configurations.association_configuration_data` + +Read-Only: + +- `knowledge_base_association_configuration_data` (Attributes) (see [below for nested schema](#nestedatt--configuration--self_service_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data)) + + +### Nested Schema for `configuration.self_service_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data` + +Read-Only: + +- `content_tag_filter` (Attributes) (see [below for nested schema](#nestedatt--configuration--self_service_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter)) +- `max_results` (Number) +- `override_knowledge_base_search_type` (String) + + +### Nested Schema for `configuration.self_service_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter` + +Read-Only: + +- `and_conditions` (Attributes List) (see [below for nested schema](#nestedatt--configuration--self_service_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--and_conditions)) +- `or_conditions` (Attributes List) (see [below for nested schema](#nestedatt--configuration--self_service_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--or_conditions)) +- `tag_condition` (Attributes) (see [below for nested schema](#nestedatt--configuration--self_service_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--tag_condition)) + + +### Nested Schema for `configuration.self_service_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.and_conditions` + +Read-Only: + +- `key` (String) +- `value` (String) + + + +### Nested Schema for `configuration.self_service_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.or_conditions` + +Read-Only: + +- `and_conditions` (Attributes List) (see [below for nested schema](#nestedatt--configuration--self_service_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--or_conditions--and_conditions)) +- `tag_condition` (Attributes) (see [below for nested schema](#nestedatt--configuration--self_service_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--or_conditions--tag_condition)) + + +### Nested Schema for `configuration.self_service_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.or_conditions.and_conditions` + +Read-Only: + +- `key` (String) +- `value` (String) + + + +### Nested Schema for `configuration.self_service_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.or_conditions.tag_condition` + +Read-Only: + +- `key` (String) +- `value` (String) + + + + +### Nested Schema for `configuration.self_service_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.tag_condition` + +Read-Only: + +- `key` (String) +- `value` (String) diff --git a/docs/data-sources/wisdom_ai_guardrail.md b/docs/data-sources/wisdom_ai_guardrail.md new file mode 100644 index 0000000000..2e31b9ec98 --- /dev/null +++ b/docs/data-sources/wisdom_ai_guardrail.md @@ -0,0 +1,143 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_wisdom_ai_guardrail Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Wisdom::AIGuardrail +--- + +# awscc_wisdom_ai_guardrail (Data Source) + +Data Source schema for AWS::Wisdom::AIGuardrail + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `ai_guardrail_arn` (String) +- `ai_guardrail_id` (String) +- `assistant_arn` (String) +- `assistant_id` (String) +- `blocked_input_messaging` (String) Messaging for when violations are detected in text +- `blocked_outputs_messaging` (String) Messaging for when violations are detected in text +- `content_policy_config` (Attributes) Content policy config for a guardrail. (see [below for nested schema](#nestedatt--content_policy_config)) +- `contextual_grounding_policy_config` (Attributes) Contextual grounding policy config for a guardrail. (see [below for nested schema](#nestedatt--contextual_grounding_policy_config)) +- `description` (String) Description of the guardrail or its version +- `name` (String) +- `sensitive_information_policy_config` (Attributes) Sensitive information policy config for a guardrail. (see [below for nested schema](#nestedatt--sensitive_information_policy_config)) +- `tags` (Map of String) +- `topic_policy_config` (Attributes) Topic policy config for a guardrail. (see [below for nested schema](#nestedatt--topic_policy_config)) +- `word_policy_config` (Attributes) Word policy config for a guardrail. (see [below for nested schema](#nestedatt--word_policy_config)) + + +### Nested Schema for `content_policy_config` + +Read-Only: + +- `filters_config` (Attributes List) List of content filter configs in content policy. (see [below for nested schema](#nestedatt--content_policy_config--filters_config)) + + +### Nested Schema for `content_policy_config.filters_config` + +Read-Only: + +- `input_strength` (String) Strength for filters +- `output_strength` (String) Strength for filters +- `type` (String) Type of text to text filter in content policy + + + + +### Nested Schema for `contextual_grounding_policy_config` + +Read-Only: + +- `filters_config` (Attributes List) List of contextual grounding filter configs. (see [below for nested schema](#nestedatt--contextual_grounding_policy_config--filters_config)) + + +### Nested Schema for `contextual_grounding_policy_config.filters_config` + +Read-Only: + +- `threshold` (Number) The threshold for this filter. +- `type` (String) Type of contextual grounding filter + + + + +### Nested Schema for `sensitive_information_policy_config` + +Read-Only: + +- `pii_entities_config` (Attributes List) List of entities. (see [below for nested schema](#nestedatt--sensitive_information_policy_config--pii_entities_config)) +- `regexes_config` (Attributes List) List of regex. (see [below for nested schema](#nestedatt--sensitive_information_policy_config--regexes_config)) + + +### Nested Schema for `sensitive_information_policy_config.pii_entities_config` + +Read-Only: + +- `action` (String) Options for sensitive information action. +- `type` (String) The currently supported PII entities + + + +### Nested Schema for `sensitive_information_policy_config.regexes_config` + +Read-Only: + +- `action` (String) Options for sensitive information action. +- `description` (String) The regex description. +- `name` (String) The regex name. +- `pattern` (String) The regex pattern. + + + + +### Nested Schema for `topic_policy_config` + +Read-Only: + +- `topics_config` (Attributes List) List of topic configs in topic policy. (see [below for nested schema](#nestedatt--topic_policy_config--topics_config)) + + +### Nested Schema for `topic_policy_config.topics_config` + +Read-Only: + +- `definition` (String) Definition of topic in topic policy +- `examples` (List of String) List of text examples +- `name` (String) Name of topic in topic policy +- `type` (String) Type of topic in a policy + + + + +### Nested Schema for `word_policy_config` + +Read-Only: + +- `managed_word_lists_config` (Attributes List) A config for the list of managed words. (see [below for nested schema](#nestedatt--word_policy_config--managed_word_lists_config)) +- `words_config` (Attributes List) List of custom word configs. (see [below for nested schema](#nestedatt--word_policy_config--words_config)) + + +### Nested Schema for `word_policy_config.managed_word_lists_config` + +Read-Only: + +- `type` (String) Options for managed words. + + + +### Nested Schema for `word_policy_config.words_config` + +Read-Only: + +- `text` (String) The custom word text. diff --git a/docs/data-sources/wisdom_ai_guardrail_version.md b/docs/data-sources/wisdom_ai_guardrail_version.md new file mode 100644 index 0000000000..f1386ae85b --- /dev/null +++ b/docs/data-sources/wisdom_ai_guardrail_version.md @@ -0,0 +1,30 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_wisdom_ai_guardrail_version Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Wisdom::AIGuardrailVersion +--- + +# awscc_wisdom_ai_guardrail_version (Data Source) + +Data Source schema for AWS::Wisdom::AIGuardrailVersion + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `ai_guardrail_arn` (String) +- `ai_guardrail_id` (String) +- `ai_guardrail_version_id` (String) +- `assistant_arn` (String) +- `assistant_id` (String) +- `modified_time_seconds` (Number) +- `version_number` (Number) diff --git a/docs/resources/amazonmq_configuration.md b/docs/resources/amazonmq_configuration.md index 4d5db4cbb0..ba408e3281 100644 --- a/docs/resources/amazonmq_configuration.md +++ b/docs/resources/amazonmq_configuration.md @@ -17,13 +17,13 @@ Resource Type definition for AWS::AmazonMQ::Configuration ### Required -- `data` (String) The base64-encoded XML configuration. - `engine_type` (String) The type of broker engine. Note: Currently, Amazon MQ only supports ACTIVEMQ for creating and editing broker configurations. - `name` (String) The name of the configuration. ### Optional - `authentication_strategy` (String) The authentication strategy associated with the configuration. The default is SIMPLE. +- `data` (String) The base64-encoded XML configuration. - `description` (String) The description of the configuration. - `engine_version` (String) The version of the broker engine. - `tags` (Attributes List) Create tags when creating the configuration. (see [below for nested schema](#nestedatt--tags)) diff --git a/docs/resources/appconfig_configuration_profile.md b/docs/resources/appconfig_configuration_profile.md index 2764bbaf92..4d702d7555 100644 --- a/docs/resources/appconfig_configuration_profile.md +++ b/docs/resources/appconfig_configuration_profile.md @@ -23,6 +23,7 @@ An example resource schema demonstrating some basic constructs and validation ru ### Optional +- `deletion_protection_check` (String) On resource deletion this controls whether the Deletion Protection check should be applied, bypassed, or (the default) whether the behavior should be controlled by the account-level Deletion Protection setting. See https://docs.aws.amazon.com/appconfig/latest/userguide/deletion-protection.html - `description` (String) A description of the configuration profile. - `kms_key_identifier` (String) The AWS Key Management Service key identifier (key ID, key alias, or key ARN) provided when the resource was created or updated. - `retrieval_role_arn` (String) The ARN of an IAM role with permission to access the configuration at the specified LocationUri. diff --git a/docs/resources/appconfig_environment.md b/docs/resources/appconfig_environment.md index 6fc0a4aaba..89c34028ee 100644 --- a/docs/resources/appconfig_environment.md +++ b/docs/resources/appconfig_environment.md @@ -35,6 +35,7 @@ resource "awscc_appconfig_environment" "example" { ### Optional +- `deletion_protection_check` (String) On resource deletion this controls whether the Deletion Protection check should be applied, bypassed, or (the default) whether the behavior should be controlled by the account-level Deletion Protection setting. See https://docs.aws.amazon.com/appconfig/latest/userguide/deletion-protection.html - `description` (String) A description of the environment. - `monitors` (Attributes List) Amazon CloudWatch alarms to monitor during the deployment process. (see [below for nested schema](#nestedatt--monitors)) - `tags` (Attributes Set) Metadata to assign to the environment. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define. (see [below for nested schema](#nestedatt--tags)) diff --git a/docs/resources/applicationautoscaling_scaling_policy.md b/docs/resources/applicationautoscaling_scaling_policy.md index c68b7954da..3504428d9e 100644 --- a/docs/resources/applicationautoscaling_scaling_policy.md +++ b/docs/resources/applicationautoscaling_scaling_policy.md @@ -28,7 +28,7 @@ The ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource defines a scaling po ### Optional -- `predictive_scaling_policy_configuration` (Attributes) (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration)) +- `predictive_scaling_policy_configuration` (Attributes) The predictive scaling policy configuration. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration)) - `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``. @@ -89,58 +89,66 @@ The ``AWS::ApplicationAutoScaling::ScalingPolicy`` resource defines a scaling po Optional: -- `max_capacity_breach_behavior` (String) -- `max_capacity_buffer` (Number) -- `metric_specifications` (Attributes Set) (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications)) -- `mode` (String) -- `scheduling_buffer_time` (Number) +- `max_capacity_breach_behavior` (String) Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity. Defaults to ``HonorMaxCapacity`` if not specified. +- `max_capacity_buffer` (Number) The size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity. The value is specified as a percentage relative to the forecast capacity. For example, if the buffer is 10, this means a 10 percent buffer, such that if the forecast capacity is 50, and the maximum capacity is 40, then the effective maximum capacity is 55. + Required if the ``MaxCapacityBreachBehavior`` property is set to ``IncreaseMaxCapacity``, and cannot be used otherwise. +- `metric_specifications` (Attributes Set) This structure includes the metrics and target utilization to use for predictive scaling. + This is an array, but we currently only support a single metric specification. That is, you can specify a target value and a single metric pair, or a target value and one scaling metric and one load metric. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications)) +- `mode` (String) The predictive scaling mode. Defaults to ``ForecastOnly`` if not specified. +- `scheduling_buffer_time` (Number) The amount of time, in seconds, that the start time can be advanced. + The value must be less than the forecast interval duration of 3600 seconds (60 minutes). Defaults to 300 seconds if not specified. ### Nested Schema for `predictive_scaling_policy_configuration.metric_specifications` Optional: -- `customized_capacity_metric_specification` (Attributes) (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_capacity_metric_specification)) -- `customized_load_metric_specification` (Attributes) (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_load_metric_specification)) -- `customized_scaling_metric_specification` (Attributes) (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_scaling_metric_specification)) -- `predefined_load_metric_specification` (Attributes) (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--predefined_load_metric_specification)) -- `predefined_metric_pair_specification` (Attributes) (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--predefined_metric_pair_specification)) -- `predefined_scaling_metric_specification` (Attributes) (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--predefined_scaling_metric_specification)) -- `target_value` (Number) +- `customized_capacity_metric_specification` (Attributes) The customized capacity metric specification. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_capacity_metric_specification)) +- `customized_load_metric_specification` (Attributes) The customized load metric specification. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_load_metric_specification)) +- `customized_scaling_metric_specification` (Attributes) The customized scaling metric specification. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_scaling_metric_specification)) +- `predefined_load_metric_specification` (Attributes) The predefined load metric specification. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--predefined_load_metric_specification)) +- `predefined_metric_pair_specification` (Attributes) The predefined metric pair specification that determines the appropriate scaling metric and load metric to use. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--predefined_metric_pair_specification)) +- `predefined_scaling_metric_specification` (Attributes) The predefined scaling metric specification. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--predefined_scaling_metric_specification)) +- `target_value` (Number) Specifies the target utilization. ### Nested Schema for `predictive_scaling_policy_configuration.metric_specifications.customized_capacity_metric_specification` Optional: -- `metric_data_queries` (Attributes Set) (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_capacity_metric_specification--metric_data_queries)) +- `metric_data_queries` (Attributes Set) One or more metric data queries to provide data points for a metric specification. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_capacity_metric_specification--metric_data_queries)) ### Nested Schema for `predictive_scaling_policy_configuration.metric_specifications.customized_capacity_metric_specification.metric_data_queries` 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 ``MetricDataQuery`` 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--predictive_scaling_policy_configuration--metric_specifications--customized_capacity_metric_specification--metric_data_queries--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--predictive_scaling_policy_configuration--metric_specifications--customized_capacity_metric_specification--metric_data_queries--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 `predictive_scaling_policy_configuration.metric_specifications.customized_capacity_metric_specification.metric_data_queries.metric_stat` Optional: -- `metric` (Attributes) The CloudWatch metric to return, including the metric name, namespace, and dimensions. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_capacity_metric_specification--metric_data_queries--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--predictive_scaling_policy_configuration--metric_specifications--customized_capacity_metric_specification--metric_data_queries--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 metrics for predictive scaling are ``Average`` and ``Sum``. +- `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 `predictive_scaling_policy_configuration.metric_specifications.customized_capacity_metric_specification.metric_data_queries.metric_stat.metric` Optional: -- `dimensions` (Attributes List) The dimensions for the metric. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_capacity_metric_specification--metric_data_queries--metric_stat--metric--dimensions)) +- `dimensions` (Attributes List) Describes the dimensions of the metric. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_capacity_metric_specification--metric_data_queries--metric_stat--metric--dimensions)) - `metric_name` (String) The name of the metric. - `namespace` (String) The namespace of the metric. @@ -169,27 +177,32 @@ Optional: 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 ``MetricDataQuery`` 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--predictive_scaling_policy_configuration--metric_specifications--customized_load_metric_specification--metric_data_queries--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--predictive_scaling_policy_configuration--metric_specifications--customized_load_metric_specification--metric_data_queries--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 `predictive_scaling_policy_configuration.metric_specifications.customized_load_metric_specification.metric_data_queries.metric_stat` Optional: -- `metric` (Attributes) The CloudWatch metric to return, including the metric name, namespace, and dimensions. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_load_metric_specification--metric_data_queries--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--predictive_scaling_policy_configuration--metric_specifications--customized_load_metric_specification--metric_data_queries--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 metrics for predictive scaling are ``Average`` and ``Sum``. +- `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 `predictive_scaling_policy_configuration.metric_specifications.customized_load_metric_specification.metric_data_queries.metric_stat.metric` Optional: -- `dimensions` (Attributes List) The dimensions for the metric. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_load_metric_specification--metric_data_queries--metric_stat--metric--dimensions)) +- `dimensions` (Attributes List) Describes the dimensions of the metric. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_load_metric_specification--metric_data_queries--metric_stat--metric--dimensions)) - `metric_name` (String) The name of the metric. - `namespace` (String) The namespace of the metric. @@ -211,34 +224,39 @@ Optional: Optional: -- `metric_data_queries` (Attributes Set) (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_scaling_metric_specification--metric_data_queries)) +- `metric_data_queries` (Attributes Set) One or more metric data queries to provide data points for a metric specification. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_scaling_metric_specification--metric_data_queries)) ### Nested Schema for `predictive_scaling_policy_configuration.metric_specifications.customized_scaling_metric_specification.metric_data_queries` 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 ``MetricDataQuery`` 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--predictive_scaling_policy_configuration--metric_specifications--customized_scaling_metric_specification--metric_data_queries--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--predictive_scaling_policy_configuration--metric_specifications--customized_scaling_metric_specification--metric_data_queries--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 `predictive_scaling_policy_configuration.metric_specifications.customized_scaling_metric_specification.metric_data_queries.metric_stat` Optional: -- `metric` (Attributes) The CloudWatch metric to return, including the metric name, namespace, and dimensions. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_scaling_metric_specification--metric_data_queries--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--predictive_scaling_policy_configuration--metric_specifications--customized_scaling_metric_specification--metric_data_queries--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 metrics for predictive scaling are ``Average`` and ``Sum``. +- `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 `predictive_scaling_policy_configuration.metric_specifications.customized_scaling_metric_specification.metric_data_queries.metric_stat.metric` Optional: -- `dimensions` (Attributes List) The dimensions for the metric. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_scaling_metric_specification--metric_data_queries--metric_stat--metric--dimensions)) +- `dimensions` (Attributes List) Describes the dimensions of the metric. (see [below for nested schema](#nestedatt--predictive_scaling_policy_configuration--metric_specifications--customized_scaling_metric_specification--metric_data_queries--metric_stat--metric--dimensions)) - `metric_name` (String) The name of the metric. - `namespace` (String) The namespace of the metric. @@ -260,8 +278,8 @@ Optional: Optional: -- `predefined_metric_type` (String) -- `resource_label` (String) +- `predefined_metric_type` (String) The metric type. +- `resource_label` (String) A label that uniquely identifies a target group. @@ -269,8 +287,8 @@ Optional: Optional: -- `predefined_metric_type` (String) -- `resource_label` (String) +- `predefined_metric_type` (String) Indicates which metrics to use. There are two different types of metrics for each metric type: one is a load metric and one is a scaling metric. +- `resource_label` (String) A label that uniquely identifies a specific target group from which to determine the total and average request count. @@ -278,8 +296,8 @@ Optional: Optional: -- `predefined_metric_type` (String) -- `resource_label` (String) +- `predefined_metric_type` (String) The metric type. +- `resource_label` (String) A label that uniquely identifies a specific target group from which to determine the average request count. diff --git a/docs/resources/batch_job_definition.md b/docs/resources/batch_job_definition.md new file mode 100644 index 0000000000..47d9721cf1 --- /dev/null +++ b/docs/resources/batch_job_definition.md @@ -0,0 +1,1304 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_batch_job_definition Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::Batch::JobDefinition +--- + +# awscc_batch_job_definition (Resource) + +Resource Type definition for AWS::Batch::JobDefinition + + + + +## Schema + +### Required + +- `type` (String) + +### Optional + +- `container_properties` (Attributes) (see [below for nested schema](#nestedatt--container_properties)) +- `ecs_properties` (Attributes) (see [below for nested schema](#nestedatt--ecs_properties)) +- `eks_properties` (Attributes) (see [below for nested schema](#nestedatt--eks_properties)) +- `job_definition_name` (String) +- `node_properties` (Attributes) (see [below for nested schema](#nestedatt--node_properties)) +- `parameters` (Map of String) +- `platform_capabilities` (List of String) +- `propagate_tags` (Boolean) +- `retry_strategy` (Attributes) (see [below for nested schema](#nestedatt--retry_strategy)) +- `scheduling_priority` (Number) +- `tags` (Map of String) A key-value pair to associate with a resource. +- `timeout` (Attributes) (see [below for nested schema](#nestedatt--timeout)) + +### Read-Only + +- `id` (String) Uniquely identifies the resource. + + +### Nested Schema for `container_properties` + +Optional: + +- `command` (List of String) +- `environment` (Attributes List) (see [below for nested schema](#nestedatt--container_properties--environment)) +- `ephemeral_storage` (Attributes) (see [below for nested schema](#nestedatt--container_properties--ephemeral_storage)) +- `execution_role_arn` (String) +- `fargate_platform_configuration` (Attributes) (see [below for nested schema](#nestedatt--container_properties--fargate_platform_configuration)) +- `image` (String) +- `job_role_arn` (String) +- `linux_parameters` (Attributes) (see [below for nested schema](#nestedatt--container_properties--linux_parameters)) +- `log_configuration` (Attributes) (see [below for nested schema](#nestedatt--container_properties--log_configuration)) +- `memory` (Number) +- `mount_points` (Attributes List) (see [below for nested schema](#nestedatt--container_properties--mount_points)) +- `network_configuration` (Attributes) (see [below for nested schema](#nestedatt--container_properties--network_configuration)) +- `privileged` (Boolean) +- `readonly_root_filesystem` (Boolean) +- `repository_credentials` (Attributes) (see [below for nested schema](#nestedatt--container_properties--repository_credentials)) +- `resource_requirements` (Attributes List) (see [below for nested schema](#nestedatt--container_properties--resource_requirements)) +- `runtime_platform` (Attributes) (see [below for nested schema](#nestedatt--container_properties--runtime_platform)) +- `secrets` (Attributes List) (see [below for nested schema](#nestedatt--container_properties--secrets)) +- `ulimits` (Attributes List) (see [below for nested schema](#nestedatt--container_properties--ulimits)) +- `user` (String) +- `vcpus` (Number) +- `volumes` (Attributes List) (see [below for nested schema](#nestedatt--container_properties--volumes)) + + +### Nested Schema for `container_properties.environment` + +Optional: + +- `name` (String) +- `value` (String) + + + +### Nested Schema for `container_properties.ephemeral_storage` + +Optional: + +- `size_in_gi_b` (Number) + + + +### Nested Schema for `container_properties.fargate_platform_configuration` + +Optional: + +- `platform_version` (String) + + + +### Nested Schema for `container_properties.linux_parameters` + +Optional: + +- `devices` (Attributes List) (see [below for nested schema](#nestedatt--container_properties--linux_parameters--devices)) +- `init_process_enabled` (Boolean) +- `max_swap` (Number) +- `shared_memory_size` (Number) +- `swappiness` (Number) +- `tmpfs` (Attributes List) (see [below for nested schema](#nestedatt--container_properties--linux_parameters--tmpfs)) + + +### Nested Schema for `container_properties.linux_parameters.devices` + +Optional: + +- `container_path` (String) +- `host_path` (String) +- `permissions` (List of String) + + + +### Nested Schema for `container_properties.linux_parameters.tmpfs` + +Optional: + +- `container_path` (String) +- `mount_options` (List of String) +- `size` (Number) + + + + +### Nested Schema for `container_properties.log_configuration` + +Optional: + +- `log_driver` (String) +- `options` (Map of String) +- `secret_options` (Attributes List) (see [below for nested schema](#nestedatt--container_properties--log_configuration--secret_options)) + + +### Nested Schema for `container_properties.log_configuration.secret_options` + +Optional: + +- `name` (String) +- `value_from` (String) + + + + +### Nested Schema for `container_properties.mount_points` + +Optional: + +- `container_path` (String) +- `read_only` (Boolean) +- `source_volume` (String) + + + +### Nested Schema for `container_properties.network_configuration` + +Optional: + +- `assign_public_ip` (String) + + + +### Nested Schema for `container_properties.repository_credentials` + +Optional: + +- `credentials_parameter` (String) + + + +### Nested Schema for `container_properties.resource_requirements` + +Optional: + +- `type` (String) +- `value` (String) + + + +### Nested Schema for `container_properties.runtime_platform` + +Optional: + +- `cpu_architecture` (String) +- `operating_system_family` (String) + + + +### Nested Schema for `container_properties.secrets` + +Optional: + +- `name` (String) +- `value_from` (String) + + + +### Nested Schema for `container_properties.ulimits` + +Optional: + +- `hard_limit` (Number) +- `name` (String) +- `soft_limit` (Number) + + + +### Nested Schema for `container_properties.volumes` + +Optional: + +- `efs_volume_configuration` (Attributes) (see [below for nested schema](#nestedatt--container_properties--volumes--efs_volume_configuration)) +- `host` (Attributes) (see [below for nested schema](#nestedatt--container_properties--volumes--host)) +- `name` (String) + + +### Nested Schema for `container_properties.volumes.efs_volume_configuration` + +Optional: + +- `authorization_config` (Attributes) (see [below for nested schema](#nestedatt--container_properties--volumes--efs_volume_configuration--authorization_config)) +- `file_system_id` (String) +- `root_directory` (String) +- `transit_encryption` (String) +- `transit_encryption_port` (Number) + + +### Nested Schema for `container_properties.volumes.efs_volume_configuration.authorization_config` + +Optional: + +- `access_point_id` (String) +- `iam` (String) + + + + +### Nested Schema for `container_properties.volumes.host` + +Optional: + +- `source_path` (String) + + + + + +### Nested Schema for `ecs_properties` + +Optional: + +- `task_properties` (Attributes List) (see [below for nested schema](#nestedatt--ecs_properties--task_properties)) + + +### Nested Schema for `ecs_properties.task_properties` + +Optional: + +- `containers` (Attributes List) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers)) +- `ephemeral_storage` (Attributes) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--ephemeral_storage)) +- `execution_role_arn` (String) +- `ipc_mode` (String) +- `network_configuration` (Attributes) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--network_configuration)) +- `pid_mode` (String) +- `platform_version` (String) +- `runtime_platform` (Attributes) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--runtime_platform)) +- `task_role_arn` (String) +- `volumes` (Attributes List) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--volumes)) + + +### Nested Schema for `ecs_properties.task_properties.containers` + +Optional: + +- `command` (List of String) +- `depends_on` (Attributes List) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers--depends_on)) +- `environment` (Attributes List) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers--environment)) +- `essential` (Boolean) +- `image` (String) +- `linux_parameters` (Attributes) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers--linux_parameters)) +- `log_configuration` (Attributes) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers--log_configuration)) +- `mount_points` (Attributes List) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers--mount_points)) +- `name` (String) +- `privileged` (Boolean) +- `readonly_root_filesystem` (Boolean) +- `repository_credentials` (Attributes) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers--repository_credentials)) +- `resource_requirements` (Attributes List) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers--resource_requirements)) +- `secrets` (Attributes List) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers--secrets)) +- `ulimits` (Attributes List) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers--ulimits)) +- `user` (String) + + +### Nested Schema for `ecs_properties.task_properties.containers.depends_on` + +Optional: + +- `condition` (String) +- `container_name` (String) + + + +### Nested Schema for `ecs_properties.task_properties.containers.environment` + +Optional: + +- `name` (String) +- `value` (String) + + + +### Nested Schema for `ecs_properties.task_properties.containers.linux_parameters` + +Optional: + +- `devices` (Attributes List) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers--linux_parameters--devices)) +- `init_process_enabled` (Boolean) +- `max_swap` (Number) +- `shared_memory_size` (Number) +- `swappiness` (Number) +- `tmpfs` (Attributes List) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers--linux_parameters--tmpfs)) + + +### Nested Schema for `ecs_properties.task_properties.containers.linux_parameters.devices` + +Optional: + +- `container_path` (String) +- `host_path` (String) +- `permissions` (List of String) + + + +### Nested Schema for `ecs_properties.task_properties.containers.linux_parameters.tmpfs` + +Optional: + +- `container_path` (String) +- `mount_options` (List of String) +- `size` (Number) + + + + +### Nested Schema for `ecs_properties.task_properties.containers.log_configuration` + +Optional: + +- `log_driver` (String) +- `options` (Map of String) +- `secret_options` (Attributes List) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--containers--log_configuration--secret_options)) + + +### Nested Schema for `ecs_properties.task_properties.containers.log_configuration.secret_options` + +Optional: + +- `name` (String) +- `value_from` (String) + + + + +### Nested Schema for `ecs_properties.task_properties.containers.mount_points` + +Optional: + +- `container_path` (String) +- `read_only` (Boolean) +- `source_volume` (String) + + + +### Nested Schema for `ecs_properties.task_properties.containers.repository_credentials` + +Optional: + +- `credentials_parameter` (String) + + + +### Nested Schema for `ecs_properties.task_properties.containers.resource_requirements` + +Optional: + +- `type` (String) +- `value` (String) + + + +### Nested Schema for `ecs_properties.task_properties.containers.secrets` + +Optional: + +- `name` (String) +- `value_from` (String) + + + +### Nested Schema for `ecs_properties.task_properties.containers.ulimits` + +Optional: + +- `hard_limit` (Number) +- `name` (String) +- `soft_limit` (Number) + + + + +### Nested Schema for `ecs_properties.task_properties.ephemeral_storage` + +Optional: + +- `size_in_gi_b` (Number) + + + +### Nested Schema for `ecs_properties.task_properties.network_configuration` + +Optional: + +- `assign_public_ip` (String) + + + +### Nested Schema for `ecs_properties.task_properties.runtime_platform` + +Optional: + +- `cpu_architecture` (String) +- `operating_system_family` (String) + + + +### Nested Schema for `ecs_properties.task_properties.volumes` + +Optional: + +- `efs_volume_configuration` (Attributes) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--volumes--efs_volume_configuration)) +- `host` (Attributes) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--volumes--host)) +- `name` (String) + + +### Nested Schema for `ecs_properties.task_properties.volumes.efs_volume_configuration` + +Optional: + +- `authorization_config` (Attributes) (see [below for nested schema](#nestedatt--ecs_properties--task_properties--volumes--efs_volume_configuration--authorization_config)) +- `file_system_id` (String) +- `root_directory` (String) +- `transit_encryption` (String) +- `transit_encryption_port` (Number) + + +### Nested Schema for `ecs_properties.task_properties.volumes.efs_volume_configuration.authorization_config` + +Optional: + +- `access_point_id` (String) +- `iam` (String) + + + + +### Nested Schema for `ecs_properties.task_properties.volumes.host` + +Optional: + +- `source_path` (String) + + + + + + +### Nested Schema for `eks_properties` + +Optional: + +- `pod_properties` (Attributes) (see [below for nested schema](#nestedatt--eks_properties--pod_properties)) + + +### Nested Schema for `eks_properties.pod_properties` + +Optional: + +- `containers` (Attributes List) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--containers)) +- `dns_policy` (String) +- `host_network` (Boolean) +- `image_pull_secrets` (Attributes List) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--image_pull_secrets)) +- `init_containers` (Attributes List) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--init_containers)) +- `metadata` (Attributes) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--metadata)) +- `service_account_name` (String) +- `share_process_namespace` (Boolean) +- `volumes` (Attributes List) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--volumes)) + + +### Nested Schema for `eks_properties.pod_properties.containers` + +Optional: + +- `args` (List of String) +- `command` (List of String) +- `env` (Attributes List) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--containers--env)) +- `image` (String) +- `image_pull_policy` (String) +- `name` (String) +- `resources` (Attributes) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--containers--resources)) +- `security_context` (Attributes) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--containers--security_context)) +- `volume_mounts` (Attributes List) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--containers--volume_mounts)) + + +### Nested Schema for `eks_properties.pod_properties.containers.env` + +Optional: + +- `name` (String) +- `value` (String) + + + +### Nested Schema for `eks_properties.pod_properties.containers.resources` + +Optional: + +- `limits` (Map of String) +- `requests` (Map of String) + + + +### Nested Schema for `eks_properties.pod_properties.containers.security_context` + +Optional: + +- `allow_privilege_escalation` (Boolean) +- `privileged` (Boolean) +- `read_only_root_filesystem` (Boolean) +- `run_as_group` (Number) +- `run_as_non_root` (Boolean) +- `run_as_user` (Number) + + + +### Nested Schema for `eks_properties.pod_properties.containers.volume_mounts` + +Optional: + +- `mount_path` (String) +- `name` (String) +- `read_only` (Boolean) + + + + +### Nested Schema for `eks_properties.pod_properties.image_pull_secrets` + +Optional: + +- `name` (String) + + + +### Nested Schema for `eks_properties.pod_properties.init_containers` + +Optional: + +- `args` (List of String) +- `command` (List of String) +- `env` (Attributes List) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--init_containers--env)) +- `image` (String) +- `image_pull_policy` (String) +- `name` (String) +- `resources` (Attributes) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--init_containers--resources)) +- `security_context` (Attributes) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--init_containers--security_context)) +- `volume_mounts` (Attributes List) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--init_containers--volume_mounts)) + + +### Nested Schema for `eks_properties.pod_properties.init_containers.env` + +Optional: + +- `name` (String) +- `value` (String) + + + +### Nested Schema for `eks_properties.pod_properties.init_containers.resources` + +Optional: + +- `limits` (Map of String) +- `requests` (Map of String) + + + +### Nested Schema for `eks_properties.pod_properties.init_containers.security_context` + +Optional: + +- `allow_privilege_escalation` (Boolean) +- `privileged` (Boolean) +- `read_only_root_filesystem` (Boolean) +- `run_as_group` (Number) +- `run_as_non_root` (Boolean) +- `run_as_user` (Number) + + + +### Nested Schema for `eks_properties.pod_properties.init_containers.volume_mounts` + +Optional: + +- `mount_path` (String) +- `name` (String) +- `read_only` (Boolean) + + + + +### Nested Schema for `eks_properties.pod_properties.metadata` + +Optional: + +- `labels` (Map of String) + + + +### Nested Schema for `eks_properties.pod_properties.volumes` + +Optional: + +- `empty_dir` (Attributes) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--volumes--empty_dir)) +- `host_path` (Attributes) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--volumes--host_path)) +- `name` (String) +- `secret` (Attributes) (see [below for nested schema](#nestedatt--eks_properties--pod_properties--volumes--secret)) + + +### Nested Schema for `eks_properties.pod_properties.volumes.empty_dir` + +Optional: + +- `medium` (String) +- `size_limit` (String) + + + +### Nested Schema for `eks_properties.pod_properties.volumes.host_path` + +Optional: + +- `path` (String) + + + +### Nested Schema for `eks_properties.pod_properties.volumes.secret` + +Optional: + +- `optional` (Boolean) +- `secret_name` (String) + + + + + + +### Nested Schema for `node_properties` + +Optional: + +- `main_node` (Number) +- `node_range_properties` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties)) +- `num_nodes` (Number) + + +### Nested Schema for `node_properties.node_range_properties` + +Optional: + +- `container` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container)) +- `ecs_properties` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties)) +- `eks_properties` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties)) +- `instance_types` (List of String) +- `target_nodes` (String) + + +### Nested Schema for `node_properties.node_range_properties.container` + +Optional: + +- `command` (List of String) +- `environment` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--environment)) +- `ephemeral_storage` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--ephemeral_storage)) +- `execution_role_arn` (String) +- `image` (String) +- `instance_type` (String) +- `job_role_arn` (String) +- `linux_parameters` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--linux_parameters)) +- `log_configuration` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--log_configuration)) +- `memory` (Number) +- `mount_points` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--mount_points)) +- `privileged` (Boolean) +- `readonly_root_filesystem` (Boolean) +- `repository_credentials` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--repository_credentials)) +- `resource_requirements` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--resource_requirements)) +- `runtime_platform` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--runtime_platform)) +- `secrets` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--secrets)) +- `ulimits` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--ulimits)) +- `user` (String) +- `vcpus` (Number) +- `volumes` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--volumes)) + + +### Nested Schema for `node_properties.node_range_properties.container.environment` + +Optional: + +- `name` (String) +- `value` (String) + + + +### Nested Schema for `node_properties.node_range_properties.container.ephemeral_storage` + +Optional: + +- `size_in_gi_b` (Number) + + + +### Nested Schema for `node_properties.node_range_properties.container.linux_parameters` + +Optional: + +- `devices` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--linux_parameters--devices)) +- `init_process_enabled` (Boolean) +- `max_swap` (Number) +- `shared_memory_size` (Number) +- `swappiness` (Number) +- `tmpfs` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--linux_parameters--tmpfs)) + + +### Nested Schema for `node_properties.node_range_properties.container.linux_parameters.devices` + +Optional: + +- `container_path` (String) +- `host_path` (String) +- `permissions` (List of String) + + + +### Nested Schema for `node_properties.node_range_properties.container.linux_parameters.tmpfs` + +Optional: + +- `container_path` (String) +- `mount_options` (List of String) +- `size` (Number) + + + + +### Nested Schema for `node_properties.node_range_properties.container.log_configuration` + +Optional: + +- `log_driver` (String) +- `options` (Map of String) +- `secret_options` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--log_configuration--secret_options)) + + +### Nested Schema for `node_properties.node_range_properties.container.log_configuration.secret_options` + +Optional: + +- `name` (String) +- `value_from` (String) + + + + +### Nested Schema for `node_properties.node_range_properties.container.mount_points` + +Optional: + +- `container_path` (String) +- `read_only` (Boolean) +- `source_volume` (String) + + + +### Nested Schema for `node_properties.node_range_properties.container.repository_credentials` + +Optional: + +- `credentials_parameter` (String) + + + +### Nested Schema for `node_properties.node_range_properties.container.resource_requirements` + +Optional: + +- `type` (String) +- `value` (String) + + + +### Nested Schema for `node_properties.node_range_properties.container.runtime_platform` + +Optional: + +- `cpu_architecture` (String) +- `operating_system_family` (String) + + + +### Nested Schema for `node_properties.node_range_properties.container.secrets` + +Optional: + +- `name` (String) +- `value_from` (String) + + + +### Nested Schema for `node_properties.node_range_properties.container.ulimits` + +Optional: + +- `hard_limit` (Number) +- `name` (String) +- `soft_limit` (Number) + + + +### Nested Schema for `node_properties.node_range_properties.container.volumes` + +Optional: + +- `efs_volume_configuration` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--volumes--efs_volume_configuration)) +- `host` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--volumes--host)) +- `name` (String) + + +### Nested Schema for `node_properties.node_range_properties.container.volumes.efs_volume_configuration` + +Optional: + +- `authorization_config` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--volumes--efs_volume_configuration--authorization_config)) +- `file_system_id` (String) +- `root_directory` (String) +- `transit_encryption` (String) +- `transit_encryption_port` (Number) + + +### Nested Schema for `node_properties.node_range_properties.container.volumes.efs_volume_configuration.authorization_config` + +Optional: + +- `access_point_id` (String) +- `iam` (String) + + + + +### Nested Schema for `node_properties.node_range_properties.container.volumes.host` + +Optional: + +- `source_path` (String) + + + + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties` + +Optional: + +- `task_properties` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties)) + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties` + +Optional: + +- `containers` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers)) +- `execution_role_arn` (String) +- `ipc_mode` (String) +- `pid_mode` (String) +- `task_role_arn` (String) +- `volumes` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--volumes)) + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers` + +Optional: + +- `command` (List of String) +- `depends_on` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers--depends_on)) +- `environment` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers--environment)) +- `essential` (Boolean) +- `image` (String) +- `linux_parameters` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers--linux_parameters)) +- `log_configuration` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers--log_configuration)) +- `mount_points` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers--mount_points)) +- `name` (String) +- `privileged` (Boolean) +- `readonly_root_filesystem` (Boolean) +- `repository_credentials` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers--repository_credentials)) +- `resource_requirements` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers--resource_requirements)) +- `secrets` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers--secrets)) +- `ulimits` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers--ulimits)) +- `user` (String) + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers.depends_on` + +Optional: + +- `condition` (String) +- `container_name` (String) + + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers.environment` + +Optional: + +- `name` (String) +- `value` (String) + + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers.linux_parameters` + +Optional: + +- `devices` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers--linux_parameters--devices)) +- `init_process_enabled` (Boolean) +- `max_swap` (Number) +- `shared_memory_size` (Number) +- `swappiness` (Number) +- `tmpfs` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers--linux_parameters--tmpfs)) + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers.linux_parameters.devices` + +Optional: + +- `container_path` (String) +- `host_path` (String) +- `permissions` (List of String) + + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers.linux_parameters.tmpfs` + +Optional: + +- `container_path` (String) +- `mount_options` (List of String) +- `size` (Number) + + + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers.log_configuration` + +Optional: + +- `log_driver` (String) +- `options` (Map of String) +- `secret_options` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--containers--log_configuration--secret_options)) + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers.log_configuration.secret_options` + +Optional: + +- `name` (String) +- `value_from` (String) + + + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers.mount_points` + +Optional: + +- `container_path` (String) +- `read_only` (Boolean) +- `source_volume` (String) + + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers.repository_credentials` + +Optional: + +- `credentials_parameter` (String) + + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers.resource_requirements` + +Optional: + +- `type` (String) +- `value` (String) + + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers.secrets` + +Optional: + +- `name` (String) +- `value_from` (String) + + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.containers.ulimits` + +Optional: + +- `hard_limit` (Number) +- `name` (String) +- `soft_limit` (Number) + + + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.volumes` + +Optional: + +- `efs_volume_configuration` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--volumes--efs_volume_configuration)) +- `host` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--volumes--host)) +- `name` (String) + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.volumes.efs_volume_configuration` + +Optional: + +- `authorization_config` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--ecs_properties--task_properties--volumes--efs_volume_configuration--authorization_config)) +- `file_system_id` (String) +- `root_directory` (String) +- `transit_encryption` (String) +- `transit_encryption_port` (Number) + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.volumes.efs_volume_configuration.authorization_config` + +Optional: + +- `access_point_id` (String) +- `iam` (String) + + + + +### Nested Schema for `node_properties.node_range_properties.ecs_properties.task_properties.volumes.host` + +Optional: + +- `source_path` (String) + + + + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties` + +Optional: + +- `pod_properties` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties)) + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties` + +Optional: + +- `containers` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--containers)) +- `dns_policy` (String) +- `host_network` (Boolean) +- `image_pull_secrets` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--image_pull_secrets)) +- `init_containers` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--init_containers)) +- `metadata` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--metadata)) +- `service_account_name` (String) +- `share_process_namespace` (Boolean) +- `volumes` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--volumes)) + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.containers` + +Optional: + +- `args` (List of String) +- `command` (List of String) +- `env` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--containers--env)) +- `image` (String) +- `image_pull_policy` (String) +- `name` (String) +- `resources` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--containers--resources)) +- `security_context` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--containers--security_context)) +- `volume_mounts` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--containers--volume_mounts)) + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.containers.env` + +Optional: + +- `name` (String) +- `value` (String) + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.containers.resources` + +Optional: + +- `limits` (Map of String) +- `requests` (Map of String) + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.containers.security_context` + +Optional: + +- `allow_privilege_escalation` (Boolean) +- `privileged` (Boolean) +- `read_only_root_filesystem` (Boolean) +- `run_as_group` (Number) +- `run_as_non_root` (Boolean) +- `run_as_user` (Number) + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.containers.volume_mounts` + +Optional: + +- `mount_path` (String) +- `name` (String) +- `read_only` (Boolean) + + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.image_pull_secrets` + +Optional: + +- `name` (String) + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.init_containers` + +Optional: + +- `args` (List of String) +- `command` (List of String) +- `env` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--init_containers--env)) +- `image` (String) +- `image_pull_policy` (String) +- `name` (String) +- `resources` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--init_containers--resources)) +- `security_context` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--init_containers--security_context)) +- `volume_mounts` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--init_containers--volume_mounts)) + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.init_containers.env` + +Optional: + +- `name` (String) +- `value` (String) + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.init_containers.resources` + +Optional: + +- `limits` (Map of String) +- `requests` (Map of String) + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.init_containers.security_context` + +Optional: + +- `allow_privilege_escalation` (Boolean) +- `privileged` (Boolean) +- `read_only_root_filesystem` (Boolean) +- `run_as_group` (Number) +- `run_as_non_root` (Boolean) +- `run_as_user` (Number) + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.init_containers.volume_mounts` + +Optional: + +- `mount_path` (String) +- `name` (String) +- `read_only` (Boolean) + + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.metadata` + +Optional: + +- `labels` (Map of String) + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.volumes` + +Optional: + +- `empty_dir` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--volumes--empty_dir)) +- `host_path` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--volumes--host_path)) +- `name` (String) +- `secret` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--eks_properties--pod_properties--volumes--secret)) + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.volumes.empty_dir` + +Optional: + +- `medium` (String) +- `size_limit` (String) + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.volumes.host_path` + +Optional: + +- `path` (String) + + + +### Nested Schema for `node_properties.node_range_properties.eks_properties.pod_properties.volumes.secret` + +Optional: + +- `optional` (Boolean) +- `secret_name` (String) + + + + + + + + +### Nested Schema for `retry_strategy` + +Optional: + +- `attempts` (Number) +- `evaluate_on_exit` (Attributes List) (see [below for nested schema](#nestedatt--retry_strategy--evaluate_on_exit)) + + +### Nested Schema for `retry_strategy.evaluate_on_exit` + +Optional: + +- `action` (String) +- `on_exit_code` (String) +- `on_reason` (String) +- `on_status_reason` (String) + + + + +### Nested Schema for `timeout` + +Optional: + +- `attempt_duration_seconds` (Number) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_batch_job_definition.example "job_definition_name" +``` diff --git a/docs/resources/cassandra_keyspace.md b/docs/resources/cassandra_keyspace.md index 3a8111588c..a8b07a5acc 100644 --- a/docs/resources/cassandra_keyspace.md +++ b/docs/resources/cassandra_keyspace.md @@ -49,6 +49,7 @@ resource "awscc_cassandra_keyspace" "awscc_cassandra_example" { ### Optional +- `client_side_timestamps_enabled` (Boolean) Indicates whether client-side timestamps are enabled (true) or disabled (false) for all tables in the keyspace. To add a Region to a single-Region keyspace with at least one table, the value must be set to true. After you enabled client-side timestamps for a table, you can?t disable it again. - `keyspace_name` (String) Name for Cassandra keyspace - `replication_specification` (Attributes) (see [below for nested schema](#nestedatt--replication_specification)) - `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) diff --git a/docs/resources/cassandra_type.md b/docs/resources/cassandra_type.md new file mode 100644 index 0000000000..0dc82f3350 --- /dev/null +++ b/docs/resources/cassandra_type.md @@ -0,0 +1,47 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_cassandra_type Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource schema for AWS::Cassandra::Type +--- + +# awscc_cassandra_type (Resource) + +Resource schema for AWS::Cassandra::Type + + + + +## Schema + +### Required + +- `fields` (Attributes Set) Field definitions of the User-Defined Type (see [below for nested schema](#nestedatt--fields)) +- `keyspace_name` (String) Name of the Keyspace which contains the User-Defined Type. +- `type_name` (String) Name of the User-Defined Type. + +### Read-Only + +- `direct_parent_types` (Set of String) List of parent User-Defined Types that directly reference the User-Defined Type in their fields. +- `direct_referring_tables` (Set of String) List of Tables that directly reference the User-Defined Type in their columns. +- `id` (String) Uniquely identifies the resource. +- `keyspace_arn` (String) ARN of the Keyspace which contains the User-Defined Type. +- `last_modified_timestamp` (Number) Timestamp of the last time the User-Defined Type's meta data was modified. +- `max_nesting_depth` (Number) Maximum nesting depth of the User-Defined Type across the field types. + + +### Nested Schema for `fields` + +Required: + +- `field_name` (String) +- `field_type` (String) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_cassandra_type.example "keyspace_name|type_name" +``` diff --git a/docs/resources/cleanrooms_configured_table.md b/docs/resources/cleanrooms_configured_table.md index 643adf787a..1f42587d43 100644 --- a/docs/resources/cleanrooms_configured_table.md +++ b/docs/resources/cleanrooms_configured_table.md @@ -37,19 +37,62 @@ Represents a table that can be associated with collaborations ### Nested Schema for `table_reference` -Required: +Optional: +- `athena` (Attributes) (see [below for nested schema](#nestedatt--table_reference--athena)) - `glue` (Attributes) (see [below for nested schema](#nestedatt--table_reference--glue)) +- `snowflake` (Attributes) (see [below for nested schema](#nestedatt--table_reference--snowflake)) + + +### Nested Schema for `table_reference.athena` + +Optional: + +- `database_name` (String) +- `output_location` (String) +- `table_name` (String) +- `work_group` (String) + ### Nested Schema for `table_reference.glue` -Required: +Optional: - `database_name` (String) - `table_name` (String) + +### Nested Schema for `table_reference.snowflake` + +Optional: + +- `account_identifier` (String) +- `database_name` (String) +- `schema_name` (String) +- `secret_arn` (String) +- `table_name` (String) +- `table_schema` (Attributes) (see [below for nested schema](#nestedatt--table_reference--snowflake--table_schema)) + + +### Nested Schema for `table_reference.snowflake.table_schema` + +Optional: + +- `v1` (Attributes List) (see [below for nested schema](#nestedatt--table_reference--snowflake--table_schema--v1)) + + +### Nested Schema for `table_reference.snowflake.table_schema.v1` + +Optional: + +- `column_name` (String) +- `column_type` (String) + + + + ### Nested Schema for `analysis_rules` diff --git a/docs/resources/connect_queue.md b/docs/resources/connect_queue.md index 9266b0d7db..b070c92dae 100644 --- a/docs/resources/connect_queue.md +++ b/docs/resources/connect_queue.md @@ -46,6 +46,7 @@ resource "awscc_connect_queue" "example" { - `description` (String) The description of the queue. - `max_contacts` (Number) The maximum number of contacts that can be in the queue before it is considered full. - `outbound_caller_config` (Attributes) The outbound caller ID name, number, and outbound whisper flow. (see [below for nested schema](#nestedatt--outbound_caller_config)) +- `outbound_email_config` (Attributes) The outbound email address ID. (see [below for nested schema](#nestedatt--outbound_email_config)) - `quick_connect_arns` (List of String) The quick connects available to agents who are working the queue. - `status` (String) The status of the queue. - `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) @@ -66,6 +67,14 @@ Optional: - `outbound_flow_arn` (String) The outbound whisper flow to be used during an outbound call. + +### Nested Schema for `outbound_email_config` + +Optional: + +- `outbound_email_address_id` (String) The email address connect resource ID. + + ### Nested Schema for `tags` diff --git a/docs/resources/connect_task_template.md b/docs/resources/connect_task_template.md index dcce184d3b..3357d31e6c 100644 --- a/docs/resources/connect_task_template.md +++ b/docs/resources/connect_task_template.md @@ -28,6 +28,7 @@ Resource Type definition for AWS::Connect::TaskTemplate. - `description` (String) The description of the task template. - `fields` (Attributes List) The list of task template's fields (see [below for nested schema](#nestedatt--fields)) - `name` (String) The name of the task template. +- `self_assign_contact_flow_arn` (String) The identifier of the contact flow. - `status` (String) The status of the task template - `tags` (Attributes Set) One or more tags. (see [below for nested schema](#nestedatt--tags)) diff --git a/docs/resources/connectcampaignsv2_campaign.md b/docs/resources/connectcampaignsv2_campaign.md index 2ef592c1d3..5eae965942 100644 --- a/docs/resources/connectcampaignsv2_campaign.md +++ b/docs/resources/connectcampaignsv2_campaign.md @@ -27,7 +27,7 @@ Definition of AWS::ConnectCampaignsV2::Campaign Resource Type - `communication_time_config` (Attributes) Campaign communication time config (see [below for nested schema](#nestedatt--communication_time_config)) - `connect_campaign_flow_arn` (String) Arn - `schedule` (Attributes) Campaign schedule (see [below for nested schema](#nestedatt--schedule)) -- `source` (Attributes) The possible types of channel config parameters (see [below for nested schema](#nestedatt--source)) +- `source` (Attributes) The possible source of the campaign (see [below for nested schema](#nestedatt--source)) - `tags` (Attributes Set) One or more tags. (see [below for nested schema](#nestedatt--tags)) ### Read-Only @@ -377,6 +377,15 @@ Optional: Optional: - `customer_profiles_segment_arn` (String) Arn +- `event_trigger` (Attributes) The event trigger of the campaign (see [below for nested schema](#nestedatt--source--event_trigger)) + + +### Nested Schema for `source.event_trigger` + +Optional: + +- `customer_profiles_domain_arn` (String) Arn + diff --git a/docs/resources/datazone_subscription_target.md b/docs/resources/datazone_subscription_target.md index bec28bb27a..6f2e38bc89 100644 --- a/docs/resources/datazone_subscription_target.md +++ b/docs/resources/datazone_subscription_target.md @@ -21,13 +21,13 @@ Subscription targets enables one to access the data to which you have subscribed - `authorized_principals` (List of String) The authorized principals of the subscription target. - `domain_identifier` (String) The ID of the Amazon DataZone domain in which subscription target would be created. - `environment_identifier` (String) The ID of the environment in which subscription target would be created. -- `manage_access_role` (String) The manage access role that is used to create the subscription target. - `name` (String) The name of the subscription target. - `subscription_target_config` (Attributes List) The configuration of the subscription target. (see [below for nested schema](#nestedatt--subscription_target_config)) - `type` (String) The type of the subscription target. ### Optional +- `manage_access_role` (String) The manage access role that is used to create the subscription target. - `provider_name` (String) The provider of the subscription target. ### Read-Only diff --git a/docs/resources/dynamodb_table.md b/docs/resources/dynamodb_table.md index 49b3e9b040..147b70c91f 100644 --- a/docs/resources/dynamodb_table.md +++ b/docs/resources/dynamodb_table.md @@ -45,8 +45,8 @@ The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, Updates are not supported. The following are exceptions: + If you update either the contributor insights specification or the provisioned throughput values of global secondary indexes, you can update the table without interruption. + You can delete or add one global secondary index without interruption. If you do both in the same update (for example, by changing the index's logical ID), the update fails. (see [below for nested schema](#nestedatt--global_secondary_indexes)) -- `import_source_specification` (Attributes) Specifies the properties of data being imported from the S3 bucket source to the table. - If you specify the ``ImportSourceSpecification`` property, and also specify either the ``StreamSpecification``, the ``TableClass`` property, or the ``DeletionProtectionEnabled`` property, the IAM entity creating/updating stack must have ``UpdateTable`` permission. (see [below for nested schema](#nestedatt--import_source_specification)) +- `import_source_specification` (Attributes) Specifies the properties of data being imported from the S3 bucket source to the" table. + If you specify the ``ImportSourceSpecification`` property, and also specify either the ``StreamSpecification``, the ``TableClass`` property, the ``DeletionProtectionEnabled`` property, or the ``WarmThroughput`` property, the IAM entity creating/updating stack must have ``UpdateTable`` permission. (see [below for nested schema](#nestedatt--import_source_specification)) - `kinesis_stream_specification` (Attributes) The Kinesis Data Streams configuration for the specified table. (see [below for nested schema](#nestedatt--kinesis_stream_specification)) - `local_secondary_indexes` (Attributes List) Local secondary indexes to be created on the table. You can create up to 5 local secondary indexes. Each index is scoped to a given hash key value. The size of each hash key can be up to 10 gigabytes. (see [below for nested schema](#nestedatt--local_secondary_indexes)) - `on_demand_throughput` (Attributes) Sets the maximum number of read and write units for the specified on-demand table. If you use this property, you must specify ``MaxReadRequestUnits``, ``MaxWriteRequestUnits``, or both. (see [below for nested schema](#nestedatt--on_demand_throughput)) diff --git a/docs/resources/ecs_service.md b/docs/resources/ecs_service.md index 11d25ab5ec..7de4cb0598 100644 --- a/docs/resources/ecs_service.md +++ b/docs/resources/ecs_service.md @@ -69,7 +69,8 @@ resource "awscc_ecs_service" "nginx" { ### Optional -- `availability_zone_rebalancing` (String) +- `availability_zone_rebalancing` (String) Indicates whether to use Availability Zone rebalancing for the service. + For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide*. - `capacity_provider_strategy` (Attributes List) The capacity provider strategy to use for the service. If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used. A capacity provider strategy may contain a maximum of 6 capacity providers. (see [below for nested schema](#nestedatt--capacity_provider_strategy)) @@ -82,9 +83,8 @@ resource "awscc_ecs_service" "nginx" { - `enable_ecs_managed_tags` (Boolean) Specifies whether to turn on Amazon ECS managed tags for the tasks within the service. For more information, see [Tagging your Amazon ECS resources](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html) in the *Amazon Elastic Container Service Developer Guide*. When you use Amazon ECS managed tags, you need to set the ``propagateTags`` request parameter. - `enable_execute_command` (Boolean) Determines whether the execute command functionality is turned on for the service. If ``true``, the execute command functionality is turned on for all containers in tasks as part of the service. -- `health_check_grace_period_seconds` (Number) The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started. This is only used when your service is configured to use a load balancer. If your service has a load balancer defined and you don't specify a health check grace period value, the default value of ``0`` is used. - If you do not use an Elastic Load Balancing, we recommend that you use the ``startPeriod`` in the task definition health check parameters. For more information, see [Health check](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_HealthCheck.html). - If your service's tasks take a while to start and respond to Elastic Load Balancing health checks, you can specify a health check grace period of up to 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS service scheduler ignores health check status. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up. +- `health_check_grace_period_seconds` (Number) The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started. If you don't specify a health check grace period value, the default value of ``0`` is used. If you don't use any of the health checks, then ``healthCheckGracePeriodSeconds`` is unused. + If your service's tasks take a while to start and respond to health checks, you can specify a health check grace period of up to 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS service scheduler ignores health check status. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up. - `launch_type` (String) The launch type on which to run your service. For more information, see [Amazon ECS Launch Types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*. - `load_balancers` (Attributes List) A list of load balancer objects to associate with the service. If you specify the ``Role`` property, ``LoadBalancers`` must be specified as well. For information about the number of load balancers that you can specify per service, see [Service Load Balancing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html) in the *Amazon Elastic Container Service Developer Guide*. (see [below for nested schema](#nestedatt--load_balancers)) - `network_configuration` (Attributes) The network configuration for the service. This parameter is required for task definitions that use the ``awsvpc`` network mode to receive their own elastic network interface, and it is not supported for other network modes. For more information, see [Task Networking](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) in the *Amazon Elastic Container Service Developer Guide*. (see [below for nested schema](#nestedatt--network_configuration)) @@ -121,7 +121,7 @@ resource "awscc_ecs_service" "nginx" { A task definition must be specified if the service uses either the ``ECS`` or ``CODE_DEPLOY`` deployment controllers. For more information about deployment types, see [Amazon ECS deployment types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html). - `volume_configurations` (Attributes List) The configuration for a volume specified in the task definition as a volume that is configured at launch time. Currently, the only supported volume type is an Amazon EBS volume. (see [below for nested schema](#nestedatt--volume_configurations)) -- `vpc_lattice_configurations` (Attributes List) (see [below for nested schema](#nestedatt--vpc_lattice_configurations)) +- `vpc_lattice_configurations` (Attributes List) The VPC Lattice configuration for the service being created. (see [below for nested schema](#nestedatt--vpc_lattice_configurations)) ### Read-Only @@ -228,7 +228,7 @@ Optional: Optional: -- `assign_public_ip` (String) Whether the task's elastic network interface receives a public IP address. The default value is ``DISABLED``. +- `assign_public_ip` (String) Whether the task's elastic network interface receives a public IP address. The default value is ``ENABLED``. - `security_groups` (List of String) The IDs of the security groups associated with the task or service. If you don't specify a security group, the default security group for the VPC is used. There's a limit of 5 security groups that can be specified per ``awsvpcConfiguration``. All specified security groups must be from the same VPC. - `subnets` (List of String) The IDs of the subnets associated with the task or service. There's a limit of 16 subnets that can be specified per ``awsvpcConfiguration``. @@ -463,9 +463,9 @@ Optional: Optional: -- `port_name` (String) -- `role_arn` (String) -- `target_group_arn` (String) +- `port_name` (String) The name of the port mapping to register in the VPC Lattice target group. This is the name of the ``portMapping`` you defined in your task definition. +- `role_arn` (String) The ARN of the IAM role to associate with this VPC Lattice configuration. This is the Amazon ECS
 infrastructure IAM role that is used to manage your VPC Lattice infrastructure. +- `target_group_arn` (String) The full Amazon Resource Name (ARN) of the target group or groups associated with the VPC Lattice configuration that the Amazon ECS tasks will be registered to. ## Import diff --git a/docs/resources/ecs_task_definition.md b/docs/resources/ecs_task_definition.md index 34fa315d5d..a5abe197f8 100644 --- a/docs/resources/ecs_task_definition.md +++ b/docs/resources/ecs_task_definition.md @@ -38,6 +38,7 @@ Registers a new task definition from the supplied ``family`` and ``containerDefi This option requires Linux platform ``1.4.0`` or later. + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments This option requires Linux platform ``1.4.0`` or later. +- `enable_fault_injection` (Boolean) - `ephemeral_storage` (Attributes) The ephemeral storage settings to use for tasks run with the task definition. (see [below for nested schema](#nestedatt--ephemeral_storage)) - `execution_role_arn` (String) The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission to make AWS API calls on your behalf. For informationabout the required IAM roles for Amazon ECS, see [IAM roles for Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/security-ecs-iam-role-overview.html) in the *Amazon Elastic Container Service Developer Guide*. - `family` (String) The name of a family that this task definition is registered to. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. @@ -233,7 +234,7 @@ Optional: + ``uid:group`` This parameter is not supported for Windows containers. -- `version_consistency` (String) +- `version_consistency` (String) Specifies whether Amazon ECS will resolve the container image tag provided in the container definition to an image digest. By default, the value is ``enabled``. If you set the value for a container as ``disabled``, Amazon ECS will not resolve the provided container image tag to a digest and will use the original image URI specified in the container definition for deployment. For more information about container image resolution, see [Container image resolution](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html#deployment-container-image-stability) in the *Amazon ECS Developer Guide*. - `volumes_from` (Attributes Set) Data volumes to mount from another container. This parameter maps to ``VolumesFrom`` in the docker container create command and the ``--volumes-from`` option to docker run. (see [below for nested schema](#nestedatt--container_definitions--volumes_from)) - `working_directory` (String) The working directory to run commands inside the container in. This parameter maps to ``WorkingDir`` in the docker container create command and the ``--workdir`` option to docker run. @@ -300,7 +301,7 @@ Optional: ``[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]`` You don't include the double quotes and brackets when you use the AWS Management Console. ``CMD-SHELL, curl -f http://localhost/ || exit 1`` - An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command + An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command. - `interval` (Number) The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. - `retries` (Number) The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. - `start_period` (Number) The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. @@ -450,8 +451,7 @@ Optional: If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version. The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under ``/proc/sys/net/ipv4/ip_local_port_range``. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 (Linux) or 49152 through 65535 (Windows) is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the ``remainingResources`` of [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota. -- `name` (String) The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. - For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. +- `name` (String) The name that's used for the port mapping. This parameter is the name that you use in the ``serviceConnectConfiguration`` and the ``vpcLatticeConfigurations`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. - `protocol` (String) The protocol used for the port mapping. Valid values are ``tcp`` and ``udp``. The default is ``tcp``. ``protocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. @@ -533,7 +533,7 @@ Optional: Optional: -- `size_in_gi_b` (Number) The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``20`` GiB and the maximum supported value is ``200`` GiB. +- `size_in_gi_b` (Number) The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``21`` GiB and the maximum supported value is ``200`` GiB. diff --git a/docs/resources/iot_command.md b/docs/resources/iot_command.md new file mode 100644 index 0000000000..74e5682c43 --- /dev/null +++ b/docs/resources/iot_command.md @@ -0,0 +1,103 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_iot_command Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Represents the resource definition of AWS IoT Command. +--- + +# awscc_iot_command (Resource) + +Represents the resource definition of AWS IoT Command. + + + + +## Schema + +### Required + +- `command_id` (String) The unique identifier for the command. + +### Optional + +- `created_at` (String) The date and time when the command was created. +- `deprecated` (Boolean) A flag indicating whether the command is deprecated. +- `description` (String) The description of the command. +- `display_name` (String) The display name for the command. +- `last_updated_at` (String) The date and time when the command was last updated. +- `mandatory_parameters` (Attributes List) The list of mandatory parameters for the command. (see [below for nested schema](#nestedatt--mandatory_parameters)) +- `namespace` (String) The namespace to which the command belongs. +- `payload` (Attributes) The payload associated with the command. (see [below for nested schema](#nestedatt--payload)) +- `pending_deletion` (Boolean) A flag indicating whether the command is pending deletion. +- `role_arn` (String) The customer role associated with the command. +- `tags` (Attributes List) The tags to be associated with the command. (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- `command_arn` (String) The Amazon Resource Name (ARN) of the command. +- `id` (String) Uniquely identifies the resource. + + +### Nested Schema for `mandatory_parameters` + +Optional: + +- `default_value` (Attributes) (see [below for nested schema](#nestedatt--mandatory_parameters--default_value)) +- `description` (String) +- `name` (String) +- `value` (Attributes) (see [below for nested schema](#nestedatt--mandatory_parameters--value)) + + +### Nested Schema for `mandatory_parameters.default_value` + +Optional: + +- `b` (Boolean) +- `bin` (String) +- `d` (Number) +- `i` (Number) +- `l` (String) +- `s` (String) +- `ul` (String) + + + +### Nested Schema for `mandatory_parameters.value` + +Optional: + +- `b` (Boolean) +- `bin` (String) +- `d` (Number) +- `i` (Number) +- `l` (String) +- `s` (String) +- `ul` (String) + + + + +### Nested Schema for `payload` + +Optional: + +- `content` (String) +- `content_type` (String) + + + +### Nested Schema for `tags` + +Optional: + +- `key` (String) The tag's key. +- `value` (String) The tag's value. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_iot_command.example "command_id" +``` diff --git a/docs/resources/lambda_function.md b/docs/resources/lambda_function.md index 1c8b929d1e..5cc4196916 100644 --- a/docs/resources/lambda_function.md +++ b/docs/resources/lambda_function.md @@ -201,7 +201,13 @@ resource "awscc_lambda_function" "main" { If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. - `handler` (String) The name of the method within your code that Lambda calls to run your function. Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see [Lambda programming model](https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html). - `image_config` (Attributes) Configuration values that override the container image Dockerfile settings. For more information, see [Container image settings](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms). (see [below for nested schema](#nestedatt--image_config)) -- `kms_key_arn` (String) The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's [environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption). When [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) is activated, LAM also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, LAM also uses this key to encrypt your function when it's deployed. Note that this is not the same key that's used to protect your container image in the ECRlong (ECR). If you don't provide a customer managed key, LAM uses a default service key. +- `kms_key_arn` (String) The ARN of the KMSlong (KMS) customer managed key that's used to encrypt the following resources: + + The function's [environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption). + + The function's [Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) snapshots. + + When used with ``SourceKMSKeyArn``, the unzipped version of the .zip deployment package that's used for function invocations. For more information, see [Specifying a customer managed key for Lambda](https://docs.aws.amazon.com/lambda/latest/dg/encrypt-zip-package.html#enable-zip-custom-encryption). + + The optimized version of the container image that's used for function invocations. Note that this is not the same key that's used to protect your container image in the Amazon Elastic Container Registry (Amazon ECR). For more information, see [Function lifecycle](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-lifecycle). + + If you don't provide a customer managed key, Lambda uses an [owned key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) or an [](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk). - `layers` (List of String) A list of [function layers](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) to add to the function's execution environment. Specify each layer by its ARN, including the version. - `logging_config` (Attributes) The function's Amazon CloudWatch Logs configuration settings. (see [below for nested schema](#nestedatt--logging_config)) - `memory_size` (Number) The amount of [memory available to the function](https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html#configuration-memory-console) at runtime. Increasing the function memory also increases its CPU allocation. The default value is 128 MB. The value can be any multiple of 1 MB. Note that new AWS accounts have reduced concurrency and memory quotas. AWS raises these quotas automatically based on your usage. You can also request a quota increase. @@ -236,9 +242,10 @@ Optional: - `s3_bucket` (String) An Amazon S3 bucket in the same AWS-Region as your function. The bucket can be in a different AWS-account. - `s3_key` (String) The Amazon S3 key of the deployment package. - `s3_object_version` (String) For versioned objects, the version of the deployment package object to use. -- `source_kms_key_arn` (String) +- `source_kms_key_arn` (String) The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's .zip deployment package. If you don't provide a customer managed key, Lambda uses an [owned key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk). - `zip_file` (String) (Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, CFN places it in a file named ``index`` and zips it to create a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html). This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index``. For example, ``index.handler``. - For JSON, you must escape quotes and special characters such as newline (``\n``) with a backslash. + When you specify source code inline for a Node.js function, the ``index`` file that CFN creates uses the extension ``.js``. This means that LAM treats the file as a CommonJS module. ES modules aren't supported for inline functions. + For JSON, you must escape quotes and special characters such as newline (``\n``) with a backslash. If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module ([cfn-response](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html)) that simplifies sending responses. See [Using Lambda with CloudFormation](https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html) for details. diff --git a/docs/resources/logs_metric_filter.md b/docs/resources/logs_metric_filter.md index c0f4714325..be8ebcdbf4 100644 --- a/docs/resources/logs_metric_filter.md +++ b/docs/resources/logs_metric_filter.md @@ -58,6 +58,7 @@ resource "awscc_logs_log_group" "this" { ### Optional +- `apply_on_transformed_logs` (Boolean) - `filter_name` (String) The name of the metric filter. ### Read-Only diff --git a/docs/resources/logs_query_definition.md b/docs/resources/logs_query_definition.md index a2307df159..1a8c38e93c 100644 --- a/docs/resources/logs_query_definition.md +++ b/docs/resources/logs_query_definition.md @@ -78,6 +78,7 @@ EOF ### Optional - `log_group_names` (List of String) Optionally define specific log groups as part of your query definition +- `query_language` (String) Query language of the query string. Possible values are CWLI, SQL, PPL, with CWLI being the default. ### Read-Only diff --git a/docs/resources/logs_subscription_filter.md b/docs/resources/logs_subscription_filter.md index 1d2a15ee4c..b9eb8125da 100644 --- a/docs/resources/logs_subscription_filter.md +++ b/docs/resources/logs_subscription_filter.md @@ -31,6 +31,7 @@ The ``AWS::Logs::SubscriptionFilter`` resource specifies a subscription filter a ### Optional +- `apply_on_transformed_logs` (Boolean) - `distribution` (String) The method used to distribute log data to the destination, which can be either random or grouped by log stream. - `filter_name` (String) The name of the subscription filter. - `role_arn` (String) The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. diff --git a/docs/resources/m2_environment.md b/docs/resources/m2_environment.md index 75edc894f0..baafb14855 100644 --- a/docs/resources/m2_environment.md +++ b/docs/resources/m2_environment.md @@ -27,6 +27,7 @@ Represents a runtime environment that can run migrated mainframe applications. - `engine_version` (String) The version of the runtime engine for the environment. - `high_availability_config` (Attributes) Defines the details of a high availability configuration. (see [below for nested schema](#nestedatt--high_availability_config)) - `kms_key_id` (String) The ID or the Amazon Resource Name (ARN) of the customer managed KMS Key used for encrypting environment-related resources. +- `network_type` (String) - `preferred_maintenance_window` (String) Configures a desired maintenance window for the environment. If you do not provide a value, a random system-generated value will be assigned. - `publicly_accessible` (Boolean) Specifies whether the environment is publicly accessible. - `security_group_ids` (List of String) The list of security groups for the VPC associated with this environment. diff --git a/docs/resources/networkmanager_direct_connect_gateway_attachment.md b/docs/resources/networkmanager_direct_connect_gateway_attachment.md new file mode 100644 index 0000000000..1c62957760 --- /dev/null +++ b/docs/resources/networkmanager_direct_connect_gateway_attachment.md @@ -0,0 +1,97 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_networkmanager_direct_connect_gateway_attachment Resource - terraform-provider-awscc" +subcategory: "" +description: |- + AWS::NetworkManager::DirectConnectGatewayAttachment Resource Type +--- + +# awscc_networkmanager_direct_connect_gateway_attachment (Resource) + +AWS::NetworkManager::DirectConnectGatewayAttachment Resource Type + + + + +## Schema + +### Required + +- `core_network_id` (String) The ID of a core network for the Direct Connect Gateway attachment. +- `direct_connect_gateway_arn` (String) The ARN of the Direct Connect Gateway. +- `edge_locations` (List of String) The Regions where the edges are located. + +### Optional + +- `proposed_network_function_group_change` (Attributes) The attachment to move from one network function group to another. (see [below for nested schema](#nestedatt--proposed_network_function_group_change)) +- `proposed_segment_change` (Attributes) The attachment to move from one segment to another. (see [below for nested schema](#nestedatt--proposed_segment_change)) +- `tags` (Attributes Set) Tags for the attachment. (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- `attachment_id` (String) Id of the attachment. +- `attachment_policy_rule_number` (Number) The policy rule number associated with the attachment. +- `attachment_type` (String) Attachment type. +- `core_network_arn` (String) The ARN of a core network for the Direct Connect Gateway attachment. +- `created_at` (String) Creation time of the attachment. +- `id` (String) Uniquely identifies the resource. +- `network_function_group_name` (String) The name of the network function group attachment. +- `owner_account_id` (String) Owner account of the attachment. +- `resource_arn` (String) The ARN of the Resource. +- `segment_name` (String) The name of the segment attachment.. +- `state` (String) State of the attachment. +- `updated_at` (String) Last update time of the attachment. + + +### Nested Schema for `proposed_network_function_group_change` + +Optional: + +- `attachment_policy_rule_number` (Number) The rule number in the policy document that applies to this change. +- `network_function_group_name` (String) The name of the network function group to change. +- `tags` (Attributes Set) The key-value tags that changed for the network function group. (see [below for nested schema](#nestedatt--proposed_network_function_group_change--tags)) + + +### Nested Schema for `proposed_network_function_group_change.tags` + +Optional: + +- `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 `proposed_segment_change` + +Optional: + +- `attachment_policy_rule_number` (Number) The rule number in the policy document that applies to this change. +- `segment_name` (String) The name of the segment to change. +- `tags` (Attributes Set) The key-value tags that changed for the segment. (see [below for nested schema](#nestedatt--proposed_segment_change--tags)) + + +### Nested Schema for `proposed_segment_change.tags` + +Optional: + +- `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 `tags` + +Optional: + +- `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 -. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_networkmanager_direct_connect_gateway_attachment.example "attachment_id" +``` diff --git a/docs/resources/organizations_policy.md b/docs/resources/organizations_policy.md index aad462f836..602a554d7e 100644 --- a/docs/resources/organizations_policy.md +++ b/docs/resources/organizations_policy.md @@ -19,7 +19,7 @@ Policies in AWS Organizations enable you to manage different features of the AWS - `content` (String) The Policy text content. For AWS CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format. AWS CloudFormation always converts a YAML policy to JSON format before submitting it. - `name` (String) Name of the Policy -- `type` (String) The type of policy to create. You can specify one of the following values: AISERVICES_OPT_OUT_POLICY, BACKUP_POLICY, SERVICE_CONTROL_POLICY, TAG_POLICY, CHATBOT_POLICY, RESOURCE_CONTROL_POLICY +- `type` (String) The type of policy to create. You can specify one of the following values: AISERVICES_OPT_OUT_POLICY, BACKUP_POLICY, SERVICE_CONTROL_POLICY, TAG_POLICY, CHATBOT_POLICY, RESOURCE_CONTROL_POLICY,DECLARATIVE_POLICY_EC2 ### Optional diff --git a/docs/resources/qbusiness_application.md b/docs/resources/qbusiness_application.md index 1c59627ce7..5590c97b48 100644 --- a/docs/resources/qbusiness_application.md +++ b/docs/resources/qbusiness_application.md @@ -51,6 +51,7 @@ data "aws_ssoadmin_instances" "example" {} - `identity_type` (String) - `personalization_configuration` (Attributes) (see [below for nested schema](#nestedatt--personalization_configuration)) - `q_apps_configuration` (Attributes) (see [below for nested schema](#nestedatt--q_apps_configuration)) +- `quick_sight_configuration` (Attributes) (see [below for nested schema](#nestedatt--quick_sight_configuration)) - `role_arn` (String) - `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) @@ -105,6 +106,14 @@ Optional: - `q_apps_control_mode` (String) + +### Nested Schema for `quick_sight_configuration` + +Optional: + +- `client_namespace` (String) + + ### Nested Schema for `tags` diff --git a/docs/resources/qbusiness_data_source.md b/docs/resources/qbusiness_data_source.md index c4c2b45c8e..1582d6fe88 100644 --- a/docs/resources/qbusiness_data_source.md +++ b/docs/resources/qbusiness_data_source.md @@ -147,6 +147,7 @@ data "aws_region" "current" {} - `description` (String) - `document_enrichment_configuration` (Attributes) (see [below for nested schema](#nestedatt--document_enrichment_configuration)) +- `media_extraction_configuration` (Attributes) (see [below for nested schema](#nestedatt--media_extraction_configuration)) - `role_arn` (String) - `sync_schedule` (String) - `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) @@ -288,6 +289,22 @@ Optional: + +### Nested Schema for `media_extraction_configuration` + +Optional: + +- `image_extraction_configuration` (Attributes) (see [below for nested schema](#nestedatt--media_extraction_configuration--image_extraction_configuration)) + + +### Nested Schema for `media_extraction_configuration.image_extraction_configuration` + +Optional: + +- `image_extraction_status` (String) + + + ### Nested Schema for `tags` diff --git a/docs/resources/qbusiness_permission.md b/docs/resources/qbusiness_permission.md new file mode 100644 index 0000000000..7e154197b7 --- /dev/null +++ b/docs/resources/qbusiness_permission.md @@ -0,0 +1,35 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_qbusiness_permission Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Definition of AWS::QBusiness::Permission Resource Type +--- + +# awscc_qbusiness_permission (Resource) + +Definition of AWS::QBusiness::Permission Resource Type + + + + +## Schema + +### Required + +- `actions` (List of String) +- `application_id` (String) +- `principal` (String) +- `statement_id` (String) + +### Read-Only + +- `id` (String) Uniquely identifies the resource. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_qbusiness_permission.example "application_id|statement_id" +``` diff --git a/docs/resources/qbusiness_plugin.md b/docs/resources/qbusiness_plugin.md index 7b79b8b2fa..1955fc4dc2 100644 --- a/docs/resources/qbusiness_plugin.md +++ b/docs/resources/qbusiness_plugin.md @@ -17,13 +17,13 @@ Definition of AWS::QBusiness::Plugin Resource Type ### Required -- `application_id` (String) - `auth_configuration` (Attributes) (see [below for nested schema](#nestedatt--auth_configuration)) - `display_name` (String) - `type` (String) ### Optional +- `application_id` (String) - `custom_plugin_configuration` (Attributes) (see [below for nested schema](#nestedatt--custom_plugin_configuration)) - `server_url` (String) - `state` (String) @@ -61,8 +61,10 @@ Optional: Optional: +- `authorization_url` (String) - `role_arn` (String) - `secret_arn` (String) +- `token_url` (String) diff --git a/docs/resources/qbusiness_web_experience.md b/docs/resources/qbusiness_web_experience.md index a4ee3125df..c75fb945e2 100644 --- a/docs/resources/qbusiness_web_experience.md +++ b/docs/resources/qbusiness_web_experience.md @@ -101,6 +101,7 @@ data "aws_partition" "current" {} ### Optional +- `customization_configuration` (Attributes) (see [below for nested schema](#nestedatt--customization_configuration)) - `identity_provider_configuration` (Attributes) (see [below for nested schema](#nestedatt--identity_provider_configuration)) - `origins` (List of String) - `role_arn` (String) @@ -120,6 +121,17 @@ data "aws_partition" "current" {} - `web_experience_arn` (String) - `web_experience_id` (String) + +### Nested Schema for `customization_configuration` + +Optional: + +- `custom_css_url` (String) +- `favicon_url` (String) +- `font_url` (String) +- `logo_url` (String) + + ### Nested Schema for `identity_provider_configuration` diff --git a/docs/resources/ram_resource_share.md b/docs/resources/ram_resource_share.md new file mode 100644 index 0000000000..0f46ba919f --- /dev/null +++ b/docs/resources/ram_resource_share.md @@ -0,0 +1,60 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_ram_resource_share Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource type definition for AWS::RAM::ResourceShare +--- + +# awscc_ram_resource_share (Resource) + +Resource type definition for AWS::RAM::ResourceShare + + + + +## Schema + +### Required + +- `name` (String) Specifies the name of the resource share. + +### Optional + +- `allow_external_principals` (Boolean) Specifies whether principals outside your organization in AWS Organizations can be associated with a resource share. A value of `true` lets you share with individual AWS accounts that are not in your organization. A value of `false` only has meaning if your account is a member of an AWS Organization. The default value is `true`. +- `permission_arns` (List of String) Specifies the [Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the AWS RAM permission to associate with the resource share. If you do not specify an ARN for the permission, AWS RAM automatically attaches the default version of the permission for each resource type. You can associate only one permission with each resource type included in the resource share. +- `principals` (List of String) Specifies the principals to associate with the resource share. The possible values are: + +- An AWS account ID + +- An Amazon Resource Name (ARN) of an organization in AWS Organizations + +- An ARN of an organizational unit (OU) in AWS Organizations + +- An ARN of an IAM role + +- An ARN of an IAM user +- `resource_arns` (List of String) Specifies a list of one or more ARNs of the resources to associate with the resource share. +- `sources` (List of String) Specifies from which source accounts the service principal has access to the resources in this resource share. +- `tags` (Attributes Set) Specifies one or more tags to attach to the resource share itself. It doesn't attach the tags to the resources associated with the resource share. (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- `arn` (String) +- `id` (String) Uniquely identifies the resource. + + +### Nested Schema for `tags` + +Optional: + +- `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 -. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_ram_resource_share.example "arn" +``` diff --git a/docs/resources/rds_custom_db_engine_version.md b/docs/resources/rds_custom_db_engine_version.md index 19baaab4eb..3857d79097 100644 --- a/docs/resources/rds_custom_db_engine_version.md +++ b/docs/resources/rds_custom_db_engine_version.md @@ -3,12 +3,12 @@ page_title: "awscc_rds_custom_db_engine_version Resource - terraform-provider-awscc" subcategory: "" description: |- - The AWS::RDS::CustomDBEngineVersion resource creates an Amazon RDS custom DB engine version. + Creates a custom DB engine version (CEV). --- # awscc_rds_custom_db_engine_version (Resource) -The AWS::RDS::CustomDBEngineVersion resource creates an Amazon RDS custom DB engine version. +Creates a custom DB engine version (CEV). @@ -17,25 +17,35 @@ The AWS::RDS::CustomDBEngineVersion resource creates an Amazon RDS custom DB eng ### Required -- `engine` (String) The database engine to use for your custom engine version (CEV). The only supported value is `custom-oracle-ee`. -- `engine_version` (String) The name of your CEV. The name format is 19.customized_string . For example, a valid name is 19.my_cev1. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Region. +- `engine` (String) The database engine to use for your custom engine version (CEV). + Valid values: + + ``custom-oracle-ee`` + + ``custom-oracle-ee-cdb`` +- `engine_version` (String) The name of your CEV. The name format is ``major version.customized_string``. For example, a valid CEV name is ``19.my_cev1``. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of ``Engine`` and ``EngineVersion`` is unique per customer per Region. + *Constraints:* Minimum length is 1. Maximum length is 60. + *Pattern:* ``^[a-z0-9_.-]{1,60$``} ### Optional -- `database_installation_files_s3_bucket_name` (String) The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is `my-custom-installation-files`. -- `database_installation_files_s3_prefix` (String) The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is `123456789012/cev1`. If this setting isn't specified, no prefix is assumed. +- `database_installation_files_s3_bucket_name` (String) The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is ``my-custom-installation-files``. +- `database_installation_files_s3_prefix` (String) The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is ``123456789012/cev1``. If this setting isn't specified, no prefix is assumed. - `description` (String) An optional description of your CEV. -- `image_id` (String) The identifier of Amazon Machine Image (AMI) used for CEV. -- `kms_key_id` (String) The AWS KMS key identifier for an encrypted CEV. A symmetric KMS key is required for RDS Custom, but optional for Amazon RDS. +- `image_id` (String) A value that indicates the ID of the AMI. +- `kms_key_id` (String) The AWS KMS key identifier for an encrypted CEV. A symmetric encryption KMS key is required for RDS Custom, but optional for Amazon RDS. + If you have an existing symmetric encryption KMS key in your account, you can use it with RDS Custom. No further action is necessary. If you don't already have a symmetric encryption KMS key in your account, follow the instructions in [Creating a symmetric encryption KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) in the *Key Management Service Developer Guide*. + You can choose the same symmetric encryption key when you create a CEV and a DB instance, or choose different keys. - `manifest` (String) The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed. -- `source_custom_db_engine_version_identifier` (String) The identifier of the source custom engine version. -- `status` (String) The availability status to be assigned to the CEV. -- `tags` (Attributes List) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) -- `use_aws_provided_latest_image` (Boolean) A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create. + The following JSON fields are valid: + + MediaImportTemplateVersion Version of the CEV manifest. The date is in the format YYYY-MM-DD. + databaseInstallationFileNames Ordered list of installation files for the CEV. + opatchFileNames Ordered list of OPatch installers used for the Oracle DB engine. + psuRuPatchFileNames The PSU and RU patches for this CEV. + OtherPatchFileNames The patches that are not in the list of PSU and RU patches. Amazon RDS applies these patches after applying the PSU and RU patches. + For more information, see [Creating the CEV manifest](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev.html#custom-cev.preparing.manifest) in the *Amazon RDS User Guide*. +- `source_custom_db_engine_version_identifier` (String) The ARN of a CEV to use as a source for creating a new CEV. You can specify a different Amazon Machine Imagine (AMI) by using either ``Source`` or ``UseAwsProvidedLatestImage``. You can't specify a different JSON manifest when you specify ``SourceCustomDbEngineVersionIdentifier``. +- `status` (String) A value that indicates the status of a custom engine version (CEV). +- `tags` (Attributes List) A list of tags. 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.* (see [below for nested schema](#nestedatt--tags)) +- `use_aws_provided_latest_image` (Boolean) Specifies whether to use the latest service-provided Amazon Machine Image (AMI) for the CEV. If you specify ``UseAwsProvidedLatestImage``, you can't also specify ``ImageId``. ### Read-Only -- `db_engine_version_arn` (String) The ARN of the custom engine version. +- `db_engine_version_arn` (String) - `id` (String) Uniquely identifies the resource. @@ -43,8 +53,8 @@ The AWS::RDS::CustomDBEngineVersion resource creates an Amazon RDS custom DB eng Optional: -- `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 -. +- `key` (String) A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"). +- `value` (String) A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"). ## Import diff --git a/docs/resources/rds_db_cluster.md b/docs/resources/rds_db_cluster.md index 51c4db9216..7920b3b77f 100644 --- a/docs/resources/rds_db_cluster.md +++ b/docs/resources/rds_db_cluster.md @@ -76,7 +76,7 @@ resource "awscc_rds_db_cluster" "example_db_cluster" { + Must be a value from 1 to 35 Valid for: Aurora DB clusters and Multi-AZ DB clusters -- `cluster_scalability_type` (String) +- `cluster_scalability_type` (String) Specifies the scalability mode of the Aurora DB cluster. When set to ``limitless``, the cluster operates as an Aurora Limitless Database, allowing you to create a DB shard group for horizontal scaling (sharding) capabilities. When set to ``standard`` (the default), the cluster uses normal DB instance creation. - `copy_tags_to_snapshot` (Boolean) A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them. Valid for: Aurora DB clusters and Multi-AZ DB clusters - `database_name` (String) The name of your database. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For naming constraints, see [Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon Aurora User Guide*. @@ -151,7 +151,7 @@ resource "awscc_rds_db_cluster" "example_db_cluster" { - `engine_lifecycle_support` (String) The life cycle type for this DB cluster. By default, this value is set to ``open-source-rds-extended-support``, which enrolls your DB cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to ``open-source-rds-extended-support-disabled``. In this case, creating the DB cluster will fail if the DB major version is past its end of standard support date. You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections: - + Amazon Aurora (PostgreSQL only) - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) in the *Amazon Aurora User Guide* + + Amazon Aurora - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) in the *Amazon Aurora User Guide* + Amazon RDS - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) in the *Amazon RDS User Guide* Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters @@ -435,7 +435,8 @@ Optional: - `max_capacity` (Number) The maximum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 40, 40.5, 41, and so on. The largest value that you can use is 128. The maximum capacity must be higher than 0.5 ACUs. For more information, see [Choosing the maximum Aurora Serverless v2 capacity setting for a cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.setting-capacity.html#aurora-serverless-v2.max_capacity_considerations) in the *Amazon Aurora User Guide*. Aurora automatically sets certain parameters for Aurora Serverless V2 DB instances to values that depend on the maximum ACU value in the capacity range. When you update the maximum capacity value, the ``ParameterApplyStatus`` value for the DB instance changes to ``pending-reboot``. You can update the parameter values by rebooting the DB instance after changing the capacity range. -- `min_capacity` (Number) The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. The smallest value that you can use is 0.5. +- `min_capacity` (Number) The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. For Aurora versions that support the Aurora Serverless v2 auto-pause feature, the smallest value that you can use is 0. For versions that don't support Aurora Serverless v2 auto-pause, the smallest value that you can use is 0.5. +- `seconds_until_auto_pause` (Number) diff --git a/docs/resources/rds_db_instance.md b/docs/resources/rds_db_instance.md index d39c6441c4..5293898caa 100644 --- a/docs/resources/rds_db_instance.md +++ b/docs/resources/rds_db_instance.md @@ -343,6 +343,7 @@ resource "awscc_rds_db_instance" "this" { If there's no DB subnet group, then the DB instance isn't a VPC DB instance. For more information about using Amazon RDS in a VPC, see [Amazon VPC and Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. This setting doesn't apply to Amazon Aurora DB instances. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting. +- `db_system_id` (String) The Oracle system identifier (SID), which is the name of the Oracle database instance that manages your database files. In this context, the term "Oracle database instance" refers exclusively to the system global area (SGA) and Oracle background processes. If you don't specify a SID, the value defaults to ``RDSCDB``. The Oracle SID is also the name of your CDB. - `dedicated_log_volume` (Boolean) Indicates whether the DB instance has a dedicated log volume (DLV) enabled. - `delete_automated_backups` (Boolean) A value that indicates whether to remove automated backups immediately after the DB instance is deleted. This parameter isn't case-sensitive. The default is to remove automated backups immediately after the DB instance is deleted. *Amazon Aurora* @@ -674,7 +675,6 @@ resource "awscc_rds_db_instance" "this" { ### Read-Only - `db_instance_arn` (String) -- `db_system_id` (String) The Oracle system identifier (SID), which is the name of the Oracle database instance that manages your database files. In this context, the term "Oracle database instance" refers exclusively to the system global area (SGA) and Oracle background processes. If you don't specify a SID, the value defaults to ``RDSCDB``. The Oracle SID is also the name of your CDB. - `dbi_resource_id` (String) - `id` (String) Uniquely identifies the resource. diff --git a/docs/resources/redshiftserverless_workgroup.md b/docs/resources/redshiftserverless_workgroup.md index e24b39fff1..265d289cd7 100644 --- a/docs/resources/redshiftserverless_workgroup.md +++ b/docs/resources/redshiftserverless_workgroup.md @@ -27,6 +27,7 @@ Definition of AWS::RedshiftServerless::Workgroup Resource Type - `max_capacity` (Number) The max compute capacity of the workgroup in Redshift Processing Units (RPUs). - `namespace_name` (String) The namespace the workgroup is associated with. - `port` (Number) The custom port to use when connecting to a workgroup. Valid port ranges are 5431-5455 and 8191-8215. The default is 5439. +- `price_performance_target` (Attributes) A property that represents the price performance target settings for the workgroup. (see [below for nested schema](#nestedatt--price_performance_target)) - `publicly_accessible` (Boolean) A value that specifies whether the workgroup can be accessible from a public network. - `security_group_ids` (List of String) A list of security group IDs to associate with the workgroup. - `subnet_ids` (List of String) A list of subnet IDs the workgroup is associated with. @@ -46,6 +47,15 @@ Optional: - `parameter_value` (String) + +### Nested Schema for `price_performance_target` + +Optional: + +- `level` (Number) +- `status` (String) + + ### Nested Schema for `tags` @@ -67,6 +77,7 @@ Read-Only: - `enhanced_vpc_routing` (Boolean) - `max_capacity` (Number) - `namespace_name` (String) +- `price_performance_target` (Attributes) (see [below for nested schema](#nestedatt--workgroup--price_performance_target)) - `publicly_accessible` (Boolean) - `security_group_ids` (List of String) - `status` (String) @@ -112,6 +123,17 @@ Read-Only: - `private_ip_address` (String) - `subnet_id` (String) + + + + +### Nested Schema for `workgroup.price_performance_target` + +Read-Only: + +- `level` (Number) +- `status` (String) + ## Import Import is supported using the following syntax: diff --git a/docs/resources/s3express_directory_bucket.md b/docs/resources/s3express_directory_bucket.md index dda453fbe2..748a65d506 100644 --- a/docs/resources/s3express_directory_bucket.md +++ b/docs/resources/s3express_directory_bucket.md @@ -26,19 +26,19 @@ resource "awscc_s3express_directory_bucket" "example" { ### Required -- `data_redundancy` (String) Specifies the number of Availability Zone that's used for redundancy for the bucket. -- `location_name` (String) Specifies the AZ ID of the Availability Zone where the directory bucket will be created. An example AZ ID value is 'use1-az5'. +- `data_redundancy` (String) Specifies the number of Availability Zone or Local Zone that's used for redundancy for the bucket. +- `location_name` (String) Specifies the Zone ID of the Availability Zone or Local Zone where the directory bucket will be created. An example Availability Zone ID value is 'use1-az5'. ### Optional - `bucket_encryption` (Attributes) Specifies default encryption for a bucket using server-side encryption with Amazon S3 managed keys (SSE-S3) or AWS KMS keys (SSE-KMS). (see [below for nested schema](#nestedatt--bucket_encryption)) -- `bucket_name` (String) Specifies a name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone. The bucket name must also follow the format 'bucket_base_name--az_id--x-s3' (for example, 'DOC-EXAMPLE-BUCKET--usw2-az1--x-s3'). If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name. +- `bucket_name` (String) Specifies a name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone or Local Zone. The bucket name must also follow the format 'bucket_base_name--zone_id--x-s3'. The zone_id can be the ID of an Availability Zone or a Local Zone. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name. - `lifecycle_configuration` (Attributes) Lifecycle rules that define how Amazon S3 Express manages objects during their lifetime. (see [below for nested schema](#nestedatt--lifecycle_configuration)) ### Read-Only - `arn` (String) Returns the Amazon Resource Name (ARN) of the specified bucket. -- `availability_zone_name` (String) Returns the code for the Availability Zone where the directory bucket was created. +- `availability_zone_name` (String) Returns the code for the Availability Zone or Local Zone where the directory bucket was created. An example for the code of an Availability Zone is 'us-east-1f'. - `id` (String) Uniquely identifies the resource. diff --git a/docs/resources/s3tables_table_bucket.md b/docs/resources/s3tables_table_bucket.md new file mode 100644 index 0000000000..8b6f75ae57 --- /dev/null +++ b/docs/resources/s3tables_table_bucket.md @@ -0,0 +1,46 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_s3tables_table_bucket Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Creates an Amazon S3 Tables table bucket in the same AWS Region where you create the AWS CloudFormation stack. +--- + +# awscc_s3tables_table_bucket (Resource) + +Creates an Amazon S3 Tables table bucket in the same AWS Region where you create the AWS CloudFormation stack. + + + + +## Schema + +### Required + +- `table_bucket_name` (String) A name for the table bucket. + +### Optional + +- `unreferenced_file_removal` (Attributes) Settings governing the Unreferenced File Removal maintenance action. Unreferenced file removal identifies and deletes all objects that are not referenced by any table snapshots. (see [below for nested schema](#nestedatt--unreferenced_file_removal)) + +### Read-Only + +- `id` (String) Uniquely identifies the resource. +- `table_bucket_arn` (String) The Amazon Resource Name (ARN) of the specified table bucket. + + +### Nested Schema for `unreferenced_file_removal` + +Optional: + +- `noncurrent_days` (Number) S3 permanently deletes noncurrent objects after the number of days specified by the NoncurrentDays property. +- `status` (String) Indicates whether the Unreferenced File Removal maintenance action is enabled. +- `unreferenced_days` (Number) For any object not referenced by your table and older than the UnreferencedDays property, S3 creates a delete marker and marks the object version as noncurrent. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_s3tables_table_bucket.example "table_bucket_arn" +``` diff --git a/docs/resources/s3tables_table_bucket_policy.md b/docs/resources/s3tables_table_bucket_policy.md new file mode 100644 index 0000000000..d9e48f9d14 --- /dev/null +++ b/docs/resources/s3tables_table_bucket_policy.md @@ -0,0 +1,33 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_s3tables_table_bucket_policy Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Applies an IAM resource policy to a table bucket. +--- + +# awscc_s3tables_table_bucket_policy (Resource) + +Applies an IAM resource policy to a table bucket. + + + + +## Schema + +### Required + +- `resource_policy` (String) A policy document containing permissions to add to the specified table bucket. In IAM, you must provide policy documents in JSON format. However, in CloudFormation you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to IAM. +- `table_bucket_arn` (String) The Amazon Resource Name (ARN) of the table bucket to which the policy applies. + +### Read-Only + +- `id` (String) Uniquely identifies the resource. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_s3tables_table_bucket_policy.example "table_bucket_arn" +``` diff --git a/docs/resources/transfer_server.md b/docs/resources/transfer_server.md index ffdf1e7e70..49b3f8c287 100644 --- a/docs/resources/transfer_server.md +++ b/docs/resources/transfer_server.md @@ -40,6 +40,7 @@ Definition of AWS::Transfer::Server Resource Type - `as_2_service_managed_egress_ip_addresses` (List of String) The list of egress IP addresses of this server. These IP addresses are only relevant for servers that use the AS2 protocol. They are used for sending asynchronous MDNs. These IP addresses are assigned automatically when you create an AS2 server. Additionally, if you update an existing server and add the AS2 protocol, static IP addresses are assigned as well. - `id` (String) Uniquely identifies the resource. - `server_id` (String) +- `state` (String) ### Nested Schema for `endpoint_details` diff --git a/docs/resources/vpclattice_resource_configuration.md b/docs/resources/vpclattice_resource_configuration.md new file mode 100644 index 0000000000..a9a3e202b8 --- /dev/null +++ b/docs/resources/vpclattice_resource_configuration.md @@ -0,0 +1,70 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_vpclattice_resource_configuration Resource - terraform-provider-awscc" +subcategory: "" +description: |- + VpcLattice ResourceConfiguration CFN resource +--- + +# awscc_vpclattice_resource_configuration (Resource) + +VpcLattice ResourceConfiguration CFN resource + + + + +## Schema + +### Optional + +- `allow_association_to_sharable_service_network` (Boolean) +- `name` (String) +- `port_ranges` (List of String) +- `protocol_type` (String) +- `resource_configuration_auth_type` (String) +- `resource_configuration_definition` (Attributes) (see [below for nested schema](#nestedatt--resource_configuration_definition)) +- `resource_configuration_group_id` (String) +- `resource_configuration_type` (String) +- `resource_gateway_id` (String) +- `tags` (Attributes Set) (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- `arn` (String) +- `id` (String) Uniquely identifies the resource. +- `resource_configuration_id` (String) + + +### Nested Schema for `resource_configuration_definition` + +Optional: + +- `arn_resource` (String) +- `dns_resource` (Attributes) (see [below for nested schema](#nestedatt--resource_configuration_definition--dns_resource)) +- `ip_resource` (String) + + +### Nested Schema for `resource_configuration_definition.dns_resource` + +Optional: + +- `domain_name` (String) +- `ip_address_type` (String) + + + + +### Nested Schema for `tags` + +Optional: + +- `key` (String) +- `value` (String) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_vpclattice_resource_configuration.example "arn" +``` diff --git a/docs/resources/vpclattice_resource_gateway.md b/docs/resources/vpclattice_resource_gateway.md new file mode 100644 index 0000000000..e862e707af --- /dev/null +++ b/docs/resources/vpclattice_resource_gateway.md @@ -0,0 +1,47 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_vpclattice_resource_gateway Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Creates a resource gateway for a service. +--- + +# awscc_vpclattice_resource_gateway (Resource) + +Creates a resource gateway for a service. + + + + +## Schema + +### Optional + +- `ip_address_type` (String) +- `name` (String) +- `security_group_ids` (Set of String) The ID of one or more security groups to associate with the endpoint network interface. +- `subnet_ids` (Set of String) The ID of one or more subnets in which to create an endpoint network interface. +- `tags` (Attributes Set) (see [below for nested schema](#nestedatt--tags)) +- `vpc_identifier` (String) + +### Read-Only + +- `arn` (String) +- `id` (String) Uniquely identifies the resource. +- `resource_gateway_id` (String) + + +### Nested Schema for `tags` + +Optional: + +- `key` (String) +- `value` (String) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_vpclattice_resource_gateway.example "arn" +``` diff --git a/docs/resources/vpclattice_service_network_resource_association.md b/docs/resources/vpclattice_service_network_resource_association.md new file mode 100644 index 0000000000..ea7b037dc4 --- /dev/null +++ b/docs/resources/vpclattice_service_network_resource_association.md @@ -0,0 +1,44 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_vpclattice_service_network_resource_association Resource - terraform-provider-awscc" +subcategory: "" +description: |- + VpcLattice ServiceNetworkResourceAssociation CFN resource +--- + +# awscc_vpclattice_service_network_resource_association (Resource) + +VpcLattice ServiceNetworkResourceAssociation CFN resource + + + + +## Schema + +### Optional + +- `resource_configuration_id` (String) +- `service_network_id` (String) +- `tags` (Attributes Set) (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- `arn` (String) +- `id` (String) Uniquely identifies the resource. +- `service_network_resource_association_id` (String) + + +### Nested Schema for `tags` + +Optional: + +- `key` (String) +- `value` (String) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_vpclattice_service_network_resource_association.example "arn" +``` diff --git a/docs/resources/wisdom_ai_agent.md b/docs/resources/wisdom_ai_agent.md index 2f6923cc0b..b2d7b0201b 100644 --- a/docs/resources/wisdom_ai_agent.md +++ b/docs/resources/wisdom_ai_agent.md @@ -41,12 +41,14 @@ Optional: - `answer_recommendation_ai_agent_configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration--answer_recommendation_ai_agent_configuration)) - `manual_search_ai_agent_configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration--manual_search_ai_agent_configuration)) +- `self_service_ai_agent_configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration--self_service_ai_agent_configuration)) ### Nested Schema for `configuration.answer_recommendation_ai_agent_configuration` Optional: +- `answer_generation_ai_guardrail_id` (String) - `answer_generation_ai_prompt_id` (String) - `association_configurations` (Attributes List) (see [below for nested schema](#nestedatt--configuration--answer_recommendation_ai_agent_configuration--association_configurations)) - `intent_labeling_generation_ai_prompt_id` (String) @@ -141,6 +143,7 @@ Optional: Optional: +- `answer_generation_ai_guardrail_id` (String) - `answer_generation_ai_prompt_id` (String) - `association_configurations` (Attributes List) (see [below for nested schema](#nestedatt--configuration--manual_search_ai_agent_configuration--association_configurations)) @@ -222,6 +225,100 @@ Optional: - `key` (String) - `value` (String) + + + + + + + +### Nested Schema for `configuration.self_service_ai_agent_configuration` + +Optional: + +- `association_configurations` (Attributes List) (see [below for nested schema](#nestedatt--configuration--self_service_ai_agent_configuration--association_configurations)) +- `self_service_ai_guardrail_id` (String) +- `self_service_answer_generation_ai_prompt_id` (String) +- `self_service_pre_processing_ai_prompt_id` (String) + + +### Nested Schema for `configuration.self_service_ai_agent_configuration.association_configurations` + +Optional: + +- `association_configuration_data` (Attributes) (see [below for nested schema](#nestedatt--configuration--self_service_ai_agent_configuration--association_configurations--association_configuration_data)) +- `association_id` (String) +- `association_type` (String) + + +### Nested Schema for `configuration.self_service_ai_agent_configuration.association_configurations.association_configuration_data` + +Optional: + +- `knowledge_base_association_configuration_data` (Attributes) (see [below for nested schema](#nestedatt--configuration--self_service_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data)) + + +### Nested Schema for `configuration.self_service_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data` + +Optional: + +- `content_tag_filter` (Attributes) (see [below for nested schema](#nestedatt--configuration--self_service_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter)) +- `max_results` (Number) +- `override_knowledge_base_search_type` (String) + + +### Nested Schema for `configuration.self_service_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter` + +Optional: + +- `and_conditions` (Attributes List) (see [below for nested schema](#nestedatt--configuration--self_service_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--and_conditions)) +- `or_conditions` (Attributes List) (see [below for nested schema](#nestedatt--configuration--self_service_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--or_conditions)) +- `tag_condition` (Attributes) (see [below for nested schema](#nestedatt--configuration--self_service_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--tag_condition)) + + +### Nested Schema for `configuration.self_service_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.and_conditions` + +Optional: + +- `key` (String) +- `value` (String) + + + +### Nested Schema for `configuration.self_service_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.or_conditions` + +Optional: + +- `and_conditions` (Attributes List) (see [below for nested schema](#nestedatt--configuration--self_service_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--or_conditions--and_conditions)) +- `tag_condition` (Attributes) (see [below for nested schema](#nestedatt--configuration--self_service_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--or_conditions--tag_condition)) + + +### Nested Schema for `configuration.self_service_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.or_conditions.and_conditions` + +Optional: + +- `key` (String) +- `value` (String) + + + +### Nested Schema for `configuration.self_service_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.or_conditions.tag_condition` + +Optional: + +- `key` (String) +- `value` (String) + + + + +### Nested Schema for `configuration.self_service_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.tag_condition` + +Optional: + +- `key` (String) +- `value` (String) + ## Import Import is supported using the following syntax: diff --git a/docs/resources/wisdom_ai_guardrail.md b/docs/resources/wisdom_ai_guardrail.md new file mode 100644 index 0000000000..aae98d71ee --- /dev/null +++ b/docs/resources/wisdom_ai_guardrail.md @@ -0,0 +1,154 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_wisdom_ai_guardrail Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Definition of AWS::Wisdom::AIGuardrail Resource Type +--- + +# awscc_wisdom_ai_guardrail (Resource) + +Definition of AWS::Wisdom::AIGuardrail Resource Type + + + + +## Schema + +### Required + +- `assistant_id` (String) +- `blocked_input_messaging` (String) Messaging for when violations are detected in text +- `blocked_outputs_messaging` (String) Messaging for when violations are detected in text + +### Optional + +- `content_policy_config` (Attributes) Content policy config for a guardrail. (see [below for nested schema](#nestedatt--content_policy_config)) +- `contextual_grounding_policy_config` (Attributes) Contextual grounding policy config for a guardrail. (see [below for nested schema](#nestedatt--contextual_grounding_policy_config)) +- `description` (String) Description of the guardrail or its version +- `name` (String) +- `sensitive_information_policy_config` (Attributes) Sensitive information policy config for a guardrail. (see [below for nested schema](#nestedatt--sensitive_information_policy_config)) +- `tags` (Map of String) +- `topic_policy_config` (Attributes) Topic policy config for a guardrail. (see [below for nested schema](#nestedatt--topic_policy_config)) +- `word_policy_config` (Attributes) Word policy config for a guardrail. (see [below for nested schema](#nestedatt--word_policy_config)) + +### Read-Only + +- `ai_guardrail_arn` (String) +- `ai_guardrail_id` (String) +- `assistant_arn` (String) +- `id` (String) Uniquely identifies the resource. + + +### Nested Schema for `content_policy_config` + +Optional: + +- `filters_config` (Attributes List) List of content filter configs in content policy. (see [below for nested schema](#nestedatt--content_policy_config--filters_config)) + + +### Nested Schema for `content_policy_config.filters_config` + +Optional: + +- `input_strength` (String) Strength for filters +- `output_strength` (String) Strength for filters +- `type` (String) Type of text to text filter in content policy + + + + +### Nested Schema for `contextual_grounding_policy_config` + +Optional: + +- `filters_config` (Attributes List) List of contextual grounding filter configs. (see [below for nested schema](#nestedatt--contextual_grounding_policy_config--filters_config)) + + +### Nested Schema for `contextual_grounding_policy_config.filters_config` + +Optional: + +- `threshold` (Number) The threshold for this filter. +- `type` (String) Type of contextual grounding filter + + + + +### Nested Schema for `sensitive_information_policy_config` + +Optional: + +- `pii_entities_config` (Attributes List) List of entities. (see [below for nested schema](#nestedatt--sensitive_information_policy_config--pii_entities_config)) +- `regexes_config` (Attributes List) List of regex. (see [below for nested schema](#nestedatt--sensitive_information_policy_config--regexes_config)) + + +### Nested Schema for `sensitive_information_policy_config.pii_entities_config` + +Optional: + +- `action` (String) Options for sensitive information action. +- `type` (String) The currently supported PII entities + + + +### Nested Schema for `sensitive_information_policy_config.regexes_config` + +Optional: + +- `action` (String) Options for sensitive information action. +- `description` (String) The regex description. +- `name` (String) The regex name. +- `pattern` (String) The regex pattern. + + + + +### Nested Schema for `topic_policy_config` + +Optional: + +- `topics_config` (Attributes List) List of topic configs in topic policy. (see [below for nested schema](#nestedatt--topic_policy_config--topics_config)) + + +### Nested Schema for `topic_policy_config.topics_config` + +Optional: + +- `definition` (String) Definition of topic in topic policy +- `examples` (List of String) List of text examples +- `name` (String) Name of topic in topic policy +- `type` (String) Type of topic in a policy + + + + +### Nested Schema for `word_policy_config` + +Optional: + +- `managed_word_lists_config` (Attributes List) A config for the list of managed words. (see [below for nested schema](#nestedatt--word_policy_config--managed_word_lists_config)) +- `words_config` (Attributes List) List of custom word configs. (see [below for nested schema](#nestedatt--word_policy_config--words_config)) + + +### Nested Schema for `word_policy_config.managed_word_lists_config` + +Optional: + +- `type` (String) Options for managed words. + + + +### Nested Schema for `word_policy_config.words_config` + +Optional: + +- `text` (String) The custom word text. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_wisdom_ai_guardrail.example "ai_guardrail_id|assistant_id" +``` diff --git a/docs/resources/wisdom_ai_guardrail_version.md b/docs/resources/wisdom_ai_guardrail_version.md new file mode 100644 index 0000000000..e4a5d1b31f --- /dev/null +++ b/docs/resources/wisdom_ai_guardrail_version.md @@ -0,0 +1,41 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_wisdom_ai_guardrail_version Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Definition of AWS::Wisdom::AIGuardrailVersion Resource Type +--- + +# awscc_wisdom_ai_guardrail_version (Resource) + +Definition of AWS::Wisdom::AIGuardrailVersion Resource Type + + + + +## Schema + +### Required + +- `ai_guardrail_id` (String) +- `assistant_id` (String) + +### Optional + +- `modified_time_seconds` (Number) + +### Read-Only + +- `ai_guardrail_arn` (String) +- `ai_guardrail_version_id` (String) +- `assistant_arn` (String) +- `id` (String) Uniquely identifies the resource. +- `version_number` (Number) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_wisdom_ai_guardrail_version.example "assistant_id|ai_guardrail_id|version_number" +``` diff --git a/examples/resources/awscc_batch_job_definition/import.sh b/examples/resources/awscc_batch_job_definition/import.sh index aa2f7171b9..4b3d42ab81 100644 --- a/examples/resources/awscc_batch_job_definition/import.sh +++ b/examples/resources/awscc_batch_job_definition/import.sh @@ -1 +1 @@ -$ terraform import awscc_batch_job_definition.example \ No newline at end of file +$ terraform import awscc_batch_job_definition.example "job_definition_name" \ No newline at end of file diff --git a/examples/resources/awscc_cassandra_type/import.sh b/examples/resources/awscc_cassandra_type/import.sh new file mode 100644 index 0000000000..161bc96689 --- /dev/null +++ b/examples/resources/awscc_cassandra_type/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_cassandra_type.example "keyspace_name|type_name" \ No newline at end of file diff --git a/examples/resources/awscc_iot_command/import.sh b/examples/resources/awscc_iot_command/import.sh new file mode 100644 index 0000000000..57b3d49a6a --- /dev/null +++ b/examples/resources/awscc_iot_command/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_iot_command.example "command_id" \ No newline at end of file diff --git a/examples/resources/awscc_networkmanager_direct_connect_gateway_attachment/import.sh b/examples/resources/awscc_networkmanager_direct_connect_gateway_attachment/import.sh new file mode 100644 index 0000000000..6e5a42b0d6 --- /dev/null +++ b/examples/resources/awscc_networkmanager_direct_connect_gateway_attachment/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_networkmanager_direct_connect_gateway_attachment.example "attachment_id" \ No newline at end of file diff --git a/examples/resources/awscc_qbusiness_permission/import.sh b/examples/resources/awscc_qbusiness_permission/import.sh new file mode 100644 index 0000000000..f9cf763154 --- /dev/null +++ b/examples/resources/awscc_qbusiness_permission/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_qbusiness_permission.example "application_id|statement_id" \ No newline at end of file diff --git a/examples/resources/awscc_ram_resource_share/import.sh b/examples/resources/awscc_ram_resource_share/import.sh new file mode 100644 index 0000000000..abbdab5477 --- /dev/null +++ b/examples/resources/awscc_ram_resource_share/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_ram_resource_share.example "arn" \ No newline at end of file diff --git a/examples/resources/awscc_s3tables_table_bucket/import.sh b/examples/resources/awscc_s3tables_table_bucket/import.sh new file mode 100644 index 0000000000..a68b11efa0 --- /dev/null +++ b/examples/resources/awscc_s3tables_table_bucket/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_s3tables_table_bucket.example "table_bucket_arn" \ No newline at end of file diff --git a/examples/resources/awscc_s3tables_table_bucket_policy/import.sh b/examples/resources/awscc_s3tables_table_bucket_policy/import.sh new file mode 100644 index 0000000000..975534807a --- /dev/null +++ b/examples/resources/awscc_s3tables_table_bucket_policy/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_s3tables_table_bucket_policy.example "table_bucket_arn" \ No newline at end of file diff --git a/examples/resources/awscc_vpclattice_resource_configuration/import.sh b/examples/resources/awscc_vpclattice_resource_configuration/import.sh new file mode 100644 index 0000000000..58544d06c1 --- /dev/null +++ b/examples/resources/awscc_vpclattice_resource_configuration/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_vpclattice_resource_configuration.example "arn" \ No newline at end of file diff --git a/examples/resources/awscc_vpclattice_resource_gateway/import.sh b/examples/resources/awscc_vpclattice_resource_gateway/import.sh new file mode 100644 index 0000000000..a8a82fbcbf --- /dev/null +++ b/examples/resources/awscc_vpclattice_resource_gateway/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_vpclattice_resource_gateway.example "arn" \ No newline at end of file diff --git a/examples/resources/awscc_vpclattice_service_network_resource_association/import.sh b/examples/resources/awscc_vpclattice_service_network_resource_association/import.sh new file mode 100644 index 0000000000..63a40d5f13 --- /dev/null +++ b/examples/resources/awscc_vpclattice_service_network_resource_association/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_vpclattice_service_network_resource_association.example "arn" \ No newline at end of file diff --git a/examples/resources/awscc_wisdom_ai_guardrail/import.sh b/examples/resources/awscc_wisdom_ai_guardrail/import.sh new file mode 100644 index 0000000000..378b57293c --- /dev/null +++ b/examples/resources/awscc_wisdom_ai_guardrail/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_wisdom_ai_guardrail.example "ai_guardrail_id|assistant_id" \ No newline at end of file diff --git a/examples/resources/awscc_wisdom_ai_guardrail_version/import.sh b/examples/resources/awscc_wisdom_ai_guardrail_version/import.sh new file mode 100644 index 0000000000..1fc77c68fb --- /dev/null +++ b/examples/resources/awscc_wisdom_ai_guardrail_version/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_wisdom_ai_guardrail_version.example "assistant_id|ai_guardrail_id|version_number" \ No newline at end of file diff --git a/internal/aws/amazonmq/configuration_resource_gen.go b/internal/aws/amazonmq/configuration_resource_gen.go index 5b7df5d77e..36ffa2d84f 100644 --- a/internal/aws/amazonmq/configuration_resource_gen.go +++ b/internal/aws/amazonmq/configuration_resource_gen.go @@ -66,7 +66,11 @@ func configurationResource(ctx context.Context) (resource.Resource, error) { // } "data": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The base64-encoded XML configuration.", - Required: true, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ // Data is a write-only property. }, /*END ATTRIBUTE*/ // Property: Description diff --git a/internal/aws/appconfig/configuration_profile_resource_gen.go b/internal/aws/appconfig/configuration_profile_resource_gen.go index 52c19607e9..aea8b892d7 100644 --- a/internal/aws/appconfig/configuration_profile_resource_gen.go +++ b/internal/aws/appconfig/configuration_profile_resource_gen.go @@ -61,6 +61,34 @@ func configurationProfileResource(ctx context.Context) (resource.Resource, error stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: DeletionProtectionCheck + // CloudFormation resource type schema: + // + // { + // "description": "On resource deletion this controls whether the Deletion Protection check should be applied, bypassed, or (the default) whether the behavior should be controlled by the account-level Deletion Protection setting. See https://docs.aws.amazon.com/appconfig/latest/userguide/deletion-protection.html", + // "enum": [ + // "ACCOUNT_DEFAULT", + // "APPLY", + // "BYPASS" + // ], + // "type": "string" + // } + "deletion_protection_check": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "On resource deletion this controls whether the Deletion Protection check should be applied, bypassed, or (the default) whether the behavior should be controlled by the account-level Deletion Protection setting. See https://docs.aws.amazon.com/appconfig/latest/userguide/deletion-protection.html", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ACCOUNT_DEFAULT", + "APPLY", + "BYPASS", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // DeletionProtectionCheck is a write-only property. + }, /*END ATTRIBUTE*/ // Property: Description // CloudFormation resource type schema: // @@ -345,22 +373,26 @@ func configurationProfileResource(ctx context.Context) (resource.Resource, error opts = opts.WithCloudFormationTypeName("AWS::AppConfig::ConfigurationProfile").WithTerraformTypeName("awscc_appconfig_configuration_profile") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "application_id": "ApplicationId", - "configuration_profile_id": "ConfigurationProfileId", - "content": "Content", - "description": "Description", - "key": "Key", - "kms_key_arn": "KmsKeyArn", - "kms_key_identifier": "KmsKeyIdentifier", - "location_uri": "LocationUri", - "name": "Name", - "retrieval_role_arn": "RetrievalRoleArn", - "tags": "Tags", - "type": "Type", - "validators": "Validators", - "value": "Value", + "application_id": "ApplicationId", + "configuration_profile_id": "ConfigurationProfileId", + "content": "Content", + "deletion_protection_check": "DeletionProtectionCheck", + "description": "Description", + "key": "Key", + "kms_key_arn": "KmsKeyArn", + "kms_key_identifier": "KmsKeyIdentifier", + "location_uri": "LocationUri", + "name": "Name", + "retrieval_role_arn": "RetrievalRoleArn", + "tags": "Tags", + "type": "Type", + "validators": "Validators", + "value": "Value", }) + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/DeletionProtectionCheck", + }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) opts = opts.WithUpdateTimeoutInMinutes(0) diff --git a/internal/aws/appconfig/configuration_profile_singular_data_source_gen.go b/internal/aws/appconfig/configuration_profile_singular_data_source_gen.go index 79052c4527..26d1e31a32 100644 --- a/internal/aws/appconfig/configuration_profile_singular_data_source_gen.go +++ b/internal/aws/appconfig/configuration_profile_singular_data_source_gen.go @@ -45,6 +45,22 @@ func configurationProfileDataSource(ctx context.Context) (datasource.DataSource, Description: "The configuration profile ID", Computed: true, }, /*END ATTRIBUTE*/ + // Property: DeletionProtectionCheck + // CloudFormation resource type schema: + // + // { + // "description": "On resource deletion this controls whether the Deletion Protection check should be applied, bypassed, or (the default) whether the behavior should be controlled by the account-level Deletion Protection setting. See https://docs.aws.amazon.com/appconfig/latest/userguide/deletion-protection.html", + // "enum": [ + // "ACCOUNT_DEFAULT", + // "APPLY", + // "BYPASS" + // ], + // "type": "string" + // } + "deletion_protection_check": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "On resource deletion this controls whether the Deletion Protection check should be applied, bypassed, or (the default) whether the behavior should be controlled by the account-level Deletion Protection setting. See https://docs.aws.amazon.com/appconfig/latest/userguide/deletion-protection.html", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Description // CloudFormation resource type schema: // @@ -244,20 +260,21 @@ func configurationProfileDataSource(ctx context.Context) (datasource.DataSource, opts = opts.WithCloudFormationTypeName("AWS::AppConfig::ConfigurationProfile").WithTerraformTypeName("awscc_appconfig_configuration_profile") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "application_id": "ApplicationId", - "configuration_profile_id": "ConfigurationProfileId", - "content": "Content", - "description": "Description", - "key": "Key", - "kms_key_arn": "KmsKeyArn", - "kms_key_identifier": "KmsKeyIdentifier", - "location_uri": "LocationUri", - "name": "Name", - "retrieval_role_arn": "RetrievalRoleArn", - "tags": "Tags", - "type": "Type", - "validators": "Validators", - "value": "Value", + "application_id": "ApplicationId", + "configuration_profile_id": "ConfigurationProfileId", + "content": "Content", + "deletion_protection_check": "DeletionProtectionCheck", + "description": "Description", + "key": "Key", + "kms_key_arn": "KmsKeyArn", + "kms_key_identifier": "KmsKeyIdentifier", + "location_uri": "LocationUri", + "name": "Name", + "retrieval_role_arn": "RetrievalRoleArn", + "tags": "Tags", + "type": "Type", + "validators": "Validators", + "value": "Value", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/appconfig/environment_resource_gen.go b/internal/aws/appconfig/environment_resource_gen.go index 54a8148bc5..fcc320bfad 100644 --- a/internal/aws/appconfig/environment_resource_gen.go +++ b/internal/aws/appconfig/environment_resource_gen.go @@ -49,6 +49,34 @@ func environmentResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: DeletionProtectionCheck + // CloudFormation resource type schema: + // + // { + // "description": "On resource deletion this controls whether the Deletion Protection check should be applied, bypassed, or (the default) whether the behavior should be controlled by the account-level Deletion Protection setting. See https://docs.aws.amazon.com/appconfig/latest/userguide/deletion-protection.html", + // "enum": [ + // "ACCOUNT_DEFAULT", + // "APPLY", + // "BYPASS" + // ], + // "type": "string" + // } + "deletion_protection_check": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "On resource deletion this controls whether the Deletion Protection check should be applied, bypassed, or (the default) whether the behavior should be controlled by the account-level Deletion Protection setting. See https://docs.aws.amazon.com/appconfig/latest/userguide/deletion-protection.html", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ACCOUNT_DEFAULT", + "APPLY", + "BYPASS", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // DeletionProtectionCheck is a write-only property. + }, /*END ATTRIBUTE*/ // Property: Description // CloudFormation resource type schema: // @@ -275,18 +303,22 @@ func environmentResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::AppConfig::Environment").WithTerraformTypeName("awscc_appconfig_environment") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "alarm_arn": "AlarmArn", - "alarm_role_arn": "AlarmRoleArn", - "application_id": "ApplicationId", - "description": "Description", - "environment_id": "EnvironmentId", - "key": "Key", - "monitors": "Monitors", - "name": "Name", - "tags": "Tags", - "value": "Value", + "alarm_arn": "AlarmArn", + "alarm_role_arn": "AlarmRoleArn", + "application_id": "ApplicationId", + "deletion_protection_check": "DeletionProtectionCheck", + "description": "Description", + "environment_id": "EnvironmentId", + "key": "Key", + "monitors": "Monitors", + "name": "Name", + "tags": "Tags", + "value": "Value", }) + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/DeletionProtectionCheck", + }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) opts = opts.WithUpdateTimeoutInMinutes(0) diff --git a/internal/aws/appconfig/environment_singular_data_source_gen.go b/internal/aws/appconfig/environment_singular_data_source_gen.go index 96c27fe8f8..605a292f0e 100644 --- a/internal/aws/appconfig/environment_singular_data_source_gen.go +++ b/internal/aws/appconfig/environment_singular_data_source_gen.go @@ -34,6 +34,22 @@ func environmentDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The application ID.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: DeletionProtectionCheck + // CloudFormation resource type schema: + // + // { + // "description": "On resource deletion this controls whether the Deletion Protection check should be applied, bypassed, or (the default) whether the behavior should be controlled by the account-level Deletion Protection setting. See https://docs.aws.amazon.com/appconfig/latest/userguide/deletion-protection.html", + // "enum": [ + // "ACCOUNT_DEFAULT", + // "APPLY", + // "BYPASS" + // ], + // "type": "string" + // } + "deletion_protection_check": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "On resource deletion this controls whether the Deletion Protection check should be applied, bypassed, or (the default) whether the behavior should be controlled by the account-level Deletion Protection setting. See https://docs.aws.amazon.com/appconfig/latest/userguide/deletion-protection.html", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Description // CloudFormation resource type schema: // @@ -198,16 +214,17 @@ func environmentDataSource(ctx context.Context) (datasource.DataSource, error) { opts = opts.WithCloudFormationTypeName("AWS::AppConfig::Environment").WithTerraformTypeName("awscc_appconfig_environment") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "alarm_arn": "AlarmArn", - "alarm_role_arn": "AlarmRoleArn", - "application_id": "ApplicationId", - "description": "Description", - "environment_id": "EnvironmentId", - "key": "Key", - "monitors": "Monitors", - "name": "Name", - "tags": "Tags", - "value": "Value", + "alarm_arn": "AlarmArn", + "alarm_role_arn": "AlarmRoleArn", + "application_id": "ApplicationId", + "deletion_protection_check": "DeletionProtectionCheck", + "description": "Description", + "environment_id": "EnvironmentId", + "key": "Key", + "monitors": "Monitors", + "name": "Name", + "tags": "Tags", + "value": "Value", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/applicationautoscaling/scaling_policy_resource_gen.go b/internal/aws/applicationautoscaling/scaling_policy_resource_gen.go index 38b7ae6bec..4a7fa3c359 100644 --- a/internal/aws/applicationautoscaling/scaling_policy_resource_gen.go +++ b/internal/aws/applicationautoscaling/scaling_policy_resource_gen.go @@ -76,36 +76,40 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "description": "", + // "description": "The predictive scaling policy configuration.", // "properties": { // "MaxCapacityBreachBehavior": { + // "description": "Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity. Defaults to ``HonorMaxCapacity`` if not specified.", // "type": "string" // }, // "MaxCapacityBuffer": { + // "description": "The size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity. The value is specified as a percentage relative to the forecast capacity. For example, if the buffer is 10, this means a 10 percent buffer, such that if the forecast capacity is 50, and the maximum capacity is 40, then the effective maximum capacity is 55. \n Required if the ``MaxCapacityBreachBehavior`` property is set to ``IncreaseMaxCapacity``, and cannot be used otherwise.", // "type": "integer" // }, // "MetricSpecifications": { + // "description": "This structure includes the metrics and target utilization to use for predictive scaling. \n This is an array, but we currently only support a single metric specification. That is, you can specify a target value and a single metric pair, or a target value and one scaling metric and one load metric.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "", + // "description": "This structure specifies the metrics and target utilization settings for a predictive scaling policy. \n You must specify either a metric pair, or a load metric and a scaling metric individually. Specifying a metric pair instead of individual metrics provides a simpler way to configure metrics for a scaling policy. You choose the metric pair, and the policy automatically knows the correct sum and average statistics to use for the load metric and the scaling metric.", // "properties": { // "CustomizedCapacityMetricSpecification": { // "additionalProperties": false, - // "description": "", + // "description": "The customized capacity metric specification.", // "properties": { // "MetricDataQueries": { + // "description": "One or more metric data queries to provide data points for a metric specification.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "", + // "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.", // "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 ``MetricDataQuery`` 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": { @@ -114,18 +118,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": "Describes the dimensions of the metric.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "", + // "description": "Describes the dimension of a metric.", // "properties": { // "Name": { // "description": "The name of the dimension.", @@ -153,18 +157,18 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // "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 metrics for predictive scaling are ``Average`` and ``Sum``.", // "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" // } // }, @@ -181,20 +185,21 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // }, // "CustomizedLoadMetricSpecification": { // "additionalProperties": false, - // "description": "", + // "description": "The customized load metric specification.", // "properties": { // "MetricDataQueries": { + // "description": "", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "", + // "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.", // "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 ``MetricDataQuery`` 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": { @@ -203,18 +208,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": "Describes the dimensions of the metric.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "", + // "description": "Describes the dimension of a metric.", // "properties": { // "Name": { // "description": "The name of the dimension.", @@ -242,18 +247,18 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // "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 metrics for predictive scaling are ``Average`` and ``Sum``.", // "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" // } // }, @@ -270,20 +275,21 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // }, // "CustomizedScalingMetricSpecification": { // "additionalProperties": false, - // "description": "", + // "description": "The customized scaling metric specification.", // "properties": { // "MetricDataQueries": { + // "description": "One or more metric data queries to provide data points for a metric specification.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "", + // "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.", // "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 ``MetricDataQuery`` 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": { @@ -292,18 +298,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": "Describes the dimensions of the metric.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "", + // "description": "Describes the dimension of a metric.", // "properties": { // "Name": { // "description": "The name of the dimension.", @@ -331,18 +337,18 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // "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 metrics for predictive scaling are ``Average`` and ``Sum``.", // "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" // } // }, @@ -359,12 +365,14 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // }, // "PredefinedLoadMetricSpecification": { // "additionalProperties": false, - // "description": "", + // "description": "The predefined load metric specification.", // "properties": { // "PredefinedMetricType": { + // "description": "The metric type.", // "type": "string" // }, // "ResourceLabel": { + // "description": "A label that uniquely identifies a target group.", // "type": "string" // } // }, @@ -375,12 +383,14 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // }, // "PredefinedMetricPairSpecification": { // "additionalProperties": false, - // "description": "", + // "description": "The predefined metric pair specification that determines the appropriate scaling metric and load metric to use.", // "properties": { // "PredefinedMetricType": { + // "description": "Indicates which metrics to use. There are two different types of metrics for each metric type: one is a load metric and one is a scaling metric.", // "type": "string" // }, // "ResourceLabel": { + // "description": "A label that uniquely identifies a specific target group from which to determine the total and average request count.", // "type": "string" // } // }, @@ -391,12 +401,14 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // }, // "PredefinedScalingMetricSpecification": { // "additionalProperties": false, - // "description": "", + // "description": "The predefined scaling metric specification.", // "properties": { // "PredefinedMetricType": { + // "description": "The metric type.", // "type": "string" // }, // "ResourceLabel": { + // "description": "A label that uniquely identifies a specific target group from which to determine the average request count.", // "type": "string" // } // }, @@ -406,6 +418,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // "type": "object" // }, // "TargetValue": { + // "description": "Specifies the target utilization.", // "type": "number" // } // }, @@ -418,9 +431,11 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { // "uniqueItems": true // }, // "Mode": { + // "description": "The predictive scaling mode. Defaults to ``ForecastOnly`` if not specified.", // "type": "string" // }, // "SchedulingBufferTime": { + // "description": "The amount of time, in seconds, that the start time can be advanced. \n The value must be less than the forecast interval duration of 3600 seconds (60 minutes). Defaults to 300 seconds if not specified.", // "type": "integer" // } // }, @@ -433,16 +448,18 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: MaxCapacityBreachBehavior "max_capacity_breach_behavior": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity. Defaults to ``HonorMaxCapacity`` if not specified.", + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: MaxCapacityBuffer "max_capacity_buffer": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "The size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity. The value is specified as a percentage relative to the forecast capacity. For example, if the buffer is 10, this means a 10 percent buffer, such that if the forecast capacity is 50, and the maximum capacity is 40, then the effective maximum capacity is 55. \n Required if the ``MaxCapacityBreachBehavior`` property is set to ``IncreaseMaxCapacity``, and cannot be used otherwise.", + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ int64planmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -460,7 +477,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 ``MetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -469,7 +486,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*/ @@ -515,7 +532,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The dimensions for the metric.", + Description: "Describes the dimensions of the metric.", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -542,7 +559,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*/ @@ -551,7 +568,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 metrics for predictive scaling are ``Average`` and ``Sum``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -560,7 +577,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*/ @@ -568,7 +585,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*/ @@ -577,7 +594,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*/ @@ -586,8 +603,9 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Optional: true, - Computed: true, + Description: "One or more metric data queries to provide data points for a metric specification.", + Optional: true, + Computed: true, Validators: []validator.Set{ /*START VALIDATORS*/ fwvalidators.NotNullSet(), }, /*END VALIDATORS*/ @@ -596,7 +614,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "", + Description: "The customized capacity metric specification.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -612,7 +630,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 ``MetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -621,7 +639,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*/ @@ -667,7 +685,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The dimensions for the metric.", + Description: "Describes the dimensions of the metric.", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -694,7 +712,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*/ @@ -703,7 +721,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 metrics for predictive scaling are ``Average`` and ``Sum``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -712,7 +730,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*/ @@ -720,7 +738,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*/ @@ -729,7 +747,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*/ @@ -738,8 +756,9 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Optional: true, - Computed: true, + Description: "", + Optional: true, + Computed: true, Validators: []validator.Set{ /*START VALIDATORS*/ fwvalidators.NotNullSet(), }, /*END VALIDATORS*/ @@ -748,7 +767,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "", + Description: "The customized load metric specification.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -764,7 +783,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 ``MetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -773,7 +792,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*/ @@ -819,7 +838,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The dimensions for the metric.", + Description: "Describes the dimensions of the metric.", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -846,7 +865,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*/ @@ -855,7 +874,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 metrics for predictive scaling are ``Average`` and ``Sum``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -864,7 +883,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*/ @@ -872,7 +891,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*/ @@ -881,7 +900,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*/ @@ -890,8 +909,9 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Optional: true, - Computed: true, + Description: "One or more metric data queries to provide data points for a metric specification.", + Optional: true, + Computed: true, Validators: []validator.Set{ /*START VALIDATORS*/ fwvalidators.NotNullSet(), }, /*END VALIDATORS*/ @@ -900,7 +920,7 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "", + Description: "The customized scaling metric specification.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -912,8 +932,9 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: PredefinedMetricType "predefined_metric_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "The metric type.", + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ fwvalidators.NotNullString(), }, /*END VALIDATORS*/ @@ -923,14 +944,15 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: ResourceLabel "resource_label": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "A label that uniquely identifies a target group.", + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "", + Description: "The predefined load metric specification.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -942,8 +964,9 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: PredefinedMetricType "predefined_metric_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "Indicates which metrics to use. There are two different types of metrics for each metric type: one is a load metric and one is a scaling metric.", + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ fwvalidators.NotNullString(), }, /*END VALIDATORS*/ @@ -953,14 +976,15 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: ResourceLabel "resource_label": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "A label that uniquely identifies a specific target group from which to determine the total and average request count.", + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "", + Description: "The predefined metric pair specification that determines the appropriate scaling metric and load metric to use.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -972,8 +996,9 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: PredefinedMetricType "predefined_metric_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "The metric type.", + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ fwvalidators.NotNullString(), }, /*END VALIDATORS*/ @@ -983,14 +1008,15 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: ResourceLabel "resource_label": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "A label that uniquely identifies a specific target group from which to determine the average request count.", + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "", + Description: "The predefined scaling metric specification.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -999,8 +1025,9 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: TargetValue "target_value": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "Specifies the target utilization.", + Optional: true, + Computed: true, Validators: []validator.Float64{ /*START VALIDATORS*/ fwvalidators.NotNullFloat64(), }, /*END VALIDATORS*/ @@ -1010,8 +1037,9 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Optional: true, - Computed: true, + Description: "This structure includes the metrics and target utilization to use for predictive scaling. \n This is an array, but we currently only support a single metric specification. That is, you can specify a target value and a single metric pair, or a target value and one scaling metric and one load metric.", + Optional: true, + Computed: true, Validators: []validator.Set{ /*START VALIDATORS*/ fwvalidators.NotNullSet(), }, /*END VALIDATORS*/ @@ -1021,22 +1049,24 @@ func scalingPolicyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Mode "mode": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "The predictive scaling mode. Defaults to ``ForecastOnly`` if not specified.", + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: SchedulingBufferTime "scheduling_buffer_time": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "The amount of time, in seconds, that the start time can be advanced. \n The value must be less than the forecast interval duration of 3600 seconds (60 minutes). Defaults to 300 seconds if not specified.", + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ int64planmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "", + Description: "The predictive scaling policy configuration.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ 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 e8f73ac4b8..9dde6cce7c 100644 --- a/internal/aws/applicationautoscaling/scaling_policy_singular_data_source_gen.go +++ b/internal/aws/applicationautoscaling/scaling_policy_singular_data_source_gen.go @@ -60,36 +60,40 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // // { // "additionalProperties": false, - // "description": "", + // "description": "The predictive scaling policy configuration.", // "properties": { // "MaxCapacityBreachBehavior": { + // "description": "Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity. Defaults to ``HonorMaxCapacity`` if not specified.", // "type": "string" // }, // "MaxCapacityBuffer": { + // "description": "The size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity. The value is specified as a percentage relative to the forecast capacity. For example, if the buffer is 10, this means a 10 percent buffer, such that if the forecast capacity is 50, and the maximum capacity is 40, then the effective maximum capacity is 55. \n Required if the ``MaxCapacityBreachBehavior`` property is set to ``IncreaseMaxCapacity``, and cannot be used otherwise.", // "type": "integer" // }, // "MetricSpecifications": { + // "description": "This structure includes the metrics and target utilization to use for predictive scaling. \n This is an array, but we currently only support a single metric specification. That is, you can specify a target value and a single metric pair, or a target value and one scaling metric and one load metric.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "", + // "description": "This structure specifies the metrics and target utilization settings for a predictive scaling policy. \n You must specify either a metric pair, or a load metric and a scaling metric individually. Specifying a metric pair instead of individual metrics provides a simpler way to configure metrics for a scaling policy. You choose the metric pair, and the policy automatically knows the correct sum and average statistics to use for the load metric and the scaling metric.", // "properties": { // "CustomizedCapacityMetricSpecification": { // "additionalProperties": false, - // "description": "", + // "description": "The customized capacity metric specification.", // "properties": { // "MetricDataQueries": { + // "description": "One or more metric data queries to provide data points for a metric specification.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "", + // "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.", // "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 ``MetricDataQuery`` 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": { @@ -98,18 +102,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": "Describes the dimensions of the metric.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "", + // "description": "Describes the dimension of a metric.", // "properties": { // "Name": { // "description": "The name of the dimension.", @@ -137,18 +141,18 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // "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 metrics for predictive scaling are ``Average`` and ``Sum``.", // "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" // } // }, @@ -165,20 +169,21 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // }, // "CustomizedLoadMetricSpecification": { // "additionalProperties": false, - // "description": "", + // "description": "The customized load metric specification.", // "properties": { // "MetricDataQueries": { + // "description": "", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "", + // "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.", // "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 ``MetricDataQuery`` 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": { @@ -187,18 +192,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": "Describes the dimensions of the metric.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "", + // "description": "Describes the dimension of a metric.", // "properties": { // "Name": { // "description": "The name of the dimension.", @@ -226,18 +231,18 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // "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 metrics for predictive scaling are ``Average`` and ``Sum``.", // "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" // } // }, @@ -254,20 +259,21 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // }, // "CustomizedScalingMetricSpecification": { // "additionalProperties": false, - // "description": "", + // "description": "The customized scaling metric specification.", // "properties": { // "MetricDataQueries": { + // "description": "One or more metric data queries to provide data points for a metric specification.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "", + // "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.", // "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 ``MetricDataQuery`` 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": { @@ -276,18 +282,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": "Describes the dimensions of the metric.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "", + // "description": "Describes the dimension of a metric.", // "properties": { // "Name": { // "description": "The name of the dimension.", @@ -315,18 +321,18 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // "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 metrics for predictive scaling are ``Average`` and ``Sum``.", // "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" // } // }, @@ -343,12 +349,14 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // }, // "PredefinedLoadMetricSpecification": { // "additionalProperties": false, - // "description": "", + // "description": "The predefined load metric specification.", // "properties": { // "PredefinedMetricType": { + // "description": "The metric type.", // "type": "string" // }, // "ResourceLabel": { + // "description": "A label that uniquely identifies a target group.", // "type": "string" // } // }, @@ -359,12 +367,14 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // }, // "PredefinedMetricPairSpecification": { // "additionalProperties": false, - // "description": "", + // "description": "The predefined metric pair specification that determines the appropriate scaling metric and load metric to use.", // "properties": { // "PredefinedMetricType": { + // "description": "Indicates which metrics to use. There are two different types of metrics for each metric type: one is a load metric and one is a scaling metric.", // "type": "string" // }, // "ResourceLabel": { + // "description": "A label that uniquely identifies a specific target group from which to determine the total and average request count.", // "type": "string" // } // }, @@ -375,12 +385,14 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // }, // "PredefinedScalingMetricSpecification": { // "additionalProperties": false, - // "description": "", + // "description": "The predefined scaling metric specification.", // "properties": { // "PredefinedMetricType": { + // "description": "The metric type.", // "type": "string" // }, // "ResourceLabel": { + // "description": "A label that uniquely identifies a specific target group from which to determine the average request count.", // "type": "string" // } // }, @@ -390,6 +402,7 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // "type": "object" // }, // "TargetValue": { + // "description": "Specifies the target utilization.", // "type": "number" // } // }, @@ -402,9 +415,11 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // "uniqueItems": true // }, // "Mode": { + // "description": "The predictive scaling mode. Defaults to ``ForecastOnly`` if not specified.", // "type": "string" // }, // "SchedulingBufferTime": { + // "description": "The amount of time, in seconds, that the start time can be advanced. \n The value must be less than the forecast interval duration of 3600 seconds (60 minutes). Defaults to 300 seconds if not specified.", // "type": "integer" // } // }, @@ -417,11 +432,13 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: MaxCapacityBreachBehavior "max_capacity_breach_behavior": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity. Defaults to ``HonorMaxCapacity`` if not specified.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: MaxCapacityBuffer "max_capacity_buffer": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity. The value is specified as a percentage relative to the forecast capacity. For example, if the buffer is 10, this means a 10 percent buffer, such that if the forecast capacity is 50, and the maximum capacity is 40, then the effective maximum capacity is 55. \n Required if the ``MaxCapacityBreachBehavior`` property is set to ``IncreaseMaxCapacity``, and cannot be used otherwise.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: MetricSpecifications "metric_specifications": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ @@ -436,12 +453,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 ``MetricDataQuery`` 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 @@ -471,7 +488,7 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The dimensions for the metric.", + Description: "Describes the dimensions of the metric.", Computed: true, }, /*END ATTRIBUTE*/ // Property: MetricName @@ -485,34 +502,35 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) 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 metrics for predictive scaling are ``Average`` and ``Sum``.", 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*/ }, /*END NESTED OBJECT*/ - Computed: true, + Description: "One or more metric data queries to provide data points for a metric specification.", + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "", + Description: "The customized capacity metric specification.", Computed: true, }, /*END ATTRIBUTE*/ // Property: CustomizedLoadMetricSpecification @@ -524,12 +542,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 ``MetricDataQuery`` 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 @@ -559,7 +577,7 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The dimensions for the metric.", + Description: "Describes the dimensions of the metric.", Computed: true, }, /*END ATTRIBUTE*/ // Property: MetricName @@ -573,34 +591,35 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) 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 metrics for predictive scaling are ``Average`` and ``Sum``.", 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*/ }, /*END NESTED OBJECT*/ - Computed: true, + Description: "", + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "", + Description: "The customized load metric specification.", Computed: true, }, /*END ATTRIBUTE*/ // Property: CustomizedScalingMetricSpecification @@ -612,12 +631,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 ``MetricDataQuery`` 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 @@ -647,7 +666,7 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The dimensions for the metric.", + Description: "Describes the dimensions of the metric.", Computed: true, }, /*END ATTRIBUTE*/ // Property: MetricName @@ -661,34 +680,35 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) 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 metrics for predictive scaling are ``Average`` and ``Sum``.", 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*/ }, /*END NESTED OBJECT*/ - Computed: true, + Description: "One or more metric data queries to provide data points for a metric specification.", + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "", + Description: "The customized scaling metric specification.", Computed: true, }, /*END ATTRIBUTE*/ // Property: PredefinedLoadMetricSpecification @@ -696,14 +716,16 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: PredefinedMetricType "predefined_metric_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The metric type.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: ResourceLabel "resource_label": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "A label that uniquely identifies a target group.", + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "", + Description: "The predefined load metric specification.", Computed: true, }, /*END ATTRIBUTE*/ // Property: PredefinedMetricPairSpecification @@ -711,14 +733,16 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: PredefinedMetricType "predefined_metric_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "Indicates which metrics to use. There are two different types of metrics for each metric type: one is a load metric and one is a scaling metric.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: ResourceLabel "resource_label": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "A label that uniquely identifies a specific target group from which to determine the total and average request count.", + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "", + Description: "The predefined metric pair specification that determines the appropriate scaling metric and load metric to use.", Computed: true, }, /*END ATTRIBUTE*/ // Property: PredefinedScalingMetricSpecification @@ -726,34 +750,40 @@ func scalingPolicyDataSource(ctx context.Context) (datasource.DataSource, error) Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: PredefinedMetricType "predefined_metric_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The metric type.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: ResourceLabel "resource_label": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "A label that uniquely identifies a specific target group from which to determine the average request count.", + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "", + Description: "The predefined scaling metric specification.", Computed: true, }, /*END ATTRIBUTE*/ // Property: TargetValue "target_value": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "Specifies the target utilization.", + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Computed: true, + Description: "This structure includes the metrics and target utilization to use for predictive scaling. \n This is an array, but we currently only support a single metric specification. That is, you can specify a target value and a single metric pair, or a target value and one scaling metric and one load metric.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: Mode "mode": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The predictive scaling mode. Defaults to ``ForecastOnly`` if not specified.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: SchedulingBufferTime "scheduling_buffer_time": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The amount of time, in seconds, that the start time can be advanced. \n The value must be less than the forecast interval duration of 3600 seconds (60 minutes). Defaults to 300 seconds if not specified.", + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "", + Description: "The predictive scaling policy configuration.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ResourceId diff --git a/internal/aws/batch/job_definition_plural_data_source_gen.go b/internal/aws/batch/job_definition_plural_data_source_gen.go new file mode 100644 index 0000000000..3c06d5a7c6 --- /dev/null +++ b/internal/aws/batch/job_definition_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 batch + +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_batch_job_definitions", jobDefinitionsDataSource) +} + +// jobDefinitionsDataSource returns the Terraform awscc_batch_job_definitions data source. +// This Terraform data source corresponds to the CloudFormation AWS::Batch::JobDefinition resource. +func jobDefinitionsDataSource(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::Batch::JobDefinition", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Batch::JobDefinition").WithTerraformTypeName("awscc_batch_job_definitions") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/batch/job_definition_plural_data_source_gen_test.go b/internal/aws/batch/job_definition_plural_data_source_gen_test.go new file mode 100644 index 0000000000..5b034e7622 --- /dev/null +++ b/internal/aws/batch/job_definition_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 batch_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSBatchJobDefinitionsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Batch::JobDefinition", "awscc_batch_job_definitions", "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/batch/job_definition_resource_gen.go b/internal/aws/batch/job_definition_resource_gen.go new file mode 100644 index 0000000000..1ac6fa50b4 --- /dev/null +++ b/internal/aws/batch/job_definition_resource_gen.go @@ -0,0 +1,6731 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package batch + +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/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" + "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" + fwvalidators "github.com/hashicorp/terraform-provider-awscc/internal/validators" +) + +func init() { + registry.AddResourceFactory("awscc_batch_job_definition", jobDefinitionResource) +} + +// jobDefinitionResource returns the Terraform awscc_batch_job_definition resource. +// This Terraform resource corresponds to the CloudFormation AWS::Batch::JobDefinition resource. +func jobDefinitionResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerProperties + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "Command": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Environment": { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "EphemeralStorage": { + // "additionalProperties": false, + // "properties": { + // "SizeInGiB": { + // "type": "integer" + // } + // }, + // "required": [ + // "SizeInGiB" + // ], + // "type": "object" + // }, + // "ExecutionRoleArn": { + // "type": "string" + // }, + // "FargatePlatformConfiguration": { + // "additionalProperties": false, + // "properties": { + // "PlatformVersion": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Image": { + // "type": "string" + // }, + // "JobRoleArn": { + // "type": "string" + // }, + // "LinuxParameters": { + // "additionalProperties": false, + // "properties": { + // "Devices": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ContainerPath": { + // "type": "string" + // }, + // "HostPath": { + // "type": "string" + // }, + // "Permissions": { + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "InitProcessEnabled": { + // "type": "boolean" + // }, + // "MaxSwap": { + // "type": "integer" + // }, + // "SharedMemorySize": { + // "type": "integer" + // }, + // "Swappiness": { + // "type": "integer" + // }, + // "Tmpfs": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ContainerPath": { + // "type": "string" + // }, + // "MountOptions": { + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Size": { + // "type": "integer" + // } + // }, + // "required": [ + // "ContainerPath", + // "Size" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // }, + // "LogConfiguration": { + // "additionalProperties": false, + // "properties": { + // "LogDriver": { + // "type": "string" + // }, + // "Options": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "SecretOptions": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "ValueFrom": { + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "ValueFrom" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "required": [ + // "LogDriver" + // ], + // "type": "object" + // }, + // "Memory": { + // "type": "integer" + // }, + // "MountPoints": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ContainerPath": { + // "type": "string" + // }, + // "ReadOnly": { + // "type": "boolean" + // }, + // "SourceVolume": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "NetworkConfiguration": { + // "additionalProperties": false, + // "properties": { + // "AssignPublicIp": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Privileged": { + // "type": "boolean" + // }, + // "ReadonlyRootFilesystem": { + // "type": "boolean" + // }, + // "RepositoryCredentials": { + // "additionalProperties": false, + // "properties": { + // "CredentialsParameter": { + // "type": "string" + // } + // }, + // "required": [ + // "CredentialsParameter" + // ], + // "type": "object" + // }, + // "ResourceRequirements": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Type": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "RuntimePlatform": { + // "additionalProperties": false, + // "properties": { + // "CpuArchitecture": { + // "type": "string" + // }, + // "OperatingSystemFamily": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Secrets": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "ValueFrom": { + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "ValueFrom" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Ulimits": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "HardLimit": { + // "type": "integer" + // }, + // "Name": { + // "type": "string" + // }, + // "SoftLimit": { + // "type": "integer" + // } + // }, + // "required": [ + // "HardLimit", + // "Name", + // "SoftLimit" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "User": { + // "type": "string" + // }, + // "Vcpus": { + // "type": "integer" + // }, + // "Volumes": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "EfsVolumeConfiguration": { + // "additionalProperties": false, + // "properties": { + // "AuthorizationConfig": { + // "additionalProperties": false, + // "properties": { + // "AccessPointId": { + // "type": "string" + // }, + // "Iam": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "FileSystemId": { + // "type": "string" + // }, + // "RootDirectory": { + // "type": "string" + // }, + // "TransitEncryption": { + // "type": "string" + // }, + // "TransitEncryptionPort": { + // "type": "integer" + // } + // }, + // "required": [ + // "FileSystemId" + // ], + // "type": "object" + // }, + // "Host": { + // "additionalProperties": false, + // "properties": { + // "SourcePath": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Name": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "required": [ + // "Image" + // ], + // "type": "object" + // } + "container_properties": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Command + "command": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Environment + "environment": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EphemeralStorage + "ephemeral_storage": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SizeInGiB + "size_in_gi_b": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ExecutionRoleArn + "execution_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: FargatePlatformConfiguration + "fargate_platform_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PlatformVersion + "platform_version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Image + "image": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: JobRoleArn + "job_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LinuxParameters + "linux_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Devices + "devices": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: HostPath + "host_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Permissions + "permissions": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InitProcessEnabled + "init_process_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MaxSwap + "max_swap": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SharedMemorySize + "shared_memory_size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Swappiness + "swappiness": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tmpfs + "tmpfs": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MountOptions + "mount_options": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Size + "size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LogConfiguration + "log_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: LogDriver + "log_driver": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Options + "options": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SecretOptions + "secret_options": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ValueFrom + "value_from": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Memory + "memory": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MountPoints + "mount_points": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ReadOnly + "read_only": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SourceVolume + "source_volume": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: NetworkConfiguration + "network_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AssignPublicIp + "assign_public_ip": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Privileged + "privileged": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ReadonlyRootFilesystem + "readonly_root_filesystem": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RepositoryCredentials + "repository_credentials": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CredentialsParameter + "credentials_parameter": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ResourceRequirements + "resource_requirements": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RuntimePlatform + "runtime_platform": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CpuArchitecture + "cpu_architecture": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: OperatingSystemFamily + "operating_system_family": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Secrets + "secrets": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ValueFrom + "value_from": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Ulimits + "ulimits": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: HardLimit + "hard_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SoftLimit + "soft_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: User + "user": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Vcpus + "vcpus": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Volumes + "volumes": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EfsVolumeConfiguration + "efs_volume_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuthorizationConfig + "authorization_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AccessPointId + "access_point_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Iam + "iam": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: FileSystemId + "file_system_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RootDirectory + "root_directory": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TransitEncryption + "transit_encryption": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TransitEncryptionPort + "transit_encryption_port": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Host + "host": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SourcePath + "source_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EcsProperties + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "TaskProperties": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Containers": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Command": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "DependsOn": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Condition": { + // "type": "string" + // }, + // "ContainerName": { + // "type": "string" + // } + // }, + // "required": [ + // "ContainerName", + // "Condition" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Environment": { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Essential": { + // "type": "boolean" + // }, + // "Image": { + // "type": "string" + // }, + // "LinuxParameters": { + // "additionalProperties": false, + // "properties": { + // "Devices": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ContainerPath": { + // "type": "string" + // }, + // "HostPath": { + // "type": "string" + // }, + // "Permissions": { + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "InitProcessEnabled": { + // "type": "boolean" + // }, + // "MaxSwap": { + // "type": "integer" + // }, + // "SharedMemorySize": { + // "type": "integer" + // }, + // "Swappiness": { + // "type": "integer" + // }, + // "Tmpfs": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ContainerPath": { + // "type": "string" + // }, + // "MountOptions": { + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Size": { + // "type": "integer" + // } + // }, + // "required": [ + // "ContainerPath", + // "Size" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // }, + // "LogConfiguration": { + // "additionalProperties": false, + // "properties": { + // "LogDriver": { + // "type": "string" + // }, + // "Options": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "SecretOptions": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "ValueFrom": { + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "ValueFrom" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "required": [ + // "LogDriver" + // ], + // "type": "object" + // }, + // "MountPoints": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ContainerPath": { + // "type": "string" + // }, + // "ReadOnly": { + // "type": "boolean" + // }, + // "SourceVolume": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Name": { + // "type": "string" + // }, + // "Privileged": { + // "type": "boolean" + // }, + // "ReadonlyRootFilesystem": { + // "type": "boolean" + // }, + // "RepositoryCredentials": { + // "additionalProperties": false, + // "properties": { + // "CredentialsParameter": { + // "type": "string" + // } + // }, + // "required": [ + // "CredentialsParameter" + // ], + // "type": "object" + // }, + // "ResourceRequirements": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Type": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Secrets": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "ValueFrom": { + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "ValueFrom" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Ulimits": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "HardLimit": { + // "type": "integer" + // }, + // "Name": { + // "type": "string" + // }, + // "SoftLimit": { + // "type": "integer" + // } + // }, + // "required": [ + // "HardLimit", + // "Name", + // "SoftLimit" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "User": { + // "type": "string" + // } + // }, + // "required": [ + // "Image" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "EphemeralStorage": { + // "additionalProperties": false, + // "properties": { + // "SizeInGiB": { + // "type": "integer" + // } + // }, + // "required": [ + // "SizeInGiB" + // ], + // "type": "object" + // }, + // "ExecutionRoleArn": { + // "type": "string" + // }, + // "IpcMode": { + // "type": "string" + // }, + // "NetworkConfiguration": { + // "additionalProperties": false, + // "properties": { + // "AssignPublicIp": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "PidMode": { + // "type": "string" + // }, + // "PlatformVersion": { + // "type": "string" + // }, + // "RuntimePlatform": { + // "additionalProperties": false, + // "properties": { + // "CpuArchitecture": { + // "type": "string" + // }, + // "OperatingSystemFamily": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "TaskRoleArn": { + // "type": "string" + // }, + // "Volumes": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "EfsVolumeConfiguration": { + // "additionalProperties": false, + // "properties": { + // "AuthorizationConfig": { + // "additionalProperties": false, + // "properties": { + // "AccessPointId": { + // "type": "string" + // }, + // "Iam": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "FileSystemId": { + // "type": "string" + // }, + // "RootDirectory": { + // "type": "string" + // }, + // "TransitEncryption": { + // "type": "string" + // }, + // "TransitEncryptionPort": { + // "type": "integer" + // } + // }, + // "required": [ + // "FileSystemId" + // ], + // "type": "object" + // }, + // "Host": { + // "additionalProperties": false, + // "properties": { + // "SourcePath": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Name": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "required": [ + // "TaskProperties" + // ], + // "type": "object" + // } + "ecs_properties": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: TaskProperties + "task_properties": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Containers + "containers": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Command + "command": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DependsOn + "depends_on": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Condition + "condition": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ContainerName + "container_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Environment + "environment": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Essential + "essential": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Image + "image": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LinuxParameters + "linux_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Devices + "devices": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: HostPath + "host_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Permissions + "permissions": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InitProcessEnabled + "init_process_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MaxSwap + "max_swap": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SharedMemorySize + "shared_memory_size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Swappiness + "swappiness": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tmpfs + "tmpfs": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MountOptions + "mount_options": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Size + "size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LogConfiguration + "log_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: LogDriver + "log_driver": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Options + "options": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SecretOptions + "secret_options": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ValueFrom + "value_from": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MountPoints + "mount_points": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ReadOnly + "read_only": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SourceVolume + "source_volume": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Privileged + "privileged": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ReadonlyRootFilesystem + "readonly_root_filesystem": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RepositoryCredentials + "repository_credentials": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CredentialsParameter + "credentials_parameter": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ResourceRequirements + "resource_requirements": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Secrets + "secrets": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ValueFrom + "value_from": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Ulimits + "ulimits": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: HardLimit + "hard_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SoftLimit + "soft_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: User + "user": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EphemeralStorage + "ephemeral_storage": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SizeInGiB + "size_in_gi_b": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ExecutionRoleArn + "execution_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: IpcMode + "ipc_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: NetworkConfiguration + "network_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AssignPublicIp + "assign_public_ip": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PidMode + "pid_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PlatformVersion + "platform_version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RuntimePlatform + "runtime_platform": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CpuArchitecture + "cpu_architecture": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: OperatingSystemFamily + "operating_system_family": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TaskRoleArn + "task_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Volumes + "volumes": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EfsVolumeConfiguration + "efs_volume_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuthorizationConfig + "authorization_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AccessPointId + "access_point_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Iam + "iam": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: FileSystemId + "file_system_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RootDirectory + "root_directory": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TransitEncryption + "transit_encryption": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TransitEncryptionPort + "transit_encryption_port": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Host + "host": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SourcePath + "source_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + fwvalidators.NotNullList(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EksProperties + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "PodProperties": { + // "additionalProperties": false, + // "properties": { + // "Containers": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Args": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Command": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Env": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Image": { + // "type": "string" + // }, + // "ImagePullPolicy": { + // "type": "string" + // }, + // "Name": { + // "type": "string" + // }, + // "Resources": { + // "additionalProperties": false, + // "properties": { + // "Limits": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Requests": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "SecurityContext": { + // "additionalProperties": false, + // "properties": { + // "AllowPrivilegeEscalation": { + // "type": "boolean" + // }, + // "Privileged": { + // "type": "boolean" + // }, + // "ReadOnlyRootFilesystem": { + // "type": "boolean" + // }, + // "RunAsGroup": { + // "type": "integer" + // }, + // "RunAsNonRoot": { + // "type": "boolean" + // }, + // "RunAsUser": { + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "VolumeMounts": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "MountPath": { + // "type": "string" + // }, + // "Name": { + // "type": "string" + // }, + // "ReadOnly": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "required": [ + // "Image" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "DnsPolicy": { + // "type": "string" + // }, + // "HostNetwork": { + // "type": "boolean" + // }, + // "ImagePullSecrets": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "InitContainers": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Args": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Command": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Env": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Image": { + // "type": "string" + // }, + // "ImagePullPolicy": { + // "type": "string" + // }, + // "Name": { + // "type": "string" + // }, + // "Resources": { + // "additionalProperties": false, + // "properties": { + // "Limits": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Requests": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "SecurityContext": { + // "additionalProperties": false, + // "properties": { + // "AllowPrivilegeEscalation": { + // "type": "boolean" + // }, + // "Privileged": { + // "type": "boolean" + // }, + // "ReadOnlyRootFilesystem": { + // "type": "boolean" + // }, + // "RunAsGroup": { + // "type": "integer" + // }, + // "RunAsNonRoot": { + // "type": "boolean" + // }, + // "RunAsUser": { + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "VolumeMounts": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "MountPath": { + // "type": "string" + // }, + // "Name": { + // "type": "string" + // }, + // "ReadOnly": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "required": [ + // "Image" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Metadata": { + // "additionalProperties": false, + // "properties": { + // "Labels": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "ServiceAccountName": { + // "type": "string" + // }, + // "ShareProcessNamespace": { + // "type": "boolean" + // }, + // "Volumes": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "EmptyDir": { + // "additionalProperties": false, + // "properties": { + // "Medium": { + // "type": "string" + // }, + // "SizeLimit": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "HostPath": { + // "additionalProperties": false, + // "properties": { + // "Path": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Name": { + // "type": "string" + // }, + // "Secret": { + // "additionalProperties": false, + // "properties": { + // "Optional": { + // "type": "boolean" + // }, + // "SecretName": { + // "type": "string" + // } + // }, + // "required": [ + // "SecretName" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // } + "eks_properties": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PodProperties + "pod_properties": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Containers + "containers": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Args + "args": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Command + "command": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Env + "env": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Image + "image": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ImagePullPolicy + "image_pull_policy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Resources + "resources": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Limits + "limits": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Requests + "requests": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SecurityContext + "security_context": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AllowPrivilegeEscalation + "allow_privilege_escalation": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Privileged + "privileged": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ReadOnlyRootFilesystem + "read_only_root_filesystem": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RunAsGroup + "run_as_group": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RunAsNonRoot + "run_as_non_root": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RunAsUser + "run_as_user": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: VolumeMounts + "volume_mounts": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MountPath + "mount_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ReadOnly + "read_only": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DnsPolicy + "dns_policy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: HostNetwork + "host_network": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ImagePullSecrets + "image_pull_secrets": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InitContainers + "init_containers": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Args + "args": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Command + "command": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Env + "env": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Image + "image": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ImagePullPolicy + "image_pull_policy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Resources + "resources": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Limits + "limits": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Requests + "requests": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SecurityContext + "security_context": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AllowPrivilegeEscalation + "allow_privilege_escalation": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Privileged + "privileged": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ReadOnlyRootFilesystem + "read_only_root_filesystem": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RunAsGroup + "run_as_group": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RunAsNonRoot + "run_as_non_root": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RunAsUser + "run_as_user": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: VolumeMounts + "volume_mounts": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MountPath + "mount_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ReadOnly + "read_only": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Metadata + "metadata": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Labels + "labels": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ServiceAccountName + "service_account_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ShareProcessNamespace + "share_process_namespace": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Volumes + "volumes": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EmptyDir + "empty_dir": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Medium + "medium": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SizeLimit + "size_limit": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: HostPath + "host_path": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Path + "path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Secret + "secret": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Optional + "optional": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SecretName + "secret_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: JobDefinitionName + // CloudFormation resource type schema: + // + // { + // "maxLength": 128, + // "type": "string" + // } + "job_definition_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(128), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: NodeProperties + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "MainNode": { + // "type": "integer" + // }, + // "NodeRangeProperties": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Container": { + // "additionalProperties": false, + // "properties": { + // "Command": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Environment": { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "EphemeralStorage": { + // "additionalProperties": false, + // "properties": { + // "SizeInGiB": { + // "type": "integer" + // } + // }, + // "required": [ + // "SizeInGiB" + // ], + // "type": "object" + // }, + // "ExecutionRoleArn": { + // "type": "string" + // }, + // "Image": { + // "type": "string" + // }, + // "InstanceType": { + // "type": "string" + // }, + // "JobRoleArn": { + // "type": "string" + // }, + // "LinuxParameters": { + // "additionalProperties": false, + // "properties": { + // "Devices": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ContainerPath": { + // "type": "string" + // }, + // "HostPath": { + // "type": "string" + // }, + // "Permissions": { + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "InitProcessEnabled": { + // "type": "boolean" + // }, + // "MaxSwap": { + // "type": "integer" + // }, + // "SharedMemorySize": { + // "type": "integer" + // }, + // "Swappiness": { + // "type": "integer" + // }, + // "Tmpfs": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ContainerPath": { + // "type": "string" + // }, + // "MountOptions": { + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Size": { + // "type": "integer" + // } + // }, + // "required": [ + // "ContainerPath", + // "Size" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // }, + // "LogConfiguration": { + // "additionalProperties": false, + // "properties": { + // "LogDriver": { + // "type": "string" + // }, + // "Options": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "SecretOptions": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "ValueFrom": { + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "ValueFrom" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "required": [ + // "LogDriver" + // ], + // "type": "object" + // }, + // "Memory": { + // "type": "integer" + // }, + // "MountPoints": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ContainerPath": { + // "type": "string" + // }, + // "ReadOnly": { + // "type": "boolean" + // }, + // "SourceVolume": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Privileged": { + // "type": "boolean" + // }, + // "ReadonlyRootFilesystem": { + // "type": "boolean" + // }, + // "RepositoryCredentials": { + // "additionalProperties": false, + // "properties": { + // "CredentialsParameter": { + // "type": "string" + // } + // }, + // "required": [ + // "CredentialsParameter" + // ], + // "type": "object" + // }, + // "ResourceRequirements": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Type": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "RuntimePlatform": { + // "additionalProperties": false, + // "properties": { + // "CpuArchitecture": { + // "type": "string" + // }, + // "OperatingSystemFamily": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Secrets": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "ValueFrom": { + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "ValueFrom" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Ulimits": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "HardLimit": { + // "type": "integer" + // }, + // "Name": { + // "type": "string" + // }, + // "SoftLimit": { + // "type": "integer" + // } + // }, + // "required": [ + // "HardLimit", + // "Name", + // "SoftLimit" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "User": { + // "type": "string" + // }, + // "Vcpus": { + // "type": "integer" + // }, + // "Volumes": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "EfsVolumeConfiguration": { + // "additionalProperties": false, + // "properties": { + // "AuthorizationConfig": { + // "additionalProperties": false, + // "properties": { + // "AccessPointId": { + // "type": "string" + // }, + // "Iam": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "FileSystemId": { + // "type": "string" + // }, + // "RootDirectory": { + // "type": "string" + // }, + // "TransitEncryption": { + // "type": "string" + // }, + // "TransitEncryptionPort": { + // "type": "integer" + // } + // }, + // "required": [ + // "FileSystemId" + // ], + // "type": "object" + // }, + // "Host": { + // "additionalProperties": false, + // "properties": { + // "SourcePath": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Name": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "required": [ + // "Image" + // ], + // "type": "object" + // }, + // "EcsProperties": { + // "additionalProperties": false, + // "properties": { + // "TaskProperties": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Containers": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Command": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "DependsOn": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Condition": { + // "type": "string" + // }, + // "ContainerName": { + // "type": "string" + // } + // }, + // "required": [ + // "ContainerName", + // "Condition" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Environment": { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Essential": { + // "type": "boolean" + // }, + // "Image": { + // "type": "string" + // }, + // "LinuxParameters": { + // "additionalProperties": false, + // "properties": { + // "Devices": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ContainerPath": { + // "type": "string" + // }, + // "HostPath": { + // "type": "string" + // }, + // "Permissions": { + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "InitProcessEnabled": { + // "type": "boolean" + // }, + // "MaxSwap": { + // "type": "integer" + // }, + // "SharedMemorySize": { + // "type": "integer" + // }, + // "Swappiness": { + // "type": "integer" + // }, + // "Tmpfs": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ContainerPath": { + // "type": "string" + // }, + // "MountOptions": { + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Size": { + // "type": "integer" + // } + // }, + // "required": [ + // "ContainerPath", + // "Size" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // }, + // "LogConfiguration": { + // "additionalProperties": false, + // "properties": { + // "LogDriver": { + // "type": "string" + // }, + // "Options": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "SecretOptions": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "ValueFrom": { + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "ValueFrom" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "required": [ + // "LogDriver" + // ], + // "type": "object" + // }, + // "MountPoints": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ContainerPath": { + // "type": "string" + // }, + // "ReadOnly": { + // "type": "boolean" + // }, + // "SourceVolume": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Name": { + // "type": "string" + // }, + // "Privileged": { + // "type": "boolean" + // }, + // "ReadonlyRootFilesystem": { + // "type": "boolean" + // }, + // "RepositoryCredentials": { + // "additionalProperties": false, + // "properties": { + // "CredentialsParameter": { + // "type": "string" + // } + // }, + // "required": [ + // "CredentialsParameter" + // ], + // "type": "object" + // }, + // "ResourceRequirements": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Type": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Secrets": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "ValueFrom": { + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "ValueFrom" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Ulimits": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "HardLimit": { + // "type": "integer" + // }, + // "Name": { + // "type": "string" + // }, + // "SoftLimit": { + // "type": "integer" + // } + // }, + // "required": [ + // "HardLimit", + // "Name", + // "SoftLimit" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "User": { + // "type": "string" + // } + // }, + // "required": [ + // "Image" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "ExecutionRoleArn": { + // "type": "string" + // }, + // "IpcMode": { + // "type": "string" + // }, + // "PidMode": { + // "type": "string" + // }, + // "TaskRoleArn": { + // "type": "string" + // }, + // "Volumes": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "EfsVolumeConfiguration": { + // "additionalProperties": false, + // "properties": { + // "AuthorizationConfig": { + // "additionalProperties": false, + // "properties": { + // "AccessPointId": { + // "type": "string" + // }, + // "Iam": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "FileSystemId": { + // "type": "string" + // }, + // "RootDirectory": { + // "type": "string" + // }, + // "TransitEncryption": { + // "type": "string" + // }, + // "TransitEncryptionPort": { + // "type": "integer" + // } + // }, + // "required": [ + // "FileSystemId" + // ], + // "type": "object" + // }, + // "Host": { + // "additionalProperties": false, + // "properties": { + // "SourcePath": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Name": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "required": [ + // "TaskProperties" + // ], + // "type": "object" + // }, + // "EksProperties": { + // "additionalProperties": false, + // "properties": { + // "PodProperties": { + // "additionalProperties": false, + // "properties": { + // "Containers": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Args": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Command": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Env": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Image": { + // "type": "string" + // }, + // "ImagePullPolicy": { + // "type": "string" + // }, + // "Name": { + // "type": "string" + // }, + // "Resources": { + // "additionalProperties": false, + // "properties": { + // "Limits": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Requests": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "SecurityContext": { + // "additionalProperties": false, + // "properties": { + // "AllowPrivilegeEscalation": { + // "type": "boolean" + // }, + // "Privileged": { + // "type": "boolean" + // }, + // "ReadOnlyRootFilesystem": { + // "type": "boolean" + // }, + // "RunAsGroup": { + // "type": "integer" + // }, + // "RunAsNonRoot": { + // "type": "boolean" + // }, + // "RunAsUser": { + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "VolumeMounts": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "MountPath": { + // "type": "string" + // }, + // "Name": { + // "type": "string" + // }, + // "ReadOnly": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "required": [ + // "Image" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "DnsPolicy": { + // "type": "string" + // }, + // "HostNetwork": { + // "type": "boolean" + // }, + // "ImagePullSecrets": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "InitContainers": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Args": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Command": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Env": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Image": { + // "type": "string" + // }, + // "ImagePullPolicy": { + // "type": "string" + // }, + // "Name": { + // "type": "string" + // }, + // "Resources": { + // "additionalProperties": false, + // "properties": { + // "Limits": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Requests": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "SecurityContext": { + // "additionalProperties": false, + // "properties": { + // "AllowPrivilegeEscalation": { + // "type": "boolean" + // }, + // "Privileged": { + // "type": "boolean" + // }, + // "ReadOnlyRootFilesystem": { + // "type": "boolean" + // }, + // "RunAsGroup": { + // "type": "integer" + // }, + // "RunAsNonRoot": { + // "type": "boolean" + // }, + // "RunAsUser": { + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "VolumeMounts": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "MountPath": { + // "type": "string" + // }, + // "Name": { + // "type": "string" + // }, + // "ReadOnly": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "required": [ + // "Image" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Metadata": { + // "additionalProperties": false, + // "properties": { + // "Labels": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "ServiceAccountName": { + // "type": "string" + // }, + // "ShareProcessNamespace": { + // "type": "boolean" + // }, + // "Volumes": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "EmptyDir": { + // "additionalProperties": false, + // "properties": { + // "Medium": { + // "type": "string" + // }, + // "SizeLimit": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "HostPath": { + // "additionalProperties": false, + // "properties": { + // "Path": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Name": { + // "type": "string" + // }, + // "Secret": { + // "additionalProperties": false, + // "properties": { + // "Optional": { + // "type": "boolean" + // }, + // "SecretName": { + // "type": "string" + // } + // }, + // "required": [ + // "SecretName" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "InstanceTypes": { + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "TargetNodes": { + // "type": "string" + // } + // }, + // "required": [ + // "TargetNodes" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "NumNodes": { + // "type": "integer" + // } + // }, + // "required": [ + // "NumNodes", + // "MainNode", + // "NodeRangeProperties" + // ], + // "type": "object" + // } + "node_properties": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MainNode + "main_node": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: NodeRangeProperties + "node_range_properties": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Container + "container": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Command + "command": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Environment + "environment": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EphemeralStorage + "ephemeral_storage": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SizeInGiB + "size_in_gi_b": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ExecutionRoleArn + "execution_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Image + "image": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InstanceType + "instance_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: JobRoleArn + "job_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LinuxParameters + "linux_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Devices + "devices": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: HostPath + "host_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Permissions + "permissions": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InitProcessEnabled + "init_process_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MaxSwap + "max_swap": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SharedMemorySize + "shared_memory_size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Swappiness + "swappiness": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tmpfs + "tmpfs": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MountOptions + "mount_options": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Size + "size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LogConfiguration + "log_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: LogDriver + "log_driver": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Options + "options": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SecretOptions + "secret_options": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ValueFrom + "value_from": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Memory + "memory": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MountPoints + "mount_points": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ReadOnly + "read_only": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SourceVolume + "source_volume": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Privileged + "privileged": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ReadonlyRootFilesystem + "readonly_root_filesystem": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RepositoryCredentials + "repository_credentials": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CredentialsParameter + "credentials_parameter": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ResourceRequirements + "resource_requirements": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RuntimePlatform + "runtime_platform": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CpuArchitecture + "cpu_architecture": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: OperatingSystemFamily + "operating_system_family": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Secrets + "secrets": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ValueFrom + "value_from": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Ulimits + "ulimits": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: HardLimit + "hard_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SoftLimit + "soft_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: User + "user": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Vcpus + "vcpus": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Volumes + "volumes": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EfsVolumeConfiguration + "efs_volume_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuthorizationConfig + "authorization_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AccessPointId + "access_point_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Iam + "iam": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: FileSystemId + "file_system_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RootDirectory + "root_directory": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TransitEncryption + "transit_encryption": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TransitEncryptionPort + "transit_encryption_port": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Host + "host": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SourcePath + "source_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EcsProperties + "ecs_properties": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: TaskProperties + "task_properties": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Containers + "containers": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Command + "command": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DependsOn + "depends_on": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Condition + "condition": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ContainerName + "container_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Environment + "environment": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Essential + "essential": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Image + "image": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LinuxParameters + "linux_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Devices + "devices": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: HostPath + "host_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Permissions + "permissions": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InitProcessEnabled + "init_process_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MaxSwap + "max_swap": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SharedMemorySize + "shared_memory_size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Swappiness + "swappiness": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tmpfs + "tmpfs": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MountOptions + "mount_options": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Size + "size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LogConfiguration + "log_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: LogDriver + "log_driver": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Options + "options": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SecretOptions + "secret_options": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ValueFrom + "value_from": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MountPoints + "mount_points": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ReadOnly + "read_only": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SourceVolume + "source_volume": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Privileged + "privileged": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ReadonlyRootFilesystem + "readonly_root_filesystem": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RepositoryCredentials + "repository_credentials": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CredentialsParameter + "credentials_parameter": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ResourceRequirements + "resource_requirements": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Secrets + "secrets": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ValueFrom + "value_from": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Ulimits + "ulimits": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: HardLimit + "hard_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SoftLimit + "soft_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: User + "user": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ExecutionRoleArn + "execution_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: IpcMode + "ipc_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PidMode + "pid_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TaskRoleArn + "task_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Volumes + "volumes": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EfsVolumeConfiguration + "efs_volume_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuthorizationConfig + "authorization_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AccessPointId + "access_point_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Iam + "iam": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: FileSystemId + "file_system_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RootDirectory + "root_directory": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TransitEncryption + "transit_encryption": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TransitEncryptionPort + "transit_encryption_port": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Host + "host": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SourcePath + "source_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + fwvalidators.NotNullList(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EksProperties + "eks_properties": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PodProperties + "pod_properties": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Containers + "containers": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Args + "args": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Command + "command": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Env + "env": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Image + "image": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ImagePullPolicy + "image_pull_policy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Resources + "resources": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Limits + "limits": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Requests + "requests": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SecurityContext + "security_context": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AllowPrivilegeEscalation + "allow_privilege_escalation": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Privileged + "privileged": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ReadOnlyRootFilesystem + "read_only_root_filesystem": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RunAsGroup + "run_as_group": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RunAsNonRoot + "run_as_non_root": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RunAsUser + "run_as_user": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: VolumeMounts + "volume_mounts": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MountPath + "mount_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ReadOnly + "read_only": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DnsPolicy + "dns_policy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: HostNetwork + "host_network": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ImagePullSecrets + "image_pull_secrets": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InitContainers + "init_containers": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Args + "args": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Command + "command": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Env + "env": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Image + "image": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ImagePullPolicy + "image_pull_policy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Resources + "resources": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Limits + "limits": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Requests + "requests": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SecurityContext + "security_context": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AllowPrivilegeEscalation + "allow_privilege_escalation": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Privileged + "privileged": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ReadOnlyRootFilesystem + "read_only_root_filesystem": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RunAsGroup + "run_as_group": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RunAsNonRoot + "run_as_non_root": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RunAsUser + "run_as_user": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: VolumeMounts + "volume_mounts": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MountPath + "mount_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ReadOnly + "read_only": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Metadata + "metadata": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Labels + "labels": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ServiceAccountName + "service_account_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ShareProcessNamespace + "share_process_namespace": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Volumes + "volumes": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EmptyDir + "empty_dir": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Medium + "medium": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SizeLimit + "size_limit": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: HostPath + "host_path": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Path + "path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Secret + "secret": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Optional + "optional": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SecretName + "secret_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InstanceTypes + "instance_types": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TargetNodes + "target_nodes": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + fwvalidators.NotNullList(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: NumNodes + "num_nodes": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + fwvalidators.NotNullInt64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Parameters + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // } + "parameters": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PlatformCapabilities + // CloudFormation resource type schema: + // + // { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // } + "platform_capabilities": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PropagateTags + // CloudFormation resource type schema: + // + // { + // "type": "boolean" + // } + "propagate_tags": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RetryStrategy + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "Attempts": { + // "type": "integer" + // }, + // "EvaluateOnExit": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Action": { + // "type": "string" + // }, + // "OnExitCode": { + // "type": "string" + // }, + // "OnReason": { + // "type": "string" + // }, + // "OnStatusReason": { + // "type": "string" + // } + // }, + // "required": [ + // "Action" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // } + "retry_strategy": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Attempts + "attempts": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EvaluateOnExit + "evaluate_on_exit": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Action + "action": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: OnExitCode + "on_exit_code": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: OnReason + "on_reason": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: OnStatusReason + "on_status_reason": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SchedulingPriority + // CloudFormation resource type schema: + // + // { + // "type": "integer" + // } + "scheduling_priority": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // } + "tags": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A key-value pair to associate with a resource.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Timeout + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "AttemptDurationSeconds": { + // "type": "integer" + // } + // }, + // "type": "object" + // } + "timeout": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AttemptDurationSeconds + "attempt_duration_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Type + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*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::Batch::JobDefinition", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Batch::JobDefinition").WithTerraformTypeName("awscc_batch_job_definition") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "access_point_id": "AccessPointId", + "action": "Action", + "allow_privilege_escalation": "AllowPrivilegeEscalation", + "args": "Args", + "assign_public_ip": "AssignPublicIp", + "attempt_duration_seconds": "AttemptDurationSeconds", + "attempts": "Attempts", + "authorization_config": "AuthorizationConfig", + "command": "Command", + "condition": "Condition", + "container": "Container", + "container_name": "ContainerName", + "container_path": "ContainerPath", + "container_properties": "ContainerProperties", + "containers": "Containers", + "cpu_architecture": "CpuArchitecture", + "credentials_parameter": "CredentialsParameter", + "depends_on": "DependsOn", + "devices": "Devices", + "dns_policy": "DnsPolicy", + "ecs_properties": "EcsProperties", + "efs_volume_configuration": "EfsVolumeConfiguration", + "eks_properties": "EksProperties", + "empty_dir": "EmptyDir", + "env": "Env", + "environment": "Environment", + "ephemeral_storage": "EphemeralStorage", + "essential": "Essential", + "evaluate_on_exit": "EvaluateOnExit", + "execution_role_arn": "ExecutionRoleArn", + "fargate_platform_configuration": "FargatePlatformConfiguration", + "file_system_id": "FileSystemId", + "hard_limit": "HardLimit", + "host": "Host", + "host_network": "HostNetwork", + "host_path": "HostPath", + "iam": "Iam", + "image": "Image", + "image_pull_policy": "ImagePullPolicy", + "image_pull_secrets": "ImagePullSecrets", + "init_containers": "InitContainers", + "init_process_enabled": "InitProcessEnabled", + "instance_type": "InstanceType", + "instance_types": "InstanceTypes", + "ipc_mode": "IpcMode", + "job_definition_name": "JobDefinitionName", + "job_role_arn": "JobRoleArn", + "labels": "Labels", + "limits": "Limits", + "linux_parameters": "LinuxParameters", + "log_configuration": "LogConfiguration", + "log_driver": "LogDriver", + "main_node": "MainNode", + "max_swap": "MaxSwap", + "medium": "Medium", + "memory": "Memory", + "metadata": "Metadata", + "mount_options": "MountOptions", + "mount_path": "MountPath", + "mount_points": "MountPoints", + "name": "Name", + "network_configuration": "NetworkConfiguration", + "node_properties": "NodeProperties", + "node_range_properties": "NodeRangeProperties", + "num_nodes": "NumNodes", + "on_exit_code": "OnExitCode", + "on_reason": "OnReason", + "on_status_reason": "OnStatusReason", + "operating_system_family": "OperatingSystemFamily", + "optional": "Optional", + "options": "Options", + "parameters": "Parameters", + "path": "Path", + "permissions": "Permissions", + "pid_mode": "PidMode", + "platform_capabilities": "PlatformCapabilities", + "platform_version": "PlatformVersion", + "pod_properties": "PodProperties", + "privileged": "Privileged", + "propagate_tags": "PropagateTags", + "read_only": "ReadOnly", + "read_only_root_filesystem": "ReadOnlyRootFilesystem", + "readonly_root_filesystem": "ReadonlyRootFilesystem", + "repository_credentials": "RepositoryCredentials", + "requests": "Requests", + "resource_requirements": "ResourceRequirements", + "resources": "Resources", + "retry_strategy": "RetryStrategy", + "root_directory": "RootDirectory", + "run_as_group": "RunAsGroup", + "run_as_non_root": "RunAsNonRoot", + "run_as_user": "RunAsUser", + "runtime_platform": "RuntimePlatform", + "scheduling_priority": "SchedulingPriority", + "secret": "Secret", + "secret_name": "SecretName", + "secret_options": "SecretOptions", + "secrets": "Secrets", + "security_context": "SecurityContext", + "service_account_name": "ServiceAccountName", + "share_process_namespace": "ShareProcessNamespace", + "shared_memory_size": "SharedMemorySize", + "size": "Size", + "size_in_gi_b": "SizeInGiB", + "size_limit": "SizeLimit", + "soft_limit": "SoftLimit", + "source_path": "SourcePath", + "source_volume": "SourceVolume", + "swappiness": "Swappiness", + "tags": "Tags", + "target_nodes": "TargetNodes", + "task_properties": "TaskProperties", + "task_role_arn": "TaskRoleArn", + "timeout": "Timeout", + "tmpfs": "Tmpfs", + "transit_encryption": "TransitEncryption", + "transit_encryption_port": "TransitEncryptionPort", + "type": "Type", + "ulimits": "Ulimits", + "user": "User", + "value": "Value", + "value_from": "ValueFrom", + "vcpus": "Vcpus", + "volume_mounts": "VolumeMounts", + "volumes": "Volumes", + }) + + 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/batch/job_definition_resource_gen_test.go b/internal/aws/batch/job_definition_resource_gen_test.go new file mode 100644 index 0000000000..8acec80d14 --- /dev/null +++ b/internal/aws/batch/job_definition_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 batch_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSBatchJobDefinition_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Batch::JobDefinition", "awscc_batch_job_definition", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/batch/job_definition_singular_data_source_gen.go b/internal/aws/batch/job_definition_singular_data_source_gen.go new file mode 100644 index 0000000000..9ae24ba466 --- /dev/null +++ b/internal/aws/batch/job_definition_singular_data_source_gen.go @@ -0,0 +1,4689 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package batch + +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_batch_job_definition", jobDefinitionDataSource) +} + +// jobDefinitionDataSource returns the Terraform awscc_batch_job_definition data source. +// This Terraform data source corresponds to the CloudFormation AWS::Batch::JobDefinition resource. +func jobDefinitionDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerProperties + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "Command": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Environment": { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "EphemeralStorage": { + // "additionalProperties": false, + // "properties": { + // "SizeInGiB": { + // "type": "integer" + // } + // }, + // "required": [ + // "SizeInGiB" + // ], + // "type": "object" + // }, + // "ExecutionRoleArn": { + // "type": "string" + // }, + // "FargatePlatformConfiguration": { + // "additionalProperties": false, + // "properties": { + // "PlatformVersion": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Image": { + // "type": "string" + // }, + // "JobRoleArn": { + // "type": "string" + // }, + // "LinuxParameters": { + // "additionalProperties": false, + // "properties": { + // "Devices": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ContainerPath": { + // "type": "string" + // }, + // "HostPath": { + // "type": "string" + // }, + // "Permissions": { + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "InitProcessEnabled": { + // "type": "boolean" + // }, + // "MaxSwap": { + // "type": "integer" + // }, + // "SharedMemorySize": { + // "type": "integer" + // }, + // "Swappiness": { + // "type": "integer" + // }, + // "Tmpfs": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ContainerPath": { + // "type": "string" + // }, + // "MountOptions": { + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Size": { + // "type": "integer" + // } + // }, + // "required": [ + // "ContainerPath", + // "Size" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // }, + // "LogConfiguration": { + // "additionalProperties": false, + // "properties": { + // "LogDriver": { + // "type": "string" + // }, + // "Options": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "SecretOptions": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "ValueFrom": { + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "ValueFrom" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "required": [ + // "LogDriver" + // ], + // "type": "object" + // }, + // "Memory": { + // "type": "integer" + // }, + // "MountPoints": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ContainerPath": { + // "type": "string" + // }, + // "ReadOnly": { + // "type": "boolean" + // }, + // "SourceVolume": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "NetworkConfiguration": { + // "additionalProperties": false, + // "properties": { + // "AssignPublicIp": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Privileged": { + // "type": "boolean" + // }, + // "ReadonlyRootFilesystem": { + // "type": "boolean" + // }, + // "RepositoryCredentials": { + // "additionalProperties": false, + // "properties": { + // "CredentialsParameter": { + // "type": "string" + // } + // }, + // "required": [ + // "CredentialsParameter" + // ], + // "type": "object" + // }, + // "ResourceRequirements": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Type": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "RuntimePlatform": { + // "additionalProperties": false, + // "properties": { + // "CpuArchitecture": { + // "type": "string" + // }, + // "OperatingSystemFamily": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Secrets": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "ValueFrom": { + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "ValueFrom" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Ulimits": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "HardLimit": { + // "type": "integer" + // }, + // "Name": { + // "type": "string" + // }, + // "SoftLimit": { + // "type": "integer" + // } + // }, + // "required": [ + // "HardLimit", + // "Name", + // "SoftLimit" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "User": { + // "type": "string" + // }, + // "Vcpus": { + // "type": "integer" + // }, + // "Volumes": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "EfsVolumeConfiguration": { + // "additionalProperties": false, + // "properties": { + // "AuthorizationConfig": { + // "additionalProperties": false, + // "properties": { + // "AccessPointId": { + // "type": "string" + // }, + // "Iam": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "FileSystemId": { + // "type": "string" + // }, + // "RootDirectory": { + // "type": "string" + // }, + // "TransitEncryption": { + // "type": "string" + // }, + // "TransitEncryptionPort": { + // "type": "integer" + // } + // }, + // "required": [ + // "FileSystemId" + // ], + // "type": "object" + // }, + // "Host": { + // "additionalProperties": false, + // "properties": { + // "SourcePath": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Name": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "required": [ + // "Image" + // ], + // "type": "object" + // } + "container_properties": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Command + "command": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Environment + "environment": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EphemeralStorage + "ephemeral_storage": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SizeInGiB + "size_in_gi_b": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ExecutionRoleArn + "execution_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FargatePlatformConfiguration + "fargate_platform_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PlatformVersion + "platform_version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Image + "image": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: JobRoleArn + "job_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LinuxParameters + "linux_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Devices + "devices": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: HostPath + "host_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Permissions + "permissions": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InitProcessEnabled + "init_process_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MaxSwap + "max_swap": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SharedMemorySize + "shared_memory_size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Swappiness + "swappiness": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tmpfs + "tmpfs": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MountOptions + "mount_options": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Size + "size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LogConfiguration + "log_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: LogDriver + "log_driver": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Options + "options": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SecretOptions + "secret_options": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ValueFrom + "value_from": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Memory + "memory": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MountPoints + "mount_points": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ReadOnly + "read_only": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SourceVolume + "source_volume": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: NetworkConfiguration + "network_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AssignPublicIp + "assign_public_ip": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Privileged + "privileged": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ReadonlyRootFilesystem + "readonly_root_filesystem": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RepositoryCredentials + "repository_credentials": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CredentialsParameter + "credentials_parameter": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ResourceRequirements + "resource_requirements": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RuntimePlatform + "runtime_platform": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CpuArchitecture + "cpu_architecture": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: OperatingSystemFamily + "operating_system_family": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Secrets + "secrets": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ValueFrom + "value_from": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Ulimits + "ulimits": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: HardLimit + "hard_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SoftLimit + "soft_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: User + "user": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Vcpus + "vcpus": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Volumes + "volumes": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EfsVolumeConfiguration + "efs_volume_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuthorizationConfig + "authorization_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AccessPointId + "access_point_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Iam + "iam": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FileSystemId + "file_system_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RootDirectory + "root_directory": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TransitEncryption + "transit_encryption": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TransitEncryptionPort + "transit_encryption_port": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Host + "host": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SourcePath + "source_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EcsProperties + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "TaskProperties": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Containers": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Command": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "DependsOn": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Condition": { + // "type": "string" + // }, + // "ContainerName": { + // "type": "string" + // } + // }, + // "required": [ + // "ContainerName", + // "Condition" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Environment": { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Essential": { + // "type": "boolean" + // }, + // "Image": { + // "type": "string" + // }, + // "LinuxParameters": { + // "additionalProperties": false, + // "properties": { + // "Devices": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ContainerPath": { + // "type": "string" + // }, + // "HostPath": { + // "type": "string" + // }, + // "Permissions": { + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "InitProcessEnabled": { + // "type": "boolean" + // }, + // "MaxSwap": { + // "type": "integer" + // }, + // "SharedMemorySize": { + // "type": "integer" + // }, + // "Swappiness": { + // "type": "integer" + // }, + // "Tmpfs": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ContainerPath": { + // "type": "string" + // }, + // "MountOptions": { + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Size": { + // "type": "integer" + // } + // }, + // "required": [ + // "ContainerPath", + // "Size" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // }, + // "LogConfiguration": { + // "additionalProperties": false, + // "properties": { + // "LogDriver": { + // "type": "string" + // }, + // "Options": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "SecretOptions": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "ValueFrom": { + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "ValueFrom" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "required": [ + // "LogDriver" + // ], + // "type": "object" + // }, + // "MountPoints": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ContainerPath": { + // "type": "string" + // }, + // "ReadOnly": { + // "type": "boolean" + // }, + // "SourceVolume": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Name": { + // "type": "string" + // }, + // "Privileged": { + // "type": "boolean" + // }, + // "ReadonlyRootFilesystem": { + // "type": "boolean" + // }, + // "RepositoryCredentials": { + // "additionalProperties": false, + // "properties": { + // "CredentialsParameter": { + // "type": "string" + // } + // }, + // "required": [ + // "CredentialsParameter" + // ], + // "type": "object" + // }, + // "ResourceRequirements": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Type": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Secrets": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "ValueFrom": { + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "ValueFrom" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Ulimits": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "HardLimit": { + // "type": "integer" + // }, + // "Name": { + // "type": "string" + // }, + // "SoftLimit": { + // "type": "integer" + // } + // }, + // "required": [ + // "HardLimit", + // "Name", + // "SoftLimit" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "User": { + // "type": "string" + // } + // }, + // "required": [ + // "Image" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "EphemeralStorage": { + // "additionalProperties": false, + // "properties": { + // "SizeInGiB": { + // "type": "integer" + // } + // }, + // "required": [ + // "SizeInGiB" + // ], + // "type": "object" + // }, + // "ExecutionRoleArn": { + // "type": "string" + // }, + // "IpcMode": { + // "type": "string" + // }, + // "NetworkConfiguration": { + // "additionalProperties": false, + // "properties": { + // "AssignPublicIp": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "PidMode": { + // "type": "string" + // }, + // "PlatformVersion": { + // "type": "string" + // }, + // "RuntimePlatform": { + // "additionalProperties": false, + // "properties": { + // "CpuArchitecture": { + // "type": "string" + // }, + // "OperatingSystemFamily": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "TaskRoleArn": { + // "type": "string" + // }, + // "Volumes": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "EfsVolumeConfiguration": { + // "additionalProperties": false, + // "properties": { + // "AuthorizationConfig": { + // "additionalProperties": false, + // "properties": { + // "AccessPointId": { + // "type": "string" + // }, + // "Iam": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "FileSystemId": { + // "type": "string" + // }, + // "RootDirectory": { + // "type": "string" + // }, + // "TransitEncryption": { + // "type": "string" + // }, + // "TransitEncryptionPort": { + // "type": "integer" + // } + // }, + // "required": [ + // "FileSystemId" + // ], + // "type": "object" + // }, + // "Host": { + // "additionalProperties": false, + // "properties": { + // "SourcePath": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Name": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "required": [ + // "TaskProperties" + // ], + // "type": "object" + // } + "ecs_properties": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: TaskProperties + "task_properties": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Containers + "containers": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Command + "command": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DependsOn + "depends_on": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Condition + "condition": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ContainerName + "container_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Environment + "environment": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Essential + "essential": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Image + "image": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LinuxParameters + "linux_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Devices + "devices": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: HostPath + "host_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Permissions + "permissions": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InitProcessEnabled + "init_process_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MaxSwap + "max_swap": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SharedMemorySize + "shared_memory_size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Swappiness + "swappiness": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tmpfs + "tmpfs": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MountOptions + "mount_options": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Size + "size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LogConfiguration + "log_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: LogDriver + "log_driver": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Options + "options": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SecretOptions + "secret_options": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ValueFrom + "value_from": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MountPoints + "mount_points": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ReadOnly + "read_only": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SourceVolume + "source_volume": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Privileged + "privileged": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ReadonlyRootFilesystem + "readonly_root_filesystem": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RepositoryCredentials + "repository_credentials": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CredentialsParameter + "credentials_parameter": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ResourceRequirements + "resource_requirements": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Secrets + "secrets": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ValueFrom + "value_from": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Ulimits + "ulimits": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: HardLimit + "hard_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SoftLimit + "soft_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: User + "user": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EphemeralStorage + "ephemeral_storage": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SizeInGiB + "size_in_gi_b": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ExecutionRoleArn + "execution_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: IpcMode + "ipc_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: NetworkConfiguration + "network_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AssignPublicIp + "assign_public_ip": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PidMode + "pid_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PlatformVersion + "platform_version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RuntimePlatform + "runtime_platform": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CpuArchitecture + "cpu_architecture": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: OperatingSystemFamily + "operating_system_family": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TaskRoleArn + "task_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Volumes + "volumes": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EfsVolumeConfiguration + "efs_volume_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuthorizationConfig + "authorization_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AccessPointId + "access_point_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Iam + "iam": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FileSystemId + "file_system_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RootDirectory + "root_directory": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TransitEncryption + "transit_encryption": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TransitEncryptionPort + "transit_encryption_port": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Host + "host": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SourcePath + "source_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EksProperties + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "PodProperties": { + // "additionalProperties": false, + // "properties": { + // "Containers": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Args": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Command": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Env": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Image": { + // "type": "string" + // }, + // "ImagePullPolicy": { + // "type": "string" + // }, + // "Name": { + // "type": "string" + // }, + // "Resources": { + // "additionalProperties": false, + // "properties": { + // "Limits": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Requests": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "SecurityContext": { + // "additionalProperties": false, + // "properties": { + // "AllowPrivilegeEscalation": { + // "type": "boolean" + // }, + // "Privileged": { + // "type": "boolean" + // }, + // "ReadOnlyRootFilesystem": { + // "type": "boolean" + // }, + // "RunAsGroup": { + // "type": "integer" + // }, + // "RunAsNonRoot": { + // "type": "boolean" + // }, + // "RunAsUser": { + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "VolumeMounts": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "MountPath": { + // "type": "string" + // }, + // "Name": { + // "type": "string" + // }, + // "ReadOnly": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "required": [ + // "Image" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "DnsPolicy": { + // "type": "string" + // }, + // "HostNetwork": { + // "type": "boolean" + // }, + // "ImagePullSecrets": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "InitContainers": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Args": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Command": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Env": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Image": { + // "type": "string" + // }, + // "ImagePullPolicy": { + // "type": "string" + // }, + // "Name": { + // "type": "string" + // }, + // "Resources": { + // "additionalProperties": false, + // "properties": { + // "Limits": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Requests": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "SecurityContext": { + // "additionalProperties": false, + // "properties": { + // "AllowPrivilegeEscalation": { + // "type": "boolean" + // }, + // "Privileged": { + // "type": "boolean" + // }, + // "ReadOnlyRootFilesystem": { + // "type": "boolean" + // }, + // "RunAsGroup": { + // "type": "integer" + // }, + // "RunAsNonRoot": { + // "type": "boolean" + // }, + // "RunAsUser": { + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "VolumeMounts": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "MountPath": { + // "type": "string" + // }, + // "Name": { + // "type": "string" + // }, + // "ReadOnly": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "required": [ + // "Image" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Metadata": { + // "additionalProperties": false, + // "properties": { + // "Labels": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "ServiceAccountName": { + // "type": "string" + // }, + // "ShareProcessNamespace": { + // "type": "boolean" + // }, + // "Volumes": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "EmptyDir": { + // "additionalProperties": false, + // "properties": { + // "Medium": { + // "type": "string" + // }, + // "SizeLimit": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "HostPath": { + // "additionalProperties": false, + // "properties": { + // "Path": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Name": { + // "type": "string" + // }, + // "Secret": { + // "additionalProperties": false, + // "properties": { + // "Optional": { + // "type": "boolean" + // }, + // "SecretName": { + // "type": "string" + // } + // }, + // "required": [ + // "SecretName" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // } + "eks_properties": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PodProperties + "pod_properties": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Containers + "containers": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Args + "args": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Command + "command": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Env + "env": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Image + "image": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ImagePullPolicy + "image_pull_policy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Resources + "resources": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Limits + "limits": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Requests + "requests": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SecurityContext + "security_context": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AllowPrivilegeEscalation + "allow_privilege_escalation": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Privileged + "privileged": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ReadOnlyRootFilesystem + "read_only_root_filesystem": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RunAsGroup + "run_as_group": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RunAsNonRoot + "run_as_non_root": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RunAsUser + "run_as_user": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: VolumeMounts + "volume_mounts": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MountPath + "mount_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ReadOnly + "read_only": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DnsPolicy + "dns_policy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: HostNetwork + "host_network": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ImagePullSecrets + "image_pull_secrets": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InitContainers + "init_containers": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Args + "args": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Command + "command": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Env + "env": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Image + "image": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ImagePullPolicy + "image_pull_policy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Resources + "resources": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Limits + "limits": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Requests + "requests": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SecurityContext + "security_context": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AllowPrivilegeEscalation + "allow_privilege_escalation": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Privileged + "privileged": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ReadOnlyRootFilesystem + "read_only_root_filesystem": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RunAsGroup + "run_as_group": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RunAsNonRoot + "run_as_non_root": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RunAsUser + "run_as_user": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: VolumeMounts + "volume_mounts": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MountPath + "mount_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ReadOnly + "read_only": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Metadata + "metadata": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Labels + "labels": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ServiceAccountName + "service_account_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ShareProcessNamespace + "share_process_namespace": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Volumes + "volumes": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EmptyDir + "empty_dir": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Medium + "medium": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SizeLimit + "size_limit": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: HostPath + "host_path": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Path + "path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Secret + "secret": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Optional + "optional": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SecretName + "secret_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: JobDefinitionName + // CloudFormation resource type schema: + // + // { + // "maxLength": 128, + // "type": "string" + // } + "job_definition_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: NodeProperties + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "MainNode": { + // "type": "integer" + // }, + // "NodeRangeProperties": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Container": { + // "additionalProperties": false, + // "properties": { + // "Command": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Environment": { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "EphemeralStorage": { + // "additionalProperties": false, + // "properties": { + // "SizeInGiB": { + // "type": "integer" + // } + // }, + // "required": [ + // "SizeInGiB" + // ], + // "type": "object" + // }, + // "ExecutionRoleArn": { + // "type": "string" + // }, + // "Image": { + // "type": "string" + // }, + // "InstanceType": { + // "type": "string" + // }, + // "JobRoleArn": { + // "type": "string" + // }, + // "LinuxParameters": { + // "additionalProperties": false, + // "properties": { + // "Devices": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ContainerPath": { + // "type": "string" + // }, + // "HostPath": { + // "type": "string" + // }, + // "Permissions": { + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "InitProcessEnabled": { + // "type": "boolean" + // }, + // "MaxSwap": { + // "type": "integer" + // }, + // "SharedMemorySize": { + // "type": "integer" + // }, + // "Swappiness": { + // "type": "integer" + // }, + // "Tmpfs": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ContainerPath": { + // "type": "string" + // }, + // "MountOptions": { + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Size": { + // "type": "integer" + // } + // }, + // "required": [ + // "ContainerPath", + // "Size" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // }, + // "LogConfiguration": { + // "additionalProperties": false, + // "properties": { + // "LogDriver": { + // "type": "string" + // }, + // "Options": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "SecretOptions": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "ValueFrom": { + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "ValueFrom" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "required": [ + // "LogDriver" + // ], + // "type": "object" + // }, + // "Memory": { + // "type": "integer" + // }, + // "MountPoints": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ContainerPath": { + // "type": "string" + // }, + // "ReadOnly": { + // "type": "boolean" + // }, + // "SourceVolume": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Privileged": { + // "type": "boolean" + // }, + // "ReadonlyRootFilesystem": { + // "type": "boolean" + // }, + // "RepositoryCredentials": { + // "additionalProperties": false, + // "properties": { + // "CredentialsParameter": { + // "type": "string" + // } + // }, + // "required": [ + // "CredentialsParameter" + // ], + // "type": "object" + // }, + // "ResourceRequirements": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Type": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "RuntimePlatform": { + // "additionalProperties": false, + // "properties": { + // "CpuArchitecture": { + // "type": "string" + // }, + // "OperatingSystemFamily": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Secrets": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "ValueFrom": { + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "ValueFrom" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Ulimits": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "HardLimit": { + // "type": "integer" + // }, + // "Name": { + // "type": "string" + // }, + // "SoftLimit": { + // "type": "integer" + // } + // }, + // "required": [ + // "HardLimit", + // "Name", + // "SoftLimit" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "User": { + // "type": "string" + // }, + // "Vcpus": { + // "type": "integer" + // }, + // "Volumes": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "EfsVolumeConfiguration": { + // "additionalProperties": false, + // "properties": { + // "AuthorizationConfig": { + // "additionalProperties": false, + // "properties": { + // "AccessPointId": { + // "type": "string" + // }, + // "Iam": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "FileSystemId": { + // "type": "string" + // }, + // "RootDirectory": { + // "type": "string" + // }, + // "TransitEncryption": { + // "type": "string" + // }, + // "TransitEncryptionPort": { + // "type": "integer" + // } + // }, + // "required": [ + // "FileSystemId" + // ], + // "type": "object" + // }, + // "Host": { + // "additionalProperties": false, + // "properties": { + // "SourcePath": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Name": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "required": [ + // "Image" + // ], + // "type": "object" + // }, + // "EcsProperties": { + // "additionalProperties": false, + // "properties": { + // "TaskProperties": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Containers": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Command": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "DependsOn": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Condition": { + // "type": "string" + // }, + // "ContainerName": { + // "type": "string" + // } + // }, + // "required": [ + // "ContainerName", + // "Condition" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Environment": { + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Essential": { + // "type": "boolean" + // }, + // "Image": { + // "type": "string" + // }, + // "LinuxParameters": { + // "additionalProperties": false, + // "properties": { + // "Devices": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ContainerPath": { + // "type": "string" + // }, + // "HostPath": { + // "type": "string" + // }, + // "Permissions": { + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "InitProcessEnabled": { + // "type": "boolean" + // }, + // "MaxSwap": { + // "type": "integer" + // }, + // "SharedMemorySize": { + // "type": "integer" + // }, + // "Swappiness": { + // "type": "integer" + // }, + // "Tmpfs": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ContainerPath": { + // "type": "string" + // }, + // "MountOptions": { + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Size": { + // "type": "integer" + // } + // }, + // "required": [ + // "ContainerPath", + // "Size" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // }, + // "LogConfiguration": { + // "additionalProperties": false, + // "properties": { + // "LogDriver": { + // "type": "string" + // }, + // "Options": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "SecretOptions": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "ValueFrom": { + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "ValueFrom" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "required": [ + // "LogDriver" + // ], + // "type": "object" + // }, + // "MountPoints": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ContainerPath": { + // "type": "string" + // }, + // "ReadOnly": { + // "type": "boolean" + // }, + // "SourceVolume": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Name": { + // "type": "string" + // }, + // "Privileged": { + // "type": "boolean" + // }, + // "ReadonlyRootFilesystem": { + // "type": "boolean" + // }, + // "RepositoryCredentials": { + // "additionalProperties": false, + // "properties": { + // "CredentialsParameter": { + // "type": "string" + // } + // }, + // "required": [ + // "CredentialsParameter" + // ], + // "type": "object" + // }, + // "ResourceRequirements": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Type": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Secrets": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "ValueFrom": { + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "ValueFrom" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Ulimits": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "HardLimit": { + // "type": "integer" + // }, + // "Name": { + // "type": "string" + // }, + // "SoftLimit": { + // "type": "integer" + // } + // }, + // "required": [ + // "HardLimit", + // "Name", + // "SoftLimit" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "User": { + // "type": "string" + // } + // }, + // "required": [ + // "Image" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "ExecutionRoleArn": { + // "type": "string" + // }, + // "IpcMode": { + // "type": "string" + // }, + // "PidMode": { + // "type": "string" + // }, + // "TaskRoleArn": { + // "type": "string" + // }, + // "Volumes": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "EfsVolumeConfiguration": { + // "additionalProperties": false, + // "properties": { + // "AuthorizationConfig": { + // "additionalProperties": false, + // "properties": { + // "AccessPointId": { + // "type": "string" + // }, + // "Iam": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "FileSystemId": { + // "type": "string" + // }, + // "RootDirectory": { + // "type": "string" + // }, + // "TransitEncryption": { + // "type": "string" + // }, + // "TransitEncryptionPort": { + // "type": "integer" + // } + // }, + // "required": [ + // "FileSystemId" + // ], + // "type": "object" + // }, + // "Host": { + // "additionalProperties": false, + // "properties": { + // "SourcePath": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Name": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "required": [ + // "TaskProperties" + // ], + // "type": "object" + // }, + // "EksProperties": { + // "additionalProperties": false, + // "properties": { + // "PodProperties": { + // "additionalProperties": false, + // "properties": { + // "Containers": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Args": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Command": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Env": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Image": { + // "type": "string" + // }, + // "ImagePullPolicy": { + // "type": "string" + // }, + // "Name": { + // "type": "string" + // }, + // "Resources": { + // "additionalProperties": false, + // "properties": { + // "Limits": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Requests": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "SecurityContext": { + // "additionalProperties": false, + // "properties": { + // "AllowPrivilegeEscalation": { + // "type": "boolean" + // }, + // "Privileged": { + // "type": "boolean" + // }, + // "ReadOnlyRootFilesystem": { + // "type": "boolean" + // }, + // "RunAsGroup": { + // "type": "integer" + // }, + // "RunAsNonRoot": { + // "type": "boolean" + // }, + // "RunAsUser": { + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "VolumeMounts": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "MountPath": { + // "type": "string" + // }, + // "Name": { + // "type": "string" + // }, + // "ReadOnly": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "required": [ + // "Image" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "DnsPolicy": { + // "type": "string" + // }, + // "HostNetwork": { + // "type": "boolean" + // }, + // "ImagePullSecrets": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "InitContainers": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Args": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Command": { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Env": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Image": { + // "type": "string" + // }, + // "ImagePullPolicy": { + // "type": "string" + // }, + // "Name": { + // "type": "string" + // }, + // "Resources": { + // "additionalProperties": false, + // "properties": { + // "Limits": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Requests": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "SecurityContext": { + // "additionalProperties": false, + // "properties": { + // "AllowPrivilegeEscalation": { + // "type": "boolean" + // }, + // "Privileged": { + // "type": "boolean" + // }, + // "ReadOnlyRootFilesystem": { + // "type": "boolean" + // }, + // "RunAsGroup": { + // "type": "integer" + // }, + // "RunAsNonRoot": { + // "type": "boolean" + // }, + // "RunAsUser": { + // "type": "integer" + // } + // }, + // "type": "object" + // }, + // "VolumeMounts": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "MountPath": { + // "type": "string" + // }, + // "Name": { + // "type": "string" + // }, + // "ReadOnly": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "required": [ + // "Image" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "Metadata": { + // "additionalProperties": false, + // "properties": { + // "Labels": { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "ServiceAccountName": { + // "type": "string" + // }, + // "ShareProcessNamespace": { + // "type": "boolean" + // }, + // "Volumes": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "EmptyDir": { + // "additionalProperties": false, + // "properties": { + // "Medium": { + // "type": "string" + // }, + // "SizeLimit": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "HostPath": { + // "additionalProperties": false, + // "properties": { + // "Path": { + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Name": { + // "type": "string" + // }, + // "Secret": { + // "additionalProperties": false, + // "properties": { + // "Optional": { + // "type": "boolean" + // }, + // "SecretName": { + // "type": "string" + // } + // }, + // "required": [ + // "SecretName" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "InstanceTypes": { + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "TargetNodes": { + // "type": "string" + // } + // }, + // "required": [ + // "TargetNodes" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // }, + // "NumNodes": { + // "type": "integer" + // } + // }, + // "required": [ + // "NumNodes", + // "MainNode", + // "NodeRangeProperties" + // ], + // "type": "object" + // } + "node_properties": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MainNode + "main_node": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: NodeRangeProperties + "node_range_properties": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Container + "container": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Command + "command": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Environment + "environment": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EphemeralStorage + "ephemeral_storage": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SizeInGiB + "size_in_gi_b": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ExecutionRoleArn + "execution_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Image + "image": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InstanceType + "instance_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: JobRoleArn + "job_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LinuxParameters + "linux_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Devices + "devices": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: HostPath + "host_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Permissions + "permissions": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InitProcessEnabled + "init_process_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MaxSwap + "max_swap": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SharedMemorySize + "shared_memory_size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Swappiness + "swappiness": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tmpfs + "tmpfs": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MountOptions + "mount_options": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Size + "size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LogConfiguration + "log_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: LogDriver + "log_driver": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Options + "options": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SecretOptions + "secret_options": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ValueFrom + "value_from": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Memory + "memory": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MountPoints + "mount_points": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ReadOnly + "read_only": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SourceVolume + "source_volume": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Privileged + "privileged": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ReadonlyRootFilesystem + "readonly_root_filesystem": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RepositoryCredentials + "repository_credentials": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CredentialsParameter + "credentials_parameter": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ResourceRequirements + "resource_requirements": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RuntimePlatform + "runtime_platform": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CpuArchitecture + "cpu_architecture": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: OperatingSystemFamily + "operating_system_family": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Secrets + "secrets": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ValueFrom + "value_from": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Ulimits + "ulimits": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: HardLimit + "hard_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SoftLimit + "soft_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: User + "user": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Vcpus + "vcpus": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Volumes + "volumes": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EfsVolumeConfiguration + "efs_volume_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuthorizationConfig + "authorization_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AccessPointId + "access_point_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Iam + "iam": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FileSystemId + "file_system_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RootDirectory + "root_directory": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TransitEncryption + "transit_encryption": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TransitEncryptionPort + "transit_encryption_port": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Host + "host": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SourcePath + "source_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EcsProperties + "ecs_properties": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: TaskProperties + "task_properties": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Containers + "containers": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Command + "command": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DependsOn + "depends_on": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Condition + "condition": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ContainerName + "container_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Environment + "environment": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Essential + "essential": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Image + "image": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LinuxParameters + "linux_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Devices + "devices": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: HostPath + "host_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Permissions + "permissions": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InitProcessEnabled + "init_process_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MaxSwap + "max_swap": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SharedMemorySize + "shared_memory_size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Swappiness + "swappiness": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tmpfs + "tmpfs": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MountOptions + "mount_options": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Size + "size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LogConfiguration + "log_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: LogDriver + "log_driver": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Options + "options": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SecretOptions + "secret_options": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ValueFrom + "value_from": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MountPoints + "mount_points": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContainerPath + "container_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ReadOnly + "read_only": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SourceVolume + "source_volume": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Privileged + "privileged": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ReadonlyRootFilesystem + "readonly_root_filesystem": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RepositoryCredentials + "repository_credentials": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CredentialsParameter + "credentials_parameter": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ResourceRequirements + "resource_requirements": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Secrets + "secrets": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ValueFrom + "value_from": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Ulimits + "ulimits": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: HardLimit + "hard_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SoftLimit + "soft_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: User + "user": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ExecutionRoleArn + "execution_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: IpcMode + "ipc_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PidMode + "pid_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TaskRoleArn + "task_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Volumes + "volumes": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EfsVolumeConfiguration + "efs_volume_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuthorizationConfig + "authorization_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AccessPointId + "access_point_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Iam + "iam": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FileSystemId + "file_system_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RootDirectory + "root_directory": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TransitEncryption + "transit_encryption": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TransitEncryptionPort + "transit_encryption_port": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Host + "host": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SourcePath + "source_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EksProperties + "eks_properties": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PodProperties + "pod_properties": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Containers + "containers": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Args + "args": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Command + "command": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Env + "env": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Image + "image": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ImagePullPolicy + "image_pull_policy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Resources + "resources": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Limits + "limits": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Requests + "requests": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SecurityContext + "security_context": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AllowPrivilegeEscalation + "allow_privilege_escalation": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Privileged + "privileged": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ReadOnlyRootFilesystem + "read_only_root_filesystem": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RunAsGroup + "run_as_group": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RunAsNonRoot + "run_as_non_root": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RunAsUser + "run_as_user": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: VolumeMounts + "volume_mounts": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MountPath + "mount_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ReadOnly + "read_only": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DnsPolicy + "dns_policy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: HostNetwork + "host_network": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ImagePullSecrets + "image_pull_secrets": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InitContainers + "init_containers": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Args + "args": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Command + "command": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Env + "env": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Image + "image": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ImagePullPolicy + "image_pull_policy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Resources + "resources": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Limits + "limits": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Requests + "requests": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SecurityContext + "security_context": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AllowPrivilegeEscalation + "allow_privilege_escalation": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Privileged + "privileged": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ReadOnlyRootFilesystem + "read_only_root_filesystem": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RunAsGroup + "run_as_group": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RunAsNonRoot + "run_as_non_root": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RunAsUser + "run_as_user": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: VolumeMounts + "volume_mounts": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MountPath + "mount_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ReadOnly + "read_only": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Metadata + "metadata": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Labels + "labels": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ServiceAccountName + "service_account_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ShareProcessNamespace + "share_process_namespace": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Volumes + "volumes": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EmptyDir + "empty_dir": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Medium + "medium": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SizeLimit + "size_limit": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: HostPath + "host_path": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Path + "path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Secret + "secret": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Optional + "optional": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SecretName + "secret_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InstanceTypes + "instance_types": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TargetNodes + "target_nodes": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: NumNodes + "num_nodes": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Parameters + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // } + "parameters": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PlatformCapabilities + // CloudFormation resource type schema: + // + // { + // "insertionOrder": true, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": false + // } + "platform_capabilities": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PropagateTags + // CloudFormation resource type schema: + // + // { + // "type": "boolean" + // } + "propagate_tags": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RetryStrategy + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "Attempts": { + // "type": "integer" + // }, + // "EvaluateOnExit": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Action": { + // "type": "string" + // }, + // "OnExitCode": { + // "type": "string" + // }, + // "OnReason": { + // "type": "string" + // }, + // "OnStatusReason": { + // "type": "string" + // } + // }, + // "required": [ + // "Action" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + // }, + // "type": "object" + // } + "retry_strategy": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Attempts + "attempts": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EvaluateOnExit + "evaluate_on_exit": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Action + "action": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: OnExitCode + "on_exit_code": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: OnReason + "on_reason": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: OnStatusReason + "on_status_reason": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SchedulingPriority + // CloudFormation resource type schema: + // + // { + // "type": "integer" + // } + "scheduling_priority": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // } + "tags": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "A key-value pair to associate with a resource.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Timeout + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "AttemptDurationSeconds": { + // "type": "integer" + // } + // }, + // "type": "object" + // } + "timeout": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AttemptDurationSeconds + "attempt_duration_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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::Batch::JobDefinition", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Batch::JobDefinition").WithTerraformTypeName("awscc_batch_job_definition") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "access_point_id": "AccessPointId", + "action": "Action", + "allow_privilege_escalation": "AllowPrivilegeEscalation", + "args": "Args", + "assign_public_ip": "AssignPublicIp", + "attempt_duration_seconds": "AttemptDurationSeconds", + "attempts": "Attempts", + "authorization_config": "AuthorizationConfig", + "command": "Command", + "condition": "Condition", + "container": "Container", + "container_name": "ContainerName", + "container_path": "ContainerPath", + "container_properties": "ContainerProperties", + "containers": "Containers", + "cpu_architecture": "CpuArchitecture", + "credentials_parameter": "CredentialsParameter", + "depends_on": "DependsOn", + "devices": "Devices", + "dns_policy": "DnsPolicy", + "ecs_properties": "EcsProperties", + "efs_volume_configuration": "EfsVolumeConfiguration", + "eks_properties": "EksProperties", + "empty_dir": "EmptyDir", + "env": "Env", + "environment": "Environment", + "ephemeral_storage": "EphemeralStorage", + "essential": "Essential", + "evaluate_on_exit": "EvaluateOnExit", + "execution_role_arn": "ExecutionRoleArn", + "fargate_platform_configuration": "FargatePlatformConfiguration", + "file_system_id": "FileSystemId", + "hard_limit": "HardLimit", + "host": "Host", + "host_network": "HostNetwork", + "host_path": "HostPath", + "iam": "Iam", + "image": "Image", + "image_pull_policy": "ImagePullPolicy", + "image_pull_secrets": "ImagePullSecrets", + "init_containers": "InitContainers", + "init_process_enabled": "InitProcessEnabled", + "instance_type": "InstanceType", + "instance_types": "InstanceTypes", + "ipc_mode": "IpcMode", + "job_definition_name": "JobDefinitionName", + "job_role_arn": "JobRoleArn", + "labels": "Labels", + "limits": "Limits", + "linux_parameters": "LinuxParameters", + "log_configuration": "LogConfiguration", + "log_driver": "LogDriver", + "main_node": "MainNode", + "max_swap": "MaxSwap", + "medium": "Medium", + "memory": "Memory", + "metadata": "Metadata", + "mount_options": "MountOptions", + "mount_path": "MountPath", + "mount_points": "MountPoints", + "name": "Name", + "network_configuration": "NetworkConfiguration", + "node_properties": "NodeProperties", + "node_range_properties": "NodeRangeProperties", + "num_nodes": "NumNodes", + "on_exit_code": "OnExitCode", + "on_reason": "OnReason", + "on_status_reason": "OnStatusReason", + "operating_system_family": "OperatingSystemFamily", + "optional": "Optional", + "options": "Options", + "parameters": "Parameters", + "path": "Path", + "permissions": "Permissions", + "pid_mode": "PidMode", + "platform_capabilities": "PlatformCapabilities", + "platform_version": "PlatformVersion", + "pod_properties": "PodProperties", + "privileged": "Privileged", + "propagate_tags": "PropagateTags", + "read_only": "ReadOnly", + "read_only_root_filesystem": "ReadOnlyRootFilesystem", + "readonly_root_filesystem": "ReadonlyRootFilesystem", + "repository_credentials": "RepositoryCredentials", + "requests": "Requests", + "resource_requirements": "ResourceRequirements", + "resources": "Resources", + "retry_strategy": "RetryStrategy", + "root_directory": "RootDirectory", + "run_as_group": "RunAsGroup", + "run_as_non_root": "RunAsNonRoot", + "run_as_user": "RunAsUser", + "runtime_platform": "RuntimePlatform", + "scheduling_priority": "SchedulingPriority", + "secret": "Secret", + "secret_name": "SecretName", + "secret_options": "SecretOptions", + "secrets": "Secrets", + "security_context": "SecurityContext", + "service_account_name": "ServiceAccountName", + "share_process_namespace": "ShareProcessNamespace", + "shared_memory_size": "SharedMemorySize", + "size": "Size", + "size_in_gi_b": "SizeInGiB", + "size_limit": "SizeLimit", + "soft_limit": "SoftLimit", + "source_path": "SourcePath", + "source_volume": "SourceVolume", + "swappiness": "Swappiness", + "tags": "Tags", + "target_nodes": "TargetNodes", + "task_properties": "TaskProperties", + "task_role_arn": "TaskRoleArn", + "timeout": "Timeout", + "tmpfs": "Tmpfs", + "transit_encryption": "TransitEncryption", + "transit_encryption_port": "TransitEncryptionPort", + "type": "Type", + "ulimits": "Ulimits", + "user": "User", + "value": "Value", + "value_from": "ValueFrom", + "vcpus": "Vcpus", + "volume_mounts": "VolumeMounts", + "volumes": "Volumes", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/batch/job_definition_singular_data_source_gen_test.go b/internal/aws/batch/job_definition_singular_data_source_gen_test.go new file mode 100644 index 0000000000..d6649c50d1 --- /dev/null +++ b/internal/aws/batch/job_definition_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 batch_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSBatchJobDefinitionDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Batch::JobDefinition", "awscc_batch_job_definition", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSBatchJobDefinitionDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Batch::JobDefinition", "awscc_batch_job_definition", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/cassandra/keyspace_resource_gen.go b/internal/aws/cassandra/keyspace_resource_gen.go index 9ba99829be..116b30534e 100644 --- a/internal/aws/cassandra/keyspace_resource_gen.go +++ b/internal/aws/cassandra/keyspace_resource_gen.go @@ -14,6 +14,7 @@ import ( "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/listplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" @@ -34,6 +35,21 @@ func init() { // This Terraform resource corresponds to the CloudFormation AWS::Cassandra::Keyspace resource. func keyspaceResource(ctx context.Context) (resource.Resource, error) { attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ClientSideTimestampsEnabled + // CloudFormation resource type schema: + // + // { + // "description": "Indicates whether client-side timestamps are enabled (true) or disabled (false) for all tables in the keyspace. To add a Region to a single-Region keyspace with at least one table, the value must be set to true. After you enabled client-side timestamps for a table, you can?t disable it again.", + // "type": "boolean" + // } + "client_side_timestamps_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Indicates whether client-side timestamps are enabled (true) or disabled (false) for all tables in the keyspace. To add a Region to a single-Region keyspace with at least one table, the value must be set to true. After you enabled client-side timestamps for a table, you can?t disable it again.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: KeyspaceName // CloudFormation resource type schema: // @@ -159,7 +175,6 @@ func keyspaceResource(ctx context.Context) (resource.Resource, error) { Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ objectplanmodifier.UseStateForUnknown(), - objectplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Tags @@ -252,13 +267,14 @@ func keyspaceResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::Cassandra::Keyspace").WithTerraformTypeName("awscc_cassandra_keyspace") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "key": "Key", - "keyspace_name": "KeyspaceName", - "region_list": "RegionList", - "replication_specification": "ReplicationSpecification", - "replication_strategy": "ReplicationStrategy", - "tags": "Tags", - "value": "Value", + "client_side_timestamps_enabled": "ClientSideTimestampsEnabled", + "key": "Key", + "keyspace_name": "KeyspaceName", + "region_list": "RegionList", + "replication_specification": "ReplicationSpecification", + "replication_strategy": "ReplicationStrategy", + "tags": "Tags", + "value": "Value", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/cassandra/keyspace_singular_data_source_gen.go b/internal/aws/cassandra/keyspace_singular_data_source_gen.go index c8bfbb6e19..8616d14e9f 100644 --- a/internal/aws/cassandra/keyspace_singular_data_source_gen.go +++ b/internal/aws/cassandra/keyspace_singular_data_source_gen.go @@ -23,6 +23,17 @@ func init() { // This Terraform data source corresponds to the CloudFormation AWS::Cassandra::Keyspace resource. func keyspaceDataSource(ctx context.Context) (datasource.DataSource, error) { attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ClientSideTimestampsEnabled + // CloudFormation resource type schema: + // + // { + // "description": "Indicates whether client-side timestamps are enabled (true) or disabled (false) for all tables in the keyspace. To add a Region to a single-Region keyspace with at least one table, the value must be set to true. After you enabled client-side timestamps for a table, you can?t disable it again.", + // "type": "boolean" + // } + "client_side_timestamps_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Indicates whether client-side timestamps are enabled (true) or disabled (false) for all tables in the keyspace. To add a Region to a single-Region keyspace with at least one table, the value must be set to true. After you enabled client-side timestamps for a table, you can?t disable it again.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: KeyspaceName // CloudFormation resource type schema: // @@ -162,13 +173,14 @@ func keyspaceDataSource(ctx context.Context) (datasource.DataSource, error) { opts = opts.WithCloudFormationTypeName("AWS::Cassandra::Keyspace").WithTerraformTypeName("awscc_cassandra_keyspace") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "key": "Key", - "keyspace_name": "KeyspaceName", - "region_list": "RegionList", - "replication_specification": "ReplicationSpecification", - "replication_strategy": "ReplicationStrategy", - "tags": "Tags", - "value": "Value", + "client_side_timestamps_enabled": "ClientSideTimestampsEnabled", + "key": "Key", + "keyspace_name": "KeyspaceName", + "region_list": "RegionList", + "replication_specification": "ReplicationSpecification", + "replication_strategy": "ReplicationStrategy", + "tags": "Tags", + "value": "Value", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/cassandra/type_plural_data_source_gen.go b/internal/aws/cassandra/type_plural_data_source_gen.go new file mode 100644 index 0000000000..392ba2657c --- /dev/null +++ b/internal/aws/cassandra/type_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 cassandra + +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_cassandra_types", typesDataSource) +} + +// typesDataSource returns the Terraform awscc_cassandra_types data source. +// This Terraform data source corresponds to the CloudFormation AWS::Cassandra::Type resource. +func typesDataSource(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::Cassandra::Type", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Cassandra::Type").WithTerraformTypeName("awscc_cassandra_types") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/cassandra/type_plural_data_source_gen_test.go b/internal/aws/cassandra/type_plural_data_source_gen_test.go new file mode 100644 index 0000000000..9793e138d8 --- /dev/null +++ b/internal/aws/cassandra/type_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 cassandra_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSCassandraTypesDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Cassandra::Type", "awscc_cassandra_types", "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/cassandra/type_resource_gen.go b/internal/aws/cassandra/type_resource_gen.go new file mode 100644 index 0000000000..b1723849ff --- /dev/null +++ b/internal/aws/cassandra/type_resource_gen.go @@ -0,0 +1,230 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package cassandra + +import ( + "context" + + "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/int64planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/setplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "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_cassandra_type", typeResource) +} + +// typeResource returns the Terraform awscc_cassandra_type resource. +// This Terraform resource corresponds to the CloudFormation AWS::Cassandra::Type resource. +func typeResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DirectParentTypes + // CloudFormation resource type schema: + // + // { + // "description": "List of parent User-Defined Types that directly reference the User-Defined Type in their fields.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + "direct_parent_types": schema.SetAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "List of parent User-Defined Types that directly reference the User-Defined Type in their fields.", + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DirectReferringTables + // CloudFormation resource type schema: + // + // { + // "description": "List of Tables that directly reference the User-Defined Type in their columns.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + "direct_referring_tables": schema.SetAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "List of Tables that directly reference the User-Defined Type in their columns.", + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Fields + // CloudFormation resource type schema: + // + // { + // "description": "Field definitions of the User-Defined Type", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "FieldName": { + // "type": "string" + // }, + // "FieldType": { + // "type": "string" + // } + // }, + // "required": [ + // "FieldName", + // "FieldType" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + "fields": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FieldName + "field_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: FieldType + "field_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Field definitions of the User-Defined Type", + Required: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: KeyspaceArn + // CloudFormation resource type schema: + // + // { + // "description": "ARN of the Keyspace which contains the User-Defined Type.", + // "type": "string" + // } + "keyspace_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of the Keyspace which contains the User-Defined Type.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: KeyspaceName + // CloudFormation resource type schema: + // + // { + // "description": "Name of the Keyspace which contains the User-Defined Type.", + // "type": "string" + // } + "keyspace_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of the Keyspace which contains the User-Defined Type.", + Required: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LastModifiedTimestamp + // CloudFormation resource type schema: + // + // { + // "description": "Timestamp of the last time the User-Defined Type's meta data was modified.", + // "type": "number" + // } + "last_modified_timestamp": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Timestamp of the last time the User-Defined Type's meta data was modified.", + Computed: true, + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MaxNestingDepth + // CloudFormation resource type schema: + // + // { + // "description": "Maximum nesting depth of the User-Defined Type across the field types.", + // "type": "integer" + // } + "max_nesting_depth": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Maximum nesting depth of the User-Defined Type across the field types.", + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TypeName + // CloudFormation resource type schema: + // + // { + // "description": "Name of the User-Defined Type.", + // "type": "string" + // } + "type_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of the User-Defined Type.", + Required: true, + 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 schema for AWS::Cassandra::Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Cassandra::Type").WithTerraformTypeName("awscc_cassandra_type") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "direct_parent_types": "DirectParentTypes", + "direct_referring_tables": "DirectReferringTables", + "field_name": "FieldName", + "field_type": "FieldType", + "fields": "Fields", + "keyspace_arn": "KeyspaceArn", + "keyspace_name": "KeyspaceName", + "last_modified_timestamp": "LastModifiedTimestamp", + "max_nesting_depth": "MaxNestingDepth", + "type_name": "TypeName", + }) + + 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/cassandra/type_resource_gen_test.go b/internal/aws/cassandra/type_resource_gen_test.go new file mode 100644 index 0000000000..218870ef4c --- /dev/null +++ b/internal/aws/cassandra/type_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 cassandra_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSCassandraType_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Cassandra::Type", "awscc_cassandra_type", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/cassandra/type_singular_data_source_gen.go b/internal/aws/cassandra/type_singular_data_source_gen.go new file mode 100644 index 0000000000..a39d079789 --- /dev/null +++ b/internal/aws/cassandra/type_singular_data_source_gen.go @@ -0,0 +1,192 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package cassandra + +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_cassandra_type", typeDataSource) +} + +// typeDataSource returns the Terraform awscc_cassandra_type data source. +// This Terraform data source corresponds to the CloudFormation AWS::Cassandra::Type resource. +func typeDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DirectParentTypes + // CloudFormation resource type schema: + // + // { + // "description": "List of parent User-Defined Types that directly reference the User-Defined Type in their fields.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + "direct_parent_types": schema.SetAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "List of parent User-Defined Types that directly reference the User-Defined Type in their fields.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DirectReferringTables + // CloudFormation resource type schema: + // + // { + // "description": "List of Tables that directly reference the User-Defined Type in their columns.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + "direct_referring_tables": schema.SetAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "List of Tables that directly reference the User-Defined Type in their columns.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Fields + // CloudFormation resource type schema: + // + // { + // "description": "Field definitions of the User-Defined Type", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "FieldName": { + // "type": "string" + // }, + // "FieldType": { + // "type": "string" + // } + // }, + // "required": [ + // "FieldName", + // "FieldType" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + "fields": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FieldName + "field_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FieldType + "field_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Field definitions of the User-Defined Type", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KeyspaceArn + // CloudFormation resource type schema: + // + // { + // "description": "ARN of the Keyspace which contains the User-Defined Type.", + // "type": "string" + // } + "keyspace_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN of the Keyspace which contains the User-Defined Type.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KeyspaceName + // CloudFormation resource type schema: + // + // { + // "description": "Name of the Keyspace which contains the User-Defined Type.", + // "type": "string" + // } + "keyspace_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of the Keyspace which contains the User-Defined Type.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LastModifiedTimestamp + // CloudFormation resource type schema: + // + // { + // "description": "Timestamp of the last time the User-Defined Type's meta data was modified.", + // "type": "number" + // } + "last_modified_timestamp": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Timestamp of the last time the User-Defined Type's meta data was modified.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MaxNestingDepth + // CloudFormation resource type schema: + // + // { + // "description": "Maximum nesting depth of the User-Defined Type across the field types.", + // "type": "integer" + // } + "max_nesting_depth": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Maximum nesting depth of the User-Defined Type across the field types.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TypeName + // CloudFormation resource type schema: + // + // { + // "description": "Name of the User-Defined Type.", + // "type": "string" + // } + "type_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of the User-Defined Type.", + 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::Cassandra::Type", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Cassandra::Type").WithTerraformTypeName("awscc_cassandra_type") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "direct_parent_types": "DirectParentTypes", + "direct_referring_tables": "DirectReferringTables", + "field_name": "FieldName", + "field_type": "FieldType", + "fields": "Fields", + "keyspace_arn": "KeyspaceArn", + "keyspace_name": "KeyspaceName", + "last_modified_timestamp": "LastModifiedTimestamp", + "max_nesting_depth": "MaxNestingDepth", + "type_name": "TypeName", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/cassandra/type_singular_data_source_gen_test.go b/internal/aws/cassandra/type_singular_data_source_gen_test.go new file mode 100644 index 0000000000..e24d158faf --- /dev/null +++ b/internal/aws/cassandra/type_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 cassandra_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSCassandraTypeDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Cassandra::Type", "awscc_cassandra_type", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSCassandraTypeDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Cassandra::Type", "awscc_cassandra_type", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/cleanrooms/configured_table_association_resource_gen.go b/internal/aws/cleanrooms/configured_table_association_resource_gen.go index 845c354bd8..62b7e944f4 100644 --- a/internal/aws/cleanrooms/configured_table_association_resource_gen.go +++ b/internal/aws/cleanrooms/configured_table_association_resource_gen.go @@ -36,7 +36,7 @@ func configuredTableAssociationResource(ctx context.Context) (resource.Resource, // CloudFormation resource type schema: // // { - // "maxLength": 100, + // "maxLength": 256, // "type": "string" // } "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ diff --git a/internal/aws/cleanrooms/configured_table_association_singular_data_source_gen.go b/internal/aws/cleanrooms/configured_table_association_singular_data_source_gen.go index 9cef4c0131..4994f57871 100644 --- a/internal/aws/cleanrooms/configured_table_association_singular_data_source_gen.go +++ b/internal/aws/cleanrooms/configured_table_association_singular_data_source_gen.go @@ -27,7 +27,7 @@ func configuredTableAssociationDataSource(ctx context.Context) (datasource.DataS // CloudFormation resource type schema: // // { - // "maxLength": 100, + // "maxLength": 256, // "type": "string" // } "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ diff --git a/internal/aws/cleanrooms/configured_table_resource_gen.go b/internal/aws/cleanrooms/configured_table_resource_gen.go index 7459c4ebcd..14cba62b51 100644 --- a/internal/aws/cleanrooms/configured_table_resource_gen.go +++ b/internal/aws/cleanrooms/configured_table_resource_gen.go @@ -970,8 +970,36 @@ func configuredTableResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "additionalProperties": false, // "properties": { + // "Athena": { + // "additionalProperties": false, + // "properties": { + // "DatabaseName": { + // "maxLength": 128, + // "type": "string" + // }, + // "OutputLocation": { + // "maxLength": 1024, + // "minLength": 8, + // "type": "string" + // }, + // "TableName": { + // "maxLength": 128, + // "type": "string" + // }, + // "WorkGroup": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "DatabaseName", + // "TableName", + // "WorkGroup" + // ], + // "type": "object" + // }, // "Glue": { // "additionalProperties": false, // "properties": { @@ -991,36 +1019,294 @@ func configuredTableResource(ctx context.Context) (resource.Resource, error) { // "TableName" // ], // "type": "object" + // }, + // "Snowflake": { + // "additionalProperties": false, + // "properties": { + // "AccountIdentifier": { + // "maxLength": 256, + // "minLength": 3, + // "type": "string" + // }, + // "DatabaseName": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // }, + // "SchemaName": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // }, + // "SecretArn": { + // "maxLength": 256, + // "type": "string" + // }, + // "TableName": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // }, + // "TableSchema": { + // "properties": { + // "V1": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ColumnName": { + // "maxLength": 128, + // "type": "string" + // }, + // "ColumnType": { + // "maxLength": 255, + // "type": "string" + // } + // }, + // "required": [ + // "ColumnName", + // "ColumnType" + // ], + // "type": "object" + // }, + // "maxItems": 250, + // "minItems": 1, + // "type": "array" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "AccountIdentifier", + // "DatabaseName", + // "SchemaName", + // "SecretArn", + // "TableName", + // "TableSchema" + // ], + // "type": "object" // } // }, - // "required": [ - // "Glue" - // ], // "type": "object" // } "table_reference": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Athena + "athena": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DatabaseName + "database_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: OutputLocation + "output_location": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(8, 1024), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TableName + "table_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: WorkGroup + "work_group": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Glue "glue": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: DatabaseName "database_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthAtMost(128), stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$"), ""), + fwvalidators.NotNullString(), }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: TableName "table_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthAtMost(128), stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Snowflake + "snowflake": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AccountIdentifier + "account_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(3, 256), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DatabaseName + "database_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SchemaName + "schema_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SecretArn + "secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(256), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TableName + "table_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TableSchema + "table_schema": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: V1 + "v1": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ColumnName + "column_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ColumnType + "column_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(255), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 250), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + Validators: []validator.Object{ /*START VALIDATORS*/ + fwvalidators.NotNullObject(), }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Required: true, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Required: true, @@ -1115,6 +1401,7 @@ func configuredTableResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::CleanRooms::ConfiguredTable").WithTerraformTypeName("awscc_cleanrooms_configured_table") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ + "account_identifier": "AccountIdentifier", "additional_analyses": "AdditionalAnalyses", "aggregate_columns": "AggregateColumns", "aggregation": "Aggregation", @@ -1125,8 +1412,10 @@ func configuredTableResource(ctx context.Context) (resource.Resource, error) { "analysis_method": "AnalysisMethod", "analysis_rules": "AnalysisRules", "arn": "Arn", + "athena": "Athena", "column_name": "ColumnName", "column_names": "ColumnNames", + "column_type": "ColumnType", "columns": "Columns", "configured_table_identifier": "ConfiguredTableIdentifier", "custom": "Custom", @@ -1145,14 +1434,20 @@ func configuredTableResource(ctx context.Context) (resource.Resource, error) { "minimum": "Minimum", "name": "Name", "output_constraints": "OutputConstraints", + "output_location": "OutputLocation", "policy": "Policy", "scalar_functions": "ScalarFunctions", + "schema_name": "SchemaName", + "secret_arn": "SecretArn", + "snowflake": "Snowflake", "table_name": "TableName", "table_reference": "TableReference", + "table_schema": "TableSchema", "tags": "Tags", "type": "Type", "v1": "V1", "value": "Value", + "work_group": "WorkGroup", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/cleanrooms/configured_table_singular_data_source_gen.go b/internal/aws/cleanrooms/configured_table_singular_data_source_gen.go index a480a0c460..3e520c0e68 100644 --- a/internal/aws/cleanrooms/configured_table_singular_data_source_gen.go +++ b/internal/aws/cleanrooms/configured_table_singular_data_source_gen.go @@ -593,8 +593,36 @@ func configuredTableDataSource(ctx context.Context) (datasource.DataSource, erro // CloudFormation resource type schema: // // { - // "additionalProperties": false, // "properties": { + // "Athena": { + // "additionalProperties": false, + // "properties": { + // "DatabaseName": { + // "maxLength": 128, + // "type": "string" + // }, + // "OutputLocation": { + // "maxLength": 1024, + // "minLength": 8, + // "type": "string" + // }, + // "TableName": { + // "maxLength": 128, + // "type": "string" + // }, + // "WorkGroup": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "DatabaseName", + // "TableName", + // "WorkGroup" + // ], + // "type": "object" + // }, // "Glue": { // "additionalProperties": false, // "properties": { @@ -614,15 +642,101 @@ func configuredTableDataSource(ctx context.Context) (datasource.DataSource, erro // "TableName" // ], // "type": "object" + // }, + // "Snowflake": { + // "additionalProperties": false, + // "properties": { + // "AccountIdentifier": { + // "maxLength": 256, + // "minLength": 3, + // "type": "string" + // }, + // "DatabaseName": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // }, + // "SchemaName": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // }, + // "SecretArn": { + // "maxLength": 256, + // "type": "string" + // }, + // "TableName": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // }, + // "TableSchema": { + // "properties": { + // "V1": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "ColumnName": { + // "maxLength": 128, + // "type": "string" + // }, + // "ColumnType": { + // "maxLength": 255, + // "type": "string" + // } + // }, + // "required": [ + // "ColumnName", + // "ColumnType" + // ], + // "type": "object" + // }, + // "maxItems": 250, + // "minItems": 1, + // "type": "array" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "AccountIdentifier", + // "DatabaseName", + // "SchemaName", + // "SecretArn", + // "TableName", + // "TableSchema" + // ], + // "type": "object" // } // }, - // "required": [ - // "Glue" - // ], // "type": "object" // } "table_reference": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Athena + "athena": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DatabaseName + "database_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: OutputLocation + "output_location": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TableName + "table_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: WorkGroup + "work_group": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Glue "glue": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -637,6 +751,54 @@ func configuredTableDataSource(ctx context.Context) (datasource.DataSource, erro }, /*END SCHEMA*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: Snowflake + "snowflake": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AccountIdentifier + "account_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DatabaseName + "database_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SchemaName + "schema_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SecretArn + "secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TableName + "table_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TableSchema + "table_schema": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: V1 + "v1": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ColumnName + "column_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ColumnType + "column_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Computed: true, }, /*END ATTRIBUTE*/ @@ -702,6 +864,7 @@ func configuredTableDataSource(ctx context.Context) (datasource.DataSource, erro opts = opts.WithCloudFormationTypeName("AWS::CleanRooms::ConfiguredTable").WithTerraformTypeName("awscc_cleanrooms_configured_table") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ + "account_identifier": "AccountIdentifier", "additional_analyses": "AdditionalAnalyses", "aggregate_columns": "AggregateColumns", "aggregation": "Aggregation", @@ -712,8 +875,10 @@ func configuredTableDataSource(ctx context.Context) (datasource.DataSource, erro "analysis_method": "AnalysisMethod", "analysis_rules": "AnalysisRules", "arn": "Arn", + "athena": "Athena", "column_name": "ColumnName", "column_names": "ColumnNames", + "column_type": "ColumnType", "columns": "Columns", "configured_table_identifier": "ConfiguredTableIdentifier", "custom": "Custom", @@ -732,14 +897,20 @@ func configuredTableDataSource(ctx context.Context) (datasource.DataSource, erro "minimum": "Minimum", "name": "Name", "output_constraints": "OutputConstraints", + "output_location": "OutputLocation", "policy": "Policy", "scalar_functions": "ScalarFunctions", + "schema_name": "SchemaName", + "secret_arn": "SecretArn", + "snowflake": "Snowflake", "table_name": "TableName", "table_reference": "TableReference", + "table_schema": "TableSchema", "tags": "Tags", "type": "Type", "v1": "V1", "value": "Value", + "work_group": "WorkGroup", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/cloudfront/distribution_resource_gen.go b/internal/aws/cloudfront/distribution_resource_gen.go index 2a6a90f792..3ac5a2e2b4 100644 --- a/internal/aws/cloudfront/distribution_resource_gen.go +++ b/internal/aws/cloudfront/distribution_resource_gen.go @@ -8,6 +8,7 @@ package cloudfront 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/booldefault" @@ -184,6 +185,19 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { // "type": "array", // "uniqueItems": false // }, + // "GrpcConfig": { + // "additionalProperties": false, + // "description": "", + // "properties": { + // "Enabled": { + // "type": "boolean" + // } + // }, + // "required": [ + // "Enabled" + // ], + // "type": "object" + // }, // "LambdaFunctionAssociations": { // "description": "A complex type that contains zero or more Lambda@Edge function associations for a cache behavior.", // "items": { @@ -476,6 +490,19 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { // "type": "array", // "uniqueItems": false // }, + // "GrpcConfig": { + // "additionalProperties": false, + // "description": "", + // "properties": { + // "Enabled": { + // "type": "boolean" + // } + // }, + // "required": [ + // "Enabled" + // ], + // "type": "object" + // }, // "LambdaFunctionAssociations": { // "description": "A complex type that contains zero or more Lambda@Edge function associations for a cache behavior.", // "items": { @@ -598,9 +625,6 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // } // }, - // "required": [ - // "Bucket" - // ], // "type": "object" // }, // "OriginGroups": { @@ -683,6 +707,13 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { // "Items" // ], // "type": "object" + // }, + // "SelectionCriteria": { + // "enum": [ + // "default", + // "media-quality-based" + // ], + // "type": "string" // } // }, // "required": [ @@ -1154,6 +1185,28 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { listplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: GrpcConfig + "grpc_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Enabled + "enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Bool{ /*START VALIDATORS*/ + fwvalidators.NotNullBool(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: LambdaFunctionAssociations "lambda_function_associations": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ @@ -1637,6 +1690,28 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { listplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: GrpcConfig + "grpc_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Enabled + "enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Bool{ /*START VALIDATORS*/ + fwvalidators.NotNullBool(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: LambdaFunctionAssociations "lambda_function_associations": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ @@ -1813,9 +1888,6 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { Description: "The Amazon S3 bucket to store the access logs in, for example, ``myawslogbucket.s3.amazonaws.com``.", Optional: true, Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - fwvalidators.NotNullString(), - }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -1974,6 +2046,20 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: SelectionCriteria + "selection_criteria": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "default", + "media-quality-based", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ Description: "The items (origin groups) in a distribution.", @@ -2568,6 +2654,7 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { "function_arn": "FunctionARN", "function_associations": "FunctionAssociations", "geo_restriction": "GeoRestriction", + "grpc_config": "GrpcConfig", "header_name": "HeaderName", "header_value": "HeaderValue", "headers": "Headers", @@ -2617,6 +2704,7 @@ func distributionResource(ctx context.Context) (resource.Resource, error) { "restrictions": "Restrictions", "s3_origin": "S3Origin", "s3_origin_config": "S3OriginConfig", + "selection_criteria": "SelectionCriteria", "smooth_streaming": "SmoothStreaming", "ssl_support_method": "SslSupportMethod", "staging": "Staging", diff --git a/internal/aws/cloudfront/distribution_singular_data_source_gen.go b/internal/aws/cloudfront/distribution_singular_data_source_gen.go index e7ab942909..d33ed69898 100644 --- a/internal/aws/cloudfront/distribution_singular_data_source_gen.go +++ b/internal/aws/cloudfront/distribution_singular_data_source_gen.go @@ -170,6 +170,19 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) // "type": "array", // "uniqueItems": false // }, + // "GrpcConfig": { + // "additionalProperties": false, + // "description": "", + // "properties": { + // "Enabled": { + // "type": "boolean" + // } + // }, + // "required": [ + // "Enabled" + // ], + // "type": "object" + // }, // "LambdaFunctionAssociations": { // "description": "A complex type that contains zero or more Lambda@Edge function associations for a cache behavior.", // "items": { @@ -462,6 +475,19 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) // "type": "array", // "uniqueItems": false // }, + // "GrpcConfig": { + // "additionalProperties": false, + // "description": "", + // "properties": { + // "Enabled": { + // "type": "boolean" + // } + // }, + // "required": [ + // "Enabled" + // ], + // "type": "object" + // }, // "LambdaFunctionAssociations": { // "description": "A complex type that contains zero or more Lambda@Edge function associations for a cache behavior.", // "items": { @@ -584,9 +610,6 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) // "type": "string" // } // }, - // "required": [ - // "Bucket" - // ], // "type": "object" // }, // "OriginGroups": { @@ -669,6 +692,13 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) // "Items" // ], // "type": "object" + // }, + // "SelectionCriteria": { + // "enum": [ + // "default", + // "media-quality-based" + // ], + // "type": "string" // } // }, // "required": [ @@ -1048,6 +1078,17 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) Description: "A list of CloudFront functions that are associated with this cache behavior. CloudFront functions must be published to the ``LIVE`` stage to associate them with a cache behavior.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: GrpcConfig + "grpc_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Enabled + "enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: LambdaFunctionAssociations "lambda_function_associations": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ @@ -1302,6 +1343,17 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) Description: "A list of CloudFront functions that are associated with this cache behavior. Your functions must be published to the ``LIVE`` stage to associate them with a cache behavior.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: GrpcConfig + "grpc_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Enabled + "enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: LambdaFunctionAssociations "lambda_function_associations": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ @@ -1487,6 +1539,10 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) Description: "A complex type that contains information about the origins in an origin group.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: SelectionCriteria + "selection_criteria": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ Description: "The items (origin groups) in a distribution.", @@ -1839,6 +1895,7 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) "function_arn": "FunctionARN", "function_associations": "FunctionAssociations", "geo_restriction": "GeoRestriction", + "grpc_config": "GrpcConfig", "header_name": "HeaderName", "header_value": "HeaderValue", "headers": "Headers", @@ -1888,6 +1945,7 @@ func distributionDataSource(ctx context.Context) (datasource.DataSource, error) "restrictions": "Restrictions", "s3_origin": "S3Origin", "s3_origin_config": "S3OriginConfig", + "selection_criteria": "SelectionCriteria", "smooth_streaming": "SmoothStreaming", "ssl_support_method": "SslSupportMethod", "staging": "Staging", diff --git a/internal/aws/connect/queue_resource_gen.go b/internal/aws/connect/queue_resource_gen.go index 16dbb0cafa..419f4c0341 100644 --- a/internal/aws/connect/queue_resource_gen.go +++ b/internal/aws/connect/queue_resource_gen.go @@ -196,6 +196,43 @@ func queueResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: OutboundEmailConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The outbound email address ID.", + // "properties": { + // "OutboundEmailAddressId": { + // "description": "The email address connect resource ID.", + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/email-address/[-a-zA-Z0-9]*$", + // "type": "string" + // } + // }, + // "type": "object" + // } + "outbound_email_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: OutboundEmailAddressId + "outbound_email_address_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The email address connect resource ID.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/email-address/[-a-zA-Z0-9]*$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The outbound email address ID.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: QueueArn // CloudFormation resource type schema: // @@ -391,6 +428,8 @@ func queueResource(ctx context.Context) (resource.Resource, error) { "outbound_caller_config": "OutboundCallerConfig", "outbound_caller_id_name": "OutboundCallerIdName", "outbound_caller_id_number_arn": "OutboundCallerIdNumberArn", + "outbound_email_address_id": "OutboundEmailAddressId", + "outbound_email_config": "OutboundEmailConfig", "outbound_flow_arn": "OutboundFlowArn", "queue_arn": "QueueArn", "quick_connect_arns": "QuickConnectArns", diff --git a/internal/aws/connect/queue_singular_data_source_gen.go b/internal/aws/connect/queue_singular_data_source_gen.go index f99a16b5e4..0b6fa477d5 100644 --- a/internal/aws/connect/queue_singular_data_source_gen.go +++ b/internal/aws/connect/queue_singular_data_source_gen.go @@ -134,6 +134,32 @@ func queueDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The outbound caller ID name, number, and outbound whisper flow.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: OutboundEmailConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The outbound email address ID.", + // "properties": { + // "OutboundEmailAddressId": { + // "description": "The email address connect resource ID.", + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/email-address/[-a-zA-Z0-9]*$", + // "type": "string" + // } + // }, + // "type": "object" + // } + "outbound_email_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: OutboundEmailAddressId + "outbound_email_address_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The email address connect resource ID.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The outbound email address ID.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: QueueArn // CloudFormation resource type schema: // @@ -274,6 +300,8 @@ func queueDataSource(ctx context.Context) (datasource.DataSource, error) { "outbound_caller_config": "OutboundCallerConfig", "outbound_caller_id_name": "OutboundCallerIdName", "outbound_caller_id_number_arn": "OutboundCallerIdNumberArn", + "outbound_email_address_id": "OutboundEmailAddressId", + "outbound_email_config": "OutboundEmailConfig", "outbound_flow_arn": "OutboundFlowArn", "queue_arn": "QueueArn", "quick_connect_arns": "QuickConnectArns", diff --git a/internal/aws/connect/task_template_resource_gen.go b/internal/aws/connect/task_template_resource_gen.go index cce4cb8e8b..4af5a45ef7 100644 --- a/internal/aws/connect/task_template_resource_gen.go +++ b/internal/aws/connect/task_template_resource_gen.go @@ -652,6 +652,25 @@ func taskTemplateResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: SelfAssignContactFlowArn + // CloudFormation resource type schema: + // + // { + // "description": "The identifier of the contact flow.", + // "pattern": "^$|arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/contact-flow/[-a-zA-Z0-9]*$", + // "type": "string" + // } + "self_assign_contact_flow_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the contact flow.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^$|arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/contact-flow/[-a-zA-Z0-9]*$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Status // CloudFormation resource type schema: // @@ -773,26 +792,27 @@ func taskTemplateResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::Connect::TaskTemplate").WithTerraformTypeName("awscc_connect_task_template") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "arn": "Arn", - "client_token": "ClientToken", - "constraints": "Constraints", - "contact_flow_arn": "ContactFlowArn", - "default_value": "DefaultValue", - "defaults": "Defaults", - "description": "Description", - "fields": "Fields", - "id": "Id", - "instance_arn": "InstanceArn", - "invisible_fields": "InvisibleFields", - "key": "Key", - "name": "Name", - "read_only_fields": "ReadOnlyFields", - "required_fields": "RequiredFields", - "single_select_options": "SingleSelectOptions", - "status": "Status", - "tags": "Tags", - "type": "Type", - "value": "Value", + "arn": "Arn", + "client_token": "ClientToken", + "constraints": "Constraints", + "contact_flow_arn": "ContactFlowArn", + "default_value": "DefaultValue", + "defaults": "Defaults", + "description": "Description", + "fields": "Fields", + "id": "Id", + "instance_arn": "InstanceArn", + "invisible_fields": "InvisibleFields", + "key": "Key", + "name": "Name", + "read_only_fields": "ReadOnlyFields", + "required_fields": "RequiredFields", + "self_assign_contact_flow_arn": "SelfAssignContactFlowArn", + "single_select_options": "SingleSelectOptions", + "status": "Status", + "tags": "Tags", + "type": "Type", + "value": "Value", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/connect/task_template_singular_data_source_gen.go b/internal/aws/connect/task_template_singular_data_source_gen.go index 024600ed21..873b77a032 100644 --- a/internal/aws/connect/task_template_singular_data_source_gen.go +++ b/internal/aws/connect/task_template_singular_data_source_gen.go @@ -444,6 +444,18 @@ func taskTemplateDataSource(ctx context.Context) (datasource.DataSource, error) Description: "The name of the task template.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: SelfAssignContactFlowArn + // CloudFormation resource type schema: + // + // { + // "description": "The identifier of the contact flow.", + // "pattern": "^$|arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/contact-flow/[-a-zA-Z0-9]*$", + // "type": "string" + // } + "self_assign_contact_flow_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the contact flow.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Status // CloudFormation resource type schema: // @@ -527,26 +539,27 @@ func taskTemplateDataSource(ctx context.Context) (datasource.DataSource, error) opts = opts.WithCloudFormationTypeName("AWS::Connect::TaskTemplate").WithTerraformTypeName("awscc_connect_task_template") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "arn": "Arn", - "client_token": "ClientToken", - "constraints": "Constraints", - "contact_flow_arn": "ContactFlowArn", - "default_value": "DefaultValue", - "defaults": "Defaults", - "description": "Description", - "fields": "Fields", - "id": "Id", - "instance_arn": "InstanceArn", - "invisible_fields": "InvisibleFields", - "key": "Key", - "name": "Name", - "read_only_fields": "ReadOnlyFields", - "required_fields": "RequiredFields", - "single_select_options": "SingleSelectOptions", - "status": "Status", - "tags": "Tags", - "type": "Type", - "value": "Value", + "arn": "Arn", + "client_token": "ClientToken", + "constraints": "Constraints", + "contact_flow_arn": "ContactFlowArn", + "default_value": "DefaultValue", + "defaults": "Defaults", + "description": "Description", + "fields": "Fields", + "id": "Id", + "instance_arn": "InstanceArn", + "invisible_fields": "InvisibleFields", + "key": "Key", + "name": "Name", + "read_only_fields": "ReadOnlyFields", + "required_fields": "RequiredFields", + "self_assign_contact_flow_arn": "SelfAssignContactFlowArn", + "single_select_options": "SingleSelectOptions", + "status": "Status", + "tags": "Tags", + "type": "Type", + "value": "Value", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/connectcampaignsv2/campaign_resource_gen.go b/internal/aws/connectcampaignsv2/campaign_resource_gen.go index b66f6f4785..f1bb783956 100644 --- a/internal/aws/connectcampaignsv2/campaign_resource_gen.go +++ b/internal/aws/connectcampaignsv2/campaign_resource_gen.go @@ -1892,12 +1892,17 @@ func campaignResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "description": "The possible types of channel config parameters", + // "description": "The possible source of the campaign", // "oneOf": [ // { // "required": [ // "CustomerProfilesSegmentArn" // ] + // }, + // { + // "required": [ + // "EventTrigger" + // ] // } // ], // "properties": { @@ -1907,6 +1912,20 @@ func campaignResource(ctx context.Context) (resource.Resource, error) { // "minLength": 20, // "pattern": "^arn:.*$", // "type": "string" + // }, + // "EventTrigger": { + // "additionalProperties": false, + // "description": "The event trigger of the campaign", + // "properties": { + // "CustomerProfilesDomainArn": { + // "description": "Arn", + // "maxLength": 500, + // "minLength": 20, + // "pattern": "^arn:.*$", + // "type": "string" + // } + // }, + // "type": "object" // } // }, // "type": "object" @@ -1926,8 +1945,32 @@ func campaignResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: EventTrigger + "event_trigger": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CustomerProfilesDomainArn + "customer_profiles_domain_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Arn", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(20, 500), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:.*$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The event trigger of the campaign", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The possible types of channel config parameters", + Description: "The possible source of the campaign", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -2041,6 +2084,7 @@ func campaignResource(ctx context.Context) (resource.Resource, error) { "connect_source_email_address": "ConnectSourceEmailAddress", "connect_source_phone_number": "ConnectSourcePhoneNumber", "connect_source_phone_number_arn": "ConnectSourcePhoneNumberArn", + "customer_profiles_domain_arn": "CustomerProfilesDomainArn", "customer_profiles_segment_arn": "CustomerProfilesSegmentArn", "daily_hours": "DailyHours", "default_outbound_config": "DefaultOutboundConfig", @@ -2049,6 +2093,7 @@ func campaignResource(ctx context.Context) (resource.Resource, error) { "enable_answer_machine_detection": "EnableAnswerMachineDetection", "end_date": "EndDate", "end_time": "EndTime", + "event_trigger": "EventTrigger", "frequency": "Frequency", "key": "Key", "local_time_zone_config": "LocalTimeZoneConfig", diff --git a/internal/aws/connectcampaignsv2/campaign_singular_data_source_gen.go b/internal/aws/connectcampaignsv2/campaign_singular_data_source_gen.go index 7bb9e4d36a..2c3dbb4508 100644 --- a/internal/aws/connectcampaignsv2/campaign_singular_data_source_gen.go +++ b/internal/aws/connectcampaignsv2/campaign_singular_data_source_gen.go @@ -1311,12 +1311,17 @@ func campaignDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "additionalProperties": false, - // "description": "The possible types of channel config parameters", + // "description": "The possible source of the campaign", // "oneOf": [ // { // "required": [ // "CustomerProfilesSegmentArn" // ] + // }, + // { + // "required": [ + // "EventTrigger" + // ] // } // ], // "properties": { @@ -1326,6 +1331,20 @@ func campaignDataSource(ctx context.Context) (datasource.DataSource, error) { // "minLength": 20, // "pattern": "^arn:.*$", // "type": "string" + // }, + // "EventTrigger": { + // "additionalProperties": false, + // "description": "The event trigger of the campaign", + // "properties": { + // "CustomerProfilesDomainArn": { + // "description": "Arn", + // "maxLength": 500, + // "minLength": 20, + // "pattern": "^arn:.*$", + // "type": "string" + // } + // }, + // "type": "object" // } // }, // "type": "object" @@ -1337,8 +1356,20 @@ func campaignDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "Arn", Computed: true, }, /*END ATTRIBUTE*/ + // Property: EventTrigger + "event_trigger": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CustomerProfilesDomainArn + "customer_profiles_domain_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Arn", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The event trigger of the campaign", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The possible types of channel config parameters", + Description: "The possible source of the campaign", Computed: true, }, /*END ATTRIBUTE*/ // Property: Tags @@ -1422,6 +1453,7 @@ func campaignDataSource(ctx context.Context) (datasource.DataSource, error) { "connect_source_email_address": "ConnectSourceEmailAddress", "connect_source_phone_number": "ConnectSourcePhoneNumber", "connect_source_phone_number_arn": "ConnectSourcePhoneNumberArn", + "customer_profiles_domain_arn": "CustomerProfilesDomainArn", "customer_profiles_segment_arn": "CustomerProfilesSegmentArn", "daily_hours": "DailyHours", "default_outbound_config": "DefaultOutboundConfig", @@ -1430,6 +1462,7 @@ func campaignDataSource(ctx context.Context) (datasource.DataSource, error) { "enable_answer_machine_detection": "EnableAnswerMachineDetection", "end_date": "EndDate", "end_time": "EndTime", + "event_trigger": "EventTrigger", "frequency": "Frequency", "key": "Key", "local_time_zone_config": "LocalTimeZoneConfig", diff --git a/internal/aws/datazone/project_membership_resource_gen.go b/internal/aws/datazone/project_membership_resource_gen.go index 9619c86bf3..0babf48f7f 100644 --- a/internal/aws/datazone/project_membership_resource_gen.go +++ b/internal/aws/datazone/project_membership_resource_gen.go @@ -34,7 +34,10 @@ func projectMembershipResource(ctx context.Context) (resource.Resource, error) { // { // "enum": [ // "PROJECT_OWNER", - // "PROJECT_CONTRIBUTOR" + // "PROJECT_CONTRIBUTOR", + // "PROJECT_CATALOG_VIEWER", + // "PROJECT_CATALOG_CONSUMER", + // "PROJECT_CATALOG_STEWARD" // ], // "type": "string" // } @@ -44,6 +47,9 @@ func projectMembershipResource(ctx context.Context) (resource.Resource, error) { stringvalidator.OneOf( "PROJECT_OWNER", "PROJECT_CONTRIBUTOR", + "PROJECT_CATALOG_VIEWER", + "PROJECT_CATALOG_CONSUMER", + "PROJECT_CATALOG_STEWARD", ), }, /*END VALIDATORS*/ // Designation is a write-only property. diff --git a/internal/aws/datazone/project_membership_singular_data_source_gen.go b/internal/aws/datazone/project_membership_singular_data_source_gen.go index 77948348db..d1d19a7d7b 100644 --- a/internal/aws/datazone/project_membership_singular_data_source_gen.go +++ b/internal/aws/datazone/project_membership_singular_data_source_gen.go @@ -28,7 +28,10 @@ func projectMembershipDataSource(ctx context.Context) (datasource.DataSource, er // { // "enum": [ // "PROJECT_OWNER", - // "PROJECT_CONTRIBUTOR" + // "PROJECT_CONTRIBUTOR", + // "PROJECT_CATALOG_VIEWER", + // "PROJECT_CATALOG_CONSUMER", + // "PROJECT_CATALOG_STEWARD" // ], // "type": "string" // } diff --git a/internal/aws/datazone/subscription_target_resource_gen.go b/internal/aws/datazone/subscription_target_resource_gen.go index 898f9351e1..e6dae8e38b 100644 --- a/internal/aws/datazone/subscription_target_resource_gen.go +++ b/internal/aws/datazone/subscription_target_resource_gen.go @@ -208,7 +208,11 @@ func subscriptionTargetResource(ctx context.Context) (resource.Resource, error) // } "manage_access_role": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The manage access role that is used to create the subscription target.", - Required: true, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Name // CloudFormation resource type schema: diff --git a/internal/aws/dynamodb/table_resource_gen.go b/internal/aws/dynamodb/table_resource_gen.go index 2761390af4..b948bb3dd6 100644 --- a/internal/aws/dynamodb/table_resource_gen.go +++ b/internal/aws/dynamodb/table_resource_gen.go @@ -561,7 +561,7 @@ func tableResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "description": "Specifies the properties of data being imported from the S3 bucket source to the table.\n If you specify the ``ImportSourceSpecification`` property, and also specify either the ``StreamSpecification``, the ``TableClass`` property, or the ``DeletionProtectionEnabled`` property, the IAM entity creating/updating stack must have ``UpdateTable`` permission.", + // "description": "Specifies the properties of data being imported from the S3 bucket source to the\" table.\n If you specify the ``ImportSourceSpecification`` property, and also specify either the ``StreamSpecification``, the ``TableClass`` property, the ``DeletionProtectionEnabled`` property, or the ``WarmThroughput`` property, the IAM entity creating/updating stack must have ``UpdateTable`` permission.", // "properties": { // "InputCompressionType": { // "description": "Type of compression to be used on the input coming from the imported table.", @@ -742,7 +742,7 @@ func tableResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Specifies the properties of data being imported from the S3 bucket source to the table.\n If you specify the ``ImportSourceSpecification`` property, and also specify either the ``StreamSpecification``, the ``TableClass`` property, or the ``DeletionProtectionEnabled`` property, the IAM entity creating/updating stack must have ``UpdateTable`` permission.", + Description: "Specifies the properties of data being imported from the S3 bucket source to the\" table.\n If you specify the ``ImportSourceSpecification`` property, and also specify either the ``StreamSpecification``, the ``TableClass`` property, the ``DeletionProtectionEnabled`` property, or the ``WarmThroughput`` property, the IAM entity creating/updating stack must have ``UpdateTable`` permission.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/dynamodb/table_singular_data_source_gen.go b/internal/aws/dynamodb/table_singular_data_source_gen.go index 131a336825..d9706d230d 100644 --- a/internal/aws/dynamodb/table_singular_data_source_gen.go +++ b/internal/aws/dynamodb/table_singular_data_source_gen.go @@ -394,7 +394,7 @@ func tableDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "additionalProperties": false, - // "description": "Specifies the properties of data being imported from the S3 bucket source to the table.\n If you specify the ``ImportSourceSpecification`` property, and also specify either the ``StreamSpecification``, the ``TableClass`` property, or the ``DeletionProtectionEnabled`` property, the IAM entity creating/updating stack must have ``UpdateTable`` permission.", + // "description": "Specifies the properties of data being imported from the S3 bucket source to the\" table.\n If you specify the ``ImportSourceSpecification`` property, and also specify either the ``StreamSpecification``, the ``TableClass`` property, the ``DeletionProtectionEnabled`` property, or the ``WarmThroughput`` property, the IAM entity creating/updating stack must have ``UpdateTable`` permission.", // "properties": { // "InputCompressionType": { // "description": "Type of compression to be used on the input coming from the imported table.", @@ -523,7 +523,7 @@ func tableDataSource(ctx context.Context) (datasource.DataSource, error) { Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Specifies the properties of data being imported from the S3 bucket source to the table.\n If you specify the ``ImportSourceSpecification`` property, and also specify either the ``StreamSpecification``, the ``TableClass`` property, or the ``DeletionProtectionEnabled`` property, the IAM entity creating/updating stack must have ``UpdateTable`` permission.", + Description: "Specifies the properties of data being imported from the S3 bucket source to the\" table.\n If you specify the ``ImportSourceSpecification`` property, and also specify either the ``StreamSpecification``, the ``TableClass`` property, the ``DeletionProtectionEnabled`` property, or the ``WarmThroughput`` property, the IAM entity creating/updating stack must have ``UpdateTable`` permission.", Computed: true, }, /*END ATTRIBUTE*/ // Property: KeySchema diff --git a/internal/aws/ec2/customer_gateway_resource_gen.go b/internal/aws/ec2/customer_gateway_resource_gen.go index 14b9c6c027..ff73de7248 100644 --- a/internal/aws/ec2/customer_gateway_resource_gen.go +++ b/internal/aws/ec2/customer_gateway_resource_gen.go @@ -77,7 +77,7 @@ func customerGatewayResource(ctx context.Context) (resource.Resource, error) { // // { // "description": "The Amazon Resource Name (ARN) for the customer gateway certificate.", - // "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", + // "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso([a-z]{1})?))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", // "type": "string" // } "certificate_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ @@ -85,7 +85,7 @@ func customerGatewayResource(ctx context.Context) (resource.Resource, error) { Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.RegexMatches(regexp.MustCompile("^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso([a-z]{1})?))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), diff --git a/internal/aws/ec2/customer_gateway_singular_data_source_gen.go b/internal/aws/ec2/customer_gateway_singular_data_source_gen.go index 544ee18e01..fb67220360 100644 --- a/internal/aws/ec2/customer_gateway_singular_data_source_gen.go +++ b/internal/aws/ec2/customer_gateway_singular_data_source_gen.go @@ -52,7 +52,7 @@ func customerGatewayDataSource(ctx context.Context) (datasource.DataSource, erro // // { // "description": "The Amazon Resource Name (ARN) for the customer gateway certificate.", - // "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", + // "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso([a-z]{1})?))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", // "type": "string" // } "certificate_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ diff --git a/internal/aws/ecs/service_resource_gen.go b/internal/aws/ecs/service_resource_gen.go index 1d02ceb9d9..c688f6ff84 100644 --- a/internal/aws/ecs/service_resource_gen.go +++ b/internal/aws/ecs/service_resource_gen.go @@ -39,7 +39,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { // // { // "default": "DISABLED", - // "description": "", + // "description": "Indicates whether to use Availability Zone rebalancing for the service.\n For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide*.", // "enum": [ // "ENABLED", // "DISABLED" @@ -47,7 +47,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // } "availability_zone_rebalancing": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "Indicates whether to use Availability Zone rebalancing for the service.\n For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide*.", Optional: true, Computed: true, Default: stringdefault.StaticString("DISABLED"), @@ -412,11 +412,11 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started. This is only used when your service is configured to use a load balancer. If your service has a load balancer defined and you don't specify a health check grace period value, the default value of ``0`` is used.\n If you do not use an Elastic Load Balancing, we recommend that you use the ``startPeriod`` in the task definition health check parameters. For more information, see [Health check](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_HealthCheck.html).\n If your service's tasks take a while to start and respond to Elastic Load Balancing health checks, you can specify a health check grace period of up to 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS service scheduler ignores health check status. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up.", + // "description": "The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started. If you don't specify a health check grace period value, the default value of ``0`` is used. If you don't use any of the health checks, then ``healthCheckGracePeriodSeconds`` is unused.\n If your service's tasks take a while to start and respond to health checks, you can specify a health check grace period of up to 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS service scheduler ignores health check status. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up.", // "type": "integer" // } "health_check_grace_period_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started. This is only used when your service is configured to use a load balancer. If your service has a load balancer defined and you don't specify a health check grace period value, the default value of ``0`` is used.\n If you do not use an Elastic Load Balancing, we recommend that you use the ``startPeriod`` in the task definition health check parameters. For more information, see [Health check](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_HealthCheck.html).\n If your service's tasks take a while to start and respond to Elastic Load Balancing health checks, you can specify a health check grace period of up to 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS service scheduler ignores health check status. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up.", + Description: "The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started. If you don't specify a health check grace period value, the default value of ``0`` is used. If you don't use any of the health checks, then ``healthCheckGracePeriodSeconds`` is unused.\n If your service's tasks take a while to start and respond to health checks, you can specify a health check grace period of up to 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS service scheduler ignores health check status. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -555,7 +555,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { // "description": "The VPC subnets and security groups that are associated with a task.\n All specified subnets and security groups must be from the same VPC.", // "properties": { // "AssignPublicIp": { - // "description": "Whether the task's elastic network interface receives a public IP address. The default value is ``DISABLED``.", + // "description": "Whether the task's elastic network interface receives a public IP address. The default value is ``ENABLED``.", // "enum": [ // "DISABLED", // "ENABLED" @@ -589,7 +589,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: AssignPublicIp "assign_public_ip": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Whether the task's elastic network interface receives a public IP address. The default value is ``DISABLED``.", + Description: "Whether the task's elastic network interface receives a public IP address. The default value is ``ENABLED``.", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -1755,18 +1755,21 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "", + // "description": "The VPC Lattice configuration for the service being created.", // "items": { // "additionalProperties": false, - // "description": "", + // "description": "The VPC Lattice configuration for your service that holds the information for the target group(s) Amazon ECS tasks will be registered to.", // "properties": { // "PortName": { + // "description": "The name of the port mapping to register in the VPC Lattice target group. This is the name of the ``portMapping`` you defined in your task definition.", // "type": "string" // }, // "RoleArn": { + // "description": "The ARN of the IAM role to associate with this VPC Lattice configuration. This is the Amazon ECS\u2028 infrastructure IAM role that is used to manage your VPC Lattice infrastructure.", // "type": "string" // }, // "TargetGroupArn": { + // "description": "The full Amazon Resource Name (ARN) of the target group or groups associated with the VPC Lattice configuration that the Amazon ECS tasks will be registered to.", // "type": "string" // } // }, @@ -1784,8 +1787,9 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: PortName "port_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "The name of the port mapping to register in the VPC Lattice target group. This is the name of the ``portMapping`` you defined in your task definition.", + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ fwvalidators.NotNullString(), }, /*END VALIDATORS*/ @@ -1795,8 +1799,9 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: RoleArn "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "The ARN of the IAM role to associate with this VPC Lattice configuration. This is the Amazon ECS\u2028 infrastructure IAM role that is used to manage your VPC Lattice infrastructure.", + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ fwvalidators.NotNullString(), }, /*END VALIDATORS*/ @@ -1806,8 +1811,9 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: TargetGroupArn "target_group_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "The full Amazon Resource Name (ARN) of the target group or groups associated with the VPC Lattice configuration that the Amazon ECS tasks will be registered to.", + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ fwvalidators.NotNullString(), }, /*END VALIDATORS*/ @@ -1817,7 +1823,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "", + Description: "The VPC Lattice configuration for the service being created.", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/ecs/service_singular_data_source_gen.go b/internal/aws/ecs/service_singular_data_source_gen.go index 0498b0e8da..d012fba90d 100644 --- a/internal/aws/ecs/service_singular_data_source_gen.go +++ b/internal/aws/ecs/service_singular_data_source_gen.go @@ -28,7 +28,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "default": "DISABLED", - // "description": "", + // "description": "Indicates whether to use Availability Zone rebalancing for the service.\n For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide*.", // "enum": [ // "ENABLED", // "DISABLED" @@ -36,7 +36,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "string" // } "availability_zone_rebalancing": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "Indicates whether to use Availability Zone rebalancing for the service.\n For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: CapacityProviderStrategy @@ -286,11 +286,11 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started. This is only used when your service is configured to use a load balancer. If your service has a load balancer defined and you don't specify a health check grace period value, the default value of ``0`` is used.\n If you do not use an Elastic Load Balancing, we recommend that you use the ``startPeriod`` in the task definition health check parameters. For more information, see [Health check](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_HealthCheck.html).\n If your service's tasks take a while to start and respond to Elastic Load Balancing health checks, you can specify a health check grace period of up to 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS service scheduler ignores health check status. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up.", + // "description": "The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started. If you don't specify a health check grace period value, the default value of ``0`` is used. If you don't use any of the health checks, then ``healthCheckGracePeriodSeconds`` is unused.\n If your service's tasks take a while to start and respond to health checks, you can specify a health check grace period of up to 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS service scheduler ignores health check status. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up.", // "type": "integer" // } "health_check_grace_period_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started. This is only used when your service is configured to use a load balancer. If your service has a load balancer defined and you don't specify a health check grace period value, the default value of ``0`` is used.\n If you do not use an Elastic Load Balancing, we recommend that you use the ``startPeriod`` in the task definition health check parameters. For more information, see [Health check](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_HealthCheck.html).\n If your service's tasks take a while to start and respond to Elastic Load Balancing health checks, you can specify a health check grace period of up to 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS service scheduler ignores health check status. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up.", + Description: "The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started. If you don't specify a health check grace period value, the default value of ``0`` is used. If you don't use any of the health checks, then ``healthCheckGracePeriodSeconds`` is unused.\n If your service's tasks take a while to start and respond to health checks, you can specify a health check grace period of up to 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS service scheduler ignores health check status. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up.", Computed: true, }, /*END ATTRIBUTE*/ // Property: LaunchType @@ -390,7 +390,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "The VPC subnets and security groups that are associated with a task.\n All specified subnets and security groups must be from the same VPC.", // "properties": { // "AssignPublicIp": { - // "description": "Whether the task's elastic network interface receives a public IP address. The default value is ``DISABLED``.", + // "description": "Whether the task's elastic network interface receives a public IP address. The default value is ``ENABLED``.", // "enum": [ // "DISABLED", // "ENABLED" @@ -424,7 +424,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: AssignPublicIp "assign_public_ip": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Whether the task's elastic network interface receives a public IP address. The default value is ``DISABLED``.", + Description: "Whether the task's elastic network interface receives a public IP address. The default value is ``ENABLED``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: SecurityGroups @@ -1246,18 +1246,21 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "", + // "description": "The VPC Lattice configuration for the service being created.", // "items": { // "additionalProperties": false, - // "description": "", + // "description": "The VPC Lattice configuration for your service that holds the information for the target group(s) Amazon ECS tasks will be registered to.", // "properties": { // "PortName": { + // "description": "The name of the port mapping to register in the VPC Lattice target group. This is the name of the ``portMapping`` you defined in your task definition.", // "type": "string" // }, // "RoleArn": { + // "description": "The ARN of the IAM role to associate with this VPC Lattice configuration. This is the Amazon ECS\u2028 infrastructure IAM role that is used to manage your VPC Lattice infrastructure.", // "type": "string" // }, // "TargetGroupArn": { + // "description": "The full Amazon Resource Name (ARN) of the target group or groups associated with the VPC Lattice configuration that the Amazon ECS tasks will be registered to.", // "type": "string" // } // }, @@ -1275,19 +1278,22 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: PortName "port_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The name of the port mapping to register in the VPC Lattice target group. This is the name of the ``portMapping`` you defined in your task definition.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: RoleArn "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The ARN of the IAM role to associate with this VPC Lattice configuration. This is the Amazon ECS\u2028 infrastructure IAM role that is used to manage your VPC Lattice infrastructure.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: TargetGroupArn "target_group_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "The full Amazon Resource Name (ARN) of the target group or groups associated with the VPC Lattice configuration that the Amazon ECS tasks will be registered to.", + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "", + Description: "The VPC Lattice configuration for the service being created.", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/ecs/task_definition_resource_gen.go b/internal/aws/ecs/task_definition_resource_gen.go index 2ba6c5668c..c80cb5f5d2 100644 --- a/internal/aws/ecs/task_definition_resource_gen.go +++ b/internal/aws/ecs/task_definition_resource_gen.go @@ -223,7 +223,7 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { // "description": "The container health check command and associated configuration parameters for the container. This parameter maps to ``HealthCheck`` in the docker container create command and the ``HEALTHCHECK`` parameter of docker run.", // "properties": { // "Command": { - // "description": "A string array representing the command that the container runs to determine if it is healthy. The string array must start with ``CMD`` to run the command arguments directly, or ``CMD-SHELL`` to run the command with the container's default shell. \n When you use the AWS Management Console JSON panel, the CLIlong, or the APIs, enclose the list of commands in double quotes and brackets.\n ``[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]`` \n You don't include the double quotes and brackets when you use the AWS Management Console.\n ``CMD-SHELL, curl -f http://localhost/ || exit 1`` \n An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command", + // "description": "A string array representing the command that the container runs to determine if it is healthy. The string array must start with ``CMD`` to run the command arguments directly, or ``CMD-SHELL`` to run the command with the container's default shell. \n When you use the AWS Management Console JSON panel, the CLIlong, or the APIs, enclose the list of commands in double quotes and brackets.\n ``[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]`` \n You don't include the double quotes and brackets when you use the AWS Management Console.\n ``CMD-SHELL, curl -f http://localhost/ || exit 1`` \n An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command.", // "insertionOrder": true, // "items": { // "type": "string" @@ -490,7 +490,7 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { // "type": "integer" // }, // "Name": { - // "description": "The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.\n For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*.", + // "description": "The name that's used for the port mapping. This parameter is the name that you use in the ``serviceConnectConfiguration`` and the ``vpcLatticeConfigurations`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.", // "type": "string" // }, // "Protocol": { @@ -660,7 +660,7 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { // }, // "VersionConsistency": { // "default": "enabled", - // "description": "", + // "description": "Specifies whether Amazon ECS will resolve the container image tag provided in the container definition to an image digest. By default, the value is ``enabled``. If you set the value for a container as ``disabled``, Amazon ECS will not resolve the provided container image tag to a digest and will use the original image URI specified in the container definition for deployment. For more information about container image resolution, see [Container image resolution](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html#deployment-container-image-stability) in the *Amazon ECS Developer Guide*.", // "enum": [ // "enabled", // "disabled" @@ -970,7 +970,7 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { // Property: Command "command": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "A string array representing the command that the container runs to determine if it is healthy. The string array must start with ``CMD`` to run the command arguments directly, or ``CMD-SHELL`` to run the command with the container's default shell. \n When you use the AWS Management Console JSON panel, the CLIlong, or the APIs, enclose the list of commands in double quotes and brackets.\n ``[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]`` \n You don't include the double quotes and brackets when you use the AWS Management Console.\n ``CMD-SHELL, curl -f http://localhost/ || exit 1`` \n An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command", + Description: "A string array representing the command that the container runs to determine if it is healthy. The string array must start with ``CMD`` to run the command arguments directly, or ``CMD-SHELL`` to run the command with the container's default shell. \n When you use the AWS Management Console JSON panel, the CLIlong, or the APIs, enclose the list of commands in double quotes and brackets.\n ``[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]`` \n You don't include the double quotes and brackets when you use the AWS Management Console.\n ``CMD-SHELL, curl -f http://localhost/ || exit 1`` \n An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command.", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -1423,7 +1423,7 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Name "name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.\n For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*.", + Description: "The name that's used for the port mapping. This parameter is the name that you use in the ``serviceConnectConfiguration`` and the ``vpcLatticeConfigurations`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -1722,7 +1722,7 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: VersionConsistency "version_consistency": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "Specifies whether Amazon ECS will resolve the container image tag provided in the container definition to an image digest. By default, the value is ``enabled``. If you set the value for a container as ``disabled``, Amazon ECS will not resolve the provided container image tag to a digest and will use the original image URI specified in the container definition for deployment. For more information about container image resolution, see [Container image resolution](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html#deployment-container-image-stability) in the *Amazon ECS Developer Guide*.", Optional: true, Computed: true, Default: stringdefault.StaticString("enabled"), @@ -1802,6 +1802,22 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: EnableFaultInjection + // CloudFormation resource type schema: + // + // { + // "description": "", + // "type": "boolean" + // } + "enable_fault_injection": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + boolplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: EphemeralStorage // CloudFormation resource type schema: // @@ -1810,7 +1826,7 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { // "description": "The ephemeral storage settings to use for tasks run with the task definition.", // "properties": { // "SizeInGiB": { - // "description": "The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``20`` GiB and the maximum supported value is ``200`` GiB.", + // "description": "The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``21`` GiB and the maximum supported value is ``200`` GiB.", // "type": "integer" // } // }, @@ -1820,7 +1836,7 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: SizeInGiB "size_in_gi_b": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``20`` GiB and the maximum supported value is ``200`` GiB.", + Description: "The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``21`` GiB and the maximum supported value is ``200`` GiB.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -2794,6 +2810,7 @@ func taskDefinitionResource(ctx context.Context) (resource.Resource, error) { "driver_opts": "DriverOpts", "drop": "Drop", "efs_volume_configuration": "EFSVolumeConfiguration", + "enable_fault_injection": "EnableFaultInjection", "enabled": "Enabled", "entry_point": "EntryPoint", "environment": "Environment", diff --git a/internal/aws/ecs/task_definition_singular_data_source_gen.go b/internal/aws/ecs/task_definition_singular_data_source_gen.go index 3b837898aa..e56ea2c418 100644 --- a/internal/aws/ecs/task_definition_singular_data_source_gen.go +++ b/internal/aws/ecs/task_definition_singular_data_source_gen.go @@ -210,7 +210,7 @@ func taskDefinitionDataSource(ctx context.Context) (datasource.DataSource, error // "description": "The container health check command and associated configuration parameters for the container. This parameter maps to ``HealthCheck`` in the docker container create command and the ``HEALTHCHECK`` parameter of docker run.", // "properties": { // "Command": { - // "description": "A string array representing the command that the container runs to determine if it is healthy. The string array must start with ``CMD`` to run the command arguments directly, or ``CMD-SHELL`` to run the command with the container's default shell. \n When you use the AWS Management Console JSON panel, the CLIlong, or the APIs, enclose the list of commands in double quotes and brackets.\n ``[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]`` \n You don't include the double quotes and brackets when you use the AWS Management Console.\n ``CMD-SHELL, curl -f http://localhost/ || exit 1`` \n An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command", + // "description": "A string array representing the command that the container runs to determine if it is healthy. The string array must start with ``CMD`` to run the command arguments directly, or ``CMD-SHELL`` to run the command with the container's default shell. \n When you use the AWS Management Console JSON panel, the CLIlong, or the APIs, enclose the list of commands in double quotes and brackets.\n ``[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]`` \n You don't include the double quotes and brackets when you use the AWS Management Console.\n ``CMD-SHELL, curl -f http://localhost/ || exit 1`` \n An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command.", // "insertionOrder": true, // "items": { // "type": "string" @@ -477,7 +477,7 @@ func taskDefinitionDataSource(ctx context.Context) (datasource.DataSource, error // "type": "integer" // }, // "Name": { - // "description": "The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.\n For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*.", + // "description": "The name that's used for the port mapping. This parameter is the name that you use in the ``serviceConnectConfiguration`` and the ``vpcLatticeConfigurations`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.", // "type": "string" // }, // "Protocol": { @@ -647,7 +647,7 @@ func taskDefinitionDataSource(ctx context.Context) (datasource.DataSource, error // }, // "VersionConsistency": { // "default": "enabled", - // "description": "", + // "description": "Specifies whether Amazon ECS will resolve the container image tag provided in the container definition to an image digest. By default, the value is ``enabled``. If you set the value for a container as ``disabled``, Amazon ECS will not resolve the provided container image tag to a digest and will use the original image URI specified in the container definition for deployment. For more information about container image resolution, see [Container image resolution](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html#deployment-container-image-stability) in the *Amazon ECS Developer Guide*.", // "enum": [ // "enabled", // "disabled" @@ -851,7 +851,7 @@ func taskDefinitionDataSource(ctx context.Context) (datasource.DataSource, error // Property: Command "command": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "A string array representing the command that the container runs to determine if it is healthy. The string array must start with ``CMD`` to run the command arguments directly, or ``CMD-SHELL`` to run the command with the container's default shell. \n When you use the AWS Management Console JSON panel, the CLIlong, or the APIs, enclose the list of commands in double quotes and brackets.\n ``[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]`` \n You don't include the double quotes and brackets when you use the AWS Management Console.\n ``CMD-SHELL, curl -f http://localhost/ || exit 1`` \n An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command", + Description: "A string array representing the command that the container runs to determine if it is healthy. The string array must start with ``CMD`` to run the command arguments directly, or ``CMD-SHELL`` to run the command with the container's default shell. \n When you use the AWS Management Console JSON panel, the CLIlong, or the APIs, enclose the list of commands in double quotes and brackets.\n ``[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]`` \n You don't include the double quotes and brackets when you use the AWS Management Console.\n ``CMD-SHELL, curl -f http://localhost/ || exit 1`` \n An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Interval @@ -1098,7 +1098,7 @@ func taskDefinitionDataSource(ctx context.Context) (datasource.DataSource, error }, /*END ATTRIBUTE*/ // Property: Name "name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.\n For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*.", + Description: "The name that's used for the port mapping. This parameter is the name that you use in the ``serviceConnectConfiguration`` and the ``vpcLatticeConfigurations`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Protocol @@ -1259,7 +1259,7 @@ func taskDefinitionDataSource(ctx context.Context) (datasource.DataSource, error }, /*END ATTRIBUTE*/ // Property: VersionConsistency "version_consistency": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "Specifies whether Amazon ECS will resolve the container image tag provided in the container definition to an image digest. By default, the value is ``enabled``. If you set the value for a container as ``disabled``, Amazon ECS will not resolve the provided container image tag to a digest and will use the original image URI specified in the container definition for deployment. For more information about container image resolution, see [Container image resolution](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html#deployment-container-image-stability) in the *Amazon ECS Developer Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: VolumesFrom @@ -1302,6 +1302,17 @@ func taskDefinitionDataSource(ctx context.Context) (datasource.DataSource, error Description: "The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter.\n If you use the EC2 launch type, this field is optional. Supported values are between ``128`` CPU units (``0.125`` vCPUs) and ``10240`` CPU units (``10`` vCPUs).\n The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate.\n + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)\n + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)\n + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)\n + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)\n + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)\n + 8192 (8 vCPU) - Available ``memory`` values: 16 GB and 60 GB in 4 GB increments\n This option requires Linux platform ``1.4.0`` or later.\n + 16384 (16vCPU) - Available ``memory`` values: 32GB and 120 GB in 8 GB increments\n This option requires Linux platform ``1.4.0`` or later.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: EnableFaultInjection + // CloudFormation resource type schema: + // + // { + // "description": "", + // "type": "boolean" + // } + "enable_fault_injection": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: EphemeralStorage // CloudFormation resource type schema: // @@ -1310,7 +1321,7 @@ func taskDefinitionDataSource(ctx context.Context) (datasource.DataSource, error // "description": "The ephemeral storage settings to use for tasks run with the task definition.", // "properties": { // "SizeInGiB": { - // "description": "The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``20`` GiB and the maximum supported value is ``200`` GiB.", + // "description": "The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``21`` GiB and the maximum supported value is ``200`` GiB.", // "type": "integer" // } // }, @@ -1320,7 +1331,7 @@ func taskDefinitionDataSource(ctx context.Context) (datasource.DataSource, error Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: SizeInGiB "size_in_gi_b": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``20`` GiB and the maximum supported value is ``200`` GiB.", + Description: "The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``21`` GiB and the maximum supported value is ``200`` GiB.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -2026,6 +2037,7 @@ func taskDefinitionDataSource(ctx context.Context) (datasource.DataSource, error "driver_opts": "DriverOpts", "drop": "Drop", "efs_volume_configuration": "EFSVolumeConfiguration", + "enable_fault_injection": "EnableFaultInjection", "enabled": "Enabled", "entry_point": "EntryPoint", "environment": "Environment", diff --git a/internal/aws/fis/experiment_template_resource_gen.go b/internal/aws/fis/experiment_template_resource_gen.go index 7ae44e4c6f..0c75c8aaa3 100644 --- a/internal/aws/fis/experiment_template_resource_gen.go +++ b/internal/aws/fis/experiment_template_resource_gen.go @@ -313,8 +313,7 @@ func experimentTemplateResource(ctx context.Context) (resource.Resource, error) // } // }, // "required": [ - // "Outputs", - // "DataSources" + // "Outputs" // ], // "type": "object" // } @@ -350,9 +349,6 @@ func experimentTemplateResource(ctx context.Context) (resource.Resource, error) }, /*END SCHEMA*/ Optional: true, Computed: true, - Validators: []validator.Object{ /*START VALIDATORS*/ - fwvalidators.NotNullObject(), - }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ diff --git a/internal/aws/fis/experiment_template_singular_data_source_gen.go b/internal/aws/fis/experiment_template_singular_data_source_gen.go index b17f502a06..d6cf49f0c8 100644 --- a/internal/aws/fis/experiment_template_singular_data_source_gen.go +++ b/internal/aws/fis/experiment_template_singular_data_source_gen.go @@ -239,8 +239,7 @@ func experimentTemplateDataSource(ctx context.Context) (datasource.DataSource, e // } // }, // "required": [ - // "Outputs", - // "DataSources" + // "Outputs" // ], // "type": "object" // } diff --git a/internal/aws/healthlake/fhir_datastore_resource_gen.go b/internal/aws/healthlake/fhir_datastore_resource_gen.go index 2bdcd24767..6baeb96c83 100644 --- a/internal/aws/healthlake/fhir_datastore_resource_gen.go +++ b/internal/aws/healthlake/fhir_datastore_resource_gen.go @@ -18,6 +18,7 @@ import ( "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/defaults" "github.com/hashicorp/terraform-provider-awscc/internal/generic" "github.com/hashicorp/terraform-provider-awscc/internal/registry" fwvalidators "github.com/hashicorp/terraform-provider-awscc/internal/validators" @@ -186,6 +187,10 @@ func fHIRDatastoreResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, + // "default": { + // "AuthorizationStrategy": "AWS_AUTH", + // "FineGrainedAuthorizationEnabled": false + // }, // "description": "The identity provider configuration for the datastore", // "properties": { // "AuthorizationStrategy": { @@ -271,6 +276,10 @@ func fHIRDatastoreResource(ctx context.Context) (resource.Resource, error) { Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + defaults.StaticPartialObject(map[string]interface{}{ + "authorization_strategy": "AWS_AUTH", + "fine_grained_authorization_enabled": false, + }), objectplanmodifier.UseStateForUnknown(), objectplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ @@ -326,6 +335,11 @@ func fHIRDatastoreResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, + // "default": { + // "KmsEncryptionConfig": { + // "CmkType": "AWS_OWNED_KMS_KEY" + // } + // }, // "description": "The server-side encryption key configuration for a customer provided encryption key.", // "properties": { // "KmsEncryptionConfig": { @@ -409,6 +423,11 @@ func fHIRDatastoreResource(ctx context.Context) (resource.Resource, error) { Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + defaults.StaticPartialObject(map[string]interface{}{ + "kms_encryption_config": map[string]interface{}{ + "cmk_type": "AWS_OWNED_KMS_KEY", + }, + }), objectplanmodifier.UseStateForUnknown(), objectplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ diff --git a/internal/aws/healthlake/fhir_datastore_singular_data_source_gen.go b/internal/aws/healthlake/fhir_datastore_singular_data_source_gen.go index ebc5554792..34e9a94d91 100644 --- a/internal/aws/healthlake/fhir_datastore_singular_data_source_gen.go +++ b/internal/aws/healthlake/fhir_datastore_singular_data_source_gen.go @@ -146,6 +146,10 @@ func fHIRDatastoreDataSource(ctx context.Context) (datasource.DataSource, error) // // { // "additionalProperties": false, + // "default": { + // "AuthorizationStrategy": "AWS_AUTH", + // "FineGrainedAuthorizationEnabled": false + // }, // "description": "The identity provider configuration for the datastore", // "properties": { // "AuthorizationStrategy": { @@ -239,6 +243,11 @@ func fHIRDatastoreDataSource(ctx context.Context) (datasource.DataSource, error) // // { // "additionalProperties": false, + // "default": { + // "KmsEncryptionConfig": { + // "CmkType": "AWS_OWNED_KMS_KEY" + // } + // }, // "description": "The server-side encryption key configuration for a customer provided encryption key.", // "properties": { // "KmsEncryptionConfig": { diff --git a/internal/aws/iot/command_plural_data_source_gen.go b/internal/aws/iot/command_plural_data_source_gen.go new file mode 100644 index 0000000000..74b2fff930 --- /dev/null +++ b/internal/aws/iot/command_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 iot + +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_iot_commands", commandsDataSource) +} + +// commandsDataSource returns the Terraform awscc_iot_commands data source. +// This Terraform data source corresponds to the CloudFormation AWS::IoT::Command resource. +func commandsDataSource(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::IoT::Command", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::IoT::Command").WithTerraformTypeName("awscc_iot_commands") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/iot/command_plural_data_source_gen_test.go b/internal/aws/iot/command_plural_data_source_gen_test.go new file mode 100644 index 0000000000..e4f32d521e --- /dev/null +++ b/internal/aws/iot/command_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 iot_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSIoTCommandsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::IoT::Command", "awscc_iot_commands", "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/iot/command_resource_gen.go b/internal/aws/iot/command_resource_gen.go new file mode 100644 index 0000000000..5af4495fd3 --- /dev/null +++ b/internal/aws/iot/command_resource_gen.go @@ -0,0 +1,687 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package iot + +import ( + "context" + "regexp" + + "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/boolplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/float64planmodifier" + "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" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" + fwvalidators "github.com/hashicorp/terraform-provider-awscc/internal/validators" +) + +func init() { + registry.AddResourceFactory("awscc_iot_command", commandResource) +} + +// commandResource returns the Terraform awscc_iot_command resource. +// This Terraform resource corresponds to the CloudFormation AWS::IoT::Command resource. +func commandResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CommandArn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) of the command.", + // "type": "string" + // } + "command_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the command.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CommandId + // CloudFormation resource type schema: + // + // { + // "description": "The unique identifier for the command.", + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9_-]+$", + // "type": "string" + // } + "command_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The unique identifier for the command.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 64), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9_-]+$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "The date and time when the command was created.", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The date and time when the command was created.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Deprecated + // CloudFormation resource type schema: + // + // { + // "description": "A flag indicating whether the command is deprecated.", + // "type": "boolean" + // } + "deprecated": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "A flag indicating whether the command is deprecated.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "The description of the command.", + // "maxLength": 2028, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The description of the command.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(2028), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DisplayName + // CloudFormation resource type schema: + // + // { + // "description": "The display name for the command.", + // "type": "string" + // } + "display_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The display name for the command.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LastUpdatedAt + // CloudFormation resource type schema: + // + // { + // "description": "The date and time when the command was last updated.", + // "type": "string" + // } + "last_updated_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The date and time when the command was last updated.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // LastUpdatedAt is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: MandatoryParameters + // CloudFormation resource type schema: + // + // { + // "description": "The list of mandatory parameters for the command.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "DefaultValue": { + // "additionalProperties": false, + // "properties": { + // "B": { + // "type": "boolean" + // }, + // "BIN": { + // "minLength": 1, + // "type": "string" + // }, + // "D": { + // "type": "number" + // }, + // "I": { + // "type": "integer" + // }, + // "L": { + // "maxLength": 19, + // "pattern": "^-?\\d+$", + // "type": "string" + // }, + // "S": { + // "minLength": 1, + // "type": "string" + // }, + // "UL": { + // "maxLength": 20, + // "minLength": 1, + // "pattern": "^[0-9]*$", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Description": { + // "maxLength": 2028, + // "type": "string" + // }, + // "Name": { + // "maxLength": 192, + // "minLength": 1, + // "pattern": "^[.$a-zA-Z0-9_-]+$", + // "type": "string" + // }, + // "Value": { + // "additionalProperties": false, + // "properties": { + // "B": { + // "type": "boolean" + // }, + // "BIN": { + // "minLength": 1, + // "type": "string" + // }, + // "D": { + // "type": "number" + // }, + // "I": { + // "type": "integer" + // }, + // "L": { + // "maxLength": 19, + // "pattern": "^-?\\d+$", + // "type": "string" + // }, + // "S": { + // "minLength": 1, + // "type": "string" + // }, + // "UL": { + // "maxLength": 20, + // "minLength": 1, + // "pattern": "^[0-9]*$", + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "minItems": 1, + // "type": "array" + // } + "mandatory_parameters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DefaultValue + "default_value": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: B + "b": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: BIN + "bin": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtLeast(1), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: D + "d": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: I + "i": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: L + "l": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(19), + stringvalidator.RegexMatches(regexp.MustCompile("^-?\\d+$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: S + "s": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtLeast(1), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UL + "ul": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 20), + stringvalidator.RegexMatches(regexp.MustCompile("^[0-9]*$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Description + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(2028), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 192), + stringvalidator.RegexMatches(regexp.MustCompile("^[.$a-zA-Z0-9_-]+$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: B + "b": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: BIN + "bin": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtLeast(1), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: D + "d": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: I + "i": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: L + "l": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(19), + stringvalidator.RegexMatches(regexp.MustCompile("^-?\\d+$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: S + "s": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtLeast(1), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UL + "ul": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 20), + stringvalidator.RegexMatches(regexp.MustCompile("^[0-9]*$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The list of mandatory parameters for the command.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeAtLeast(1), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Namespace + // CloudFormation resource type schema: + // + // { + // "description": "The namespace to which the command belongs.", + // "enum": [ + // "AWS-IoT", + // "AWS-IoT-FleetWise" + // ], + // "type": "string" + // } + "namespace": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The namespace to which the command belongs.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "AWS-IoT", + "AWS-IoT-FleetWise", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Payload + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The payload associated with the command.", + // "properties": { + // "Content": { + // "type": "string" + // }, + // "ContentType": { + // "minLength": 1, + // "type": "string" + // } + // }, + // "type": "object" + // } + "payload": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Content + "content": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ContentType + "content_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtLeast(1), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The payload associated with the command.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PendingDeletion + // CloudFormation resource type schema: + // + // { + // "description": "A flag indicating whether the command is pending deletion.", + // "type": "boolean" + // } + "pending_deletion": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "A flag indicating whether the command is pending deletion.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RoleArn + // CloudFormation resource type schema: + // + // { + // "description": "The customer role associated with the command.", + // "maxLength": 2028, + // "minLength": 20, + // "type": "string" + // } + "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The customer role associated with the command.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(20, 2028), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "The tags to be associated with the command.", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The tag's key.", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "description": "The tag's value.", + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Value", + // "Key" + // ], + // "type": "object" + // }, + // "type": "array" + // } + "tags": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The tag's key.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The tag's value.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The tags to be associated with the command.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.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: "Represents the resource definition of AWS IoT Command.", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::IoT::Command").WithTerraformTypeName("awscc_iot_command") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "b": "B", + "bin": "BIN", + "command_arn": "CommandArn", + "command_id": "CommandId", + "content": "Content", + "content_type": "ContentType", + "created_at": "CreatedAt", + "d": "D", + "default_value": "DefaultValue", + "deprecated": "Deprecated", + "description": "Description", + "display_name": "DisplayName", + "i": "I", + "key": "Key", + "l": "L", + "last_updated_at": "LastUpdatedAt", + "mandatory_parameters": "MandatoryParameters", + "name": "Name", + "namespace": "Namespace", + "payload": "Payload", + "pending_deletion": "PendingDeletion", + "role_arn": "RoleArn", + "s": "S", + "tags": "Tags", + "ul": "UL", + "value": "Value", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/LastUpdatedAt", + }) + 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/iot/command_resource_gen_test.go b/internal/aws/iot/command_resource_gen_test.go new file mode 100644 index 0000000000..b984e80933 --- /dev/null +++ b/internal/aws/iot/command_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 iot_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSIoTCommand_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::IoT::Command", "awscc_iot_command", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/iot/command_singular_data_source_gen.go b/internal/aws/iot/command_singular_data_source_gen.go new file mode 100644 index 0000000000..4d20df75ad --- /dev/null +++ b/internal/aws/iot/command_singular_data_source_gen.go @@ -0,0 +1,457 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package iot + +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_iot_command", commandDataSource) +} + +// commandDataSource returns the Terraform awscc_iot_command data source. +// This Terraform data source corresponds to the CloudFormation AWS::IoT::Command resource. +func commandDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CommandArn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) of the command.", + // "type": "string" + // } + "command_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the command.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CommandId + // CloudFormation resource type schema: + // + // { + // "description": "The unique identifier for the command.", + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9_-]+$", + // "type": "string" + // } + "command_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The unique identifier for the command.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "The date and time when the command was created.", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The date and time when the command was created.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Deprecated + // CloudFormation resource type schema: + // + // { + // "description": "A flag indicating whether the command is deprecated.", + // "type": "boolean" + // } + "deprecated": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "A flag indicating whether the command is deprecated.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "The description of the command.", + // "maxLength": 2028, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The description of the command.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DisplayName + // CloudFormation resource type schema: + // + // { + // "description": "The display name for the command.", + // "type": "string" + // } + "display_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The display name for the command.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LastUpdatedAt + // CloudFormation resource type schema: + // + // { + // "description": "The date and time when the command was last updated.", + // "type": "string" + // } + "last_updated_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The date and time when the command was last updated.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MandatoryParameters + // CloudFormation resource type schema: + // + // { + // "description": "The list of mandatory parameters for the command.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "DefaultValue": { + // "additionalProperties": false, + // "properties": { + // "B": { + // "type": "boolean" + // }, + // "BIN": { + // "minLength": 1, + // "type": "string" + // }, + // "D": { + // "type": "number" + // }, + // "I": { + // "type": "integer" + // }, + // "L": { + // "maxLength": 19, + // "pattern": "^-?\\d+$", + // "type": "string" + // }, + // "S": { + // "minLength": 1, + // "type": "string" + // }, + // "UL": { + // "maxLength": 20, + // "minLength": 1, + // "pattern": "^[0-9]*$", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Description": { + // "maxLength": 2028, + // "type": "string" + // }, + // "Name": { + // "maxLength": 192, + // "minLength": 1, + // "pattern": "^[.$a-zA-Z0-9_-]+$", + // "type": "string" + // }, + // "Value": { + // "additionalProperties": false, + // "properties": { + // "B": { + // "type": "boolean" + // }, + // "BIN": { + // "minLength": 1, + // "type": "string" + // }, + // "D": { + // "type": "number" + // }, + // "I": { + // "type": "integer" + // }, + // "L": { + // "maxLength": 19, + // "pattern": "^-?\\d+$", + // "type": "string" + // }, + // "S": { + // "minLength": 1, + // "type": "string" + // }, + // "UL": { + // "maxLength": 20, + // "minLength": 1, + // "pattern": "^[0-9]*$", + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "minItems": 1, + // "type": "array" + // } + "mandatory_parameters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DefaultValue + "default_value": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: B + "b": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: BIN + "bin": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: D + "d": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: I + "i": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: L + "l": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: S + "s": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UL + "ul": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: B + "b": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: BIN + "bin": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: D + "d": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: I + "i": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: L + "l": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: S + "s": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UL + "ul": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The list of mandatory parameters for the command.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Namespace + // CloudFormation resource type schema: + // + // { + // "description": "The namespace to which the command belongs.", + // "enum": [ + // "AWS-IoT", + // "AWS-IoT-FleetWise" + // ], + // "type": "string" + // } + "namespace": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The namespace to which the command belongs.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Payload + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The payload associated with the command.", + // "properties": { + // "Content": { + // "type": "string" + // }, + // "ContentType": { + // "minLength": 1, + // "type": "string" + // } + // }, + // "type": "object" + // } + "payload": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Content + "content": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ContentType + "content_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The payload associated with the command.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PendingDeletion + // CloudFormation resource type schema: + // + // { + // "description": "A flag indicating whether the command is pending deletion.", + // "type": "boolean" + // } + "pending_deletion": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "A flag indicating whether the command is pending deletion.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RoleArn + // CloudFormation resource type schema: + // + // { + // "description": "The customer role associated with the command.", + // "maxLength": 2028, + // "minLength": 20, + // "type": "string" + // } + "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The customer role associated with the command.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "The tags to be associated with the command.", + // "insertionOrder": true, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The tag's key.", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "description": "The tag's value.", + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Value", + // "Key" + // ], + // "type": "object" + // }, + // "type": "array" + // } + "tags": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The tag's key.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The tag's value.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The tags to be associated with the command.", + 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::IoT::Command", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::IoT::Command").WithTerraformTypeName("awscc_iot_command") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "b": "B", + "bin": "BIN", + "command_arn": "CommandArn", + "command_id": "CommandId", + "content": "Content", + "content_type": "ContentType", + "created_at": "CreatedAt", + "d": "D", + "default_value": "DefaultValue", + "deprecated": "Deprecated", + "description": "Description", + "display_name": "DisplayName", + "i": "I", + "key": "Key", + "l": "L", + "last_updated_at": "LastUpdatedAt", + "mandatory_parameters": "MandatoryParameters", + "name": "Name", + "namespace": "Namespace", + "payload": "Payload", + "pending_deletion": "PendingDeletion", + "role_arn": "RoleArn", + "s": "S", + "tags": "Tags", + "ul": "UL", + "value": "Value", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/iot/command_singular_data_source_gen_test.go b/internal/aws/iot/command_singular_data_source_gen_test.go new file mode 100644 index 0000000000..bf849c3385 --- /dev/null +++ b/internal/aws/iot/command_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 iot_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSIoTCommandDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::IoT::Command", "awscc_iot_command", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSIoTCommandDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::IoT::Command", "awscc_iot_command", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/iot/software_package_version_resource_gen.go b/internal/aws/iot/software_package_version_resource_gen.go index 3afa0b4c6c..9b30459f63 100644 --- a/internal/aws/iot/software_package_version_resource_gen.go +++ b/internal/aws/iot/software_package_version_resource_gen.go @@ -110,6 +110,7 @@ func softwarePackageVersionResource(ctx context.Context) (resource.Resource, err // CloudFormation resource type schema: // // { + // "pattern": "^arn:[!-~]+$", // "type": "string" // } "package_version_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ diff --git a/internal/aws/iot/software_package_version_singular_data_source_gen.go b/internal/aws/iot/software_package_version_singular_data_source_gen.go index 0587bfb717..cc67332b78 100644 --- a/internal/aws/iot/software_package_version_singular_data_source_gen.go +++ b/internal/aws/iot/software_package_version_singular_data_source_gen.go @@ -79,6 +79,7 @@ func softwarePackageVersionDataSource(ctx context.Context) (datasource.DataSourc // CloudFormation resource type schema: // // { + // "pattern": "^arn:[!-~]+$", // "type": "string" // } "package_version_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ diff --git a/internal/aws/lambda/function_resource_gen.go b/internal/aws/lambda/function_resource_gen.go index 76064f4194..0724ec9553 100644 --- a/internal/aws/lambda/function_resource_gen.go +++ b/internal/aws/lambda/function_resource_gen.go @@ -118,12 +118,12 @@ func functionResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // }, // "SourceKMSKeyArn": { - // "description": "", + // "description": "The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's .zip deployment package. If you don't provide a customer managed key, Lambda uses an [owned key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk).", // "pattern": "^(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()$", // "type": "string" // }, // "ZipFile": { - // "description": "(Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, CFN places it in a file named ``index`` and zips it to create a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html). This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index``. For example, ``index.handler``.\n For JSON, you must escape quotes and special characters such as newline (``\\n``) with a backslash.\n If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module ([cfn-response](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html)) that simplifies sending responses. See [Using Lambda with CloudFormation](https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html) for details.", + // "description": "(Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, CFN places it in a file named ``index`` and zips it to create a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html). This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index``. For example, ``index.handler``.\n When you specify source code inline for a Node.js function, the ``index`` file that CFN creates uses the extension ``.js``. This means that LAM treats the file as a CommonJS module. ES modules aren't supported for inline functions.\n For JSON, you must escape quotes and special characters such as newline (``\\n``) with a backslash.\n If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module ([cfn-response](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html)) that simplifies sending responses. See [Using Lambda with CloudFormation](https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html) for details.", // "type": "string" // } // }, @@ -182,7 +182,7 @@ func functionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: SourceKMSKeyArn "source_kms_key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's .zip deployment package. If you don't provide a customer managed key, Lambda uses an [owned key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk).", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -194,7 +194,7 @@ func functionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: ZipFile "zip_file": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "(Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, CFN places it in a file named ``index`` and zips it to create a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html). This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index``. For example, ``index.handler``.\n For JSON, you must escape quotes and special characters such as newline (``\\n``) with a backslash.\n If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module ([cfn-response](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html)) that simplifies sending responses. See [Using Lambda with CloudFormation](https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html) for details.", + Description: "(Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, CFN places it in a file named ``index`` and zips it to create a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html). This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index``. For example, ``index.handler``.\n When you specify source code inline for a Node.js function, the ``index`` file that CFN creates uses the extension ``.js``. This means that LAM treats the file as a CommonJS module. ES modules aren't supported for inline functions.\n For JSON, you must escape quotes and special characters such as newline (``\\n``) with a backslash.\n If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module ([cfn-response](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html)) that simplifies sending responses. See [Using Lambda with CloudFormation](https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html) for details.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -563,12 +563,12 @@ func functionResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's [environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption). When [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) is activated, LAM also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, LAM also uses this key to encrypt your function when it's deployed. Note that this is not the same key that's used to protect your container image in the ECRlong (ECR). If you don't provide a customer managed key, LAM uses a default service key.", + // "description": "The ARN of the KMSlong (KMS) customer managed key that's used to encrypt the following resources:\n + The function's [environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption).\n + The function's [Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) snapshots.\n + When used with ``SourceKMSKeyArn``, the unzipped version of the .zip deployment package that's used for function invocations. For more information, see [Specifying a customer managed key for Lambda](https://docs.aws.amazon.com/lambda/latest/dg/encrypt-zip-package.html#enable-zip-custom-encryption).\n + The optimized version of the container image that's used for function invocations. Note that this is not the same key that's used to protect your container image in the Amazon Elastic Container Registry (Amazon ECR). For more information, see [Function lifecycle](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-lifecycle).\n \n If you don't provide a customer managed key, Lambda uses an [owned key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) or an [](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk).", // "pattern": "^(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()$", // "type": "string" // } "kms_key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's [environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption). When [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) is activated, LAM also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, LAM also uses this key to encrypt your function when it's deployed. Note that this is not the same key that's used to protect your container image in the ECRlong (ECR). If you don't provide a customer managed key, LAM uses a default service key.", + Description: "The ARN of the KMSlong (KMS) customer managed key that's used to encrypt the following resources:\n + The function's [environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption).\n + The function's [Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) snapshots.\n + When used with ``SourceKMSKeyArn``, the unzipped version of the .zip deployment package that's used for function invocations. For more information, see [Specifying a customer managed key for Lambda](https://docs.aws.amazon.com/lambda/latest/dg/encrypt-zip-package.html#enable-zip-custom-encryption).\n + The optimized version of the container image that's used for function invocations. Note that this is not the same key that's used to protect your container image in the Amazon Elastic Container Registry (Amazon ECR). For more information, see [Function lifecycle](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-lifecycle).\n \n If you don't provide a customer managed key, Lambda uses an [owned key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) or an [](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk).", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ diff --git a/internal/aws/lambda/function_singular_data_source_gen.go b/internal/aws/lambda/function_singular_data_source_gen.go index 8e17dd0fc6..f6c989b08b 100644 --- a/internal/aws/lambda/function_singular_data_source_gen.go +++ b/internal/aws/lambda/function_singular_data_source_gen.go @@ -87,12 +87,12 @@ func functionDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "string" // }, // "SourceKMSKeyArn": { - // "description": "", + // "description": "The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's .zip deployment package. If you don't provide a customer managed key, Lambda uses an [owned key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk).", // "pattern": "^(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()$", // "type": "string" // }, // "ZipFile": { - // "description": "(Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, CFN places it in a file named ``index`` and zips it to create a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html). This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index``. For example, ``index.handler``.\n For JSON, you must escape quotes and special characters such as newline (``\\n``) with a backslash.\n If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module ([cfn-response](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html)) that simplifies sending responses. See [Using Lambda with CloudFormation](https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html) for details.", + // "description": "(Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, CFN places it in a file named ``index`` and zips it to create a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html). This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index``. For example, ``index.handler``.\n When you specify source code inline for a Node.js function, the ``index`` file that CFN creates uses the extension ``.js``. This means that LAM treats the file as a CommonJS module. ES modules aren't supported for inline functions.\n For JSON, you must escape quotes and special characters such as newline (``\\n``) with a backslash.\n If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module ([cfn-response](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html)) that simplifies sending responses. See [Using Lambda with CloudFormation](https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html) for details.", // "type": "string" // } // }, @@ -122,12 +122,12 @@ func functionDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ // Property: SourceKMSKeyArn "source_kms_key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's .zip deployment package. If you don't provide a customer managed key, Lambda uses an [owned key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk).", Computed: true, }, /*END ATTRIBUTE*/ // Property: ZipFile "zip_file": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "(Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, CFN places it in a file named ``index`` and zips it to create a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html). This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index``. For example, ``index.handler``.\n For JSON, you must escape quotes and special characters such as newline (``\\n``) with a backslash.\n If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module ([cfn-response](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html)) that simplifies sending responses. See [Using Lambda with CloudFormation](https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html) for details.", + Description: "(Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, CFN places it in a file named ``index`` and zips it to create a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html). This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index``. For example, ``index.handler``.\n When you specify source code inline for a Node.js function, the ``index`` file that CFN creates uses the extension ``.js``. This means that LAM treats the file as a CommonJS module. ES modules aren't supported for inline functions.\n For JSON, you must escape quotes and special characters such as newline (``\\n``) with a backslash.\n If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module ([cfn-response](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html)) that simplifies sending responses. See [Using Lambda with CloudFormation](https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html) for details.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -380,12 +380,12 @@ func functionDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's [environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption). When [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) is activated, LAM also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, LAM also uses this key to encrypt your function when it's deployed. Note that this is not the same key that's used to protect your container image in the ECRlong (ECR). If you don't provide a customer managed key, LAM uses a default service key.", + // "description": "The ARN of the KMSlong (KMS) customer managed key that's used to encrypt the following resources:\n + The function's [environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption).\n + The function's [Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) snapshots.\n + When used with ``SourceKMSKeyArn``, the unzipped version of the .zip deployment package that's used for function invocations. For more information, see [Specifying a customer managed key for Lambda](https://docs.aws.amazon.com/lambda/latest/dg/encrypt-zip-package.html#enable-zip-custom-encryption).\n + The optimized version of the container image that's used for function invocations. Note that this is not the same key that's used to protect your container image in the Amazon Elastic Container Registry (Amazon ECR). For more information, see [Function lifecycle](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-lifecycle).\n \n If you don't provide a customer managed key, Lambda uses an [owned key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) or an [](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk).", // "pattern": "^(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()$", // "type": "string" // } "kms_key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's [environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption). When [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) is activated, LAM also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, LAM also uses this key to encrypt your function when it's deployed. Note that this is not the same key that's used to protect your container image in the ECRlong (ECR). If you don't provide a customer managed key, LAM uses a default service key.", + Description: "The ARN of the KMSlong (KMS) customer managed key that's used to encrypt the following resources:\n + The function's [environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption).\n + The function's [Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) snapshots.\n + When used with ``SourceKMSKeyArn``, the unzipped version of the .zip deployment package that's used for function invocations. For more information, see [Specifying a customer managed key for Lambda](https://docs.aws.amazon.com/lambda/latest/dg/encrypt-zip-package.html#enable-zip-custom-encryption).\n + The optimized version of the container image that's used for function invocations. Note that this is not the same key that's used to protect your container image in the Amazon Elastic Container Registry (Amazon ECR). For more information, see [Function lifecycle](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-lifecycle).\n \n If you don't provide a customer managed key, Lambda uses an [owned key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) or an [](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk).", Computed: true, }, /*END ATTRIBUTE*/ // Property: Layers diff --git a/internal/aws/logs/account_policy_resource_gen.go b/internal/aws/logs/account_policy_resource_gen.go index b546ed3e1d..ed74a0f382 100644 --- a/internal/aws/logs/account_policy_resource_gen.go +++ b/internal/aws/logs/account_policy_resource_gen.go @@ -86,7 +86,9 @@ func accountPolicyResource(ctx context.Context) (resource.Resource, error) { // "description": "Type of the policy.", // "enum": [ // "DATA_PROTECTION_POLICY", - // "SUBSCRIPTION_FILTER_POLICY" + // "SUBSCRIPTION_FILTER_POLICY", + // "FIELD_INDEX_POLICY", + // "TRANSFORMER_POLICY" // ], // "type": "string" // } @@ -97,6 +99,8 @@ func accountPolicyResource(ctx context.Context) (resource.Resource, error) { stringvalidator.OneOf( "DATA_PROTECTION_POLICY", "SUBSCRIPTION_FILTER_POLICY", + "FIELD_INDEX_POLICY", + "TRANSFORMER_POLICY", ), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/logs/account_policy_singular_data_source_gen.go b/internal/aws/logs/account_policy_singular_data_source_gen.go index e73c25aaa1..1e0cfb5e0a 100644 --- a/internal/aws/logs/account_policy_singular_data_source_gen.go +++ b/internal/aws/logs/account_policy_singular_data_source_gen.go @@ -68,7 +68,9 @@ func accountPolicyDataSource(ctx context.Context) (datasource.DataSource, error) // "description": "Type of the policy.", // "enum": [ // "DATA_PROTECTION_POLICY", - // "SUBSCRIPTION_FILTER_POLICY" + // "SUBSCRIPTION_FILTER_POLICY", + // "FIELD_INDEX_POLICY", + // "TRANSFORMER_POLICY" // ], // "type": "string" // } diff --git a/internal/aws/logs/integration_resource_gen.go b/internal/aws/logs/integration_resource_gen.go index b41cc5f0ff..8cd188f768 100644 --- a/internal/aws/logs/integration_resource_gen.go +++ b/internal/aws/logs/integration_resource_gen.go @@ -39,7 +39,7 @@ func integrationResource(ctx context.Context) (resource.Resource, error) { // // { // "description": "User provided identifier for integration, unique to the user account.", - // "maxLength": 256, + // "maxLength": 50, // "minLength": 1, // "pattern": "[\\.\\-_/#A-Za-z0-9]+", // "type": "string" @@ -48,7 +48,7 @@ func integrationResource(ctx context.Context) (resource.Resource, error) { Description: "User provided identifier for integration, unique to the user account.", Required: true, Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(1, 256), + stringvalidator.LengthBetween(1, 50), stringvalidator.RegexMatches(regexp.MustCompile("[\\.\\-_/#A-Za-z0-9]+"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/logs/integration_singular_data_source_gen.go b/internal/aws/logs/integration_singular_data_source_gen.go index 5bd90d8606..e11953371f 100644 --- a/internal/aws/logs/integration_singular_data_source_gen.go +++ b/internal/aws/logs/integration_singular_data_source_gen.go @@ -28,7 +28,7 @@ func integrationDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "description": "User provided identifier for integration, unique to the user account.", - // "maxLength": 256, + // "maxLength": 50, // "minLength": 1, // "pattern": "[\\.\\-_/#A-Za-z0-9]+", // "type": "string" diff --git a/internal/aws/logs/metric_filter_resource_gen.go b/internal/aws/logs/metric_filter_resource_gen.go index db3e033a54..4d24714dd5 100644 --- a/internal/aws/logs/metric_filter_resource_gen.go +++ b/internal/aws/logs/metric_filter_resource_gen.go @@ -14,6 +14,7 @@ import ( "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/float64planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/setplanmodifier" @@ -32,6 +33,21 @@ func init() { // This Terraform resource corresponds to the CloudFormation AWS::Logs::MetricFilter resource. func metricFilterResource(ctx context.Context) (resource.Resource, error) { attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ApplyOnTransformedLogs + // CloudFormation resource type schema: + // + // { + // "description": "", + // "type": "boolean" + // } + "apply_on_transformed_logs": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: FilterName // CloudFormation resource type schema: // @@ -356,18 +372,19 @@ func metricFilterResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::Logs::MetricFilter").WithTerraformTypeName("awscc_logs_metric_filter") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "default_value": "DefaultValue", - "dimensions": "Dimensions", - "filter_name": "FilterName", - "filter_pattern": "FilterPattern", - "key": "Key", - "log_group_name": "LogGroupName", - "metric_name": "MetricName", - "metric_namespace": "MetricNamespace", - "metric_transformations": "MetricTransformations", - "metric_value": "MetricValue", - "unit": "Unit", - "value": "Value", + "apply_on_transformed_logs": "ApplyOnTransformedLogs", + "default_value": "DefaultValue", + "dimensions": "Dimensions", + "filter_name": "FilterName", + "filter_pattern": "FilterPattern", + "key": "Key", + "log_group_name": "LogGroupName", + "metric_name": "MetricName", + "metric_namespace": "MetricNamespace", + "metric_transformations": "MetricTransformations", + "metric_value": "MetricValue", + "unit": "Unit", + "value": "Value", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/logs/metric_filter_singular_data_source_gen.go b/internal/aws/logs/metric_filter_singular_data_source_gen.go index 810a0cffcf..c9e2fa5bcd 100644 --- a/internal/aws/logs/metric_filter_singular_data_source_gen.go +++ b/internal/aws/logs/metric_filter_singular_data_source_gen.go @@ -22,6 +22,17 @@ func init() { // This Terraform data source corresponds to the CloudFormation AWS::Logs::MetricFilter resource. func metricFilterDataSource(ctx context.Context) (datasource.DataSource, error) { attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ApplyOnTransformedLogs + // CloudFormation resource type schema: + // + // { + // "description": "", + // "type": "boolean" + // } + "apply_on_transformed_logs": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: FilterName // CloudFormation resource type schema: // @@ -243,18 +254,19 @@ func metricFilterDataSource(ctx context.Context) (datasource.DataSource, error) opts = opts.WithCloudFormationTypeName("AWS::Logs::MetricFilter").WithTerraformTypeName("awscc_logs_metric_filter") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "default_value": "DefaultValue", - "dimensions": "Dimensions", - "filter_name": "FilterName", - "filter_pattern": "FilterPattern", - "key": "Key", - "log_group_name": "LogGroupName", - "metric_name": "MetricName", - "metric_namespace": "MetricNamespace", - "metric_transformations": "MetricTransformations", - "metric_value": "MetricValue", - "unit": "Unit", - "value": "Value", + "apply_on_transformed_logs": "ApplyOnTransformedLogs", + "default_value": "DefaultValue", + "dimensions": "Dimensions", + "filter_name": "FilterName", + "filter_pattern": "FilterPattern", + "key": "Key", + "log_group_name": "LogGroupName", + "metric_name": "MetricName", + "metric_namespace": "MetricNamespace", + "metric_transformations": "MetricTransformations", + "metric_value": "MetricValue", + "unit": "Unit", + "value": "Value", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/logs/query_definition_resource_gen.go b/internal/aws/logs/query_definition_resource_gen.go index 1361d8a55a..b054f1dbab 100644 --- a/internal/aws/logs/query_definition_resource_gen.go +++ b/internal/aws/logs/query_definition_resource_gen.go @@ -15,6 +15,7 @@ import ( "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/stringdefault" "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" "github.com/hashicorp/terraform-plugin-framework/schema/validator" "github.com/hashicorp/terraform-plugin-framework/types" @@ -93,6 +94,35 @@ func queryDefinitionResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: QueryLanguage + // CloudFormation resource type schema: + // + // { + // "default": "CWLI", + // "description": "Query language of the query string. Possible values are CWLI, SQL, PPL, with CWLI being the default.", + // "enum": [ + // "CWLI", + // "SQL", + // "PPL" + // ], + // "type": "string" + // } + "query_language": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Query language of the query string. Possible values are CWLI, SQL, PPL, with CWLI being the default.", + Optional: true, + Computed: true, + Default: stringdefault.StaticString("CWLI"), + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "CWLI", + "SQL", + "PPL", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: QueryString // CloudFormation resource type schema: // @@ -134,6 +164,7 @@ func queryDefinitionResource(ctx context.Context) (resource.Resource, error) { "log_group_names": "LogGroupNames", "name": "Name", "query_definition_id": "QueryDefinitionId", + "query_language": "QueryLanguage", "query_string": "QueryString", }) diff --git a/internal/aws/logs/query_definition_singular_data_source_gen.go b/internal/aws/logs/query_definition_singular_data_source_gen.go index bce5397968..63466e741f 100644 --- a/internal/aws/logs/query_definition_singular_data_source_gen.go +++ b/internal/aws/logs/query_definition_singular_data_source_gen.go @@ -69,6 +69,23 @@ func queryDefinitionDataSource(ctx context.Context) (datasource.DataSource, erro Description: "Unique identifier of a query definition", Computed: true, }, /*END ATTRIBUTE*/ + // Property: QueryLanguage + // CloudFormation resource type schema: + // + // { + // "default": "CWLI", + // "description": "Query language of the query string. Possible values are CWLI, SQL, PPL, with CWLI being the default.", + // "enum": [ + // "CWLI", + // "SQL", + // "PPL" + // ], + // "type": "string" + // } + "query_language": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Query language of the query string. Possible values are CWLI, SQL, PPL, with CWLI being the default.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: QueryString // CloudFormation resource type schema: // @@ -102,6 +119,7 @@ func queryDefinitionDataSource(ctx context.Context) (datasource.DataSource, erro "log_group_names": "LogGroupNames", "name": "Name", "query_definition_id": "QueryDefinitionId", + "query_language": "QueryLanguage", "query_string": "QueryString", }) diff --git a/internal/aws/logs/subscription_filter_resource_gen.go b/internal/aws/logs/subscription_filter_resource_gen.go index 0bd20a92a0..2d4e11dcea 100644 --- a/internal/aws/logs/subscription_filter_resource_gen.go +++ b/internal/aws/logs/subscription_filter_resource_gen.go @@ -11,6 +11,7 @@ import ( "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" @@ -26,6 +27,21 @@ func init() { // This Terraform resource corresponds to the CloudFormation AWS::Logs::SubscriptionFilter resource. func subscriptionFilterResource(ctx context.Context) (resource.Resource, error) { attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ApplyOnTransformedLogs + // CloudFormation resource type schema: + // + // { + // "description": "", + // "type": "boolean" + // } + "apply_on_transformed_logs": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: DestinationArn // CloudFormation resource type schema: // @@ -140,12 +156,13 @@ func subscriptionFilterResource(ctx context.Context) (resource.Resource, error) opts = opts.WithCloudFormationTypeName("AWS::Logs::SubscriptionFilter").WithTerraformTypeName("awscc_logs_subscription_filter") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "destination_arn": "DestinationArn", - "distribution": "Distribution", - "filter_name": "FilterName", - "filter_pattern": "FilterPattern", - "log_group_name": "LogGroupName", - "role_arn": "RoleArn", + "apply_on_transformed_logs": "ApplyOnTransformedLogs", + "destination_arn": "DestinationArn", + "distribution": "Distribution", + "filter_name": "FilterName", + "filter_pattern": "FilterPattern", + "log_group_name": "LogGroupName", + "role_arn": "RoleArn", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/logs/subscription_filter_singular_data_source_gen.go b/internal/aws/logs/subscription_filter_singular_data_source_gen.go index 4f813a77d5..5f6092b54b 100644 --- a/internal/aws/logs/subscription_filter_singular_data_source_gen.go +++ b/internal/aws/logs/subscription_filter_singular_data_source_gen.go @@ -22,6 +22,17 @@ func init() { // This Terraform data source corresponds to the CloudFormation AWS::Logs::SubscriptionFilter resource. func subscriptionFilterDataSource(ctx context.Context) (datasource.DataSource, error) { attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ApplyOnTransformedLogs + // CloudFormation resource type schema: + // + // { + // "description": "", + // "type": "boolean" + // } + "apply_on_transformed_logs": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: DestinationArn // CloudFormation resource type schema: // @@ -109,12 +120,13 @@ func subscriptionFilterDataSource(ctx context.Context) (datasource.DataSource, e opts = opts.WithCloudFormationTypeName("AWS::Logs::SubscriptionFilter").WithTerraformTypeName("awscc_logs_subscription_filter") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "destination_arn": "DestinationArn", - "distribution": "Distribution", - "filter_name": "FilterName", - "filter_pattern": "FilterPattern", - "log_group_name": "LogGroupName", - "role_arn": "RoleArn", + "apply_on_transformed_logs": "ApplyOnTransformedLogs", + "destination_arn": "DestinationArn", + "distribution": "Distribution", + "filter_name": "FilterName", + "filter_pattern": "FilterPattern", + "log_group_name": "LogGroupName", + "role_arn": "RoleArn", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/m2/environment_resource_gen.go b/internal/aws/m2/environment_resource_gen.go index 5021e85217..e6509a9cd6 100644 --- a/internal/aws/m2/environment_resource_gen.go +++ b/internal/aws/m2/environment_resource_gen.go @@ -223,6 +223,30 @@ func environmentResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: NetworkType + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "ipv4", + // "dual" + // ], + // "type": "string" + // } + "network_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ipv4", + "dual", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: PreferredMaintenanceWindow // CloudFormation resource type schema: // @@ -519,6 +543,7 @@ func environmentResource(ctx context.Context) (resource.Resource, error) { "kms_key_id": "KmsKeyId", "mount_point": "MountPoint", "name": "Name", + "network_type": "NetworkType", "preferred_maintenance_window": "PreferredMaintenanceWindow", "publicly_accessible": "PubliclyAccessible", "security_group_ids": "SecurityGroupIds", diff --git a/internal/aws/m2/environment_singular_data_source_gen.go b/internal/aws/m2/environment_singular_data_source_gen.go index 4d8b349aca..b932c6ffbf 100644 --- a/internal/aws/m2/environment_singular_data_source_gen.go +++ b/internal/aws/m2/environment_singular_data_source_gen.go @@ -151,6 +151,19 @@ func environmentDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The name of the environment.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: NetworkType + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "ipv4", + // "dual" + // ], + // "type": "string" + // } + "network_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: PreferredMaintenanceWindow // CloudFormation resource type schema: // @@ -358,6 +371,7 @@ func environmentDataSource(ctx context.Context) (datasource.DataSource, error) { "kms_key_id": "KmsKeyId", "mount_point": "MountPoint", "name": "Name", + "network_type": "NetworkType", "preferred_maintenance_window": "PreferredMaintenanceWindow", "publicly_accessible": "PubliclyAccessible", "security_group_ids": "SecurityGroupIds", diff --git a/internal/aws/networkmanager/direct_connect_gateway_attachment_plural_data_source_gen.go b/internal/aws/networkmanager/direct_connect_gateway_attachment_plural_data_source_gen.go new file mode 100644 index 0000000000..e323942984 --- /dev/null +++ b/internal/aws/networkmanager/direct_connect_gateway_attachment_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 networkmanager + +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_networkmanager_direct_connect_gateway_attachments", directConnectGatewayAttachmentsDataSource) +} + +// directConnectGatewayAttachmentsDataSource returns the Terraform awscc_networkmanager_direct_connect_gateway_attachments data source. +// This Terraform data source corresponds to the CloudFormation AWS::NetworkManager::DirectConnectGatewayAttachment resource. +func directConnectGatewayAttachmentsDataSource(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::NetworkManager::DirectConnectGatewayAttachment", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::NetworkManager::DirectConnectGatewayAttachment").WithTerraformTypeName("awscc_networkmanager_direct_connect_gateway_attachments") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/networkmanager/direct_connect_gateway_attachment_plural_data_source_gen_test.go b/internal/aws/networkmanager/direct_connect_gateway_attachment_plural_data_source_gen_test.go new file mode 100644 index 0000000000..24ad610c1f --- /dev/null +++ b/internal/aws/networkmanager/direct_connect_gateway_attachment_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 networkmanager_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSNetworkManagerDirectConnectGatewayAttachmentsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::NetworkManager::DirectConnectGatewayAttachment", "awscc_networkmanager_direct_connect_gateway_attachments", "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/networkmanager/direct_connect_gateway_attachment_resource_gen.go b/internal/aws/networkmanager/direct_connect_gateway_attachment_resource_gen.go new file mode 100644 index 0000000000..ef053dd690 --- /dev/null +++ b/internal/aws/networkmanager/direct_connect_gateway_attachment_resource_gen.go @@ -0,0 +1,568 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package networkmanager + +import ( + "context" + + "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/objectplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/setplanmodifier" + "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" + fwvalidators "github.com/hashicorp/terraform-provider-awscc/internal/validators" +) + +func init() { + registry.AddResourceFactory("awscc_networkmanager_direct_connect_gateway_attachment", directConnectGatewayAttachmentResource) +} + +// directConnectGatewayAttachmentResource returns the Terraform awscc_networkmanager_direct_connect_gateway_attachment resource. +// This Terraform resource corresponds to the CloudFormation AWS::NetworkManager::DirectConnectGatewayAttachment resource. +func directConnectGatewayAttachmentResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AttachmentId + // CloudFormation resource type schema: + // + // { + // "description": "Id of the attachment.", + // "type": "string" + // } + "attachment_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Id of the attachment.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AttachmentPolicyRuleNumber + // CloudFormation resource type schema: + // + // { + // "description": "The policy rule number associated with the attachment.", + // "type": "integer" + // } + "attachment_policy_rule_number": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The policy rule number associated with the attachment.", + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AttachmentType + // CloudFormation resource type schema: + // + // { + // "description": "Attachment type.", + // "type": "string" + // } + "attachment_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Attachment type.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CoreNetworkArn + // CloudFormation resource type schema: + // + // { + // "description": "The ARN of a core network for the Direct Connect Gateway attachment.", + // "type": "string" + // } + "core_network_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of a core network for the Direct Connect Gateway attachment.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CoreNetworkId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of a core network for the Direct Connect Gateway attachment.", + // "type": "string" + // } + "core_network_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of a core network for the Direct Connect Gateway attachment.", + Required: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Creation time of the attachment.", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Creation time of the attachment.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DirectConnectGatewayArn + // CloudFormation resource type schema: + // + // { + // "description": "The ARN of the Direct Connect Gateway.", + // "type": "string" + // } + "direct_connect_gateway_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the Direct Connect Gateway.", + Required: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EdgeLocations + // CloudFormation resource type schema: + // + // { + // "description": "The Regions where the edges are located.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + "edge_locations": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "The Regions where the edges are located.", + Required: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: NetworkFunctionGroupName + // CloudFormation resource type schema: + // + // { + // "description": "The name of the network function group attachment.", + // "type": "string" + // } + "network_function_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the network function group attachment.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: OwnerAccountId + // CloudFormation resource type schema: + // + // { + // "description": "Owner account of the attachment.", + // "type": "string" + // } + "owner_account_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Owner account of the attachment.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ProposedNetworkFunctionGroupChange + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The attachment to move from one network function group to another.", + // "properties": { + // "AttachmentPolicyRuleNumber": { + // "description": "The rule number in the policy document that applies to this change.", + // "type": "integer" + // }, + // "NetworkFunctionGroupName": { + // "description": "The name of the network function group to change.", + // "type": "string" + // }, + // "Tags": { + // "description": "The key-value tags that changed for the network function group.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "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" + // }, + // "Value": { + // "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" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // } + "proposed_network_function_group_change": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AttachmentPolicyRuleNumber + "attachment_policy_rule_number": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The rule number in the policy document that applies to this change.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: NetworkFunctionGroupName + "network_function_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the network function group to change.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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 -.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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 -.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The key-value tags that changed for the network function group.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The attachment to move from one network function group to another.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ProposedSegmentChange + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The attachment to move from one segment to another.", + // "properties": { + // "AttachmentPolicyRuleNumber": { + // "description": "The rule number in the policy document that applies to this change.", + // "type": "integer" + // }, + // "SegmentName": { + // "description": "The name of the segment to change.", + // "type": "string" + // }, + // "Tags": { + // "description": "The key-value tags that changed for the segment.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "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" + // }, + // "Value": { + // "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" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // } + "proposed_segment_change": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AttachmentPolicyRuleNumber + "attachment_policy_rule_number": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The rule number in the policy document that applies to this change.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SegmentName + "segment_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the segment to change.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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 -.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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 -.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The key-value tags that changed for the segment.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The attachment to move from one segment to another.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ResourceArn + // CloudFormation resource type schema: + // + // { + // "description": "The ARN of the Resource.", + // "type": "string" + // } + "resource_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the Resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SegmentName + // CloudFormation resource type schema: + // + // { + // "description": "The name of the segment attachment..", + // "type": "string" + // } + "segment_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the segment attachment..", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: State + // CloudFormation resource type schema: + // + // { + // "description": "State of the attachment.", + // "type": "string" + // } + "state": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "State of the attachment.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "Tags for the attachment.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "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" + // }, + // "Value": { + // "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" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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 -.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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 -.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Tags for the attachment.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UpdatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Last update time of the attachment.", + // "type": "string" + // } + "updated_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Last update time of the attachment.", + 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: "AWS::NetworkManager::DirectConnectGatewayAttachment Resource Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::NetworkManager::DirectConnectGatewayAttachment").WithTerraformTypeName("awscc_networkmanager_direct_connect_gateway_attachment") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "attachment_id": "AttachmentId", + "attachment_policy_rule_number": "AttachmentPolicyRuleNumber", + "attachment_type": "AttachmentType", + "core_network_arn": "CoreNetworkArn", + "core_network_id": "CoreNetworkId", + "created_at": "CreatedAt", + "direct_connect_gateway_arn": "DirectConnectGatewayArn", + "edge_locations": "EdgeLocations", + "key": "Key", + "network_function_group_name": "NetworkFunctionGroupName", + "owner_account_id": "OwnerAccountId", + "proposed_network_function_group_change": "ProposedNetworkFunctionGroupChange", + "proposed_segment_change": "ProposedSegmentChange", + "resource_arn": "ResourceArn", + "segment_name": "SegmentName", + "state": "State", + "tags": "Tags", + "updated_at": "UpdatedAt", + "value": "Value", + }) + + opts = opts.WithCreateTimeoutInMinutes(60).WithDeleteTimeoutInMinutes(60) + + opts = opts.WithUpdateTimeoutInMinutes(60) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/networkmanager/direct_connect_gateway_attachment_resource_gen_test.go b/internal/aws/networkmanager/direct_connect_gateway_attachment_resource_gen_test.go new file mode 100644 index 0000000000..c3714d7e7d --- /dev/null +++ b/internal/aws/networkmanager/direct_connect_gateway_attachment_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 networkmanager_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSNetworkManagerDirectConnectGatewayAttachment_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::NetworkManager::DirectConnectGatewayAttachment", "awscc_networkmanager_direct_connect_gateway_attachment", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/networkmanager/direct_connect_gateway_attachment_singular_data_source_gen.go b/internal/aws/networkmanager/direct_connect_gateway_attachment_singular_data_source_gen.go new file mode 100644 index 0000000000..753a3ab102 --- /dev/null +++ b/internal/aws/networkmanager/direct_connect_gateway_attachment_singular_data_source_gen.go @@ -0,0 +1,432 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package networkmanager + +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_networkmanager_direct_connect_gateway_attachment", directConnectGatewayAttachmentDataSource) +} + +// directConnectGatewayAttachmentDataSource returns the Terraform awscc_networkmanager_direct_connect_gateway_attachment data source. +// This Terraform data source corresponds to the CloudFormation AWS::NetworkManager::DirectConnectGatewayAttachment resource. +func directConnectGatewayAttachmentDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AttachmentId + // CloudFormation resource type schema: + // + // { + // "description": "Id of the attachment.", + // "type": "string" + // } + "attachment_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Id of the attachment.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AttachmentPolicyRuleNumber + // CloudFormation resource type schema: + // + // { + // "description": "The policy rule number associated with the attachment.", + // "type": "integer" + // } + "attachment_policy_rule_number": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The policy rule number associated with the attachment.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AttachmentType + // CloudFormation resource type schema: + // + // { + // "description": "Attachment type.", + // "type": "string" + // } + "attachment_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Attachment type.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CoreNetworkArn + // CloudFormation resource type schema: + // + // { + // "description": "The ARN of a core network for the Direct Connect Gateway attachment.", + // "type": "string" + // } + "core_network_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of a core network for the Direct Connect Gateway attachment.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CoreNetworkId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of a core network for the Direct Connect Gateway attachment.", + // "type": "string" + // } + "core_network_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of a core network for the Direct Connect Gateway attachment.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Creation time of the attachment.", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Creation time of the attachment.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DirectConnectGatewayArn + // CloudFormation resource type schema: + // + // { + // "description": "The ARN of the Direct Connect Gateway.", + // "type": "string" + // } + "direct_connect_gateway_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the Direct Connect Gateway.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EdgeLocations + // CloudFormation resource type schema: + // + // { + // "description": "The Regions where the edges are located.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + "edge_locations": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "The Regions where the edges are located.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: NetworkFunctionGroupName + // CloudFormation resource type schema: + // + // { + // "description": "The name of the network function group attachment.", + // "type": "string" + // } + "network_function_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the network function group attachment.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: OwnerAccountId + // CloudFormation resource type schema: + // + // { + // "description": "Owner account of the attachment.", + // "type": "string" + // } + "owner_account_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Owner account of the attachment.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ProposedNetworkFunctionGroupChange + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The attachment to move from one network function group to another.", + // "properties": { + // "AttachmentPolicyRuleNumber": { + // "description": "The rule number in the policy document that applies to this change.", + // "type": "integer" + // }, + // "NetworkFunctionGroupName": { + // "description": "The name of the network function group to change.", + // "type": "string" + // }, + // "Tags": { + // "description": "The key-value tags that changed for the network function group.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "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" + // }, + // "Value": { + // "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" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // } + "proposed_network_function_group_change": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AttachmentPolicyRuleNumber + "attachment_policy_rule_number": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The rule number in the policy document that applies to this change.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: NetworkFunctionGroupName + "network_function_group_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the network function group to change.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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 -.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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 -.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The key-value tags that changed for the network function group.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The attachment to move from one network function group to another.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ProposedSegmentChange + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The attachment to move from one segment to another.", + // "properties": { + // "AttachmentPolicyRuleNumber": { + // "description": "The rule number in the policy document that applies to this change.", + // "type": "integer" + // }, + // "SegmentName": { + // "description": "The name of the segment to change.", + // "type": "string" + // }, + // "Tags": { + // "description": "The key-value tags that changed for the segment.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "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" + // }, + // "Value": { + // "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" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "type": "object" + // } + "proposed_segment_change": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AttachmentPolicyRuleNumber + "attachment_policy_rule_number": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The rule number in the policy document that applies to this change.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SegmentName + "segment_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the segment to change.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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 -.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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 -.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The key-value tags that changed for the segment.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The attachment to move from one segment to another.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ResourceArn + // CloudFormation resource type schema: + // + // { + // "description": "The ARN of the Resource.", + // "type": "string" + // } + "resource_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the Resource.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SegmentName + // CloudFormation resource type schema: + // + // { + // "description": "The name of the segment attachment..", + // "type": "string" + // } + "segment_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the segment attachment..", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: State + // CloudFormation resource type schema: + // + // { + // "description": "State of the attachment.", + // "type": "string" + // } + "state": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "State of the attachment.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "Tags for the attachment.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "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" + // }, + // "Value": { + // "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" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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 -.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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 -.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Tags for the attachment.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UpdatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Last update time of the attachment.", + // "type": "string" + // } + "updated_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Last update time of the attachment.", + 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::NetworkManager::DirectConnectGatewayAttachment", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::NetworkManager::DirectConnectGatewayAttachment").WithTerraformTypeName("awscc_networkmanager_direct_connect_gateway_attachment") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "attachment_id": "AttachmentId", + "attachment_policy_rule_number": "AttachmentPolicyRuleNumber", + "attachment_type": "AttachmentType", + "core_network_arn": "CoreNetworkArn", + "core_network_id": "CoreNetworkId", + "created_at": "CreatedAt", + "direct_connect_gateway_arn": "DirectConnectGatewayArn", + "edge_locations": "EdgeLocations", + "key": "Key", + "network_function_group_name": "NetworkFunctionGroupName", + "owner_account_id": "OwnerAccountId", + "proposed_network_function_group_change": "ProposedNetworkFunctionGroupChange", + "proposed_segment_change": "ProposedSegmentChange", + "resource_arn": "ResourceArn", + "segment_name": "SegmentName", + "state": "State", + "tags": "Tags", + "updated_at": "UpdatedAt", + "value": "Value", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/networkmanager/direct_connect_gateway_attachment_singular_data_source_gen_test.go b/internal/aws/networkmanager/direct_connect_gateway_attachment_singular_data_source_gen_test.go new file mode 100644 index 0000000000..18cbf80104 --- /dev/null +++ b/internal/aws/networkmanager/direct_connect_gateway_attachment_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 networkmanager_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSNetworkManagerDirectConnectGatewayAttachmentDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::NetworkManager::DirectConnectGatewayAttachment", "awscc_networkmanager_direct_connect_gateway_attachment", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSNetworkManagerDirectConnectGatewayAttachmentDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::NetworkManager::DirectConnectGatewayAttachment", "awscc_networkmanager_direct_connect_gateway_attachment", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/organizations/policy_resource_gen.go b/internal/aws/organizations/policy_resource_gen.go index 6949272ab8..3ebbc29906 100644 --- a/internal/aws/organizations/policy_resource_gen.go +++ b/internal/aws/organizations/policy_resource_gen.go @@ -239,19 +239,20 @@ func policyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The type of policy to create. You can specify one of the following values: AISERVICES_OPT_OUT_POLICY, BACKUP_POLICY, SERVICE_CONTROL_POLICY, TAG_POLICY, CHATBOT_POLICY, RESOURCE_CONTROL_POLICY", + // "description": "The type of policy to create. You can specify one of the following values: AISERVICES_OPT_OUT_POLICY, BACKUP_POLICY, SERVICE_CONTROL_POLICY, TAG_POLICY, CHATBOT_POLICY, RESOURCE_CONTROL_POLICY,DECLARATIVE_POLICY_EC2", // "enum": [ // "SERVICE_CONTROL_POLICY", // "AISERVICES_OPT_OUT_POLICY", // "BACKUP_POLICY", // "TAG_POLICY", // "CHATBOT_POLICY", - // "RESOURCE_CONTROL_POLICY" + // "RESOURCE_CONTROL_POLICY", + // "DECLARATIVE_POLICY_EC2" // ], // "type": "string" // } "type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of policy to create. You can specify one of the following values: AISERVICES_OPT_OUT_POLICY, BACKUP_POLICY, SERVICE_CONTROL_POLICY, TAG_POLICY, CHATBOT_POLICY, RESOURCE_CONTROL_POLICY", + Description: "The type of policy to create. You can specify one of the following values: AISERVICES_OPT_OUT_POLICY, BACKUP_POLICY, SERVICE_CONTROL_POLICY, TAG_POLICY, CHATBOT_POLICY, RESOURCE_CONTROL_POLICY,DECLARATIVE_POLICY_EC2", Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.OneOf( @@ -261,6 +262,7 @@ func policyResource(ctx context.Context) (resource.Resource, error) { "TAG_POLICY", "CHATBOT_POLICY", "RESOURCE_CONTROL_POLICY", + "DECLARATIVE_POLICY_EC2", ), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/organizations/policy_singular_data_source_gen.go b/internal/aws/organizations/policy_singular_data_source_gen.go index 6846a6ce78..f28f2e6372 100644 --- a/internal/aws/organizations/policy_singular_data_source_gen.go +++ b/internal/aws/organizations/policy_singular_data_source_gen.go @@ -174,19 +174,20 @@ func policyDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The type of policy to create. You can specify one of the following values: AISERVICES_OPT_OUT_POLICY, BACKUP_POLICY, SERVICE_CONTROL_POLICY, TAG_POLICY, CHATBOT_POLICY, RESOURCE_CONTROL_POLICY", + // "description": "The type of policy to create. You can specify one of the following values: AISERVICES_OPT_OUT_POLICY, BACKUP_POLICY, SERVICE_CONTROL_POLICY, TAG_POLICY, CHATBOT_POLICY, RESOURCE_CONTROL_POLICY,DECLARATIVE_POLICY_EC2", // "enum": [ // "SERVICE_CONTROL_POLICY", // "AISERVICES_OPT_OUT_POLICY", // "BACKUP_POLICY", // "TAG_POLICY", // "CHATBOT_POLICY", - // "RESOURCE_CONTROL_POLICY" + // "RESOURCE_CONTROL_POLICY", + // "DECLARATIVE_POLICY_EC2" // ], // "type": "string" // } "type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of policy to create. You can specify one of the following values: AISERVICES_OPT_OUT_POLICY, BACKUP_POLICY, SERVICE_CONTROL_POLICY, TAG_POLICY, CHATBOT_POLICY, RESOURCE_CONTROL_POLICY", + Description: "The type of policy to create. You can specify one of the following values: AISERVICES_OPT_OUT_POLICY, BACKUP_POLICY, SERVICE_CONTROL_POLICY, TAG_POLICY, CHATBOT_POLICY, RESOURCE_CONTROL_POLICY,DECLARATIVE_POLICY_EC2", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/qbusiness/application_resource_gen.go b/internal/aws/qbusiness/application_resource_gen.go index 6f61b548d3..0fcbfa2583 100644 --- a/internal/aws/qbusiness/application_resource_gen.go +++ b/internal/aws/qbusiness/application_resource_gen.go @@ -174,7 +174,6 @@ func applicationResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "insertionOrder": false, // "items": { // "maxLength": 255, // "minLength": 1, @@ -194,7 +193,6 @@ func applicationResource(ctx context.Context) (resource.Resource, error) { ), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ - generic.Multiset(), listplanmodifier.UseStateForUnknown(), listplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ @@ -348,7 +346,8 @@ func applicationResource(ctx context.Context) (resource.Resource, error) { // "enum": [ // "AWS_IAM_IDP_SAML", // "AWS_IAM_IDP_OIDC", - // "AWS_IAM_IDC" + // "AWS_IAM_IDC", + // "AWS_QUICKSIGHT_IDP" // ], // "type": "string" // } @@ -360,6 +359,7 @@ func applicationResource(ctx context.Context) (resource.Resource, error) { "AWS_IAM_IDP_SAML", "AWS_IAM_IDP_OIDC", "AWS_IAM_IDC", + "AWS_QUICKSIGHT_IDP", ), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -453,6 +453,47 @@ func applicationResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: QuickSightConfiguration + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "ClientNamespace": { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9._-]*$", + // "type": "string" + // } + // }, + // "required": [ + // "ClientNamespace" + // ], + // "type": "object" + // } + "quick_sight_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ClientNamespace + "client_namespace": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 64), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9._-]*$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + objectplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: RoleArn // CloudFormation resource type schema: // @@ -495,7 +536,6 @@ func applicationResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "insertionOrder": false, // "items": { // "additionalProperties": false, // "properties": { @@ -555,7 +595,6 @@ func applicationResource(ctx context.Context) (resource.Resource, error) { listvalidator.SizeBetween(0, 200), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ - generic.Multiset(), listplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ @@ -602,6 +641,7 @@ func applicationResource(ctx context.Context) (resource.Resource, error) { "auto_subscribe": "AutoSubscribe", "auto_subscription_configuration": "AutoSubscriptionConfiguration", "client_ids_for_oidc": "ClientIdsForOIDC", + "client_namespace": "ClientNamespace", "created_at": "CreatedAt", "default_subscription_type": "DefaultSubscriptionType", "description": "Description", @@ -617,6 +657,7 @@ func applicationResource(ctx context.Context) (resource.Resource, error) { "personalization_control_mode": "PersonalizationControlMode", "q_apps_configuration": "QAppsConfiguration", "q_apps_control_mode": "QAppsControlMode", + "quick_sight_configuration": "QuickSightConfiguration", "role_arn": "RoleArn", "status": "Status", "tags": "Tags", diff --git a/internal/aws/qbusiness/application_singular_data_source_gen.go b/internal/aws/qbusiness/application_singular_data_source_gen.go index 1ad6bc0414..686be3a84b 100644 --- a/internal/aws/qbusiness/application_singular_data_source_gen.go +++ b/internal/aws/qbusiness/application_singular_data_source_gen.go @@ -119,7 +119,6 @@ func applicationDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "insertionOrder": false, // "items": { // "maxLength": 255, // "minLength": 1, @@ -233,7 +232,8 @@ func applicationDataSource(ctx context.Context) (datasource.DataSource, error) { // "enum": [ // "AWS_IAM_IDP_SAML", // "AWS_IAM_IDP_OIDC", - // "AWS_IAM_IDC" + // "AWS_IAM_IDC", + // "AWS_QUICKSIGHT_IDP" // ], // "type": "string" // } @@ -296,6 +296,33 @@ func applicationDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END SCHEMA*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: QuickSightConfiguration + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "ClientNamespace": { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9._-]*$", + // "type": "string" + // } + // }, + // "required": [ + // "ClientNamespace" + // ], + // "type": "object" + // } + "quick_sight_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ClientNamespace + "client_namespace": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: RoleArn // CloudFormation resource type schema: // @@ -328,7 +355,6 @@ func applicationDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "insertionOrder": false, // "items": { // "additionalProperties": false, // "properties": { @@ -403,6 +429,7 @@ func applicationDataSource(ctx context.Context) (datasource.DataSource, error) { "auto_subscribe": "AutoSubscribe", "auto_subscription_configuration": "AutoSubscriptionConfiguration", "client_ids_for_oidc": "ClientIdsForOIDC", + "client_namespace": "ClientNamespace", "created_at": "CreatedAt", "default_subscription_type": "DefaultSubscriptionType", "description": "Description", @@ -418,6 +445,7 @@ func applicationDataSource(ctx context.Context) (datasource.DataSource, error) { "personalization_control_mode": "PersonalizationControlMode", "q_apps_configuration": "QAppsConfiguration", "q_apps_control_mode": "QAppsControlMode", + "quick_sight_configuration": "QuickSightConfiguration", "role_arn": "RoleArn", "status": "Status", "tags": "Tags", diff --git a/internal/aws/qbusiness/data_source_resource_gen.go b/internal/aws/qbusiness/data_source_resource_gen.go index ddfa7af2df..924ed0640a 100644 --- a/internal/aws/qbusiness/data_source_resource_gen.go +++ b/internal/aws/qbusiness/data_source_resource_gen.go @@ -965,6 +965,65 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: MediaExtractionConfiguration + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "ImageExtractionConfiguration": { + // "additionalProperties": false, + // "properties": { + // "ImageExtractionStatus": { + // "enum": [ + // "ENABLED", + // "DISABLED" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "ImageExtractionStatus" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // } + "media_extraction_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ImageExtractionConfiguration + "image_extraction_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ImageExtractionStatus + "image_extraction_status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ENABLED", + "DISABLED", + ), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: RoleArn // CloudFormation resource type schema: // @@ -1232,12 +1291,15 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { "display_name": "DisplayName", "document_content_operator": "DocumentContentOperator", "document_enrichment_configuration": "DocumentEnrichmentConfiguration", + "image_extraction_configuration": "ImageExtractionConfiguration", + "image_extraction_status": "ImageExtractionStatus", "index_id": "IndexId", "inline_configurations": "InlineConfigurations", "invocation_condition": "InvocationCondition", "key": "Key", "lambda_arn": "LambdaArn", "long_value": "LongValue", + "media_extraction_configuration": "MediaExtractionConfiguration", "operator": "Operator", "post_extraction_hook_configuration": "PostExtractionHookConfiguration", "pre_extraction_hook_configuration": "PreExtractionHookConfiguration", diff --git a/internal/aws/qbusiness/data_source_singular_data_source_gen.go b/internal/aws/qbusiness/data_source_singular_data_source_gen.go index f2d715640b..cbb6a33f9c 100644 --- a/internal/aws/qbusiness/data_source_singular_data_source_gen.go +++ b/internal/aws/qbusiness/data_source_singular_data_source_gen.go @@ -612,6 +612,46 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { "index_id": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: MediaExtractionConfiguration + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "ImageExtractionConfiguration": { + // "additionalProperties": false, + // "properties": { + // "ImageExtractionStatus": { + // "enum": [ + // "ENABLED", + // "DISABLED" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "ImageExtractionStatus" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // } + "media_extraction_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ImageExtractionConfiguration + "image_extraction_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ImageExtractionStatus + "image_extraction_status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: RoleArn // CloudFormation resource type schema: // @@ -797,12 +837,15 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { "display_name": "DisplayName", "document_content_operator": "DocumentContentOperator", "document_enrichment_configuration": "DocumentEnrichmentConfiguration", + "image_extraction_configuration": "ImageExtractionConfiguration", + "image_extraction_status": "ImageExtractionStatus", "index_id": "IndexId", "inline_configurations": "InlineConfigurations", "invocation_condition": "InvocationCondition", "key": "Key", "lambda_arn": "LambdaArn", "long_value": "LongValue", + "media_extraction_configuration": "MediaExtractionConfiguration", "operator": "Operator", "post_extraction_hook_configuration": "PostExtractionHookConfiguration", "pre_extraction_hook_configuration": "PreExtractionHookConfiguration", diff --git a/internal/aws/qbusiness/permission_resource_gen.go b/internal/aws/qbusiness/permission_resource_gen.go new file mode 100644 index 0000000000..6a6d887a8a --- /dev/null +++ b/internal/aws/qbusiness/permission_resource_gen.go @@ -0,0 +1,154 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package qbusiness + +import ( + "context" + "regexp" + + "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/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_qbusiness_permission", permissionResource) +} + +// permissionResource returns the Terraform awscc_qbusiness_permission resource. +// This Terraform resource corresponds to the CloudFormation AWS::QBusiness::Permission resource. +func permissionResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Actions + // CloudFormation resource type schema: + // + // { + // "items": { + // "pattern": "^qbusiness:[a-zA-Z]+$", + // "type": "string" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // } + "actions": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 10), + listvalidator.ValueStringsAre( + stringvalidator.RegexMatches(regexp.MustCompile("^qbusiness:[a-zA-Z]+$"), ""), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ApplicationId + // CloudFormation resource type schema: + // + // { + // "maxLength": 36, + // "minLength": 36, + // "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{35}$", + // "type": "string" + // } + "application_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(36, 36), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9][a-zA-Z0-9-]{35}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Principal + // CloudFormation resource type schema: + // + // { + // "maxLength": 1284, + // "minLength": 1, + // "pattern": "^arn:aws:iam::[0-9]{12}:role/.+", + // "type": "string" + // } + "principal": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 1284), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws:iam::[0-9]{12}:role/.+"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: StatementId + // CloudFormation resource type schema: + // + // { + // "maxLength": 100, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9_-]+$", + // "type": "string" + // } + "statement_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 100), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9_-]+$"), ""), + }, /*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: "Definition of AWS::QBusiness::Permission Resource Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::QBusiness::Permission").WithTerraformTypeName("awscc_qbusiness_permission") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "actions": "Actions", + "application_id": "ApplicationId", + "principal": "Principal", + "statement_id": "StatementId", + }) + + opts = opts.IsImmutableType(true) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/qbusiness/permission_resource_gen_test.go b/internal/aws/qbusiness/permission_resource_gen_test.go new file mode 100644 index 0000000000..79cdc90052 --- /dev/null +++ b/internal/aws/qbusiness/permission_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 qbusiness_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSQBusinessPermission_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::QBusiness::Permission", "awscc_qbusiness_permission", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/qbusiness/permission_singular_data_source_gen.go b/internal/aws/qbusiness/permission_singular_data_source_gen.go new file mode 100644 index 0000000000..e3657104df --- /dev/null +++ b/internal/aws/qbusiness/permission_singular_data_source_gen.go @@ -0,0 +1,108 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package qbusiness + +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_qbusiness_permission", permissionDataSource) +} + +// permissionDataSource returns the Terraform awscc_qbusiness_permission data source. +// This Terraform data source corresponds to the CloudFormation AWS::QBusiness::Permission resource. +func permissionDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Actions + // CloudFormation resource type schema: + // + // { + // "items": { + // "pattern": "^qbusiness:[a-zA-Z]+$", + // "type": "string" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // } + "actions": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ApplicationId + // CloudFormation resource type schema: + // + // { + // "maxLength": 36, + // "minLength": 36, + // "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{35}$", + // "type": "string" + // } + "application_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Principal + // CloudFormation resource type schema: + // + // { + // "maxLength": 1284, + // "minLength": 1, + // "pattern": "^arn:aws:iam::[0-9]{12}:role/.+", + // "type": "string" + // } + "principal": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: StatementId + // CloudFormation resource type schema: + // + // { + // "maxLength": 100, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9_-]+$", + // "type": "string" + // } + "statement_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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::QBusiness::Permission", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::QBusiness::Permission").WithTerraformTypeName("awscc_qbusiness_permission") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "actions": "Actions", + "application_id": "ApplicationId", + "principal": "Principal", + "statement_id": "StatementId", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/qbusiness/permission_singular_data_source_gen_test.go b/internal/aws/qbusiness/permission_singular_data_source_gen_test.go new file mode 100644 index 0000000000..93e5ebb4c3 --- /dev/null +++ b/internal/aws/qbusiness/permission_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 qbusiness_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSQBusinessPermissionDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::QBusiness::Permission", "awscc_qbusiness_permission", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSQBusinessPermissionDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::QBusiness::Permission", "awscc_qbusiness_permission", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/qbusiness/plugin_resource_gen.go b/internal/aws/qbusiness/plugin_resource_gen.go index 6598487b10..2b1785c3d7 100644 --- a/internal/aws/qbusiness/plugin_resource_gen.go +++ b/internal/aws/qbusiness/plugin_resource_gen.go @@ -43,13 +43,15 @@ func pluginResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // } "application_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(36, 36), stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9][a-zA-Z0-9-]{35}$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.RequiresReplace(), + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: AuthConfiguration @@ -86,6 +88,12 @@ func pluginResource(ctx context.Context) (resource.Resource, error) { // "OAuth2ClientCredentialConfiguration": { // "additionalProperties": false, // "properties": { + // "AuthorizationUrl": { + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(https?|ftp|file)://([^\\s]*)$", + // "type": "string" + // }, // "RoleArn": { // "maxLength": 1284, // "minLength": 0, @@ -97,6 +105,12 @@ func pluginResource(ctx context.Context) (resource.Resource, error) { // "minLength": 0, // "pattern": "", // "type": "string" + // }, + // "TokenUrl": { + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(https?|ftp|file)://([^\\s]*)$", + // "type": "string" // } // }, // "required": [ @@ -156,6 +170,18 @@ func pluginResource(ctx context.Context) (resource.Resource, error) { // Property: OAuth2ClientCredentialConfiguration "o_auth_2_client_credential_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuthorizationUrl + "authorization_url": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 2048), + stringvalidator.RegexMatches(regexp.MustCompile("^(https?|ftp|file)://([^\\s]*)$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: RoleArn "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Optional: true, @@ -180,6 +206,18 @@ func pluginResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: TokenUrl + "token_url": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 2048), + stringvalidator.RegexMatches(regexp.MustCompile("^(https?|ftp|file)://([^\\s]*)$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Optional: true, Computed: true, @@ -463,7 +501,6 @@ func pluginResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "insertionOrder": false, // "items": { // "additionalProperties": false, // "properties": { @@ -523,7 +560,6 @@ func pluginResource(ctx context.Context) (resource.Resource, error) { listvalidator.SizeBetween(0, 200), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ - generic.Multiset(), listplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ @@ -536,7 +572,19 @@ func pluginResource(ctx context.Context) (resource.Resource, error) { // "SALESFORCE", // "JIRA", // "ZENDESK", - // "CUSTOM" + // "CUSTOM", + // "QUICKSIGHT", + // "SERVICENOW_NOW_PLATFORM", + // "JIRA_CLOUD", + // "SALESFORCE_CRM", + // "ZENDESK_SUITE", + // "ATLASSIAN_CONFLUENCE", + // "GOOGLE_CALENDAR", + // "MICROSOFT_TEAMS", + // "MICROSOFT_EXCHANGE", + // "PAGERDUTY_ADVANCE", + // "SMARTSHEET", + // "ASANA" // ], // "type": "string" // } @@ -549,6 +597,18 @@ func pluginResource(ctx context.Context) (resource.Resource, error) { "JIRA", "ZENDESK", "CUSTOM", + "QUICKSIGHT", + "SERVICENOW_NOW_PLATFORM", + "JIRA_CLOUD", + "SALESFORCE_CRM", + "ZENDESK_SUITE", + "ATLASSIAN_CONFLUENCE", + "GOOGLE_CALENDAR", + "MICROSOFT_TEAMS", + "MICROSOFT_EXCHANGE", + "PAGERDUTY_ADVANCE", + "SMARTSHEET", + "ASANA", ), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -595,6 +655,7 @@ func pluginResource(ctx context.Context) (resource.Resource, error) { "api_schema_type": "ApiSchemaType", "application_id": "ApplicationId", "auth_configuration": "AuthConfiguration", + "authorization_url": "AuthorizationUrl", "basic_auth_configuration": "BasicAuthConfiguration", "bucket": "Bucket", "build_status": "BuildStatus", @@ -614,6 +675,7 @@ func pluginResource(ctx context.Context) (resource.Resource, error) { "server_url": "ServerUrl", "state": "State", "tags": "Tags", + "token_url": "TokenUrl", "type": "Type", "updated_at": "UpdatedAt", "value": "Value", diff --git a/internal/aws/qbusiness/plugin_singular_data_source_gen.go b/internal/aws/qbusiness/plugin_singular_data_source_gen.go index 8ac909bbc4..2bdf270596 100644 --- a/internal/aws/qbusiness/plugin_singular_data_source_gen.go +++ b/internal/aws/qbusiness/plugin_singular_data_source_gen.go @@ -70,6 +70,12 @@ func pluginDataSource(ctx context.Context) (datasource.DataSource, error) { // "OAuth2ClientCredentialConfiguration": { // "additionalProperties": false, // "properties": { + // "AuthorizationUrl": { + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(https?|ftp|file)://([^\\s]*)$", + // "type": "string" + // }, // "RoleArn": { // "maxLength": 1284, // "minLength": 0, @@ -81,6 +87,12 @@ func pluginDataSource(ctx context.Context) (datasource.DataSource, error) { // "minLength": 0, // "pattern": "", // "type": "string" + // }, + // "TokenUrl": { + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(https?|ftp|file)://([^\\s]*)$", + // "type": "string" // } // }, // "required": [ @@ -116,6 +128,10 @@ func pluginDataSource(ctx context.Context) (datasource.DataSource, error) { // Property: OAuth2ClientCredentialConfiguration "o_auth_2_client_credential_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuthorizationUrl + "authorization_url": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: RoleArn "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, @@ -124,6 +140,10 @@ func pluginDataSource(ctx context.Context) (datasource.DataSource, error) { "secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: TokenUrl + "token_url": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Computed: true, }, /*END ATTRIBUTE*/ @@ -315,7 +335,6 @@ func pluginDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "insertionOrder": false, // "items": { // "additionalProperties": false, // "properties": { @@ -364,7 +383,19 @@ func pluginDataSource(ctx context.Context) (datasource.DataSource, error) { // "SALESFORCE", // "JIRA", // "ZENDESK", - // "CUSTOM" + // "CUSTOM", + // "QUICKSIGHT", + // "SERVICENOW_NOW_PLATFORM", + // "JIRA_CLOUD", + // "SALESFORCE_CRM", + // "ZENDESK_SUITE", + // "ATLASSIAN_CONFLUENCE", + // "GOOGLE_CALENDAR", + // "MICROSOFT_TEAMS", + // "MICROSOFT_EXCHANGE", + // "PAGERDUTY_ADVANCE", + // "SMARTSHEET", + // "ASANA" // ], // "type": "string" // } @@ -403,6 +434,7 @@ func pluginDataSource(ctx context.Context) (datasource.DataSource, error) { "api_schema_type": "ApiSchemaType", "application_id": "ApplicationId", "auth_configuration": "AuthConfiguration", + "authorization_url": "AuthorizationUrl", "basic_auth_configuration": "BasicAuthConfiguration", "bucket": "Bucket", "build_status": "BuildStatus", @@ -422,6 +454,7 @@ func pluginDataSource(ctx context.Context) (datasource.DataSource, error) { "server_url": "ServerUrl", "state": "State", "tags": "Tags", + "token_url": "TokenUrl", "type": "Type", "updated_at": "UpdatedAt", "value": "Value", diff --git a/internal/aws/qbusiness/web_experience_resource_gen.go b/internal/aws/qbusiness/web_experience_resource_gen.go index 0b40cc584f..0d30dc1473 100644 --- a/internal/aws/qbusiness/web_experience_resource_gen.go +++ b/internal/aws/qbusiness/web_experience_resource_gen.go @@ -66,6 +66,96 @@ func webExperienceResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: CustomizationConfiguration + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "CustomCSSUrl": { + // "maxLength": 1284, + // "minLength": 0, + // "pattern": "^(https?://[a-zA-Z0-9-_.+%/]+\\.css)?$", + // "type": "string" + // }, + // "FaviconUrl": { + // "maxLength": 1284, + // "minLength": 0, + // "pattern": "^(https?://[a-zA-Z0-9-_.+%/]+\\.(svg|ico))?$", + // "type": "string" + // }, + // "FontUrl": { + // "maxLength": 1284, + // "minLength": 0, + // "pattern": "^(https?://[a-zA-Z0-9-_.+%/]+\\.(ttf|woff|woff2|otf))?$", + // "type": "string" + // }, + // "LogoUrl": { + // "maxLength": 1284, + // "minLength": 0, + // "pattern": "^(https?://[a-zA-Z0-9-_.+%/]+\\.(svg|png))?$", + // "type": "string" + // } + // }, + // "type": "object" + // } + "customization_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CustomCSSUrl + "custom_css_url": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 1284), + stringvalidator.RegexMatches(regexp.MustCompile("^(https?://[a-zA-Z0-9-_.+%/]+\\.css)?$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: FaviconUrl + "favicon_url": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 1284), + stringvalidator.RegexMatches(regexp.MustCompile("^(https?://[a-zA-Z0-9-_.+%/]+\\.(svg|ico))?$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: FontUrl + "font_url": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 1284), + stringvalidator.RegexMatches(regexp.MustCompile("^(https?://[a-zA-Z0-9-_.+%/]+\\.(ttf|woff|woff2|otf))?$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LogoUrl + "logo_url": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 1284), + stringvalidator.RegexMatches(regexp.MustCompile("^(https?://[a-zA-Z0-9-_.+%/]+\\.(svg|png))?$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: DefaultEndpoint // CloudFormation resource type schema: // @@ -479,9 +569,14 @@ func webExperienceResource(ctx context.Context) (resource.Resource, error) { "application_id": "ApplicationId", "authentication_url": "AuthenticationUrl", "created_at": "CreatedAt", + "custom_css_url": "CustomCSSUrl", + "customization_configuration": "CustomizationConfiguration", "default_endpoint": "DefaultEndpoint", + "favicon_url": "FaviconUrl", + "font_url": "FontUrl", "identity_provider_configuration": "IdentityProviderConfiguration", "key": "Key", + "logo_url": "LogoUrl", "open_id_connect_configuration": "OpenIDConnectConfiguration", "origins": "Origins", "role_arn": "RoleArn", diff --git a/internal/aws/qbusiness/web_experience_singular_data_source_gen.go b/internal/aws/qbusiness/web_experience_singular_data_source_gen.go index 86bfd87f8b..9464ece33f 100644 --- a/internal/aws/qbusiness/web_experience_singular_data_source_gen.go +++ b/internal/aws/qbusiness/web_experience_singular_data_source_gen.go @@ -47,6 +47,60 @@ func webExperienceDataSource(ctx context.Context) (datasource.DataSource, error) CustomType: timetypes.RFC3339Type{}, Computed: true, }, /*END ATTRIBUTE*/ + // Property: CustomizationConfiguration + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "CustomCSSUrl": { + // "maxLength": 1284, + // "minLength": 0, + // "pattern": "^(https?://[a-zA-Z0-9-_.+%/]+\\.css)?$", + // "type": "string" + // }, + // "FaviconUrl": { + // "maxLength": 1284, + // "minLength": 0, + // "pattern": "^(https?://[a-zA-Z0-9-_.+%/]+\\.(svg|ico))?$", + // "type": "string" + // }, + // "FontUrl": { + // "maxLength": 1284, + // "minLength": 0, + // "pattern": "^(https?://[a-zA-Z0-9-_.+%/]+\\.(ttf|woff|woff2|otf))?$", + // "type": "string" + // }, + // "LogoUrl": { + // "maxLength": 1284, + // "minLength": 0, + // "pattern": "^(https?://[a-zA-Z0-9-_.+%/]+\\.(svg|png))?$", + // "type": "string" + // } + // }, + // "type": "object" + // } + "customization_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CustomCSSUrl + "custom_css_url": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FaviconUrl + "favicon_url": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FontUrl + "font_url": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LogoUrl + "logo_url": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: DefaultEndpoint // CloudFormation resource type schema: // @@ -327,9 +381,14 @@ func webExperienceDataSource(ctx context.Context) (datasource.DataSource, error) "application_id": "ApplicationId", "authentication_url": "AuthenticationUrl", "created_at": "CreatedAt", + "custom_css_url": "CustomCSSUrl", + "customization_configuration": "CustomizationConfiguration", "default_endpoint": "DefaultEndpoint", + "favicon_url": "FaviconUrl", + "font_url": "FontUrl", "identity_provider_configuration": "IdentityProviderConfiguration", "key": "Key", + "logo_url": "LogoUrl", "open_id_connect_configuration": "OpenIDConnectConfiguration", "origins": "Origins", "role_arn": "RoleArn", diff --git a/internal/aws/ram/resource_share_plural_data_source_gen.go b/internal/aws/ram/resource_share_plural_data_source_gen.go new file mode 100644 index 0000000000..c91d363ff1 --- /dev/null +++ b/internal/aws/ram/resource_share_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 ram + +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_ram_resource_shares", resourceSharesDataSource) +} + +// resourceSharesDataSource returns the Terraform awscc_ram_resource_shares data source. +// This Terraform data source corresponds to the CloudFormation AWS::RAM::ResourceShare resource. +func resourceSharesDataSource(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::RAM::ResourceShare", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::RAM::ResourceShare").WithTerraformTypeName("awscc_ram_resource_shares") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/ram/resource_share_plural_data_source_gen_test.go b/internal/aws/ram/resource_share_plural_data_source_gen_test.go new file mode 100644 index 0000000000..b804ef5637 --- /dev/null +++ b/internal/aws/ram/resource_share_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 ram_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSRAMResourceSharesDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::RAM::ResourceShare", "awscc_ram_resource_shares", "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/ram/resource_share_resource_gen.go b/internal/aws/ram/resource_share_resource_gen.go new file mode 100644 index 0000000000..f6da9a83a9 --- /dev/null +++ b/internal/aws/ram/resource_share_resource_gen.go @@ -0,0 +1,274 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package ram + +import ( + "context" + + "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/listplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/setplanmodifier" + "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" + fwvalidators "github.com/hashicorp/terraform-provider-awscc/internal/validators" +) + +func init() { + registry.AddResourceFactory("awscc_ram_resource_share", resourceShareResource) +} + +// resourceShareResource returns the Terraform awscc_ram_resource_share resource. +// This Terraform resource corresponds to the CloudFormation AWS::RAM::ResourceShare resource. +func resourceShareResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AllowExternalPrincipals + // CloudFormation resource type schema: + // + // { + // "description": "Specifies whether principals outside your organization in AWS Organizations can be associated with a resource share. A value of `true` lets you share with individual AWS accounts that are not in your organization. A value of `false` only has meaning if your account is a member of an AWS Organization. The default value is `true`.", + // "type": "boolean" + // } + "allow_external_principals": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether principals outside your organization in AWS Organizations can be associated with a resource share. A value of `true` lets you share with individual AWS accounts that are not in your organization. A value of `false` only has meaning if your account is a member of an AWS Organization. The default value is `true`.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "Specifies the name of the resource share.", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies the name of the resource share.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: PermissionArns + // CloudFormation resource type schema: + // + // { + // "description": "Specifies the [Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the AWS RAM permission to associate with the resource share. If you do not specify an ARN for the permission, AWS RAM automatically attaches the default version of the permission for each resource type. You can associate only one permission with each resource type included in the resource share.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + "permission_arns": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "Specifies the [Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the AWS RAM permission to associate with the resource share. If you do not specify an ARN for the permission, AWS RAM automatically attaches the default version of the permission for each resource type. You can associate only one permission with each resource type included in the resource share.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // PermissionArns is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: Principals + // CloudFormation resource type schema: + // + // { + // "description": "Specifies the principals to associate with the resource share. The possible values are:\n\n- An AWS account ID\n\n- An Amazon Resource Name (ARN) of an organization in AWS Organizations\n\n- An ARN of an organizational unit (OU) in AWS Organizations\n\n- An ARN of an IAM role\n\n- An ARN of an IAM user", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + "principals": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "Specifies the principals to associate with the resource share. The possible values are:\n\n- An AWS account ID\n\n- An Amazon Resource Name (ARN) of an organization in AWS Organizations\n\n- An ARN of an organizational unit (OU) in AWS Organizations\n\n- An ARN of an IAM role\n\n- An ARN of an IAM user", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // Principals is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: ResourceArns + // CloudFormation resource type schema: + // + // { + // "description": "Specifies a list of one or more ARNs of the resources to associate with the resource share.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + "resource_arns": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "Specifies a list of one or more ARNs of the resources to associate with the resource share.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // ResourceArns is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: Sources + // CloudFormation resource type schema: + // + // { + // "description": "Specifies from which source accounts the service principal has access to the resources in this resource share.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + "sources": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "Specifies from which source accounts the service principal has access to the resources in this resource share.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // Sources is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "Specifies one or more tags to attach to the resource share itself. It doesn't attach the tags to the resources associated with the resource share.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "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" + // }, + // "Value": { + // "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" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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 -.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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 -.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Specifies one or more tags to attach to the resource share itself. It doesn't attach the tags to the resources associated with the resource share.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.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: "Resource type definition for AWS::RAM::ResourceShare", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::RAM::ResourceShare").WithTerraformTypeName("awscc_ram_resource_share") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "allow_external_principals": "AllowExternalPrincipals", + "arn": "Arn", + "key": "Key", + "name": "Name", + "permission_arns": "PermissionArns", + "principals": "Principals", + "resource_arns": "ResourceArns", + "sources": "Sources", + "tags": "Tags", + "value": "Value", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/PermissionArns", + "/properties/Principals", + "/properties/ResourceArns", + "/properties/Sources", + }) + 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/ram/resource_share_resource_gen_test.go b/internal/aws/ram/resource_share_resource_gen_test.go new file mode 100644 index 0000000000..2ce400a975 --- /dev/null +++ b/internal/aws/ram/resource_share_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 ram_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSRAMResourceShare_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::RAM::ResourceShare", "awscc_ram_resource_share", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/ram/resource_share_singular_data_source_gen.go b/internal/aws/ram/resource_share_singular_data_source_gen.go new file mode 100644 index 0000000000..6f648e449d --- /dev/null +++ b/internal/aws/ram/resource_share_singular_data_source_gen.go @@ -0,0 +1,203 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package ram + +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_ram_resource_share", resourceShareDataSource) +} + +// resourceShareDataSource returns the Terraform awscc_ram_resource_share data source. +// This Terraform data source corresponds to the CloudFormation AWS::RAM::ResourceShare resource. +func resourceShareDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AllowExternalPrincipals + // CloudFormation resource type schema: + // + // { + // "description": "Specifies whether principals outside your organization in AWS Organizations can be associated with a resource share. A value of `true` lets you share with individual AWS accounts that are not in your organization. A value of `false` only has meaning if your account is a member of an AWS Organization. The default value is `true`.", + // "type": "boolean" + // } + "allow_external_principals": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether principals outside your organization in AWS Organizations can be associated with a resource share. A value of `true` lets you share with individual AWS accounts that are not in your organization. A value of `false` only has meaning if your account is a member of an AWS Organization. The default value is `true`.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "Specifies the name of the resource share.", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies the name of the resource share.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PermissionArns + // CloudFormation resource type schema: + // + // { + // "description": "Specifies the [Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the AWS RAM permission to associate with the resource share. If you do not specify an ARN for the permission, AWS RAM automatically attaches the default version of the permission for each resource type. You can associate only one permission with each resource type included in the resource share.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + "permission_arns": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "Specifies the [Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the AWS RAM permission to associate with the resource share. If you do not specify an ARN for the permission, AWS RAM automatically attaches the default version of the permission for each resource type. You can associate only one permission with each resource type included in the resource share.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Principals + // CloudFormation resource type schema: + // + // { + // "description": "Specifies the principals to associate with the resource share. The possible values are:\n\n- An AWS account ID\n\n- An Amazon Resource Name (ARN) of an organization in AWS Organizations\n\n- An ARN of an organizational unit (OU) in AWS Organizations\n\n- An ARN of an IAM role\n\n- An ARN of an IAM user", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + "principals": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "Specifies the principals to associate with the resource share. The possible values are:\n\n- An AWS account ID\n\n- An Amazon Resource Name (ARN) of an organization in AWS Organizations\n\n- An ARN of an organizational unit (OU) in AWS Organizations\n\n- An ARN of an IAM role\n\n- An ARN of an IAM user", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ResourceArns + // CloudFormation resource type schema: + // + // { + // "description": "Specifies a list of one or more ARNs of the resources to associate with the resource share.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + "resource_arns": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "Specifies a list of one or more ARNs of the resources to associate with the resource share.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Sources + // CloudFormation resource type schema: + // + // { + // "description": "Specifies from which source accounts the service principal has access to the resources in this resource share.", + // "insertionOrder": false, + // "items": { + // "type": "string" + // }, + // "type": "array" + // } + "sources": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "Specifies from which source accounts the service principal has access to the resources in this resource share.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "Specifies one or more tags to attach to the resource share itself. It doesn't attach the tags to the resources associated with the resource share.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "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" + // }, + // "Value": { + // "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" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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 -.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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 -.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Specifies one or more tags to attach to the resource share itself. It doesn't attach the tags to the resources associated with the resource share.", + 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::RAM::ResourceShare", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::RAM::ResourceShare").WithTerraformTypeName("awscc_ram_resource_share") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "allow_external_principals": "AllowExternalPrincipals", + "arn": "Arn", + "key": "Key", + "name": "Name", + "permission_arns": "PermissionArns", + "principals": "Principals", + "resource_arns": "ResourceArns", + "sources": "Sources", + "tags": "Tags", + "value": "Value", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/ram/resource_share_singular_data_source_gen_test.go b/internal/aws/ram/resource_share_singular_data_source_gen_test.go new file mode 100644 index 0000000000..dbde027810 --- /dev/null +++ b/internal/aws/ram/resource_share_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 ram_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSRAMResourceShareDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::RAM::ResourceShare", "awscc_ram_resource_share", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSRAMResourceShareDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::RAM::ResourceShare", "awscc_ram_resource_share", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/rds/custom_db_engine_version_resource_gen.go b/internal/aws/rds/custom_db_engine_version_resource_gen.go index 5f41642e97..b7fe749225 100644 --- a/internal/aws/rds/custom_db_engine_version_resource_gen.go +++ b/internal/aws/rds/custom_db_engine_version_resource_gen.go @@ -34,11 +34,11 @@ func customDBEngineVersionResource(ctx context.Context) (resource.Resource, erro // CloudFormation resource type schema: // // { - // "description": "The ARN of the custom engine version.", + // "description": "", // "type": "string" // } "db_engine_version_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ARN of the custom engine version.", + Description: "", Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -48,13 +48,13 @@ func customDBEngineVersionResource(ctx context.Context) (resource.Resource, erro // CloudFormation resource type schema: // // { - // "description": "The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is `my-custom-installation-files`.", + // "description": "The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is ``my-custom-installation-files``.", // "maxLength": 63, // "minLength": 3, // "type": "string" // } "database_installation_files_s3_bucket_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is `my-custom-installation-files`.", + Description: "The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is ``my-custom-installation-files``.", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -69,13 +69,13 @@ func customDBEngineVersionResource(ctx context.Context) (resource.Resource, erro // CloudFormation resource type schema: // // { - // "description": "The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is `123456789012/cev1`. If this setting isn't specified, no prefix is assumed.", + // "description": "The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is ``123456789012/cev1``. If this setting isn't specified, no prefix is assumed.", // "maxLength": 255, // "minLength": 1, // "type": "string" // } "database_installation_files_s3_prefix": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is `123456789012/cev1`. If this setting isn't specified, no prefix is assumed.", + Description: "The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is ``123456789012/cev1``. If this setting isn't specified, no prefix is assumed.", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -110,13 +110,13 @@ func customDBEngineVersionResource(ctx context.Context) (resource.Resource, erro // CloudFormation resource type schema: // // { - // "description": "The database engine to use for your custom engine version (CEV). The only supported value is `custom-oracle-ee`.", + // "description": "The database engine to use for your custom engine version (CEV).\n Valid values:\n + ``custom-oracle-ee`` \n + ``custom-oracle-ee-cdb``", // "maxLength": 35, // "minLength": 1, // "type": "string" // } "engine": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The database engine to use for your custom engine version (CEV). The only supported value is `custom-oracle-ee`.", + Description: "The database engine to use for your custom engine version (CEV).\n Valid values:\n + ``custom-oracle-ee`` \n + ``custom-oracle-ee-cdb``", Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 35), @@ -129,13 +129,13 @@ func customDBEngineVersionResource(ctx context.Context) (resource.Resource, erro // CloudFormation resource type schema: // // { - // "description": "The name of your CEV. The name format is 19.customized_string . For example, a valid name is 19.my_cev1. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Region.", + // "description": "The name of your CEV. The name format is ``major version.customized_string``. For example, a valid CEV name is ``19.my_cev1``. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of ``Engine`` and ``EngineVersion`` is unique per customer per Region.\n *Constraints:* Minimum length is 1. Maximum length is 60.\n *Pattern:* ``^[a-z0-9_.-]{1,60$``}", // "maxLength": 60, // "minLength": 1, // "type": "string" // } "engine_version": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of your CEV. The name format is 19.customized_string . For example, a valid name is 19.my_cev1. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Region.", + Description: "The name of your CEV. The name format is ``major version.customized_string``. For example, a valid CEV name is ``19.my_cev1``. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of ``Engine`` and ``EngineVersion`` is unique per customer per Region.\n *Constraints:* Minimum length is 1. Maximum length is 60.\n *Pattern:* ``^[a-z0-9_.-]{1,60$``}", Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 60), @@ -148,11 +148,11 @@ func customDBEngineVersionResource(ctx context.Context) (resource.Resource, erro // CloudFormation resource type schema: // // { - // "description": "The identifier of Amazon Machine Image (AMI) used for CEV.", + // "description": "A value that indicates the ID of the AMI.", // "type": "string" // } "image_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The identifier of Amazon Machine Image (AMI) used for CEV.", + Description: "A value that indicates the ID of the AMI.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -164,13 +164,13 @@ func customDBEngineVersionResource(ctx context.Context) (resource.Resource, erro // CloudFormation resource type schema: // // { - // "description": "The AWS KMS key identifier for an encrypted CEV. A symmetric KMS key is required for RDS Custom, but optional for Amazon RDS.", + // "description": "The AWS KMS key identifier for an encrypted CEV. A symmetric encryption KMS key is required for RDS Custom, but optional for Amazon RDS.\n If you have an existing symmetric encryption KMS key in your account, you can use it with RDS Custom. No further action is necessary. If you don't already have a symmetric encryption KMS key in your account, follow the instructions in [Creating a symmetric encryption KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) in the *Key Management Service Developer Guide*.\n You can choose the same symmetric encryption key when you create a CEV and a DB instance, or choose different keys.", // "maxLength": 2048, // "minLength": 1, // "type": "string" // } "kms_key_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The AWS KMS key identifier for an encrypted CEV. A symmetric KMS key is required for RDS Custom, but optional for Amazon RDS.", + Description: "The AWS KMS key identifier for an encrypted CEV. A symmetric encryption KMS key is required for RDS Custom, but optional for Amazon RDS.\n If you have an existing symmetric encryption KMS key in your account, you can use it with RDS Custom. No further action is necessary. If you don't already have a symmetric encryption KMS key in your account, follow the instructions in [Creating a symmetric encryption KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) in the *Key Management Service Developer Guide*.\n You can choose the same symmetric encryption key when you create a CEV and a DB instance, or choose different keys.", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -185,13 +185,13 @@ func customDBEngineVersionResource(ctx context.Context) (resource.Resource, erro // CloudFormation resource type schema: // // { - // "description": "The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed.", + // "description": "The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed.\n The following JSON fields are valid:\n + MediaImportTemplateVersion Version of the CEV manifest. The date is in the format YYYY-MM-DD. + databaseInstallationFileNames Ordered list of installation files for the CEV. + opatchFileNames Ordered list of OPatch installers used for the Oracle DB engine. + psuRuPatchFileNames The PSU and RU patches for this CEV. + OtherPatchFileNames The patches that are not in the list of PSU and RU patches. Amazon RDS applies these patches after applying the PSU and RU patches. \n For more information, see [Creating the CEV manifest](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev.html#custom-cev.preparing.manifest) in the *Amazon RDS User Guide*.", // "maxLength": 51000, // "minLength": 1, // "type": "string" // } "manifest": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed.", + Description: "The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed.\n The following JSON fields are valid:\n + MediaImportTemplateVersion Version of the CEV manifest. The date is in the format YYYY-MM-DD. + databaseInstallationFileNames Ordered list of installation files for the CEV. + opatchFileNames Ordered list of OPatch installers used for the Oracle DB engine. + psuRuPatchFileNames The PSU and RU patches for this CEV. + OtherPatchFileNames The patches that are not in the list of PSU and RU patches. Amazon RDS applies these patches after applying the PSU and RU patches. \n For more information, see [Creating the CEV manifest](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev.html#custom-cev.preparing.manifest) in the *Amazon RDS User Guide*.", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -207,11 +207,11 @@ func customDBEngineVersionResource(ctx context.Context) (resource.Resource, erro // CloudFormation resource type schema: // // { - // "description": "The identifier of the source custom engine version.", + // "description": "The ARN of a CEV to use as a source for creating a new CEV. You can specify a different Amazon Machine Imagine (AMI) by using either ``Source`` or ``UseAwsProvidedLatestImage``. You can't specify a different JSON manifest when you specify ``SourceCustomDbEngineVersionIdentifier``.", // "type": "string" // } "source_custom_db_engine_version_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The identifier of the source custom engine version.", + Description: "The ARN of a CEV to use as a source for creating a new CEV. You can specify a different Amazon Machine Imagine (AMI) by using either ``Source`` or ``UseAwsProvidedLatestImage``. You can't specify a different JSON manifest when you specify ``SourceCustomDbEngineVersionIdentifier``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -225,7 +225,7 @@ func customDBEngineVersionResource(ctx context.Context) (resource.Resource, erro // // { // "default": "available", - // "description": "The availability status to be assigned to the CEV.", + // "description": "A value that indicates the status of a custom engine version (CEV).", // "enum": [ // "available", // "inactive", @@ -234,7 +234,7 @@ func customDBEngineVersionResource(ctx context.Context) (resource.Resource, erro // "type": "string" // } "status": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The availability status to be assigned to the CEV.", + Description: "A value that indicates the status of a custom engine version (CEV).", Optional: true, Computed: true, Default: stringdefault.StaticString("available"), @@ -253,20 +253,20 @@ func customDBEngineVersionResource(ctx context.Context) (resource.Resource, erro // CloudFormation resource type schema: // // { - // "description": "An array of key-value pairs to apply to this resource.", + // "description": "A list of tags. 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.*", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "A key-value pair to associate with a resource.", + // "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*.", // "properties": { // "Key": { - // "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 -.", + // "description": "A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", // "maxLength": 128, // "minLength": 1, // "type": "string" // }, // "Value": { - // "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 -.", + // "description": "A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", // "maxLength": 256, // "minLength": 0, // "type": "string" @@ -285,7 +285,7 @@ func customDBEngineVersionResource(ctx context.Context) (resource.Resource, erro Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Key "key": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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 -.", + Description: "A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -298,7 +298,7 @@ func customDBEngineVersionResource(ctx context.Context) (resource.Resource, erro }, /*END ATTRIBUTE*/ // Property: Value "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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 -.", + Description: "A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -310,7 +310,7 @@ func customDBEngineVersionResource(ctx context.Context) (resource.Resource, erro }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "An array of key-value pairs to apply to this resource.", + Description: "A list of tags. 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.*", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -322,11 +322,11 @@ func customDBEngineVersionResource(ctx context.Context) (resource.Resource, erro // CloudFormation resource type schema: // // { - // "description": "A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create.", + // "description": "Specifies whether to use the latest service-provided Amazon Machine Image (AMI) for the CEV. If you specify ``UseAwsProvidedLatestImage``, you can't also specify ``ImageId``.", // "type": "boolean" // } "use_aws_provided_latest_image": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create.", + Description: "Specifies whether to use the latest service-provided Amazon Machine Image (AMI) for the CEV. If you specify ``UseAwsProvidedLatestImage``, you can't also specify ``ImageId``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -347,7 +347,7 @@ func customDBEngineVersionResource(ctx context.Context) (resource.Resource, erro } schema := schema.Schema{ - Description: "The AWS::RDS::CustomDBEngineVersion resource creates an Amazon RDS custom DB engine version.", + Description: "Creates a custom DB engine version (CEV).", Version: 1, Attributes: attributes, } diff --git a/internal/aws/rds/custom_db_engine_version_singular_data_source_gen.go b/internal/aws/rds/custom_db_engine_version_singular_data_source_gen.go index ed651fa10a..94843477f0 100644 --- a/internal/aws/rds/custom_db_engine_version_singular_data_source_gen.go +++ b/internal/aws/rds/custom_db_engine_version_singular_data_source_gen.go @@ -26,37 +26,37 @@ func customDBEngineVersionDataSource(ctx context.Context) (datasource.DataSource // CloudFormation resource type schema: // // { - // "description": "The ARN of the custom engine version.", + // "description": "", // "type": "string" // } "db_engine_version_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ARN of the custom engine version.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: DatabaseInstallationFilesS3BucketName // CloudFormation resource type schema: // // { - // "description": "The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is `my-custom-installation-files`.", + // "description": "The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is ``my-custom-installation-files``.", // "maxLength": 63, // "minLength": 3, // "type": "string" // } "database_installation_files_s3_bucket_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is `my-custom-installation-files`.", + Description: "The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is ``my-custom-installation-files``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: DatabaseInstallationFilesS3Prefix // CloudFormation resource type schema: // // { - // "description": "The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is `123456789012/cev1`. If this setting isn't specified, no prefix is assumed.", + // "description": "The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is ``123456789012/cev1``. If this setting isn't specified, no prefix is assumed.", // "maxLength": 255, // "minLength": 1, // "type": "string" // } "database_installation_files_s3_prefix": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is `123456789012/cev1`. If this setting isn't specified, no prefix is assumed.", + Description: "The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is ``123456789012/cev1``. If this setting isn't specified, no prefix is assumed.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Description @@ -76,74 +76,74 @@ func customDBEngineVersionDataSource(ctx context.Context) (datasource.DataSource // CloudFormation resource type schema: // // { - // "description": "The database engine to use for your custom engine version (CEV). The only supported value is `custom-oracle-ee`.", + // "description": "The database engine to use for your custom engine version (CEV).\n Valid values:\n + ``custom-oracle-ee`` \n + ``custom-oracle-ee-cdb``", // "maxLength": 35, // "minLength": 1, // "type": "string" // } "engine": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The database engine to use for your custom engine version (CEV). The only supported value is `custom-oracle-ee`.", + Description: "The database engine to use for your custom engine version (CEV).\n Valid values:\n + ``custom-oracle-ee`` \n + ``custom-oracle-ee-cdb``", Computed: true, }, /*END ATTRIBUTE*/ // Property: EngineVersion // CloudFormation resource type schema: // // { - // "description": "The name of your CEV. The name format is 19.customized_string . For example, a valid name is 19.my_cev1. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Region.", + // "description": "The name of your CEV. The name format is ``major version.customized_string``. For example, a valid CEV name is ``19.my_cev1``. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of ``Engine`` and ``EngineVersion`` is unique per customer per Region.\n *Constraints:* Minimum length is 1. Maximum length is 60.\n *Pattern:* ``^[a-z0-9_.-]{1,60$``}", // "maxLength": 60, // "minLength": 1, // "type": "string" // } "engine_version": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of your CEV. The name format is 19.customized_string . For example, a valid name is 19.my_cev1. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Region.", + Description: "The name of your CEV. The name format is ``major version.customized_string``. For example, a valid CEV name is ``19.my_cev1``. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of ``Engine`` and ``EngineVersion`` is unique per customer per Region.\n *Constraints:* Minimum length is 1. Maximum length is 60.\n *Pattern:* ``^[a-z0-9_.-]{1,60$``}", Computed: true, }, /*END ATTRIBUTE*/ // Property: ImageId // CloudFormation resource type schema: // // { - // "description": "The identifier of Amazon Machine Image (AMI) used for CEV.", + // "description": "A value that indicates the ID of the AMI.", // "type": "string" // } "image_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The identifier of Amazon Machine Image (AMI) used for CEV.", + Description: "A value that indicates the ID of the AMI.", Computed: true, }, /*END ATTRIBUTE*/ // Property: KMSKeyId // CloudFormation resource type schema: // // { - // "description": "The AWS KMS key identifier for an encrypted CEV. A symmetric KMS key is required for RDS Custom, but optional for Amazon RDS.", + // "description": "The AWS KMS key identifier for an encrypted CEV. A symmetric encryption KMS key is required for RDS Custom, but optional for Amazon RDS.\n If you have an existing symmetric encryption KMS key in your account, you can use it with RDS Custom. No further action is necessary. If you don't already have a symmetric encryption KMS key in your account, follow the instructions in [Creating a symmetric encryption KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) in the *Key Management Service Developer Guide*.\n You can choose the same symmetric encryption key when you create a CEV and a DB instance, or choose different keys.", // "maxLength": 2048, // "minLength": 1, // "type": "string" // } "kms_key_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The AWS KMS key identifier for an encrypted CEV. A symmetric KMS key is required for RDS Custom, but optional for Amazon RDS.", + Description: "The AWS KMS key identifier for an encrypted CEV. A symmetric encryption KMS key is required for RDS Custom, but optional for Amazon RDS.\n If you have an existing symmetric encryption KMS key in your account, you can use it with RDS Custom. No further action is necessary. If you don't already have a symmetric encryption KMS key in your account, follow the instructions in [Creating a symmetric encryption KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) in the *Key Management Service Developer Guide*.\n You can choose the same symmetric encryption key when you create a CEV and a DB instance, or choose different keys.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Manifest // CloudFormation resource type schema: // // { - // "description": "The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed.", + // "description": "The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed.\n The following JSON fields are valid:\n + MediaImportTemplateVersion Version of the CEV manifest. The date is in the format YYYY-MM-DD. + databaseInstallationFileNames Ordered list of installation files for the CEV. + opatchFileNames Ordered list of OPatch installers used for the Oracle DB engine. + psuRuPatchFileNames The PSU and RU patches for this CEV. + OtherPatchFileNames The patches that are not in the list of PSU and RU patches. Amazon RDS applies these patches after applying the PSU and RU patches. \n For more information, see [Creating the CEV manifest](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev.html#custom-cev.preparing.manifest) in the *Amazon RDS User Guide*.", // "maxLength": 51000, // "minLength": 1, // "type": "string" // } "manifest": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed.", + Description: "The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed.\n The following JSON fields are valid:\n + MediaImportTemplateVersion Version of the CEV manifest. The date is in the format YYYY-MM-DD. + databaseInstallationFileNames Ordered list of installation files for the CEV. + opatchFileNames Ordered list of OPatch installers used for the Oracle DB engine. + psuRuPatchFileNames The PSU and RU patches for this CEV. + OtherPatchFileNames The patches that are not in the list of PSU and RU patches. Amazon RDS applies these patches after applying the PSU and RU patches. \n For more information, see [Creating the CEV manifest](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev.html#custom-cev.preparing.manifest) in the *Amazon RDS User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: SourceCustomDbEngineVersionIdentifier // CloudFormation resource type schema: // // { - // "description": "The identifier of the source custom engine version.", + // "description": "The ARN of a CEV to use as a source for creating a new CEV. You can specify a different Amazon Machine Imagine (AMI) by using either ``Source`` or ``UseAwsProvidedLatestImage``. You can't specify a different JSON manifest when you specify ``SourceCustomDbEngineVersionIdentifier``.", // "type": "string" // } "source_custom_db_engine_version_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The identifier of the source custom engine version.", + Description: "The ARN of a CEV to use as a source for creating a new CEV. You can specify a different Amazon Machine Imagine (AMI) by using either ``Source`` or ``UseAwsProvidedLatestImage``. You can't specify a different JSON manifest when you specify ``SourceCustomDbEngineVersionIdentifier``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Status @@ -151,7 +151,7 @@ func customDBEngineVersionDataSource(ctx context.Context) (datasource.DataSource // // { // "default": "available", - // "description": "The availability status to be assigned to the CEV.", + // "description": "A value that indicates the status of a custom engine version (CEV).", // "enum": [ // "available", // "inactive", @@ -160,27 +160,27 @@ func customDBEngineVersionDataSource(ctx context.Context) (datasource.DataSource // "type": "string" // } "status": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The availability status to be assigned to the CEV.", + Description: "A value that indicates the status of a custom engine version (CEV).", Computed: true, }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // // { - // "description": "An array of key-value pairs to apply to this resource.", + // "description": "A list of tags. 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.*", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "A key-value pair to associate with a resource.", + // "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*.", // "properties": { // "Key": { - // "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 -.", + // "description": "A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", // "maxLength": 128, // "minLength": 1, // "type": "string" // }, // "Value": { - // "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 -.", + // "description": "A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", // "maxLength": 256, // "minLength": 0, // "type": "string" @@ -199,28 +199,28 @@ func customDBEngineVersionDataSource(ctx context.Context) (datasource.DataSource Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Key "key": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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 -.", + Description: "A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", Computed: true, }, /*END ATTRIBUTE*/ // Property: Value "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - 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 -.", + Description: "A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "An array of key-value pairs to apply to this resource.", + Description: "A list of tags. 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.*", Computed: true, }, /*END ATTRIBUTE*/ // Property: UseAwsProvidedLatestImage // CloudFormation resource type schema: // // { - // "description": "A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create.", + // "description": "Specifies whether to use the latest service-provided Amazon Machine Image (AMI) for the CEV. If you specify ``UseAwsProvidedLatestImage``, you can't also specify ``ImageId``.", // "type": "boolean" // } "use_aws_provided_latest_image": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create.", + Description: "Specifies whether to use the latest service-provided Amazon Machine Image (AMI) for the CEV. If you specify ``UseAwsProvidedLatestImage``, you can't also specify ``ImageId``.", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/rds/db_cluster_resource_gen.go b/internal/aws/rds/db_cluster_resource_gen.go index 9d7d5de3dc..a30e1e952d 100644 --- a/internal/aws/rds/db_cluster_resource_gen.go +++ b/internal/aws/rds/db_cluster_resource_gen.go @@ -199,11 +199,11 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "", + // "description": "Specifies the scalability mode of the Aurora DB cluster. When set to ``limitless``, the cluster operates as an Aurora Limitless Database, allowing you to create a DB shard group for horizontal scaling (sharding) capabilities. When set to ``standard`` (the default), the cluster uses normal DB instance creation.", // "type": "string" // } "cluster_scalability_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "Specifies the scalability mode of the Aurora DB cluster. When set to ``limitless``, the cluster operates as an Aurora Limitless Database, allowing you to create a DB shard group for horizontal scaling (sharding) capabilities. When set to ``standard`` (the default), the cluster uses normal DB instance creation.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -556,11 +556,11 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The life cycle type for this DB cluster.\n By default, this value is set to ``open-source-rds-extended-support``, which enrolls your DB cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to ``open-source-rds-extended-support-disabled``. In this case, creating the DB cluster will fail if the DB major version is past its end of standard support date.\n You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:\n + Amazon Aurora (PostgreSQL only) - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) in the *Amazon Aurora User Guide* \n + Amazon RDS - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) in the *Amazon RDS User Guide* \n \n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values: ``open-source-rds-extended-support | open-source-rds-extended-support-disabled`` \n Default: ``open-source-rds-extended-support``", + // "description": "The life cycle type for this DB cluster.\n By default, this value is set to ``open-source-rds-extended-support``, which enrolls your DB cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to ``open-source-rds-extended-support-disabled``. In this case, creating the DB cluster will fail if the DB major version is past its end of standard support date.\n You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:\n + Amazon Aurora - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) in the *Amazon Aurora User Guide* \n + Amazon RDS - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) in the *Amazon RDS User Guide* \n \n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values: ``open-source-rds-extended-support | open-source-rds-extended-support-disabled`` \n Default: ``open-source-rds-extended-support``", // "type": "string" // } "engine_lifecycle_support": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The life cycle type for this DB cluster.\n By default, this value is set to ``open-source-rds-extended-support``, which enrolls your DB cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to ``open-source-rds-extended-support-disabled``. In this case, creating the DB cluster will fail if the DB major version is past its end of standard support date.\n You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:\n + Amazon Aurora (PostgreSQL only) - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) in the *Amazon Aurora User Guide* \n + Amazon RDS - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) in the *Amazon RDS User Guide* \n \n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values: ``open-source-rds-extended-support | open-source-rds-extended-support-disabled`` \n Default: ``open-source-rds-extended-support``", + Description: "The life cycle type for this DB cluster.\n By default, this value is set to ``open-source-rds-extended-support``, which enrolls your DB cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to ``open-source-rds-extended-support-disabled``. In this case, creating the DB cluster will fail if the DB major version is past its end of standard support date.\n You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:\n + Amazon Aurora - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) in the *Amazon Aurora User Guide* \n + Amazon RDS - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) in the *Amazon RDS User Guide* \n \n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values: ``open-source-rds-extended-support | open-source-rds-extended-support-disabled`` \n Default: ``open-source-rds-extended-support``", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -1090,8 +1090,12 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { // "type": "number" // }, // "MinCapacity": { - // "description": "The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. The smallest value that you can use is 0.5.", + // "description": "The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. For Aurora versions that support the Aurora Serverless v2 auto-pause feature, the smallest value that you can use is 0. For versions that don't support Aurora Serverless v2 auto-pause, the smallest value that you can use is 0.5.", // "type": "number" + // }, + // "SecondsUntilAutoPause": { + // "description": "", + // "type": "integer" // } // }, // "type": "object" @@ -1109,13 +1113,22 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: MinCapacity "min_capacity": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. The smallest value that you can use is 0.5.", + Description: "The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. For Aurora versions that support the Aurora Serverless v2 auto-pause feature, the smallest value that you can use is 0. For versions that don't support Aurora Serverless v2 auto-pause, the smallest value that you can use is 0.5.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ float64planmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: SecondsUntilAutoPause + "seconds_until_auto_pause": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Description: "The scaling configuration of an Aurora Serverless V2 DB cluster. \n This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the ``ScalingConfiguration`` property.\n Valid for: Aurora Serverless v2 DB clusters only", Optional: true, 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 4691d59993..e4c32fdf4c 100644 --- a/internal/aws/rds/db_cluster_singular_data_source_gen.go +++ b/internal/aws/rds/db_cluster_singular_data_source_gen.go @@ -134,11 +134,11 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "", + // "description": "Specifies the scalability mode of the Aurora DB cluster. When set to ``limitless``, the cluster operates as an Aurora Limitless Database, allowing you to create a DB shard group for horizontal scaling (sharding) capabilities. When set to ``standard`` (the default), the cluster uses normal DB instance creation.", // "type": "string" // } "cluster_scalability_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "Specifies the scalability mode of the Aurora DB cluster. When set to ``limitless``, the cluster operates as an Aurora Limitless Database, allowing you to create a DB shard group for horizontal scaling (sharding) capabilities. When set to ``standard`` (the default), the cluster uses normal DB instance creation.", Computed: true, }, /*END ATTRIBUTE*/ // Property: CopyTagsToSnapshot @@ -396,11 +396,11 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The life cycle type for this DB cluster.\n By default, this value is set to ``open-source-rds-extended-support``, which enrolls your DB cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to ``open-source-rds-extended-support-disabled``. In this case, creating the DB cluster will fail if the DB major version is past its end of standard support date.\n You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:\n + Amazon Aurora (PostgreSQL only) - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) in the *Amazon Aurora User Guide* \n + Amazon RDS - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) in the *Amazon RDS User Guide* \n \n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values: ``open-source-rds-extended-support | open-source-rds-extended-support-disabled`` \n Default: ``open-source-rds-extended-support``", + // "description": "The life cycle type for this DB cluster.\n By default, this value is set to ``open-source-rds-extended-support``, which enrolls your DB cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to ``open-source-rds-extended-support-disabled``. In this case, creating the DB cluster will fail if the DB major version is past its end of standard support date.\n You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:\n + Amazon Aurora - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) in the *Amazon Aurora User Guide* \n + Amazon RDS - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) in the *Amazon RDS User Guide* \n \n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values: ``open-source-rds-extended-support | open-source-rds-extended-support-disabled`` \n Default: ``open-source-rds-extended-support``", // "type": "string" // } "engine_lifecycle_support": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The life cycle type for this DB cluster.\n By default, this value is set to ``open-source-rds-extended-support``, which enrolls your DB cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to ``open-source-rds-extended-support-disabled``. In this case, creating the DB cluster will fail if the DB major version is past its end of standard support date.\n You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:\n + Amazon Aurora (PostgreSQL only) - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) in the *Amazon Aurora User Guide* \n + Amazon RDS - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) in the *Amazon RDS User Guide* \n \n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values: ``open-source-rds-extended-support | open-source-rds-extended-support-disabled`` \n Default: ``open-source-rds-extended-support``", + Description: "The life cycle type for this DB cluster.\n By default, this value is set to ``open-source-rds-extended-support``, which enrolls your DB cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to ``open-source-rds-extended-support-disabled``. In this case, creating the DB cluster will fail if the DB major version is past its end of standard support date.\n You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:\n + Amazon Aurora - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) in the *Amazon Aurora User Guide* \n + Amazon RDS - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) in the *Amazon RDS User Guide* \n \n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values: ``open-source-rds-extended-support | open-source-rds-extended-support-disabled`` \n Default: ``open-source-rds-extended-support``", Computed: true, }, /*END ATTRIBUTE*/ // Property: EngineMode @@ -780,8 +780,12 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "number" // }, // "MinCapacity": { - // "description": "The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. The smallest value that you can use is 0.5.", + // "description": "The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. For Aurora versions that support the Aurora Serverless v2 auto-pause feature, the smallest value that you can use is 0. For versions that don't support Aurora Serverless v2 auto-pause, the smallest value that you can use is 0.5.", // "type": "number" + // }, + // "SecondsUntilAutoPause": { + // "description": "", + // "type": "integer" // } // }, // "type": "object" @@ -795,7 +799,12 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ // Property: MinCapacity "min_capacity": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. The smallest value that you can use is 0.5.", + Description: "The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. For Aurora versions that support the Aurora Serverless v2 auto-pause feature, the smallest value that you can use is 0. For versions that don't support Aurora Serverless v2 auto-pause, the smallest value that you can use is 0.5.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SecondsUntilAutoPause + "seconds_until_auto_pause": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ diff --git a/internal/aws/rds/db_instance_resource_gen.go b/internal/aws/rds/db_instance_resource_gen.go index 7fc6c31f93..e68bc7d5ff 100644 --- a/internal/aws/rds/db_instance_resource_gen.go +++ b/internal/aws/rds/db_instance_resource_gen.go @@ -515,9 +515,11 @@ func dBInstanceResource(ctx context.Context) (resource.Resource, error) { // } "db_system_id": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The Oracle system identifier (SID), which is the name of the Oracle database instance that manages your database files. In this context, the term \"Oracle database instance\" refers exclusively to the system global area (SGA) and Oracle background processes. If you don't specify a SID, the value defaults to ``RDSCDB``. The Oracle SID is also the name of your CDB.", + Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: DbiResourceId diff --git a/internal/aws/redshiftserverless/workgroup_resource_gen.go b/internal/aws/redshiftserverless/workgroup_resource_gen.go index 19f6699753..2c1d13da69 100644 --- a/internal/aws/redshiftserverless/workgroup_resource_gen.go +++ b/internal/aws/redshiftserverless/workgroup_resource_gen.go @@ -9,6 +9,7 @@ import ( "context" "regexp" + "github.com/hashicorp/terraform-plugin-framework-validators/int64validator" "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" "github.com/hashicorp/terraform-plugin-framework-validators/setvalidator" "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" @@ -187,6 +188,63 @@ func workgroupResource(ctx context.Context) (resource.Resource, error) { int64planmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: PricePerformanceTarget + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "A property that represents the price performance target settings for the workgroup.", + // "properties": { + // "Level": { + // "maximum": 100, + // "minimum": 1, + // "type": "integer" + // }, + // "Status": { + // "enum": [ + // "ENABLED", + // "DISABLED" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // } + "price_performance_target": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Level + "level": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(1, 100), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Status + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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*/ + }, /*END SCHEMA*/ + Description: "A property that represents the price performance target settings for the workgroup.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: PubliclyAccessible // CloudFormation resource type schema: // @@ -438,6 +496,24 @@ func workgroupResource(ctx context.Context) (resource.Resource, error) { // "pattern": "^[a-z0-9-]+$", // "type": "string" // }, + // "PricePerformanceTarget": { + // "additionalProperties": false, + // "properties": { + // "Level": { + // "maximum": 100, + // "minimum": 1, + // "type": "integer" + // }, + // "Status": { + // "enum": [ + // "ENABLED", + // "DISABLED" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, // "PubliclyAccessible": { // "type": "boolean" // }, @@ -583,6 +659,20 @@ func workgroupResource(ctx context.Context) (resource.Resource, error) { "namespace_name": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: PricePerformanceTarget + "price_performance_target": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Level + "level": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Status + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: PubliclyAccessible "publicly_accessible": schema.BoolAttribute{ /*START ATTRIBUTE*/ Computed: true, @@ -668,36 +758,38 @@ func workgroupResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::RedshiftServerless::Workgroup").WithTerraformTypeName("awscc_redshiftserverless_workgroup") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "address": "Address", - "availability_zone": "AvailabilityZone", - "base_capacity": "BaseCapacity", - "config_parameters": "ConfigParameters", - "creation_date": "CreationDate", - "endpoint": "Endpoint", - "enhanced_vpc_routing": "EnhancedVpcRouting", - "key": "Key", - "max_capacity": "MaxCapacity", - "namespace_name": "NamespaceName", - "network_interface_id": "NetworkInterfaceId", - "network_interfaces": "NetworkInterfaces", - "parameter_key": "ParameterKey", - "parameter_value": "ParameterValue", - "port": "Port", - "private_ip_address": "PrivateIpAddress", - "publicly_accessible": "PubliclyAccessible", - "security_group_ids": "SecurityGroupIds", - "status": "Status", - "subnet_id": "SubnetId", - "subnet_ids": "SubnetIds", - "tags": "Tags", - "value": "Value", - "vpc_endpoint_id": "VpcEndpointId", - "vpc_endpoints": "VpcEndpoints", - "vpc_id": "VpcId", - "workgroup": "Workgroup", - "workgroup_arn": "WorkgroupArn", - "workgroup_id": "WorkgroupId", - "workgroup_name": "WorkgroupName", + "address": "Address", + "availability_zone": "AvailabilityZone", + "base_capacity": "BaseCapacity", + "config_parameters": "ConfigParameters", + "creation_date": "CreationDate", + "endpoint": "Endpoint", + "enhanced_vpc_routing": "EnhancedVpcRouting", + "key": "Key", + "level": "Level", + "max_capacity": "MaxCapacity", + "namespace_name": "NamespaceName", + "network_interface_id": "NetworkInterfaceId", + "network_interfaces": "NetworkInterfaces", + "parameter_key": "ParameterKey", + "parameter_value": "ParameterValue", + "port": "Port", + "price_performance_target": "PricePerformanceTarget", + "private_ip_address": "PrivateIpAddress", + "publicly_accessible": "PubliclyAccessible", + "security_group_ids": "SecurityGroupIds", + "status": "Status", + "subnet_id": "SubnetId", + "subnet_ids": "SubnetIds", + "tags": "Tags", + "value": "Value", + "vpc_endpoint_id": "VpcEndpointId", + "vpc_endpoints": "VpcEndpoints", + "vpc_id": "VpcId", + "workgroup": "Workgroup", + "workgroup_arn": "WorkgroupArn", + "workgroup_id": "WorkgroupId", + "workgroup_name": "WorkgroupName", }) opts = opts.WithWriteOnlyPropertyPaths([]string{ diff --git a/internal/aws/redshiftserverless/workgroup_singular_data_source_gen.go b/internal/aws/redshiftserverless/workgroup_singular_data_source_gen.go index e89ee0eb78..fb33d274c9 100644 --- a/internal/aws/redshiftserverless/workgroup_singular_data_source_gen.go +++ b/internal/aws/redshiftserverless/workgroup_singular_data_source_gen.go @@ -124,6 +124,42 @@ func workgroupDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The custom port to use when connecting to a workgroup. Valid port ranges are 5431-5455 and 8191-8215. The default is 5439.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: PricePerformanceTarget + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "A property that represents the price performance target settings for the workgroup.", + // "properties": { + // "Level": { + // "maximum": 100, + // "minimum": 1, + // "type": "integer" + // }, + // "Status": { + // "enum": [ + // "ENABLED", + // "DISABLED" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // } + "price_performance_target": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Level + "level": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Status + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "A property that represents the price performance target settings for the workgroup.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: PubliclyAccessible // CloudFormation resource type schema: // @@ -320,6 +356,24 @@ func workgroupDataSource(ctx context.Context) (datasource.DataSource, error) { // "pattern": "^[a-z0-9-]+$", // "type": "string" // }, + // "PricePerformanceTarget": { + // "additionalProperties": false, + // "properties": { + // "Level": { + // "maximum": 100, + // "minimum": 1, + // "type": "integer" + // }, + // "Status": { + // "enum": [ + // "ENABLED", + // "DISABLED" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, // "PubliclyAccessible": { // "type": "boolean" // }, @@ -459,6 +513,20 @@ func workgroupDataSource(ctx context.Context) (datasource.DataSource, error) { "namespace_name": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: PricePerformanceTarget + "price_performance_target": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Level + "level": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Status + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: PubliclyAccessible "publicly_accessible": schema.BoolAttribute{ /*START ATTRIBUTE*/ Computed: true, @@ -524,36 +592,38 @@ func workgroupDataSource(ctx context.Context) (datasource.DataSource, error) { opts = opts.WithCloudFormationTypeName("AWS::RedshiftServerless::Workgroup").WithTerraformTypeName("awscc_redshiftserverless_workgroup") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "address": "Address", - "availability_zone": "AvailabilityZone", - "base_capacity": "BaseCapacity", - "config_parameters": "ConfigParameters", - "creation_date": "CreationDate", - "endpoint": "Endpoint", - "enhanced_vpc_routing": "EnhancedVpcRouting", - "key": "Key", - "max_capacity": "MaxCapacity", - "namespace_name": "NamespaceName", - "network_interface_id": "NetworkInterfaceId", - "network_interfaces": "NetworkInterfaces", - "parameter_key": "ParameterKey", - "parameter_value": "ParameterValue", - "port": "Port", - "private_ip_address": "PrivateIpAddress", - "publicly_accessible": "PubliclyAccessible", - "security_group_ids": "SecurityGroupIds", - "status": "Status", - "subnet_id": "SubnetId", - "subnet_ids": "SubnetIds", - "tags": "Tags", - "value": "Value", - "vpc_endpoint_id": "VpcEndpointId", - "vpc_endpoints": "VpcEndpoints", - "vpc_id": "VpcId", - "workgroup": "Workgroup", - "workgroup_arn": "WorkgroupArn", - "workgroup_id": "WorkgroupId", - "workgroup_name": "WorkgroupName", + "address": "Address", + "availability_zone": "AvailabilityZone", + "base_capacity": "BaseCapacity", + "config_parameters": "ConfigParameters", + "creation_date": "CreationDate", + "endpoint": "Endpoint", + "enhanced_vpc_routing": "EnhancedVpcRouting", + "key": "Key", + "level": "Level", + "max_capacity": "MaxCapacity", + "namespace_name": "NamespaceName", + "network_interface_id": "NetworkInterfaceId", + "network_interfaces": "NetworkInterfaces", + "parameter_key": "ParameterKey", + "parameter_value": "ParameterValue", + "port": "Port", + "price_performance_target": "PricePerformanceTarget", + "private_ip_address": "PrivateIpAddress", + "publicly_accessible": "PubliclyAccessible", + "security_group_ids": "SecurityGroupIds", + "status": "Status", + "subnet_id": "SubnetId", + "subnet_ids": "SubnetIds", + "tags": "Tags", + "value": "Value", + "vpc_endpoint_id": "VpcEndpointId", + "vpc_endpoints": "VpcEndpoints", + "vpc_id": "VpcId", + "workgroup": "Workgroup", + "workgroup_arn": "WorkgroupArn", + "workgroup_id": "WorkgroupId", + "workgroup_name": "WorkgroupName", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/s3express/directory_bucket_resource_gen.go b/internal/aws/s3express/directory_bucket_resource_gen.go index 1e64e66562..f9b6eea645 100644 --- a/internal/aws/s3express/directory_bucket_resource_gen.go +++ b/internal/aws/s3express/directory_bucket_resource_gen.go @@ -52,14 +52,14 @@ func directoryBucketResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Returns the code for the Availability Zone where the directory bucket was created.", + // "description": "Returns the code for the Availability Zone or Local Zone where the directory bucket was created. An example for the code of an Availability Zone is 'us-east-1f'.", // "examples": [ // "us-east-1f" // ], // "type": "string" // } "availability_zone_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Returns the code for the Availability Zone where the directory bucket was created.", + Description: "Returns the code for the Availability Zone or Local Zone where the directory bucket was created. An example for the code of an Availability Zone is 'us-east-1f'.", Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), @@ -195,13 +195,13 @@ func directoryBucketResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Specifies a name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone. The bucket name must also follow the format 'bucket_base_name--az_id--x-s3' (for example, 'DOC-EXAMPLE-BUCKET--usw2-az1--x-s3'). If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name.", + // "description": "Specifies a name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone or Local Zone. The bucket name must also follow the format 'bucket_base_name--zone_id--x-s3'. The zone_id can be the ID of an Availability Zone or a Local Zone. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name.", // "maxLength": 63, // "pattern": "^[a-z0-9][a-z0-9//.//-]*[a-z0-9]$", // "type": "string" // } "bucket_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies a name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone. The bucket name must also follow the format 'bucket_base_name--az_id--x-s3' (for example, 'DOC-EXAMPLE-BUCKET--usw2-az1--x-s3'). If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name.", + Description: "Specifies a name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone or Local Zone. The bucket name must also follow the format 'bucket_base_name--zone_id--x-s3'. The zone_id can be the ID of an Availability Zone or a Local Zone. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name.", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -217,18 +217,20 @@ func directoryBucketResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Specifies the number of Availability Zone that's used for redundancy for the bucket.", + // "description": "Specifies the number of Availability Zone or Local Zone that's used for redundancy for the bucket.", // "enum": [ - // "SingleAvailabilityZone" + // "SingleAvailabilityZone", + // "SingleLocalZone" // ], // "type": "string" // } "data_redundancy": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies the number of Availability Zone that's used for redundancy for the bucket.", + Description: "Specifies the number of Availability Zone or Local Zone that's used for redundancy for the bucket.", Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.OneOf( "SingleAvailabilityZone", + "SingleLocalZone", ), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -427,11 +429,11 @@ func directoryBucketResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Specifies the AZ ID of the Availability Zone where the directory bucket will be created. An example AZ ID value is 'use1-az5'.", + // "description": "Specifies the Zone ID of the Availability Zone or Local Zone where the directory bucket will be created. An example Availability Zone ID value is 'use1-az5'.", // "type": "string" // } "location_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies the AZ ID of the Availability Zone where the directory bucket will be created. An example AZ ID value is 'use1-az5'.", + Description: "Specifies the Zone ID of the Availability Zone or Local Zone where the directory bucket will be created. An example Availability Zone ID value is 'use1-az5'.", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), diff --git a/internal/aws/s3express/directory_bucket_singular_data_source_gen.go b/internal/aws/s3express/directory_bucket_singular_data_source_gen.go index 00cc20124b..16f4104f0f 100644 --- a/internal/aws/s3express/directory_bucket_singular_data_source_gen.go +++ b/internal/aws/s3express/directory_bucket_singular_data_source_gen.go @@ -37,14 +37,14 @@ func directoryBucketDataSource(ctx context.Context) (datasource.DataSource, erro // CloudFormation resource type schema: // // { - // "description": "Returns the code for the Availability Zone where the directory bucket was created.", + // "description": "Returns the code for the Availability Zone or Local Zone where the directory bucket was created. An example for the code of an Availability Zone is 'us-east-1f'.", // "examples": [ // "us-east-1f" // ], // "type": "string" // } "availability_zone_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Returns the code for the Availability Zone where the directory bucket was created.", + Description: "Returns the code for the Availability Zone or Local Zone where the directory bucket was created. An example for the code of an Availability Zone is 'us-east-1f'.", Computed: true, }, /*END ATTRIBUTE*/ // Property: BucketEncryption @@ -142,27 +142,28 @@ func directoryBucketDataSource(ctx context.Context) (datasource.DataSource, erro // CloudFormation resource type schema: // // { - // "description": "Specifies a name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone. The bucket name must also follow the format 'bucket_base_name--az_id--x-s3' (for example, 'DOC-EXAMPLE-BUCKET--usw2-az1--x-s3'). If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name.", + // "description": "Specifies a name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone or Local Zone. The bucket name must also follow the format 'bucket_base_name--zone_id--x-s3'. The zone_id can be the ID of an Availability Zone or a Local Zone. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name.", // "maxLength": 63, // "pattern": "^[a-z0-9][a-z0-9//.//-]*[a-z0-9]$", // "type": "string" // } "bucket_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies a name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone. The bucket name must also follow the format 'bucket_base_name--az_id--x-s3' (for example, 'DOC-EXAMPLE-BUCKET--usw2-az1--x-s3'). If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name.", + Description: "Specifies a name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone or Local Zone. The bucket name must also follow the format 'bucket_base_name--zone_id--x-s3'. The zone_id can be the ID of an Availability Zone or a Local Zone. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name.", Computed: true, }, /*END ATTRIBUTE*/ // Property: DataRedundancy // CloudFormation resource type schema: // // { - // "description": "Specifies the number of Availability Zone that's used for redundancy for the bucket.", + // "description": "Specifies the number of Availability Zone or Local Zone that's used for redundancy for the bucket.", // "enum": [ - // "SingleAvailabilityZone" + // "SingleAvailabilityZone", + // "SingleLocalZone" // ], // "type": "string" // } "data_redundancy": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies the number of Availability Zone that's used for redundancy for the bucket.", + Description: "Specifies the number of Availability Zone or Local Zone that's used for redundancy for the bucket.", Computed: true, }, /*END ATTRIBUTE*/ // Property: LifecycleConfiguration @@ -291,11 +292,11 @@ func directoryBucketDataSource(ctx context.Context) (datasource.DataSource, erro // CloudFormation resource type schema: // // { - // "description": "Specifies the AZ ID of the Availability Zone where the directory bucket will be created. An example AZ ID value is 'use1-az5'.", + // "description": "Specifies the Zone ID of the Availability Zone or Local Zone where the directory bucket will be created. An example Availability Zone ID value is 'use1-az5'.", // "type": "string" // } "location_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies the AZ ID of the Availability Zone where the directory bucket will be created. An example AZ ID value is 'use1-az5'.", + Description: "Specifies the Zone ID of the Availability Zone or Local Zone where the directory bucket will be created. An example Availability Zone ID value is 'use1-az5'.", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/s3tables/table_bucket_plural_data_source_gen.go b/internal/aws/s3tables/table_bucket_plural_data_source_gen.go new file mode 100644 index 0000000000..3f4ceeda77 --- /dev/null +++ b/internal/aws/s3tables/table_bucket_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 s3tables + +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_s3tables_table_buckets", tableBucketsDataSource) +} + +// tableBucketsDataSource returns the Terraform awscc_s3tables_table_buckets data source. +// This Terraform data source corresponds to the CloudFormation AWS::S3Tables::TableBucket resource. +func tableBucketsDataSource(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::S3Tables::TableBucket", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::S3Tables::TableBucket").WithTerraformTypeName("awscc_s3tables_table_buckets") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/s3tables/table_bucket_plural_data_source_gen_test.go b/internal/aws/s3tables/table_bucket_plural_data_source_gen_test.go new file mode 100644 index 0000000000..1c8bcfd079 --- /dev/null +++ b/internal/aws/s3tables/table_bucket_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 s3tables_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSS3TablesTableBucketsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::S3Tables::TableBucket", "awscc_s3tables_table_buckets", "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/s3tables/table_bucket_policy_plural_data_source_gen.go b/internal/aws/s3tables/table_bucket_policy_plural_data_source_gen.go new file mode 100644 index 0000000000..c2c53cd4cc --- /dev/null +++ b/internal/aws/s3tables/table_bucket_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 s3tables + +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_s3tables_table_bucket_policies", tableBucketPoliciesDataSource) +} + +// tableBucketPoliciesDataSource returns the Terraform awscc_s3tables_table_bucket_policies data source. +// This Terraform data source corresponds to the CloudFormation AWS::S3Tables::TableBucketPolicy resource. +func tableBucketPoliciesDataSource(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::S3Tables::TableBucketPolicy", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::S3Tables::TableBucketPolicy").WithTerraformTypeName("awscc_s3tables_table_bucket_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/s3tables/table_bucket_policy_plural_data_source_gen_test.go b/internal/aws/s3tables/table_bucket_policy_plural_data_source_gen_test.go new file mode 100644 index 0000000000..0524e75c6c --- /dev/null +++ b/internal/aws/s3tables/table_bucket_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 s3tables_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSS3TablesTableBucketPoliciesDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::S3Tables::TableBucketPolicy", "awscc_s3tables_table_bucket_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/s3tables/table_bucket_policy_resource_gen.go b/internal/aws/s3tables/table_bucket_policy_resource_gen.go new file mode 100644 index 0000000000..7c7842413e --- /dev/null +++ b/internal/aws/s3tables/table_bucket_policy_resource_gen.go @@ -0,0 +1,92 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package s3tables + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "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_s3tables_table_bucket_policy", tableBucketPolicyResource) +} + +// tableBucketPolicyResource returns the Terraform awscc_s3tables_table_bucket_policy resource. +// This Terraform resource corresponds to the CloudFormation AWS::S3Tables::TableBucketPolicy resource. +func tableBucketPolicyResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ResourcePolicy + // CloudFormation resource type schema: + // + // { + // "description": "A policy document containing permissions to add to the specified table bucket. In IAM, you must provide policy documents in JSON format. However, in CloudFormation you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to IAM.", + // "type": "string" + // } + "resource_policy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A policy document containing permissions to add to the specified table bucket. In IAM, you must provide policy documents in JSON format. However, in CloudFormation you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to IAM.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: TableBucketARN + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) of the table bucket to which the policy applies.", + // "examples": [ + // "arn:aws:s3tables:us-west-2:123456789012:bucket/mytablebucket" + // ], + // "type": "string" + // } + "table_bucket_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the table bucket to which the policy applies.", + Required: true, + 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: "Applies an IAM resource policy to a table bucket.", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::S3Tables::TableBucketPolicy").WithTerraformTypeName("awscc_s3tables_table_bucket_policy") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "resource_policy": "ResourcePolicy", + "table_bucket_arn": "TableBucketARN", + }) + + 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/s3tables/table_bucket_policy_resource_gen_test.go b/internal/aws/s3tables/table_bucket_policy_resource_gen_test.go new file mode 100644 index 0000000000..bde8e8ed31 --- /dev/null +++ b/internal/aws/s3tables/table_bucket_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 s3tables_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSS3TablesTableBucketPolicy_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::S3Tables::TableBucketPolicy", "awscc_s3tables_table_bucket_policy", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/s3tables/table_bucket_policy_singular_data_source_gen.go b/internal/aws/s3tables/table_bucket_policy_singular_data_source_gen.go new file mode 100644 index 0000000000..4fee5a2a43 --- /dev/null +++ b/internal/aws/s3tables/table_bucket_policy_singular_data_source_gen.go @@ -0,0 +1,78 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package s3tables + +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_s3tables_table_bucket_policy", tableBucketPolicyDataSource) +} + +// tableBucketPolicyDataSource returns the Terraform awscc_s3tables_table_bucket_policy data source. +// This Terraform data source corresponds to the CloudFormation AWS::S3Tables::TableBucketPolicy resource. +func tableBucketPolicyDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ResourcePolicy + // CloudFormation resource type schema: + // + // { + // "description": "A policy document containing permissions to add to the specified table bucket. In IAM, you must provide policy documents in JSON format. However, in CloudFormation you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to IAM.", + // "type": "string" + // } + "resource_policy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A policy document containing permissions to add to the specified table bucket. In IAM, you must provide policy documents in JSON format. However, in CloudFormation you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to IAM.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TableBucketARN + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) of the table bucket to which the policy applies.", + // "examples": [ + // "arn:aws:s3tables:us-west-2:123456789012:bucket/mytablebucket" + // ], + // "type": "string" + // } + "table_bucket_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the table bucket to which the policy applies.", + 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::S3Tables::TableBucketPolicy", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::S3Tables::TableBucketPolicy").WithTerraformTypeName("awscc_s3tables_table_bucket_policy") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "resource_policy": "ResourcePolicy", + "table_bucket_arn": "TableBucketARN", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/s3tables/table_bucket_policy_singular_data_source_gen_test.go b/internal/aws/s3tables/table_bucket_policy_singular_data_source_gen_test.go new file mode 100644 index 0000000000..97f6714795 --- /dev/null +++ b/internal/aws/s3tables/table_bucket_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 s3tables_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSS3TablesTableBucketPolicyDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::S3Tables::TableBucketPolicy", "awscc_s3tables_table_bucket_policy", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSS3TablesTableBucketPolicyDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::S3Tables::TableBucketPolicy", "awscc_s3tables_table_bucket_policy", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/s3tables/table_bucket_resource_gen.go b/internal/aws/s3tables/table_bucket_resource_gen.go new file mode 100644 index 0000000000..8cf229bef8 --- /dev/null +++ b/internal/aws/s3tables/table_bucket_resource_gen.go @@ -0,0 +1,186 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package s3tables + +import ( + "context" + + "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/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-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_s3tables_table_bucket", tableBucketResource) +} + +// tableBucketResource returns the Terraform awscc_s3tables_table_bucket resource. +// This Terraform resource corresponds to the CloudFormation AWS::S3Tables::TableBucket resource. +func tableBucketResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: TableBucketARN + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) of the specified table bucket.", + // "examples": [ + // "arn:aws:s3tables:us-west-2:123456789012:bucket/mytablebucket" + // ], + // "type": "string" + // } + "table_bucket_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the specified table bucket.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TableBucketName + // CloudFormation resource type schema: + // + // { + // "description": "A name for the table bucket.", + // "maxLength": 63, + // "minLength": 3, + // "type": "string" + // } + "table_bucket_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A name for the table bucket.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(3, 63), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UnreferencedFileRemoval + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Settings governing the Unreferenced File Removal maintenance action. Unreferenced file removal identifies and deletes all objects that are not referenced by any table snapshots.", + // "properties": { + // "NoncurrentDays": { + // "description": "S3 permanently deletes noncurrent objects after the number of days specified by the NoncurrentDays property.", + // "minimum": 1, + // "type": "integer" + // }, + // "Status": { + // "description": "Indicates whether the Unreferenced File Removal maintenance action is enabled.", + // "enum": [ + // "Enabled", + // "Disabled" + // ], + // "type": "string" + // }, + // "UnreferencedDays": { + // "description": "For any object not referenced by your table and older than the UnreferencedDays property, S3 creates a delete marker and marks the object version as noncurrent.", + // "minimum": 1, + // "type": "integer" + // } + // }, + // "type": "object" + // } + "unreferenced_file_removal": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: NoncurrentDays + "noncurrent_days": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "S3 permanently deletes noncurrent objects after the number of days specified by the NoncurrentDays property.", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.AtLeast(1), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Status + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Indicates whether the Unreferenced File Removal maintenance action is enabled.", + 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: UnreferencedDays + "unreferenced_days": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "For any object not referenced by your table and older than the UnreferencedDays property, S3 creates a delete marker and marks the object version as noncurrent.", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.AtLeast(1), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Settings governing the Unreferenced File Removal maintenance action. Unreferenced file removal identifies and deletes all objects that are not referenced by any table snapshots.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.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: "Creates an Amazon S3 Tables table bucket in the same AWS Region where you create the AWS CloudFormation stack.", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::S3Tables::TableBucket").WithTerraformTypeName("awscc_s3tables_table_bucket") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "noncurrent_days": "NoncurrentDays", + "status": "Status", + "table_bucket_arn": "TableBucketARN", + "table_bucket_name": "TableBucketName", + "unreferenced_days": "UnreferencedDays", + "unreferenced_file_removal": "UnreferencedFileRemoval", + }) + + 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/s3tables/table_bucket_resource_gen_test.go b/internal/aws/s3tables/table_bucket_resource_gen_test.go new file mode 100644 index 0000000000..6f53062aa2 --- /dev/null +++ b/internal/aws/s3tables/table_bucket_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 s3tables_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSS3TablesTableBucket_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::S3Tables::TableBucket", "awscc_s3tables_table_bucket", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/s3tables/table_bucket_singular_data_source_gen.go b/internal/aws/s3tables/table_bucket_singular_data_source_gen.go new file mode 100644 index 0000000000..6e332de676 --- /dev/null +++ b/internal/aws/s3tables/table_bucket_singular_data_source_gen.go @@ -0,0 +1,133 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package s3tables + +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_s3tables_table_bucket", tableBucketDataSource) +} + +// tableBucketDataSource returns the Terraform awscc_s3tables_table_bucket data source. +// This Terraform data source corresponds to the CloudFormation AWS::S3Tables::TableBucket resource. +func tableBucketDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: TableBucketARN + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) of the specified table bucket.", + // "examples": [ + // "arn:aws:s3tables:us-west-2:123456789012:bucket/mytablebucket" + // ], + // "type": "string" + // } + "table_bucket_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the specified table bucket.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TableBucketName + // CloudFormation resource type schema: + // + // { + // "description": "A name for the table bucket.", + // "maxLength": 63, + // "minLength": 3, + // "type": "string" + // } + "table_bucket_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A name for the table bucket.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UnreferencedFileRemoval + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Settings governing the Unreferenced File Removal maintenance action. Unreferenced file removal identifies and deletes all objects that are not referenced by any table snapshots.", + // "properties": { + // "NoncurrentDays": { + // "description": "S3 permanently deletes noncurrent objects after the number of days specified by the NoncurrentDays property.", + // "minimum": 1, + // "type": "integer" + // }, + // "Status": { + // "description": "Indicates whether the Unreferenced File Removal maintenance action is enabled.", + // "enum": [ + // "Enabled", + // "Disabled" + // ], + // "type": "string" + // }, + // "UnreferencedDays": { + // "description": "For any object not referenced by your table and older than the UnreferencedDays property, S3 creates a delete marker and marks the object version as noncurrent.", + // "minimum": 1, + // "type": "integer" + // } + // }, + // "type": "object" + // } + "unreferenced_file_removal": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: NoncurrentDays + "noncurrent_days": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "S3 permanently deletes noncurrent objects after the number of days specified by the NoncurrentDays property.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Status + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Indicates whether the Unreferenced File Removal maintenance action is enabled.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UnreferencedDays + "unreferenced_days": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "For any object not referenced by your table and older than the UnreferencedDays property, S3 creates a delete marker and marks the object version as noncurrent.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Settings governing the Unreferenced File Removal maintenance action. Unreferenced file removal identifies and deletes all objects that are not referenced by any table snapshots.", + 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::S3Tables::TableBucket", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::S3Tables::TableBucket").WithTerraformTypeName("awscc_s3tables_table_bucket") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "noncurrent_days": "NoncurrentDays", + "status": "Status", + "table_bucket_arn": "TableBucketARN", + "table_bucket_name": "TableBucketName", + "unreferenced_days": "UnreferencedDays", + "unreferenced_file_removal": "UnreferencedFileRemoval", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/s3tables/table_bucket_singular_data_source_gen_test.go b/internal/aws/s3tables/table_bucket_singular_data_source_gen_test.go new file mode 100644 index 0000000000..6fdca099c7 --- /dev/null +++ b/internal/aws/s3tables/table_bucket_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 s3tables_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSS3TablesTableBucketDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::S3Tables::TableBucket", "awscc_s3tables_table_bucket", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSS3TablesTableBucketDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::S3Tables::TableBucket", "awscc_s3tables_table_bucket", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/stepfunctions/state_machine_version_resource_gen.go b/internal/aws/stepfunctions/state_machine_version_resource_gen.go index 9184b58fbd..326520a775 100644 --- a/internal/aws/stepfunctions/state_machine_version_resource_gen.go +++ b/internal/aws/stepfunctions/state_machine_version_resource_gen.go @@ -56,6 +56,7 @@ func stateMachineVersionResource(ctx context.Context) (resource.Resource, error) }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: StateMachineArn @@ -123,13 +124,13 @@ func stateMachineVersionResource(ctx context.Context) (resource.Resource, error) "state_machine_revision_id": "StateMachineRevisionId", }) + opts = opts.IsImmutableType(true) + opts = opts.WithWriteOnlyPropertyPaths([]string{ "/properties/StateMachineArn", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) - opts = opts.WithUpdateTimeoutInMinutes(0) - v, err := generic.NewResource(ctx, opts...) if err != nil { diff --git a/internal/aws/transfer/server_resource_gen.go b/internal/aws/transfer/server_resource_gen.go index 07194cb737..7f83f8595a 100644 --- a/internal/aws/transfer/server_resource_gen.go +++ b/internal/aws/transfer/server_resource_gen.go @@ -664,6 +664,26 @@ func serverResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: State + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "OFFLINE", + // "ONLINE", + // "STARTING", + // "STOPPING", + // "START_FAILED", + // "STOP_FAILED" + // ], + // "type": "string" + // } + "state": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: StructuredLogDestinations // CloudFormation resource type schema: // @@ -971,6 +991,7 @@ func serverResource(ctx context.Context) (resource.Resource, error) { "server_id": "ServerId", "set_stat_option": "SetStatOption", "sftp_authentication_methods": "SftpAuthenticationMethods", + "state": "State", "structured_log_destinations": "StructuredLogDestinations", "subnet_ids": "SubnetIds", "tags": "Tags", diff --git a/internal/aws/transfer/server_singular_data_source_gen.go b/internal/aws/transfer/server_singular_data_source_gen.go index 31f5a51091..fe1c92425c 100644 --- a/internal/aws/transfer/server_singular_data_source_gen.go +++ b/internal/aws/transfer/server_singular_data_source_gen.go @@ -413,6 +413,23 @@ func serverDataSource(ctx context.Context) (datasource.DataSource, error) { "server_id": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: State + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "OFFLINE", + // "ONLINE", + // "STARTING", + // "STOPPING", + // "START_FAILED", + // "STOP_FAILED" + // ], + // "type": "string" + // } + "state": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: StructuredLogDestinations // CloudFormation resource type schema: // @@ -625,6 +642,7 @@ func serverDataSource(ctx context.Context) (datasource.DataSource, error) { "server_id": "ServerId", "set_stat_option": "SetStatOption", "sftp_authentication_methods": "SftpAuthenticationMethods", + "state": "State", "structured_log_destinations": "StructuredLogDestinations", "subnet_ids": "SubnetIds", "tags": "Tags", diff --git a/internal/aws/vpclattice/resource_configuration_plural_data_source_gen.go b/internal/aws/vpclattice/resource_configuration_plural_data_source_gen.go new file mode 100644 index 0000000000..88ab863901 --- /dev/null +++ b/internal/aws/vpclattice/resource_configuration_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 vpclattice + +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_vpclattice_resource_configurations", resourceConfigurationsDataSource) +} + +// resourceConfigurationsDataSource returns the Terraform awscc_vpclattice_resource_configurations data source. +// This Terraform data source corresponds to the CloudFormation AWS::VpcLattice::ResourceConfiguration resource. +func resourceConfigurationsDataSource(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::VpcLattice::ResourceConfiguration", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::VpcLattice::ResourceConfiguration").WithTerraformTypeName("awscc_vpclattice_resource_configurations") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/vpclattice/resource_configuration_plural_data_source_gen_test.go b/internal/aws/vpclattice/resource_configuration_plural_data_source_gen_test.go new file mode 100644 index 0000000000..61d28b1a95 --- /dev/null +++ b/internal/aws/vpclattice/resource_configuration_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 vpclattice_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSVpcLatticeResourceConfigurationsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::VpcLattice::ResourceConfiguration", "awscc_vpclattice_resource_configurations", "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/vpclattice/resource_configuration_resource_gen.go b/internal/aws/vpclattice/resource_configuration_resource_gen.go new file mode 100644 index 0000000000..1b706e56e8 --- /dev/null +++ b/internal/aws/vpclattice/resource_configuration_resource_gen.go @@ -0,0 +1,472 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package vpclattice + +import ( + "context" + "regexp" + + "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" + "github.com/hashicorp/terraform-plugin-framework-validators/setvalidator" + "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/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/setplanmodifier" + "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" + fwvalidators "github.com/hashicorp/terraform-provider-awscc/internal/validators" +) + +func init() { + registry.AddResourceFactory("awscc_vpclattice_resource_configuration", resourceConfigurationResource) +} + +// resourceConfigurationResource returns the Terraform awscc_vpclattice_resource_configuration resource. +// This Terraform resource corresponds to the CloudFormation AWS::VpcLattice::ResourceConfiguration resource. +func resourceConfigurationResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AllowAssociationToSharableServiceNetwork + // CloudFormation resource type schema: + // + // { + // "type": "boolean" + // } + "allow_association_to_sharable_service_network": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "maxLength": 2048, + // "minLength": 20, + // "pattern": "^arn:[a-z0-9f\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:resourceconfiguration/rcfg-[0-9a-z]{17}$", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "maxLength": 22, + // "minLength": 22, + // "pattern": "^rcfg-[0-9a-z]{17}$", + // "type": "string" + // } + "resource_configuration_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "maxLength": 40, + // "minLength": 3, + // "pattern": "", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(3, 40), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PortRanges + // CloudFormation resource type schema: + // + // { + // "insertionOrder": false, + // "items": { + // "maxLength": 11, + // "minLength": 1, + // "pattern": "^((\\d{1,5}\\-\\d{1,5})|(\\d+))$", + // "type": "string" + // }, + // "type": "array" + // } + "port_ranges": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.ValueStringsAre( + stringvalidator.LengthBetween(1, 11), + stringvalidator.RegexMatches(regexp.MustCompile("^((\\d{1,5}\\-\\d{1,5})|(\\d+))$"), ""), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ProtocolType + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "TCP" + // ], + // "type": "string" + // } + "protocol_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "TCP", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ResourceConfigurationAuthType + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "NONE", + // "AWS_IAM" + // ], + // "type": "string" + // } + "resource_configuration_auth_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "NONE", + "AWS_IAM", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + // ResourceConfigurationAuthType is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: ResourceConfigurationDefinition + // CloudFormation resource type schema: + // + // { + // "properties": { + // "ArnResource": { + // "maxLength": 1224, + // "pattern": "", + // "type": "string" + // }, + // "DnsResource": { + // "additionalProperties": false, + // "properties": { + // "DomainName": { + // "maxLength": 255, + // "minLength": 3, + // "type": "string" + // }, + // "IpAddressType": { + // "enum": [ + // "IPV4", + // "IPV6", + // "DUALSTACK" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "DomainName", + // "IpAddressType" + // ], + // "type": "object" + // }, + // "IpResource": { + // "maxLength": 39, + // "minLength": 4, + // "type": "string" + // } + // }, + // "type": "object" + // } + "resource_configuration_definition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ArnResource + "arn_resource": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(1224), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DnsResource + "dns_resource": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DomainName + "domain_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(3, 255), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: IpAddressType + "ip_address_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "IPV4", + "IPV6", + "DUALSTACK", + ), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: IpResource + "ip_resource": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(4, 39), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ResourceConfigurationGroupId + // CloudFormation resource type schema: + // + // { + // "maxLength": 22, + // "minLength": 22, + // "pattern": "^rcfg-[0-9a-z]{17}$", + // "type": "string" + // } + "resource_configuration_group_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(22, 22), + stringvalidator.RegexMatches(regexp.MustCompile("^rcfg-[0-9a-z]{17}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // ResourceConfigurationGroupId is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: ResourceConfigurationType + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "GROUP", + // "CHILD", + // "SINGLE", + // "ARN" + // ], + // "type": "string" + // } + "resource_configuration_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "GROUP", + "CHILD", + "SINGLE", + "ARN", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ResourceGatewayId + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "resource_gateway_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "maxItems": 50, + // "minItems": 0, + // "type": "array", + // "uniqueItems": true + // } + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.Set{ /*START VALIDATORS*/ + setvalidator.SizeBetween(0, 50), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.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: "VpcLattice ResourceConfiguration CFN resource", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::VpcLattice::ResourceConfiguration").WithTerraformTypeName("awscc_vpclattice_resource_configuration") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "allow_association_to_sharable_service_network": "AllowAssociationToSharableServiceNetwork", + "arn": "Arn", + "arn_resource": "ArnResource", + "dns_resource": "DnsResource", + "domain_name": "DomainName", + "ip_address_type": "IpAddressType", + "ip_resource": "IpResource", + "key": "Key", + "name": "Name", + "port_ranges": "PortRanges", + "protocol_type": "ProtocolType", + "resource_configuration_auth_type": "ResourceConfigurationAuthType", + "resource_configuration_definition": "ResourceConfigurationDefinition", + "resource_configuration_group_id": "ResourceConfigurationGroupId", + "resource_configuration_id": "Id", + "resource_configuration_type": "ResourceConfigurationType", + "resource_gateway_id": "ResourceGatewayId", + "tags": "Tags", + "value": "Value", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/ResourceConfigurationAuthType", + "/properties/ResourceConfigurationGroupId", + }) + 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/vpclattice/resource_configuration_resource_gen_test.go b/internal/aws/vpclattice/resource_configuration_resource_gen_test.go new file mode 100644 index 0000000000..7412fde9d1 --- /dev/null +++ b/internal/aws/vpclattice/resource_configuration_resource_gen_test.go @@ -0,0 +1,46 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package vpclattice_test + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSVpcLatticeResourceConfiguration_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::VpcLattice::ResourceConfiguration", "awscc_vpclattice_resource_configuration", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + ), + }, + { + ResourceName: td.ResourceName, + ImportState: true, + ImportStateVerify: true, + }, + }) +} + +func TestAccAWSVpcLatticeResourceConfiguration_disappears(t *testing.T) { + td := acctest.NewTestData(t, "AWS::VpcLattice::ResourceConfiguration", "awscc_vpclattice_resource_configuration", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + td.DeleteResource(), + ), + ExpectNonEmptyPlan: true, + }, + }) +} diff --git a/internal/aws/vpclattice/resource_configuration_singular_data_source_gen.go b/internal/aws/vpclattice/resource_configuration_singular_data_source_gen.go new file mode 100644 index 0000000000..8385d6a7e3 --- /dev/null +++ b/internal/aws/vpclattice/resource_configuration_singular_data_source_gen.go @@ -0,0 +1,306 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package vpclattice + +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_vpclattice_resource_configuration", resourceConfigurationDataSource) +} + +// resourceConfigurationDataSource returns the Terraform awscc_vpclattice_resource_configuration data source. +// This Terraform data source corresponds to the CloudFormation AWS::VpcLattice::ResourceConfiguration resource. +func resourceConfigurationDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AllowAssociationToSharableServiceNetwork + // CloudFormation resource type schema: + // + // { + // "type": "boolean" + // } + "allow_association_to_sharable_service_network": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "maxLength": 2048, + // "minLength": 20, + // "pattern": "^arn:[a-z0-9f\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:resourceconfiguration/rcfg-[0-9a-z]{17}$", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "maxLength": 22, + // "minLength": 22, + // "pattern": "^rcfg-[0-9a-z]{17}$", + // "type": "string" + // } + "resource_configuration_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "maxLength": 40, + // "minLength": 3, + // "pattern": "", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PortRanges + // CloudFormation resource type schema: + // + // { + // "insertionOrder": false, + // "items": { + // "maxLength": 11, + // "minLength": 1, + // "pattern": "^((\\d{1,5}\\-\\d{1,5})|(\\d+))$", + // "type": "string" + // }, + // "type": "array" + // } + "port_ranges": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ProtocolType + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "TCP" + // ], + // "type": "string" + // } + "protocol_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ResourceConfigurationAuthType + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "NONE", + // "AWS_IAM" + // ], + // "type": "string" + // } + "resource_configuration_auth_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ResourceConfigurationDefinition + // CloudFormation resource type schema: + // + // { + // "properties": { + // "ArnResource": { + // "maxLength": 1224, + // "pattern": "", + // "type": "string" + // }, + // "DnsResource": { + // "additionalProperties": false, + // "properties": { + // "DomainName": { + // "maxLength": 255, + // "minLength": 3, + // "type": "string" + // }, + // "IpAddressType": { + // "enum": [ + // "IPV4", + // "IPV6", + // "DUALSTACK" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "DomainName", + // "IpAddressType" + // ], + // "type": "object" + // }, + // "IpResource": { + // "maxLength": 39, + // "minLength": 4, + // "type": "string" + // } + // }, + // "type": "object" + // } + "resource_configuration_definition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ArnResource + "arn_resource": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DnsResource + "dns_resource": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DomainName + "domain_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: IpAddressType + "ip_address_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: IpResource + "ip_resource": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ResourceConfigurationGroupId + // CloudFormation resource type schema: + // + // { + // "maxLength": 22, + // "minLength": 22, + // "pattern": "^rcfg-[0-9a-z]{17}$", + // "type": "string" + // } + "resource_configuration_group_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ResourceConfigurationType + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "GROUP", + // "CHILD", + // "SINGLE", + // "ARN" + // ], + // "type": "string" + // } + "resource_configuration_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ResourceGatewayId + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "resource_gateway_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "maxItems": 50, + // "minItems": 0, + // "type": "array", + // "uniqueItems": true + // } + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + 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::VpcLattice::ResourceConfiguration", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::VpcLattice::ResourceConfiguration").WithTerraformTypeName("awscc_vpclattice_resource_configuration") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "allow_association_to_sharable_service_network": "AllowAssociationToSharableServiceNetwork", + "arn": "Arn", + "arn_resource": "ArnResource", + "dns_resource": "DnsResource", + "domain_name": "DomainName", + "ip_address_type": "IpAddressType", + "ip_resource": "IpResource", + "key": "Key", + "name": "Name", + "port_ranges": "PortRanges", + "protocol_type": "ProtocolType", + "resource_configuration_auth_type": "ResourceConfigurationAuthType", + "resource_configuration_definition": "ResourceConfigurationDefinition", + "resource_configuration_group_id": "ResourceConfigurationGroupId", + "resource_configuration_id": "Id", + "resource_configuration_type": "ResourceConfigurationType", + "resource_gateway_id": "ResourceGatewayId", + "tags": "Tags", + "value": "Value", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/vpclattice/resource_configuration_singular_data_source_gen_test.go b/internal/aws/vpclattice/resource_configuration_singular_data_source_gen_test.go new file mode 100644 index 0000000000..023f609588 --- /dev/null +++ b/internal/aws/vpclattice/resource_configuration_singular_data_source_gen_test.go @@ -0,0 +1,40 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package vpclattice_test + +import ( + "fmt" + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSVpcLatticeResourceConfigurationDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::VpcLattice::ResourceConfiguration", "awscc_vpclattice_resource_configuration", "test") + + 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"), + ), + }, + }) +} + +func TestAccAWSVpcLatticeResourceConfigurationDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::VpcLattice::ResourceConfiguration", "awscc_vpclattice_resource_configuration", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/vpclattice/resource_gateway_plural_data_source_gen.go b/internal/aws/vpclattice/resource_gateway_plural_data_source_gen.go new file mode 100644 index 0000000000..8af1b0b7fd --- /dev/null +++ b/internal/aws/vpclattice/resource_gateway_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 vpclattice + +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_vpclattice_resource_gateways", resourceGatewaysDataSource) +} + +// resourceGatewaysDataSource returns the Terraform awscc_vpclattice_resource_gateways data source. +// This Terraform data source corresponds to the CloudFormation AWS::VpcLattice::ResourceGateway resource. +func resourceGatewaysDataSource(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::VpcLattice::ResourceGateway", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::VpcLattice::ResourceGateway").WithTerraformTypeName("awscc_vpclattice_resource_gateways") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/vpclattice/resource_gateway_plural_data_source_gen_test.go b/internal/aws/vpclattice/resource_gateway_plural_data_source_gen_test.go new file mode 100644 index 0000000000..ea0467a3f6 --- /dev/null +++ b/internal/aws/vpclattice/resource_gateway_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 vpclattice_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSVpcLatticeResourceGatewaysDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::VpcLattice::ResourceGateway", "awscc_vpclattice_resource_gateways", "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/vpclattice/resource_gateway_resource_gen.go b/internal/aws/vpclattice/resource_gateway_resource_gen.go new file mode 100644 index 0000000000..9e27944d0d --- /dev/null +++ b/internal/aws/vpclattice/resource_gateway_resource_gen.go @@ -0,0 +1,291 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package vpclattice + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-validators/setvalidator" + "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/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/setplanmodifier" + "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" + fwvalidators "github.com/hashicorp/terraform-provider-awscc/internal/validators" +) + +func init() { + registry.AddResourceFactory("awscc_vpclattice_resource_gateway", resourceGatewayResource) +} + +// resourceGatewayResource returns the Terraform awscc_vpclattice_resource_gateway resource. +// This Terraform resource corresponds to the CloudFormation AWS::VpcLattice::ResourceGateway resource. +func resourceGatewayResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "maxLength": 2048, + // "minLength": 20, + // "pattern": "^arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:resourcegateway/rgw-[0-9a-z]{17}$", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "maxLength": 2048, + // "minLength": 17, + // "pattern": "^((rgw-[0-9a-z]{17})|(arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:resourcegateway/rgw-[0-9a-z]{17}))$", + // "type": "string" + // } + "resource_gateway_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: IpAddressType + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "IPV4", + // "IPV6", + // "DUALSTACK" + // ], + // "type": "string" + // } + "ip_address_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "IPV4", + "IPV6", + "DUALSTACK", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "maxLength": 40, + // "minLength": 3, + // "pattern": "", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(3, 40), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SecurityGroupIds + // CloudFormation resource type schema: + // + // { + // "description": "The ID of one or more security groups to associate with the endpoint network interface.", + // "insertionOrder": false, + // "items": { + // "anyOf": [ + // {}, + // {}, + // {} + // ], + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + "security_group_ids": schema.SetAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "The ID of one or more security groups to associate with the endpoint network interface.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SubnetIds + // CloudFormation resource type schema: + // + // { + // "description": "The ID of one or more subnets in which to create an endpoint network interface.", + // "insertionOrder": false, + // "items": { + // "relationshipRef": { + // "propertyPath": "/properties/SubnetId", + // "typeName": "AWS::EC2::Subnet" + // }, + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + "subnet_ids": schema.SetAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "The ID of one or more subnets in which to create an endpoint network interface.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + setplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "maxItems": 50, + // "minItems": 0, + // "type": "array", + // "uniqueItems": true + // } + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.Set{ /*START VALIDATORS*/ + setvalidator.SizeBetween(0, 50), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: VpcIdentifier + // CloudFormation resource type schema: + // + // { + // "maxLength": 50, + // "minLength": 5, + // "type": "string" + // } + "vpc_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(5, 50), + }, /*END VALIDATORS*/ + 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: "Creates a resource gateway for a service. ", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::VpcLattice::ResourceGateway").WithTerraformTypeName("awscc_vpclattice_resource_gateway") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "ip_address_type": "IpAddressType", + "key": "Key", + "name": "Name", + "resource_gateway_id": "Id", + "security_group_ids": "SecurityGroupIds", + "subnet_ids": "SubnetIds", + "tags": "Tags", + "value": "Value", + "vpc_identifier": "VpcIdentifier", + }) + + 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/vpclattice/resource_gateway_resource_gen_test.go b/internal/aws/vpclattice/resource_gateway_resource_gen_test.go new file mode 100644 index 0000000000..2915df6e7d --- /dev/null +++ b/internal/aws/vpclattice/resource_gateway_resource_gen_test.go @@ -0,0 +1,46 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package vpclattice_test + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSVpcLatticeResourceGateway_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::VpcLattice::ResourceGateway", "awscc_vpclattice_resource_gateway", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + ), + }, + { + ResourceName: td.ResourceName, + ImportState: true, + ImportStateVerify: true, + }, + }) +} + +func TestAccAWSVpcLatticeResourceGateway_disappears(t *testing.T) { + td := acctest.NewTestData(t, "AWS::VpcLattice::ResourceGateway", "awscc_vpclattice_resource_gateway", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + td.DeleteResource(), + ), + ExpectNonEmptyPlan: true, + }, + }) +} diff --git a/internal/aws/vpclattice/resource_gateway_singular_data_source_gen.go b/internal/aws/vpclattice/resource_gateway_singular_data_source_gen.go new file mode 100644 index 0000000000..f6f19a2d73 --- /dev/null +++ b/internal/aws/vpclattice/resource_gateway_singular_data_source_gen.go @@ -0,0 +1,210 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package vpclattice + +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_vpclattice_resource_gateway", resourceGatewayDataSource) +} + +// resourceGatewayDataSource returns the Terraform awscc_vpclattice_resource_gateway data source. +// This Terraform data source corresponds to the CloudFormation AWS::VpcLattice::ResourceGateway resource. +func resourceGatewayDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "maxLength": 2048, + // "minLength": 20, + // "pattern": "^arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:resourcegateway/rgw-[0-9a-z]{17}$", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "maxLength": 2048, + // "minLength": 17, + // "pattern": "^((rgw-[0-9a-z]{17})|(arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:resourcegateway/rgw-[0-9a-z]{17}))$", + // "type": "string" + // } + "resource_gateway_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: IpAddressType + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "IPV4", + // "IPV6", + // "DUALSTACK" + // ], + // "type": "string" + // } + "ip_address_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "maxLength": 40, + // "minLength": 3, + // "pattern": "", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SecurityGroupIds + // CloudFormation resource type schema: + // + // { + // "description": "The ID of one or more security groups to associate with the endpoint network interface.", + // "insertionOrder": false, + // "items": { + // "anyOf": [ + // {}, + // {}, + // {} + // ], + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + "security_group_ids": schema.SetAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "The ID of one or more security groups to associate with the endpoint network interface.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SubnetIds + // CloudFormation resource type schema: + // + // { + // "description": "The ID of one or more subnets in which to create an endpoint network interface.", + // "insertionOrder": false, + // "items": { + // "relationshipRef": { + // "propertyPath": "/properties/SubnetId", + // "typeName": "AWS::EC2::Subnet" + // }, + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + "subnet_ids": schema.SetAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "The ID of one or more subnets in which to create an endpoint network interface.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "maxItems": 50, + // "minItems": 0, + // "type": "array", + // "uniqueItems": true + // } + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: VpcIdentifier + // CloudFormation resource type schema: + // + // { + // "maxLength": 50, + // "minLength": 5, + // "type": "string" + // } + "vpc_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + 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::VpcLattice::ResourceGateway", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::VpcLattice::ResourceGateway").WithTerraformTypeName("awscc_vpclattice_resource_gateway") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "ip_address_type": "IpAddressType", + "key": "Key", + "name": "Name", + "resource_gateway_id": "Id", + "security_group_ids": "SecurityGroupIds", + "subnet_ids": "SubnetIds", + "tags": "Tags", + "value": "Value", + "vpc_identifier": "VpcIdentifier", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/vpclattice/resource_gateway_singular_data_source_gen_test.go b/internal/aws/vpclattice/resource_gateway_singular_data_source_gen_test.go new file mode 100644 index 0000000000..6e991545e7 --- /dev/null +++ b/internal/aws/vpclattice/resource_gateway_singular_data_source_gen_test.go @@ -0,0 +1,40 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package vpclattice_test + +import ( + "fmt" + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSVpcLatticeResourceGatewayDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::VpcLattice::ResourceGateway", "awscc_vpclattice_resource_gateway", "test") + + 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"), + ), + }, + }) +} + +func TestAccAWSVpcLatticeResourceGatewayDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::VpcLattice::ResourceGateway", "awscc_vpclattice_resource_gateway", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/vpclattice/service_network_resource_association_plural_data_source_gen.go b/internal/aws/vpclattice/service_network_resource_association_plural_data_source_gen.go new file mode 100644 index 0000000000..7330261313 --- /dev/null +++ b/internal/aws/vpclattice/service_network_resource_association_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 vpclattice + +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_vpclattice_service_network_resource_associations", serviceNetworkResourceAssociationsDataSource) +} + +// serviceNetworkResourceAssociationsDataSource returns the Terraform awscc_vpclattice_service_network_resource_associations data source. +// This Terraform data source corresponds to the CloudFormation AWS::VpcLattice::ServiceNetworkResourceAssociation resource. +func serviceNetworkResourceAssociationsDataSource(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::VpcLattice::ServiceNetworkResourceAssociation", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::VpcLattice::ServiceNetworkResourceAssociation").WithTerraformTypeName("awscc_vpclattice_service_network_resource_associations") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/vpclattice/service_network_resource_association_plural_data_source_gen_test.go b/internal/aws/vpclattice/service_network_resource_association_plural_data_source_gen_test.go new file mode 100644 index 0000000000..a392a813a7 --- /dev/null +++ b/internal/aws/vpclattice/service_network_resource_association_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 vpclattice_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSVpcLatticeServiceNetworkResourceAssociationsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::VpcLattice::ServiceNetworkResourceAssociation", "awscc_vpclattice_service_network_resource_associations", "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/vpclattice/service_network_resource_association_resource_gen.go b/internal/aws/vpclattice/service_network_resource_association_resource_gen.go new file mode 100644 index 0000000000..6ab27d2bc3 --- /dev/null +++ b/internal/aws/vpclattice/service_network_resource_association_resource_gen.go @@ -0,0 +1,216 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package vpclattice + +import ( + "context" + "regexp" + + "github.com/hashicorp/terraform-plugin-framework-validators/setvalidator" + "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/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/setplanmodifier" + "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" + fwvalidators "github.com/hashicorp/terraform-provider-awscc/internal/validators" +) + +func init() { + registry.AddResourceFactory("awscc_vpclattice_service_network_resource_association", serviceNetworkResourceAssociationResource) +} + +// serviceNetworkResourceAssociationResource returns the Terraform awscc_vpclattice_service_network_resource_association resource. +// This Terraform resource corresponds to the CloudFormation AWS::VpcLattice::ServiceNetworkResourceAssociation resource. +func serviceNetworkResourceAssociationResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "maxLength": 2048, + // "minLength": 22, + // "pattern": "^arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:servicenetworkresourceassociation/snra-[0-9a-f]{17}$", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "maxLength": 22, + // "minLength": 22, + // "pattern": "^snra-[0-9a-f]{17}$", + // "type": "string" + // } + "service_network_resource_association_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ResourceConfigurationId + // CloudFormation resource type schema: + // + // { + // "maxLength": 2048, + // "minLength": 17, + // "pattern": "^rcfg-[0-9a-z]{17}$", + // "type": "string" + // } + "resource_configuration_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(17, 2048), + stringvalidator.RegexMatches(regexp.MustCompile("^rcfg-[0-9a-z]{17}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ServiceNetworkId + // CloudFormation resource type schema: + // + // { + // "maxLength": 2048, + // "minLength": 3, + // "pattern": "^((sn-[0-9a-z]{17})|(arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:servicenetwork/sn-[0-9a-z]{17}))$", + // "type": "string" + // } + "service_network_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(3, 2048), + stringvalidator.RegexMatches(regexp.MustCompile("^((sn-[0-9a-z]{17})|(arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:servicenetwork/sn-[0-9a-z]{17}))$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 50, + // "minItems": 0, + // "type": "array", + // "uniqueItems": true + // } + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.Set{ /*START VALIDATORS*/ + setvalidator.SizeBetween(0, 50), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.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: "VpcLattice ServiceNetworkResourceAssociation CFN resource", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::VpcLattice::ServiceNetworkResourceAssociation").WithTerraformTypeName("awscc_vpclattice_service_network_resource_association") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "key": "Key", + "resource_configuration_id": "ResourceConfigurationId", + "service_network_id": "ServiceNetworkId", + "service_network_resource_association_id": "Id", + "tags": "Tags", + "value": "Value", + }) + + 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/vpclattice/service_network_resource_association_resource_gen_test.go b/internal/aws/vpclattice/service_network_resource_association_resource_gen_test.go new file mode 100644 index 0000000000..16a77c178b --- /dev/null +++ b/internal/aws/vpclattice/service_network_resource_association_resource_gen_test.go @@ -0,0 +1,46 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package vpclattice_test + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSVpcLatticeServiceNetworkResourceAssociation_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::VpcLattice::ServiceNetworkResourceAssociation", "awscc_vpclattice_service_network_resource_association", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + ), + }, + { + ResourceName: td.ResourceName, + ImportState: true, + ImportStateVerify: true, + }, + }) +} + +func TestAccAWSVpcLatticeServiceNetworkResourceAssociation_disappears(t *testing.T) { + td := acctest.NewTestData(t, "AWS::VpcLattice::ServiceNetworkResourceAssociation", "awscc_vpclattice_service_network_resource_association", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + td.DeleteResource(), + ), + ExpectNonEmptyPlan: true, + }, + }) +} diff --git a/internal/aws/vpclattice/service_network_resource_association_singular_data_source_gen.go b/internal/aws/vpclattice/service_network_resource_association_singular_data_source_gen.go new file mode 100644 index 0000000000..7439e253b5 --- /dev/null +++ b/internal/aws/vpclattice/service_network_resource_association_singular_data_source_gen.go @@ -0,0 +1,152 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package vpclattice + +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_vpclattice_service_network_resource_association", serviceNetworkResourceAssociationDataSource) +} + +// serviceNetworkResourceAssociationDataSource returns the Terraform awscc_vpclattice_service_network_resource_association data source. +// This Terraform data source corresponds to the CloudFormation AWS::VpcLattice::ServiceNetworkResourceAssociation resource. +func serviceNetworkResourceAssociationDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "maxLength": 2048, + // "minLength": 22, + // "pattern": "^arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:servicenetworkresourceassociation/snra-[0-9a-f]{17}$", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "maxLength": 22, + // "minLength": 22, + // "pattern": "^snra-[0-9a-f]{17}$", + // "type": "string" + // } + "service_network_resource_association_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ResourceConfigurationId + // CloudFormation resource type schema: + // + // { + // "maxLength": 2048, + // "minLength": 17, + // "pattern": "^rcfg-[0-9a-z]{17}$", + // "type": "string" + // } + "resource_configuration_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ServiceNetworkId + // CloudFormation resource type schema: + // + // { + // "maxLength": 2048, + // "minLength": 3, + // "pattern": "^((sn-[0-9a-z]{17})|(arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:servicenetwork/sn-[0-9a-z]{17}))$", + // "type": "string" + // } + "service_network_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 50, + // "minItems": 0, + // "type": "array", + // "uniqueItems": true + // } + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + 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::VpcLattice::ServiceNetworkResourceAssociation", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::VpcLattice::ServiceNetworkResourceAssociation").WithTerraformTypeName("awscc_vpclattice_service_network_resource_association") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "arn": "Arn", + "key": "Key", + "resource_configuration_id": "ResourceConfigurationId", + "service_network_id": "ServiceNetworkId", + "service_network_resource_association_id": "Id", + "tags": "Tags", + "value": "Value", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/vpclattice/service_network_resource_association_singular_data_source_gen_test.go b/internal/aws/vpclattice/service_network_resource_association_singular_data_source_gen_test.go new file mode 100644 index 0000000000..d077c685cb --- /dev/null +++ b/internal/aws/vpclattice/service_network_resource_association_singular_data_source_gen_test.go @@ -0,0 +1,40 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package vpclattice_test + +import ( + "fmt" + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSVpcLatticeServiceNetworkResourceAssociationDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::VpcLattice::ServiceNetworkResourceAssociation", "awscc_vpclattice_service_network_resource_association", "test") + + 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"), + ), + }, + }) +} + +func TestAccAWSVpcLatticeServiceNetworkResourceAssociationDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::VpcLattice::ServiceNetworkResourceAssociation", "awscc_vpclattice_service_network_resource_association", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/wisdom/ai_agent_resource_gen.go b/internal/aws/wisdom/ai_agent_resource_gen.go index 419ba5cda1..49314fad87 100644 --- a/internal/aws/wisdom/ai_agent_resource_gen.go +++ b/internal/aws/wisdom/ai_agent_resource_gen.go @@ -97,6 +97,10 @@ func aIAgentResource(ctx context.Context) (resource.Resource, error) { // "AnswerRecommendationAIAgentConfiguration": { // "additionalProperties": false, // "properties": { + // "AnswerGenerationAIGuardrailId": { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // }, // "AnswerGenerationAIPromptId": { // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", // "type": "string" @@ -256,6 +260,10 @@ func aIAgentResource(ctx context.Context) (resource.Resource, error) { // "ManualSearchAIAgentConfiguration": { // "additionalProperties": false, // "properties": { + // "AnswerGenerationAIGuardrailId": { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // }, // "AnswerGenerationAIPromptId": { // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", // "type": "string" @@ -403,6 +411,165 @@ func aIAgentResource(ctx context.Context) (resource.Resource, error) { // } // }, // "type": "object" + // }, + // "SelfServiceAIAgentConfiguration": { + // "additionalProperties": false, + // "properties": { + // "AssociationConfigurations": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "AssociationConfigurationData": { + // "properties": { + // "KnowledgeBaseAssociationConfigurationData": { + // "additionalProperties": false, + // "properties": { + // "ContentTagFilter": { + // "properties": { + // "AndConditions": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "type": "array" + // }, + // "OrConditions": { + // "items": { + // "properties": { + // "AndConditions": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "type": "array" + // }, + // "TagCondition": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // }, + // "TagCondition": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "MaxResults": { + // "maximum": 100, + // "minimum": 1, + // "type": "number" + // }, + // "OverrideKnowledgeBaseSearchType": { + // "enum": [ + // "HYBRID", + // "SEMANTIC" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "AssociationId": { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$", + // "type": "string" + // }, + // "AssociationType": { + // "enum": [ + // "KNOWLEDGE_BASE" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // }, + // "SelfServiceAIGuardrailId": { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // }, + // "SelfServiceAnswerGenerationAIPromptId": { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // }, + // "SelfServicePreProcessingAIPromptId": { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // } + // }, + // "type": "object" // } // }, // "type": "object" @@ -412,6 +579,17 @@ func aIAgentResource(ctx context.Context) (resource.Resource, error) { // Property: AnswerRecommendationAIAgentConfiguration "answer_recommendation_ai_agent_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AnswerGenerationAIGuardrailId + "answer_generation_ai_guardrail_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: AnswerGenerationAIPromptId "answer_generation_ai_prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ Optional: true, @@ -694,6 +872,17 @@ func aIAgentResource(ctx context.Context) (resource.Resource, error) { // Property: ManualSearchAIAgentConfiguration "manual_search_ai_agent_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AnswerGenerationAIGuardrailId + "answer_generation_ai_guardrail_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: AnswerGenerationAIPromptId "answer_generation_ai_prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ Optional: true, @@ -951,6 +1140,288 @@ func aIAgentResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: SelfServiceAIAgentConfiguration + "self_service_ai_agent_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AssociationConfigurations + "association_configurations": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AssociationConfigurationData + "association_configuration_data": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: KnowledgeBaseAssociationConfigurationData + "knowledge_base_association_configuration_data": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContentTagFilter + "content_tag_filter": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AndConditions + "and_conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: OrConditions + "or_conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AndConditions + "and_conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TagCondition + "tag_condition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TagCondition + "tag_condition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MaxResults + "max_results": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(1.000000, 100.000000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: OverrideKnowledgeBaseSearchType + "override_knowledge_base_search_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "HYBRID", + "SEMANTIC", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AssociationId + "association_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AssociationType + "association_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "KNOWLEDGE_BASE", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SelfServiceAIGuardrailId + "self_service_ai_guardrail_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SelfServiceAnswerGenerationAIPromptId + "self_service_answer_generation_ai_prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SelfServicePreProcessingAIPromptId + "self_service_pre_processing_ai_prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Required: true, }, /*END ATTRIBUTE*/ @@ -1025,7 +1496,8 @@ func aIAgentResource(ctx context.Context) (resource.Resource, error) { // { // "enum": [ // "MANUAL_SEARCH", - // "ANSWER_RECOMMENDATION" + // "ANSWER_RECOMMENDATION", + // "SELF_SERVICE" // ], // "type": "string" // } @@ -1035,6 +1507,7 @@ func aIAgentResource(ctx context.Context) (resource.Resource, error) { stringvalidator.OneOf( "MANUAL_SEARCH", "ANSWER_RECOMMENDATION", + "SELF_SERVICE", ), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -1063,21 +1536,22 @@ func aIAgentResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::Wisdom::AIAgent").WithTerraformTypeName("awscc_wisdom_ai_agent") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "ai_agent_arn": "AIAgentArn", - "ai_agent_id": "AIAgentId", - "and_conditions": "AndConditions", - "answer_generation_ai_prompt_id": "AnswerGenerationAIPromptId", + "ai_agent_arn": "AIAgentArn", + "ai_agent_id": "AIAgentId", + "and_conditions": "AndConditions", + "answer_generation_ai_guardrail_id": "AnswerGenerationAIGuardrailId", + "answer_generation_ai_prompt_id": "AnswerGenerationAIPromptId", "answer_recommendation_ai_agent_configuration": "AnswerRecommendationAIAgentConfiguration", - "assistant_arn": "AssistantArn", - "assistant_id": "AssistantId", - "association_configuration_data": "AssociationConfigurationData", - "association_configurations": "AssociationConfigurations", - "association_id": "AssociationId", - "association_type": "AssociationType", - "configuration": "Configuration", - "content_tag_filter": "ContentTagFilter", - "description": "Description", - "intent_labeling_generation_ai_prompt_id": "IntentLabelingGenerationAIPromptId", + "assistant_arn": "AssistantArn", + "assistant_id": "AssistantId", + "association_configuration_data": "AssociationConfigurationData", + "association_configurations": "AssociationConfigurations", + "association_id": "AssociationId", + "association_type": "AssociationType", + "configuration": "Configuration", + "content_tag_filter": "ContentTagFilter", + "description": "Description", + "intent_labeling_generation_ai_prompt_id": "IntentLabelingGenerationAIPromptId", "key": "Key", "knowledge_base_association_configuration_data": "KnowledgeBaseAssociationConfigurationData", "manual_search_ai_agent_configuration": "ManualSearchAIAgentConfiguration", @@ -1086,6 +1560,10 @@ func aIAgentResource(ctx context.Context) (resource.Resource, error) { "or_conditions": "OrConditions", "override_knowledge_base_search_type": "OverrideKnowledgeBaseSearchType", "query_reformulation_ai_prompt_id": "QueryReformulationAIPromptId", + "self_service_ai_agent_configuration": "SelfServiceAIAgentConfiguration", + "self_service_ai_guardrail_id": "SelfServiceAIGuardrailId", + "self_service_answer_generation_ai_prompt_id": "SelfServiceAnswerGenerationAIPromptId", + "self_service_pre_processing_ai_prompt_id": "SelfServicePreProcessingAIPromptId", "tag_condition": "TagCondition", "tags": "Tags", "type": "Type", diff --git a/internal/aws/wisdom/ai_agent_singular_data_source_gen.go b/internal/aws/wisdom/ai_agent_singular_data_source_gen.go index f2b419fd5e..69da569632 100644 --- a/internal/aws/wisdom/ai_agent_singular_data_source_gen.go +++ b/internal/aws/wisdom/ai_agent_singular_data_source_gen.go @@ -71,6 +71,10 @@ func aIAgentDataSource(ctx context.Context) (datasource.DataSource, error) { // "AnswerRecommendationAIAgentConfiguration": { // "additionalProperties": false, // "properties": { + // "AnswerGenerationAIGuardrailId": { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // }, // "AnswerGenerationAIPromptId": { // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", // "type": "string" @@ -230,6 +234,10 @@ func aIAgentDataSource(ctx context.Context) (datasource.DataSource, error) { // "ManualSearchAIAgentConfiguration": { // "additionalProperties": false, // "properties": { + // "AnswerGenerationAIGuardrailId": { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // }, // "AnswerGenerationAIPromptId": { // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", // "type": "string" @@ -377,6 +385,165 @@ func aIAgentDataSource(ctx context.Context) (datasource.DataSource, error) { // } // }, // "type": "object" + // }, + // "SelfServiceAIAgentConfiguration": { + // "additionalProperties": false, + // "properties": { + // "AssociationConfigurations": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "AssociationConfigurationData": { + // "properties": { + // "KnowledgeBaseAssociationConfigurationData": { + // "additionalProperties": false, + // "properties": { + // "ContentTagFilter": { + // "properties": { + // "AndConditions": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "type": "array" + // }, + // "OrConditions": { + // "items": { + // "properties": { + // "AndConditions": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "type": "array" + // }, + // "TagCondition": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // }, + // "TagCondition": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "MaxResults": { + // "maximum": 100, + // "minimum": 1, + // "type": "number" + // }, + // "OverrideKnowledgeBaseSearchType": { + // "enum": [ + // "HYBRID", + // "SEMANTIC" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "AssociationId": { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$", + // "type": "string" + // }, + // "AssociationType": { + // "enum": [ + // "KNOWLEDGE_BASE" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // }, + // "SelfServiceAIGuardrailId": { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // }, + // "SelfServiceAnswerGenerationAIPromptId": { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // }, + // "SelfServicePreProcessingAIPromptId": { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // } + // }, + // "type": "object" // } // }, // "type": "object" @@ -386,6 +553,10 @@ func aIAgentDataSource(ctx context.Context) (datasource.DataSource, error) { // Property: AnswerRecommendationAIAgentConfiguration "answer_recommendation_ai_agent_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AnswerGenerationAIGuardrailId + "answer_generation_ai_guardrail_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: AnswerGenerationAIPromptId "answer_generation_ai_prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, @@ -514,6 +685,10 @@ func aIAgentDataSource(ctx context.Context) (datasource.DataSource, error) { // Property: ManualSearchAIAgentConfiguration "manual_search_ai_agent_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AnswerGenerationAIGuardrailId + "answer_generation_ai_guardrail_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: AnswerGenerationAIPromptId "answer_generation_ai_prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, @@ -631,6 +806,134 @@ func aIAgentDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END SCHEMA*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: SelfServiceAIAgentConfiguration + "self_service_ai_agent_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AssociationConfigurations + "association_configurations": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AssociationConfigurationData + "association_configuration_data": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: KnowledgeBaseAssociationConfigurationData + "knowledge_base_association_configuration_data": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContentTagFilter + "content_tag_filter": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AndConditions + "and_conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: OrConditions + "or_conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AndConditions + "and_conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TagCondition + "tag_condition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TagCondition + "tag_condition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MaxResults + "max_results": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: OverrideKnowledgeBaseSearchType + "override_knowledge_base_search_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AssociationId + "association_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AssociationType + "association_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SelfServiceAIGuardrailId + "self_service_ai_guardrail_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SelfServiceAnswerGenerationAIPromptId + "self_service_answer_generation_ai_prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SelfServicePreProcessingAIPromptId + "self_service_pre_processing_ai_prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Computed: true, }, /*END ATTRIBUTE*/ @@ -683,7 +986,8 @@ func aIAgentDataSource(ctx context.Context) (datasource.DataSource, error) { // { // "enum": [ // "MANUAL_SEARCH", - // "ANSWER_RECOMMENDATION" + // "ANSWER_RECOMMENDATION", + // "SELF_SERVICE" // ], // "type": "string" // } @@ -707,21 +1011,22 @@ func aIAgentDataSource(ctx context.Context) (datasource.DataSource, error) { opts = opts.WithCloudFormationTypeName("AWS::Wisdom::AIAgent").WithTerraformTypeName("awscc_wisdom_ai_agent") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "ai_agent_arn": "AIAgentArn", - "ai_agent_id": "AIAgentId", - "and_conditions": "AndConditions", - "answer_generation_ai_prompt_id": "AnswerGenerationAIPromptId", + "ai_agent_arn": "AIAgentArn", + "ai_agent_id": "AIAgentId", + "and_conditions": "AndConditions", + "answer_generation_ai_guardrail_id": "AnswerGenerationAIGuardrailId", + "answer_generation_ai_prompt_id": "AnswerGenerationAIPromptId", "answer_recommendation_ai_agent_configuration": "AnswerRecommendationAIAgentConfiguration", - "assistant_arn": "AssistantArn", - "assistant_id": "AssistantId", - "association_configuration_data": "AssociationConfigurationData", - "association_configurations": "AssociationConfigurations", - "association_id": "AssociationId", - "association_type": "AssociationType", - "configuration": "Configuration", - "content_tag_filter": "ContentTagFilter", - "description": "Description", - "intent_labeling_generation_ai_prompt_id": "IntentLabelingGenerationAIPromptId", + "assistant_arn": "AssistantArn", + "assistant_id": "AssistantId", + "association_configuration_data": "AssociationConfigurationData", + "association_configurations": "AssociationConfigurations", + "association_id": "AssociationId", + "association_type": "AssociationType", + "configuration": "Configuration", + "content_tag_filter": "ContentTagFilter", + "description": "Description", + "intent_labeling_generation_ai_prompt_id": "IntentLabelingGenerationAIPromptId", "key": "Key", "knowledge_base_association_configuration_data": "KnowledgeBaseAssociationConfigurationData", "manual_search_ai_agent_configuration": "ManualSearchAIAgentConfiguration", @@ -730,6 +1035,10 @@ func aIAgentDataSource(ctx context.Context) (datasource.DataSource, error) { "or_conditions": "OrConditions", "override_knowledge_base_search_type": "OverrideKnowledgeBaseSearchType", "query_reformulation_ai_prompt_id": "QueryReformulationAIPromptId", + "self_service_ai_agent_configuration": "SelfServiceAIAgentConfiguration", + "self_service_ai_guardrail_id": "SelfServiceAIGuardrailId", + "self_service_answer_generation_ai_prompt_id": "SelfServiceAnswerGenerationAIPromptId", + "self_service_pre_processing_ai_prompt_id": "SelfServicePreProcessingAIPromptId", "tag_condition": "TagCondition", "tags": "Tags", "type": "Type", diff --git a/internal/aws/wisdom/ai_guardrail_resource_gen.go b/internal/aws/wisdom/ai_guardrail_resource_gen.go new file mode 100644 index 0000000000..5cc7e2ebab --- /dev/null +++ b/internal/aws/wisdom/ai_guardrail_resource_gen.go @@ -0,0 +1,1036 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package wisdom + +import ( + "context" + "regexp" + + "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/float64default" + "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" + fwvalidators "github.com/hashicorp/terraform-provider-awscc/internal/validators" +) + +func init() { + registry.AddResourceFactory("awscc_wisdom_ai_guardrail", aIGuardrailResource) +} + +// aIGuardrailResource returns the Terraform awscc_wisdom_ai_guardrail resource. +// This Terraform resource corresponds to the CloudFormation AWS::Wisdom::AIGuardrail resource. +func aIGuardrailResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AIGuardrailArn + // CloudFormation resource type schema: + // + // { + // "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}$", + // "type": "string" + // } + "ai_guardrail_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AIGuardrailId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$|^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // } + "ai_guardrail_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AssistantArn + // CloudFormation resource type schema: + // + // { + // "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}$", + // "type": "string" + // } + "assistant_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AssistantId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$|^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}$", + // "type": "string" + // } + "assistant_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$|^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: BlockedInputMessaging + // CloudFormation resource type schema: + // + // { + // "description": "Messaging for when violations are detected in text", + // "maxLength": 500, + // "minLength": 1, + // "type": "string" + // } + "blocked_input_messaging": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Messaging for when violations are detected in text", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 500), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: BlockedOutputsMessaging + // CloudFormation resource type schema: + // + // { + // "description": "Messaging for when violations are detected in text", + // "maxLength": 500, + // "minLength": 1, + // "type": "string" + // } + "blocked_outputs_messaging": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Messaging for when violations are detected in text", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 500), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: ContentPolicyConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Content policy config for a guardrail.", + // "properties": { + // "FiltersConfig": { + // "description": "List of content filter configs in content policy.", + // "items": { + // "additionalProperties": false, + // "description": "Content filter config in content policy.", + // "properties": { + // "InputStrength": { + // "description": "Strength for filters", + // "enum": [ + // "NONE", + // "LOW", + // "MEDIUM", + // "HIGH" + // ], + // "type": "string" + // }, + // "OutputStrength": { + // "description": "Strength for filters", + // "enum": [ + // "NONE", + // "LOW", + // "MEDIUM", + // "HIGH" + // ], + // "type": "string" + // }, + // "Type": { + // "description": "Type of text to text filter in content policy", + // "enum": [ + // "SEXUAL", + // "VIOLENCE", + // "HATE", + // "INSULTS", + // "MISCONDUCT", + // "PROMPT_ATTACK" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "InputStrength", + // "OutputStrength", + // "Type" + // ], + // "type": "object" + // }, + // "maxItems": 6, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "FiltersConfig" + // ], + // "type": "object" + // } + "content_policy_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FiltersConfig + "filters_config": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InputStrength + "input_strength": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Strength for filters", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "NONE", + "LOW", + "MEDIUM", + "HIGH", + ), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: OutputStrength + "output_strength": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Strength for filters", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "NONE", + "LOW", + "MEDIUM", + "HIGH", + ), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Type of text to text filter in content policy", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "SEXUAL", + "VIOLENCE", + "HATE", + "INSULTS", + "MISCONDUCT", + "PROMPT_ATTACK", + ), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of content filter configs in content policy.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 6), + fwvalidators.NotNullList(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Content policy config for a guardrail.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ContextualGroundingPolicyConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Contextual grounding policy config for a guardrail.", + // "properties": { + // "FiltersConfig": { + // "description": "List of contextual grounding filter configs.", + // "items": { + // "additionalProperties": false, + // "description": "A config for grounding filter.", + // "properties": { + // "Threshold": { + // "default": 0, + // "description": "The threshold for this filter.", + // "minimum": 0, + // "type": "number" + // }, + // "Type": { + // "description": "Type of contextual grounding filter", + // "enum": [ + // "GROUNDING", + // "RELEVANCE" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Threshold", + // "Type" + // ], + // "type": "object" + // }, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "FiltersConfig" + // ], + // "type": "object" + // } + "contextual_grounding_policy_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FiltersConfig + "filters_config": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Threshold + "threshold": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "The threshold for this filter.", + Optional: true, + Computed: true, + Default: float64default.StaticFloat64(0.000000), + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.AtLeast(0.000000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Type of contextual grounding filter", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "GROUNDING", + "RELEVANCE", + ), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of contextual grounding filter configs.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeAtLeast(1), + fwvalidators.NotNullList(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Contextual grounding policy config for a guardrail.", + Optional: true, + 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 guardrail or its version", + // "maxLength": 200, + // "minLength": 1, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Description of the guardrail or its version", + 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: Name + // CloudFormation resource type schema: + // + // { + // "maxLength": 255, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9\\s_.,-]+", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 255), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9\\s_.,-]+"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SensitiveInformationPolicyConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Sensitive information policy config for a guardrail.", + // "properties": { + // "PiiEntitiesConfig": { + // "description": "List of entities.", + // "items": { + // "additionalProperties": false, + // "description": "Pii entity configuration.", + // "properties": { + // "Action": { + // "description": "Options for sensitive information action.", + // "enum": [ + // "BLOCK", + // "ANONYMIZE" + // ], + // "type": "string" + // }, + // "Type": { + // "description": "The currently supported PII entities", + // "enum": [ + // "ADDRESS", + // "AGE", + // "AWS_ACCESS_KEY", + // "AWS_SECRET_KEY", + // "CA_HEALTH_NUMBER", + // "CA_SOCIAL_INSURANCE_NUMBER", + // "CREDIT_DEBIT_CARD_CVV", + // "CREDIT_DEBIT_CARD_EXPIRY", + // "CREDIT_DEBIT_CARD_NUMBER", + // "DRIVER_ID", + // "EMAIL", + // "INTERNATIONAL_BANK_ACCOUNT_NUMBER", + // "IP_ADDRESS", + // "LICENSE_PLATE", + // "MAC_ADDRESS", + // "NAME", + // "PASSWORD", + // "PHONE", + // "PIN", + // "SWIFT_CODE", + // "UK_NATIONAL_HEALTH_SERVICE_NUMBER", + // "UK_NATIONAL_INSURANCE_NUMBER", + // "UK_UNIQUE_TAXPAYER_REFERENCE_NUMBER", + // "URL", + // "USERNAME", + // "US_BANK_ACCOUNT_NUMBER", + // "US_BANK_ROUTING_NUMBER", + // "US_INDIVIDUAL_TAX_IDENTIFICATION_NUMBER", + // "US_PASSPORT_NUMBER", + // "US_SOCIAL_SECURITY_NUMBER", + // "VEHICLE_IDENTIFICATION_NUMBER" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Action", + // "Type" + // ], + // "type": "object" + // }, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // }, + // "RegexesConfig": { + // "description": "List of regex.", + // "items": { + // "additionalProperties": false, + // "description": "A regex configuration.", + // "properties": { + // "Action": { + // "description": "Options for sensitive information action.", + // "enum": [ + // "BLOCK", + // "ANONYMIZE" + // ], + // "type": "string" + // }, + // "Description": { + // "description": "The regex description.", + // "maxLength": 1000, + // "minLength": 1, + // "type": "string" + // }, + // "Name": { + // "description": "The regex name.", + // "maxLength": 100, + // "minLength": 1, + // "type": "string" + // }, + // "Pattern": { + // "description": "The regex pattern.", + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Action", + // "Name", + // "Pattern" + // ], + // "type": "object" + // }, + // "minItems": 1, + // "type": "array" + // } + // }, + // "type": "object" + // } + "sensitive_information_policy_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PiiEntitiesConfig + "pii_entities_config": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Action + "action": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Options for sensitive information action.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "BLOCK", + "ANONYMIZE", + ), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The currently supported PII entities", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ADDRESS", + "AGE", + "AWS_ACCESS_KEY", + "AWS_SECRET_KEY", + "CA_HEALTH_NUMBER", + "CA_SOCIAL_INSURANCE_NUMBER", + "CREDIT_DEBIT_CARD_CVV", + "CREDIT_DEBIT_CARD_EXPIRY", + "CREDIT_DEBIT_CARD_NUMBER", + "DRIVER_ID", + "EMAIL", + "INTERNATIONAL_BANK_ACCOUNT_NUMBER", + "IP_ADDRESS", + "LICENSE_PLATE", + "MAC_ADDRESS", + "NAME", + "PASSWORD", + "PHONE", + "PIN", + "SWIFT_CODE", + "UK_NATIONAL_HEALTH_SERVICE_NUMBER", + "UK_NATIONAL_INSURANCE_NUMBER", + "UK_UNIQUE_TAXPAYER_REFERENCE_NUMBER", + "URL", + "USERNAME", + "US_BANK_ACCOUNT_NUMBER", + "US_BANK_ROUTING_NUMBER", + "US_INDIVIDUAL_TAX_IDENTIFICATION_NUMBER", + "US_PASSPORT_NUMBER", + "US_SOCIAL_SECURITY_NUMBER", + "VEHICLE_IDENTIFICATION_NUMBER", + ), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of entities.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeAtLeast(1), + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RegexesConfig + "regexes_config": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Action + "action": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Options for sensitive information action.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "BLOCK", + "ANONYMIZE", + ), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Description + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The regex description.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 1000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The regex name.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 100), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Pattern + "pattern": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The regex pattern.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtLeast(1), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of regex.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeAtLeast(1), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Sensitive information policy config for a guardrail.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "type": "object" + // } + "tags": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + mapplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TopicPolicyConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Topic policy config for a guardrail.", + // "properties": { + // "TopicsConfig": { + // "description": "List of topic configs in topic policy.", + // "items": { + // "additionalProperties": false, + // "description": "Topic config in topic policy.", + // "properties": { + // "Definition": { + // "description": "Definition of topic in topic policy", + // "maxLength": 200, + // "minLength": 1, + // "type": "string" + // }, + // "Examples": { + // "description": "List of text examples", + // "items": { + // "description": "Text example in topic policy", + // "maxLength": 100, + // "minLength": 1, + // "type": "string" + // }, + // "minItems": 0, + // "type": "array" + // }, + // "Name": { + // "description": "Name of topic in topic policy", + // "maxLength": 100, + // "minLength": 1, + // "pattern": "^[0-9a-zA-Z-_ !?.]+$", + // "type": "string" + // }, + // "Type": { + // "description": "Type of topic in a policy", + // "enum": [ + // "DENY" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Definition", + // "Name", + // "Type" + // ], + // "type": "object" + // }, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "TopicsConfig" + // ], + // "type": "object" + // } + "topic_policy_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: TopicsConfig + "topics_config": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Definition + "definition": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Definition of topic in topic policy", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 200), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Examples + "examples": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "List of text examples", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeAtLeast(0), + listvalidator.ValueStringsAre( + stringvalidator.LengthBetween(1, 100), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of topic in topic policy", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 100), + stringvalidator.RegexMatches(regexp.MustCompile("^[0-9a-zA-Z-_ !?.]+$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Type of topic in a policy", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "DENY", + ), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of topic configs in topic policy.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeAtLeast(1), + fwvalidators.NotNullList(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Topic policy config for a guardrail.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: WordPolicyConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Word policy config for a guardrail.", + // "properties": { + // "ManagedWordListsConfig": { + // "description": "A config for the list of managed words.", + // "items": { + // "additionalProperties": false, + // "description": "A managed words config.", + // "properties": { + // "Type": { + // "description": "Options for managed words.", + // "enum": [ + // "PROFANITY" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Type" + // ], + // "type": "object" + // }, + // "type": "array" + // }, + // "WordsConfig": { + // "description": "List of custom word configs.", + // "items": { + // "additionalProperties": false, + // "description": "A custom word config.", + // "properties": { + // "Text": { + // "description": "The custom word text.", + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Text" + // ], + // "type": "object" + // }, + // "minItems": 1, + // "type": "array" + // } + // }, + // "type": "object" + // } + "word_policy_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ManagedWordListsConfig + "managed_word_lists_config": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Options for managed words.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "PROFANITY", + ), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A config for the list of managed words.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: WordsConfig + "words_config": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The custom word text.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtLeast(1), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of custom word configs.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeAtLeast(1), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Word policy config for a guardrail.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.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::Wisdom::AIGuardrail Resource Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Wisdom::AIGuardrail").WithTerraformTypeName("awscc_wisdom_ai_guardrail") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "action": "Action", + "ai_guardrail_arn": "AIGuardrailArn", + "ai_guardrail_id": "AIGuardrailId", + "assistant_arn": "AssistantArn", + "assistant_id": "AssistantId", + "blocked_input_messaging": "BlockedInputMessaging", + "blocked_outputs_messaging": "BlockedOutputsMessaging", + "content_policy_config": "ContentPolicyConfig", + "contextual_grounding_policy_config": "ContextualGroundingPolicyConfig", + "definition": "Definition", + "description": "Description", + "examples": "Examples", + "filters_config": "FiltersConfig", + "input_strength": "InputStrength", + "managed_word_lists_config": "ManagedWordListsConfig", + "name": "Name", + "output_strength": "OutputStrength", + "pattern": "Pattern", + "pii_entities_config": "PiiEntitiesConfig", + "regexes_config": "RegexesConfig", + "sensitive_information_policy_config": "SensitiveInformationPolicyConfig", + "tags": "Tags", + "text": "Text", + "threshold": "Threshold", + "topic_policy_config": "TopicPolicyConfig", + "topics_config": "TopicsConfig", + "type": "Type", + "word_policy_config": "WordPolicyConfig", + "words_config": "WordsConfig", + }) + + 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/wisdom/ai_guardrail_resource_gen_test.go b/internal/aws/wisdom/ai_guardrail_resource_gen_test.go new file mode 100644 index 0000000000..691a5a0b8c --- /dev/null +++ b/internal/aws/wisdom/ai_guardrail_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 wisdom_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSWisdomAIGuardrail_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Wisdom::AIGuardrail", "awscc_wisdom_ai_guardrail", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/wisdom/ai_guardrail_singular_data_source_gen.go b/internal/aws/wisdom/ai_guardrail_singular_data_source_gen.go new file mode 100644 index 0000000000..d6a9ac33eb --- /dev/null +++ b/internal/aws/wisdom/ai_guardrail_singular_data_source_gen.go @@ -0,0 +1,702 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package wisdom + +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_wisdom_ai_guardrail", aIGuardrailDataSource) +} + +// aIGuardrailDataSource returns the Terraform awscc_wisdom_ai_guardrail data source. +// This Terraform data source corresponds to the CloudFormation AWS::Wisdom::AIGuardrail resource. +func aIGuardrailDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AIGuardrailArn + // CloudFormation resource type schema: + // + // { + // "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}$", + // "type": "string" + // } + "ai_guardrail_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AIGuardrailId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$|^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // } + "ai_guardrail_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AssistantArn + // CloudFormation resource type schema: + // + // { + // "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}$", + // "type": "string" + // } + "assistant_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AssistantId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$|^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}$", + // "type": "string" + // } + "assistant_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: BlockedInputMessaging + // CloudFormation resource type schema: + // + // { + // "description": "Messaging for when violations are detected in text", + // "maxLength": 500, + // "minLength": 1, + // "type": "string" + // } + "blocked_input_messaging": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Messaging for when violations are detected in text", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: BlockedOutputsMessaging + // CloudFormation resource type schema: + // + // { + // "description": "Messaging for when violations are detected in text", + // "maxLength": 500, + // "minLength": 1, + // "type": "string" + // } + "blocked_outputs_messaging": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Messaging for when violations are detected in text", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ContentPolicyConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Content policy config for a guardrail.", + // "properties": { + // "FiltersConfig": { + // "description": "List of content filter configs in content policy.", + // "items": { + // "additionalProperties": false, + // "description": "Content filter config in content policy.", + // "properties": { + // "InputStrength": { + // "description": "Strength for filters", + // "enum": [ + // "NONE", + // "LOW", + // "MEDIUM", + // "HIGH" + // ], + // "type": "string" + // }, + // "OutputStrength": { + // "description": "Strength for filters", + // "enum": [ + // "NONE", + // "LOW", + // "MEDIUM", + // "HIGH" + // ], + // "type": "string" + // }, + // "Type": { + // "description": "Type of text to text filter in content policy", + // "enum": [ + // "SEXUAL", + // "VIOLENCE", + // "HATE", + // "INSULTS", + // "MISCONDUCT", + // "PROMPT_ATTACK" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "InputStrength", + // "OutputStrength", + // "Type" + // ], + // "type": "object" + // }, + // "maxItems": 6, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "FiltersConfig" + // ], + // "type": "object" + // } + "content_policy_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FiltersConfig + "filters_config": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InputStrength + "input_strength": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Strength for filters", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: OutputStrength + "output_strength": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Strength for filters", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Type of text to text filter in content policy", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of content filter configs in content policy.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Content policy config for a guardrail.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ContextualGroundingPolicyConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Contextual grounding policy config for a guardrail.", + // "properties": { + // "FiltersConfig": { + // "description": "List of contextual grounding filter configs.", + // "items": { + // "additionalProperties": false, + // "description": "A config for grounding filter.", + // "properties": { + // "Threshold": { + // "default": 0, + // "description": "The threshold for this filter.", + // "minimum": 0, + // "type": "number" + // }, + // "Type": { + // "description": "Type of contextual grounding filter", + // "enum": [ + // "GROUNDING", + // "RELEVANCE" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Threshold", + // "Type" + // ], + // "type": "object" + // }, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "FiltersConfig" + // ], + // "type": "object" + // } + "contextual_grounding_policy_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: FiltersConfig + "filters_config": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Threshold + "threshold": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "The threshold for this filter.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Type of contextual grounding filter", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of contextual grounding filter configs.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Contextual grounding policy config for a guardrail.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "Description of the guardrail or its version", + // "maxLength": 200, + // "minLength": 1, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Description of the guardrail or its version", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "maxLength": 255, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9\\s_.,-]+", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SensitiveInformationPolicyConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Sensitive information policy config for a guardrail.", + // "properties": { + // "PiiEntitiesConfig": { + // "description": "List of entities.", + // "items": { + // "additionalProperties": false, + // "description": "Pii entity configuration.", + // "properties": { + // "Action": { + // "description": "Options for sensitive information action.", + // "enum": [ + // "BLOCK", + // "ANONYMIZE" + // ], + // "type": "string" + // }, + // "Type": { + // "description": "The currently supported PII entities", + // "enum": [ + // "ADDRESS", + // "AGE", + // "AWS_ACCESS_KEY", + // "AWS_SECRET_KEY", + // "CA_HEALTH_NUMBER", + // "CA_SOCIAL_INSURANCE_NUMBER", + // "CREDIT_DEBIT_CARD_CVV", + // "CREDIT_DEBIT_CARD_EXPIRY", + // "CREDIT_DEBIT_CARD_NUMBER", + // "DRIVER_ID", + // "EMAIL", + // "INTERNATIONAL_BANK_ACCOUNT_NUMBER", + // "IP_ADDRESS", + // "LICENSE_PLATE", + // "MAC_ADDRESS", + // "NAME", + // "PASSWORD", + // "PHONE", + // "PIN", + // "SWIFT_CODE", + // "UK_NATIONAL_HEALTH_SERVICE_NUMBER", + // "UK_NATIONAL_INSURANCE_NUMBER", + // "UK_UNIQUE_TAXPAYER_REFERENCE_NUMBER", + // "URL", + // "USERNAME", + // "US_BANK_ACCOUNT_NUMBER", + // "US_BANK_ROUTING_NUMBER", + // "US_INDIVIDUAL_TAX_IDENTIFICATION_NUMBER", + // "US_PASSPORT_NUMBER", + // "US_SOCIAL_SECURITY_NUMBER", + // "VEHICLE_IDENTIFICATION_NUMBER" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Action", + // "Type" + // ], + // "type": "object" + // }, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // }, + // "RegexesConfig": { + // "description": "List of regex.", + // "items": { + // "additionalProperties": false, + // "description": "A regex configuration.", + // "properties": { + // "Action": { + // "description": "Options for sensitive information action.", + // "enum": [ + // "BLOCK", + // "ANONYMIZE" + // ], + // "type": "string" + // }, + // "Description": { + // "description": "The regex description.", + // "maxLength": 1000, + // "minLength": 1, + // "type": "string" + // }, + // "Name": { + // "description": "The regex name.", + // "maxLength": 100, + // "minLength": 1, + // "type": "string" + // }, + // "Pattern": { + // "description": "The regex pattern.", + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Action", + // "Name", + // "Pattern" + // ], + // "type": "object" + // }, + // "minItems": 1, + // "type": "array" + // } + // }, + // "type": "object" + // } + "sensitive_information_policy_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PiiEntitiesConfig + "pii_entities_config": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Action + "action": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Options for sensitive information action.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The currently supported PII entities", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of entities.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RegexesConfig + "regexes_config": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Action + "action": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Options for sensitive information action.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The regex description.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The regex name.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Pattern + "pattern": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The regex pattern.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of regex.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Sensitive information policy config for a guardrail.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "type": "object" + // } + "tags": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TopicPolicyConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Topic policy config for a guardrail.", + // "properties": { + // "TopicsConfig": { + // "description": "List of topic configs in topic policy.", + // "items": { + // "additionalProperties": false, + // "description": "Topic config in topic policy.", + // "properties": { + // "Definition": { + // "description": "Definition of topic in topic policy", + // "maxLength": 200, + // "minLength": 1, + // "type": "string" + // }, + // "Examples": { + // "description": "List of text examples", + // "items": { + // "description": "Text example in topic policy", + // "maxLength": 100, + // "minLength": 1, + // "type": "string" + // }, + // "minItems": 0, + // "type": "array" + // }, + // "Name": { + // "description": "Name of topic in topic policy", + // "maxLength": 100, + // "minLength": 1, + // "pattern": "^[0-9a-zA-Z-_ !?.]+$", + // "type": "string" + // }, + // "Type": { + // "description": "Type of topic in a policy", + // "enum": [ + // "DENY" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Definition", + // "Name", + // "Type" + // ], + // "type": "object" + // }, + // "minItems": 1, + // "type": "array" + // } + // }, + // "required": [ + // "TopicsConfig" + // ], + // "type": "object" + // } + "topic_policy_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: TopicsConfig + "topics_config": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Definition + "definition": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Definition of topic in topic policy", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Examples + "examples": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "List of text examples", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of topic in topic policy", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Type of topic in a policy", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of topic configs in topic policy.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Topic policy config for a guardrail.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: WordPolicyConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Word policy config for a guardrail.", + // "properties": { + // "ManagedWordListsConfig": { + // "description": "A config for the list of managed words.", + // "items": { + // "additionalProperties": false, + // "description": "A managed words config.", + // "properties": { + // "Type": { + // "description": "Options for managed words.", + // "enum": [ + // "PROFANITY" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Type" + // ], + // "type": "object" + // }, + // "type": "array" + // }, + // "WordsConfig": { + // "description": "List of custom word configs.", + // "items": { + // "additionalProperties": false, + // "description": "A custom word config.", + // "properties": { + // "Text": { + // "description": "The custom word text.", + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Text" + // ], + // "type": "object" + // }, + // "minItems": 1, + // "type": "array" + // } + // }, + // "type": "object" + // } + "word_policy_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ManagedWordListsConfig + "managed_word_lists_config": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Options for managed words.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A config for the list of managed words.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: WordsConfig + "words_config": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The custom word text.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of custom word configs.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Word policy config for a guardrail.", + 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::Wisdom::AIGuardrail", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Wisdom::AIGuardrail").WithTerraformTypeName("awscc_wisdom_ai_guardrail") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "action": "Action", + "ai_guardrail_arn": "AIGuardrailArn", + "ai_guardrail_id": "AIGuardrailId", + "assistant_arn": "AssistantArn", + "assistant_id": "AssistantId", + "blocked_input_messaging": "BlockedInputMessaging", + "blocked_outputs_messaging": "BlockedOutputsMessaging", + "content_policy_config": "ContentPolicyConfig", + "contextual_grounding_policy_config": "ContextualGroundingPolicyConfig", + "definition": "Definition", + "description": "Description", + "examples": "Examples", + "filters_config": "FiltersConfig", + "input_strength": "InputStrength", + "managed_word_lists_config": "ManagedWordListsConfig", + "name": "Name", + "output_strength": "OutputStrength", + "pattern": "Pattern", + "pii_entities_config": "PiiEntitiesConfig", + "regexes_config": "RegexesConfig", + "sensitive_information_policy_config": "SensitiveInformationPolicyConfig", + "tags": "Tags", + "text": "Text", + "threshold": "Threshold", + "topic_policy_config": "TopicPolicyConfig", + "topics_config": "TopicsConfig", + "type": "Type", + "word_policy_config": "WordPolicyConfig", + "words_config": "WordsConfig", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/wisdom/ai_guardrail_singular_data_source_gen_test.go b/internal/aws/wisdom/ai_guardrail_singular_data_source_gen_test.go new file mode 100644 index 0000000000..09e300e264 --- /dev/null +++ b/internal/aws/wisdom/ai_guardrail_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 wisdom_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSWisdomAIGuardrailDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Wisdom::AIGuardrail", "awscc_wisdom_ai_guardrail", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSWisdomAIGuardrailDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Wisdom::AIGuardrail", "awscc_wisdom_ai_guardrail", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/wisdom/ai_guardrail_version_resource_gen.go b/internal/aws/wisdom/ai_guardrail_version_resource_gen.go new file mode 100644 index 0000000000..bc91529f16 --- /dev/null +++ b/internal/aws/wisdom/ai_guardrail_version_resource_gen.go @@ -0,0 +1,170 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package wisdom + +import ( + "context" + "regexp" + + "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/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_wisdom_ai_guardrail_version", aIGuardrailVersionResource) +} + +// aIGuardrailVersionResource returns the Terraform awscc_wisdom_ai_guardrail_version resource. +// This Terraform resource corresponds to the CloudFormation AWS::Wisdom::AIGuardrailVersion resource. +func aIGuardrailVersionResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AIGuardrailArn + // CloudFormation resource type schema: + // + // { + // "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$", + // "type": "string" + // } + "ai_guardrail_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AIGuardrailId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$", + // "type": "string" + // } + "ai_guardrail_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AIGuardrailVersionId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // } + "ai_guardrail_version_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AssistantArn + // CloudFormation resource type schema: + // + // { + // "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$", + // "type": "string" + // } + "assistant_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AssistantId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$", + // "type": "string" + // } + "assistant_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ModifiedTimeSeconds + // CloudFormation resource type schema: + // + // { + // "type": "number" + // } + "modified_time_seconds": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + float64planmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: VersionNumber + // CloudFormation resource type schema: + // + // { + // "type": "number" + // } + "version_number": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.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::Wisdom::AIGuardrailVersion Resource Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Wisdom::AIGuardrailVersion").WithTerraformTypeName("awscc_wisdom_ai_guardrail_version") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "ai_guardrail_arn": "AIGuardrailArn", + "ai_guardrail_id": "AIGuardrailId", + "ai_guardrail_version_id": "AIGuardrailVersionId", + "assistant_arn": "AssistantArn", + "assistant_id": "AssistantId", + "modified_time_seconds": "ModifiedTimeSeconds", + "version_number": "VersionNumber", + }) + + opts = opts.IsImmutableType(true) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/wisdom/ai_guardrail_version_resource_gen_test.go b/internal/aws/wisdom/ai_guardrail_version_resource_gen_test.go new file mode 100644 index 0000000000..65dae9698c --- /dev/null +++ b/internal/aws/wisdom/ai_guardrail_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 wisdom_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSWisdomAIGuardrailVersion_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Wisdom::AIGuardrailVersion", "awscc_wisdom_ai_guardrail_version", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/wisdom/ai_guardrail_version_singular_data_source_gen.go b/internal/aws/wisdom/ai_guardrail_version_singular_data_source_gen.go new file mode 100644 index 0000000000..a1b8565351 --- /dev/null +++ b/internal/aws/wisdom/ai_guardrail_version_singular_data_source_gen.go @@ -0,0 +1,126 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package wisdom + +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_wisdom_ai_guardrail_version", aIGuardrailVersionDataSource) +} + +// aIGuardrailVersionDataSource returns the Terraform awscc_wisdom_ai_guardrail_version data source. +// This Terraform data source corresponds to the CloudFormation AWS::Wisdom::AIGuardrailVersion resource. +func aIGuardrailVersionDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AIGuardrailArn + // CloudFormation resource type schema: + // + // { + // "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$", + // "type": "string" + // } + "ai_guardrail_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AIGuardrailId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$", + // "type": "string" + // } + "ai_guardrail_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AIGuardrailVersionId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // } + "ai_guardrail_version_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AssistantArn + // CloudFormation resource type schema: + // + // { + // "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$", + // "type": "string" + // } + "assistant_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AssistantId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$", + // "type": "string" + // } + "assistant_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModifiedTimeSeconds + // CloudFormation resource type schema: + // + // { + // "type": "number" + // } + "modified_time_seconds": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: VersionNumber + // CloudFormation resource type schema: + // + // { + // "type": "number" + // } + "version_number": schema.Float64Attribute{ /*START ATTRIBUTE*/ + 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::Wisdom::AIGuardrailVersion", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Wisdom::AIGuardrailVersion").WithTerraformTypeName("awscc_wisdom_ai_guardrail_version") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "ai_guardrail_arn": "AIGuardrailArn", + "ai_guardrail_id": "AIGuardrailId", + "ai_guardrail_version_id": "AIGuardrailVersionId", + "assistant_arn": "AssistantArn", + "assistant_id": "AssistantId", + "modified_time_seconds": "ModifiedTimeSeconds", + "version_number": "VersionNumber", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/wisdom/ai_guardrail_version_singular_data_source_gen_test.go b/internal/aws/wisdom/ai_guardrail_version_singular_data_source_gen_test.go new file mode 100644 index 0000000000..11a241b3b2 --- /dev/null +++ b/internal/aws/wisdom/ai_guardrail_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 wisdom_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSWisdomAIGuardrailVersionDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Wisdom::AIGuardrailVersion", "awscc_wisdom_ai_guardrail_version", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSWisdomAIGuardrailVersionDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Wisdom::AIGuardrailVersion", "awscc_wisdom_ai_guardrail_version", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/wisdom/ai_prompt_resource_gen.go b/internal/aws/wisdom/ai_prompt_resource_gen.go index 1fbf220798..2a94f8c06a 100644 --- a/internal/aws/wisdom/ai_prompt_resource_gen.go +++ b/internal/aws/wisdom/ai_prompt_resource_gen.go @@ -268,7 +268,9 @@ func aIPromptResource(ctx context.Context) (resource.Resource, error) { // "enum": [ // "ANSWER_GENERATION", // "INTENT_LABELING_GENERATION", - // "QUERY_REFORMULATION" + // "QUERY_REFORMULATION", + // "SELF_SERVICE_PRE_PROCESSING", + // "SELF_SERVICE_ANSWER_GENERATION" // ], // "type": "string" // } @@ -279,6 +281,8 @@ func aIPromptResource(ctx context.Context) (resource.Resource, error) { "ANSWER_GENERATION", "INTENT_LABELING_GENERATION", "QUERY_REFORMULATION", + "SELF_SERVICE_PRE_PROCESSING", + "SELF_SERVICE_ANSWER_GENERATION", ), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/wisdom/ai_prompt_singular_data_source_gen.go b/internal/aws/wisdom/ai_prompt_singular_data_source_gen.go index e1d2378b35..c79b473a47 100644 --- a/internal/aws/wisdom/ai_prompt_singular_data_source_gen.go +++ b/internal/aws/wisdom/ai_prompt_singular_data_source_gen.go @@ -186,7 +186,9 @@ func aIPromptDataSource(ctx context.Context) (datasource.DataSource, error) { // "enum": [ // "ANSWER_GENERATION", // "INTENT_LABELING_GENERATION", - // "QUERY_REFORMULATION" + // "QUERY_REFORMULATION", + // "SELF_SERVICE_PRE_PROCESSING", + // "SELF_SERVICE_ANSWER_GENERATION" // ], // "type": "string" // } diff --git a/internal/aws/workspaces/workspaces_pool_resource_gen.go b/internal/aws/workspaces/workspaces_pool_resource_gen.go index bcdb2c3cbc..5fc18e7718 100644 --- a/internal/aws/workspaces/workspaces_pool_resource_gen.go +++ b/internal/aws/workspaces/workspaces_pool_resource_gen.go @@ -280,7 +280,6 @@ func workspacesPoolResource(ctx context.Context) (resource.Resource, error) { generic.Multiset(), listplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ - // Tags is a write-only property. }, /*END ATTRIBUTE*/ // Property: TimeoutSettings // CloudFormation resource type schema: @@ -391,9 +390,6 @@ func workspacesPoolResource(ctx context.Context) (resource.Resource, error) { "value": "Value", }) - opts = opts.WithWriteOnlyPropertyPaths([]string{ - "/properties/Tags", - }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) opts = opts.WithUpdateTimeoutInMinutes(0) diff --git a/internal/provider/all_schemas.hcl b/internal/provider/all_schemas.hcl index 913df48e03..8a6f7a4cdb 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" } -# 1106 CloudFormation resource types schemas are available for use with the Cloud Control API. +# 1121 CloudFormation resource types schemas are available for use with the Cloud Control API. resource_schema "aws_acmpca_certificate" { cloudformation_type_name = "AWS::ACMPCA::Certificate" @@ -572,6 +572,10 @@ resource_schema "aws_batch_compute_environment" { cloudformation_type_name = "AWS::Batch::ComputeEnvironment" } +resource_schema "aws_batch_job_definition" { + cloudformation_type_name = "AWS::Batch::JobDefinition" +} + resource_schema "aws_batch_job_queue" { cloudformation_type_name = "AWS::Batch::JobQueue" } @@ -684,6 +688,10 @@ resource_schema "aws_cassandra_table" { cloudformation_type_name = "AWS::Cassandra::Table" } +resource_schema "aws_cassandra_type" { + cloudformation_type_name = "AWS::Cassandra::Type" +} + resource_schema "aws_certificatemanager_account" { cloudformation_type_name = "AWS::CertificateManager::Account" suppress_plural_data_source_generation = true @@ -1619,6 +1627,11 @@ resource_schema "aws_ec2_key_pair" { resource_schema "aws_ec2_launch_template" { cloudformation_type_name = "AWS::EC2::LaunchTemplate" + + # Latest schema updates are suppressed. + # git checkout internal/service/cloudformation/schemas/AWS_EC2_LaunchTemplate.json + # Suppression Reason: Object has no key 'NetworkPerformanceOptions' + # https://github.com/hashicorp/terraform-provider-awscc/issues/2133 } resource_schema "aws_ec2_local_gateway_route" { @@ -2614,6 +2627,10 @@ resource_schema "aws_iot_certificate_provider" { cloudformation_type_name = "AWS::IoT::CertificateProvider" } +resource_schema "aws_iot_command" { + cloudformation_type_name = "AWS::IoT::Command" +} + resource_schema "aws_iot_custom_metric" { cloudformation_type_name = "AWS::IoT::CustomMetric" } @@ -3160,6 +3177,16 @@ resource_schema "aws_logs_subscription_filter" { suppress_plural_data_source_generation = true } +resource_schema "aws_logs_transformer" { + cloudformation_type_name = "AWS::Logs::Transformer" + + # Suppression Reason: TransformerConfig/Csv/Columns is of unsupported type: list of "" + # https://github.com/hashicorp/terraform-provider-awscc/issues/1515 + suppress_resource_generation = true + suppress_singular_data_source_generation = true + suppress_plural_data_source_generation = true +} + resource_schema "aws_lookoutequipment_inference_scheduler" { cloudformation_type_name = "AWS::LookoutEquipment::InferenceScheduler" } @@ -3482,6 +3509,10 @@ resource_schema "aws_networkmanager_device" { suppress_plural_data_source_generation = true } +resource_schema "aws_networkmanager_direct_connect_gateway_attachment" { + cloudformation_type_name = "AWS::NetworkManager::DirectConnectGatewayAttachment" +} + resource_schema "aws_networkmanager_global_network" { cloudformation_type_name = "AWS::NetworkManager::GlobalNetwork" } @@ -3739,6 +3770,16 @@ resource_schema "aws_qbusiness_application" { cloudformation_type_name = "AWS::QBusiness::Application" } +resource_schema "aws_qbusiness_data_accessor" { + cloudformation_type_name = "AWS::QBusiness::DataAccessor" + suppress_plural_data_source_generation = true + + # Suppression Reason: stack overflow + # https://github.com/hashicorp/terraform-provider-awscc/issues/2134 + suppress_resource_generation = true + suppress_singular_data_source_generation = true +} + resource_schema "aws_qbusiness_data_source" { cloudformation_type_name = "AWS::QBusiness::DataSource" suppress_plural_data_source_generation = true @@ -3749,6 +3790,11 @@ resource_schema "aws_qbusiness_index" { suppress_plural_data_source_generation = true } +resource_schema "aws_qbusiness_permission" { + cloudformation_type_name = "AWS::QBusiness::Permission" + suppress_plural_data_source_generation = true +} + resource_schema "aws_qbusiness_plugin" { cloudformation_type_name = "AWS::QBusiness::Plugin" suppress_plural_data_source_generation = true @@ -3835,6 +3881,10 @@ resource_schema "aws_ram_permission" { cloudformation_type_name = "AWS::RAM::Permission" } +resource_schema "aws_ram_resource_share" { + cloudformation_type_name = "AWS::RAM::ResourceShare" +} + resource_schema "aws_rds_custom_db_engine_version" { cloudformation_type_name = "AWS::RDS::CustomDBEngineVersion" } @@ -4231,6 +4281,14 @@ resource_schema "aws_s3outposts_endpoint" { cloudformation_type_name = "AWS::S3Outposts::Endpoint" } +resource_schema "aws_s3tables_table_bucket" { + cloudformation_type_name = "AWS::S3Tables::TableBucket" +} + +resource_schema "aws_s3tables_table_bucket_policy" { + cloudformation_type_name = "AWS::S3Tables::TableBucketPolicy" +} + resource_schema "aws_ses_configuration_set" { cloudformation_type_name = "AWS::SES::ConfigurationSet" } @@ -4807,6 +4865,14 @@ resource_schema "aws_vpclattice_listener" { suppress_plural_data_source_generation = true } +resource_schema "aws_vpclattice_resource_configuration" { + cloudformation_type_name = "AWS::VpcLattice::ResourceConfiguration" +} + +resource_schema "aws_vpclattice_resource_gateway" { + cloudformation_type_name = "AWS::VpcLattice::ResourceGateway" +} + resource_schema "aws_vpclattice_resource_policy" { cloudformation_type_name = "AWS::VpcLattice::ResourcePolicy" suppress_plural_data_source_generation = true @@ -4825,6 +4891,10 @@ resource_schema "aws_vpclattice_service_network" { cloudformation_type_name = "AWS::VpcLattice::ServiceNetwork" } +resource_schema "aws_vpclattice_service_network_resource_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkResourceAssociation" +} + resource_schema "aws_vpclattice_service_network_service_association" { cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkServiceAssociation" } @@ -4886,6 +4956,16 @@ resource_schema "aws_wisdom_ai_agent_version" { suppress_plural_data_source_generation = true } +resource_schema "aws_wisdom_ai_guardrail" { + cloudformation_type_name = "AWS::Wisdom::AIGuardrail" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_guardrail_version" { + cloudformation_type_name = "AWS::Wisdom::AIGuardrailVersion" + suppress_plural_data_source_generation = true +} + resource_schema "aws_wisdom_ai_prompt" { cloudformation_type_name = "AWS::Wisdom::AIPrompt" suppress_plural_data_source_generation = true diff --git a/internal/provider/generators/allschemas/available_schemas.2024-12-13.hcl b/internal/provider/generators/allschemas/available_schemas.2024-12-13.hcl new file mode 100644 index 0000000000..adc3c24230 --- /dev/null +++ b/internal/provider/generators/allschemas/available_schemas.2024-12-13.hcl @@ -0,0 +1,4764 @@ +# 1121 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_autoshift_observer_notification_status" { + cloudformation_type_name = "AWS::ARCZonalShift::AutoshiftObserverNotificationStatus" +} + +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_amazonmq_configuration" { + cloudformation_type_name = "AWS::AmazonMQ::Configuration" +} + +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_base_path_mapping_v2" { + cloudformation_type_name = "AWS::ApiGateway::BasePathMappingV2" + 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_domain_name_access_association" { + cloudformation_type_name = "AWS::ApiGateway::DomainNameAccessAssociation" +} + +resource_schema "aws_apigateway_domain_name_v2" { + cloudformation_type_name = "AWS::ApiGateway::DomainNameV2" +} + +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" { + cloudformation_type_name = "AWS::ApiGatewayV2::Integration" + suppress_plural_data_source_generation = true +} + +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_deployment_strategy" { + cloudformation_type_name = "AWS::AppConfig::DeploymentStrategy" +} + +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_api" { + cloudformation_type_name = "AWS::AppSync::Api" +} + +resource_schema "aws_appsync_channel_namespace" { + cloudformation_type_name = "AWS::AppSync::ChannelNamespace" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_data_source" { + cloudformation_type_name = "AWS::AppSync::DataSource" + suppress_plural_data_source_generation = true +} + +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_graph_ql_api" { + cloudformation_type_name = "AWS::AppSync::GraphQLApi" +} + +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_logically_air_gapped_backup_vault" { + cloudformation_type_name = "AWS::Backup::LogicallyAirGappedBackupVault" +} + +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_definition" { + cloudformation_type_name = "AWS::Batch::JobDefinition" +} + +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_application_inference_profile" { + cloudformation_type_name = "AWS::Bedrock::ApplicationInferenceProfile" +} + +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_cassandra_type" { + cloudformation_type_name = "AWS::Cassandra::Type" +} + +resource_schema "aws_certificatemanager_account" { + cloudformation_type_name = "AWS::CertificateManager::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_chatbot_custom_action" { + cloudformation_type_name = "AWS::Chatbot::CustomAction" +} + +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_id_mapping_table" { + cloudformation_type_name = "AWS::CleanRooms::IdMappingTable" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_id_namespace_association" { + cloudformation_type_name = "AWS::CleanRooms::IdNamespaceAssociation" + 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_guard_hook" { + cloudformation_type_name = "AWS::CloudFormation::GuardHook" +} + +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_lambda_hook" { + cloudformation_type_name = "AWS::CloudFormation::LambdaHook" +} + +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_dashboard" { + cloudformation_type_name = "AWS::CloudTrail::Dashboard" +} + +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_managed_login_branding" { + cloudformation_type_name = "AWS::Cognito::ManagedLoginBranding" + 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_identity_provider" { + cloudformation_type_name = "AWS::Cognito::UserPoolIdentityProvider" + 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_agent_status" { + cloudformation_type_name = "AWS::Connect::AgentStatus" + suppress_plural_data_source_generation = true +} + +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_email_address" { + cloudformation_type_name = "AWS::Connect::EmailAddress" + 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_user_hierarchy_structure" { + cloudformation_type_name = "AWS::Connect::UserHierarchyStructure" + 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_connectcampaignsv2_campaign" { + cloudformation_type_name = "AWS::ConnectCampaignsV2::Campaign" + suppress_plural_data_source_generation = true +} + +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_customerprofiles_segment_definition" { + cloudformation_type_name = "AWS::CustomerProfiles::SegmentDefinition" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_dms_data_migration" { + cloudformation_type_name = "AWS::DMS::DataMigration" +} + +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_actions" { + cloudformation_type_name = "AWS::DataZone::EnvironmentActions" + 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" + suppress_plural_data_source_generation = true +} + +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_security_group_vpc_association" { + cloudformation_type_name = "AWS::EC2::SecurityGroupVpcAssociation" +} + +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" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_multicast_group_source" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastGroupSource" + suppress_plural_data_source_generation = true +} + +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_block_public_access_exclusion" { + cloudformation_type_name = "AWS::EC2::VPCBlockPublicAccessExclusion" +} + +resource_schema "aws_ec2_vpc_block_public_access_options" { + cloudformation_type_name = "AWS::EC2::VPCBlockPublicAccessOptions" + suppress_plural_data_source_generation = true +} + +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_fleet" { + cloudformation_type_name = "AWS::GameLift::ContainerFleet" +} + +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_crawler" { + cloudformation_type_name = "AWS::Glue::Crawler" +} + +resource_schema "aws_glue_database" { + cloudformation_type_name = "AWS::Glue::Database" +} + +resource_schema "aws_glue_job" { + cloudformation_type_name = "AWS::Glue::Job" +} + +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_glue_usage_profile" { + cloudformation_type_name = "AWS::Glue::UsageProfile" +} + +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_ingest_configuration" { + cloudformation_type_name = "AWS::IVS::IngestConfiguration" +} + +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_public_key" { + cloudformation_type_name = "AWS::IVS::PublicKey" +} + +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_invoicing_invoice_unit" { + cloudformation_type_name = "AWS::Invoicing::InvoiceUnit" +} + +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_command" { + cloudformation_type_name = "AWS::IoT::Command" +} + +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_state_template" { + cloudformation_type_name = "AWS::IoTFleetWise::StateTemplate" +} + +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_resource_policy" { + cloudformation_type_name = "AWS::Kinesis::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +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_integration" { + cloudformation_type_name = "AWS::Logs::Integration" +} + +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_logs_transformer" { + cloudformation_type_name = "AWS::Logs::Transformer" +} + +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_deployment" { + cloudformation_type_name = "AWS::M2::Deployment" + suppress_plural_data_source_generation = true +} + +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_channel_placement_group" { + cloudformation_type_name = "AWS::MediaLive::ChannelPlacementGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_medialive_cloudwatch_alarm_template" { + cloudformation_type_name = "AWS::MediaLive::CloudWatchAlarmTemplate" +} + +resource_schema "aws_medialive_cloudwatch_alarm_template_group" { + cloudformation_type_name = "AWS::MediaLive::CloudWatchAlarmTemplateGroup" +} + +resource_schema "aws_medialive_cluster" { + cloudformation_type_name = "AWS::MediaLive::Cluster" +} + +resource_schema "aws_medialive_event_bridge_rule_template" { + cloudformation_type_name = "AWS::MediaLive::EventBridgeRuleTemplate" +} + +resource_schema "aws_medialive_event_bridge_rule_template_group" { + cloudformation_type_name = "AWS::MediaLive::EventBridgeRuleTemplateGroup" +} + +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_medialive_network" { + cloudformation_type_name = "AWS::MediaLive::Network" +} + +resource_schema "aws_medialive_sdi_source" { + cloudformation_type_name = "AWS::MediaLive::SdiSource" +} + +resource_schema "aws_medialive_signal_map" { + cloudformation_type_name = "AWS::MediaLive::SignalMap" +} + +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_multi_region_cluster" { + cloudformation_type_name = "AWS::MemoryDB::MultiRegionCluster" +} + +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_direct_connect_gateway_attachment" { + cloudformation_type_name = "AWS::NetworkManager::DirectConnectGatewayAttachment" +} + +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_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_application" { + cloudformation_type_name = "AWS::OpenSearchService::Application" +} + +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_pcaconnectorscep_challenge" { + cloudformation_type_name = "AWS::PCAConnectorSCEP::Challenge" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorscep_connector" { + cloudformation_type_name = "AWS::PCAConnectorSCEP::Connector" +} + +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_accessor" { + cloudformation_type_name = "AWS::QBusiness::DataAccessor" + suppress_plural_data_source_generation = true +} + +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_permission" { + cloudformation_type_name = "AWS::QBusiness::Permission" + 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" + suppress_plural_data_source_generation = true +} + +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_folder" { + cloudformation_type_name = "AWS::QuickSight::Folder" +} + +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_ram_resource_share" { + cloudformation_type_name = "AWS::RAM::ResourceShare" +} + +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_shard_group" { + cloudformation_type_name = "AWS::RDS::DBShardGroup" +} + +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_rbin_rule" { + cloudformation_type_name = "AWS::Rbin::Rule" + suppress_plural_data_source_generation = true +} + +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_integration" { + cloudformation_type_name = "AWS::Redshift::Integration" +} + +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_resourcegroups_tag_sync_task" { + cloudformation_type_name = "AWS::ResourceGroups::TagSyncTask" +} + +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_s3tables_table_bucket" { + cloudformation_type_name = "AWS::S3Tables::TableBucket" +} + +resource_schema "aws_s3tables_table_bucket_policy" { + cloudformation_type_name = "AWS::S3Tables::TableBucketPolicy" +} + +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_subscription" { + cloudformation_type_name = "AWS::SNS::Subscription" +} + +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_ssmquicksetup_configuration_manager" { + cloudformation_type_name = "AWS::SSMQuickSetup::ConfigurationManager" +} + +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_cluster" { + cloudformation_type_name = "AWS::SageMaker::Cluster" +} + +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_endpoint" { + cloudformation_type_name = "AWS::SageMaker::Endpoint" +} + +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_studio_lifecycle_config" { + cloudformation_type_name = "AWS::SageMaker::StudioLifecycleConfig" +} + +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_rotation_schedule" { + cloudformation_type_name = "AWS::SecretsManager::RotationSchedule" +} + +resource_schema "aws_secretsmanager_secret" { + cloudformation_type_name = "AWS::SecretsManager::Secret" +} + +resource_schema "aws_secretsmanager_secret_target_attachment" { + cloudformation_type_name = "AWS::SecretsManager::SecretTargetAttachment" +} + +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_server" { + cloudformation_type_name = "AWS::Transfer::Server" +} + +resource_schema "aws_transfer_user" { + cloudformation_type_name = "AWS::Transfer::User" + suppress_plural_data_source_generation = true +} + +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_configuration" { + cloudformation_type_name = "AWS::VpcLattice::ResourceConfiguration" +} + +resource_schema "aws_vpclattice_resource_gateway" { + cloudformation_type_name = "AWS::VpcLattice::ResourceGateway" +} + +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_resource_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkResourceAssociation" +} + +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_ai_agent" { + cloudformation_type_name = "AWS::Wisdom::AIAgent" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_agent_version" { + cloudformation_type_name = "AWS::Wisdom::AIAgentVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_guardrail" { + cloudformation_type_name = "AWS::Wisdom::AIGuardrail" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_guardrail_version" { + cloudformation_type_name = "AWS::Wisdom::AIGuardrailVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_prompt" { + cloudformation_type_name = "AWS::Wisdom::AIPrompt" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_prompt_version" { + cloudformation_type_name = "AWS::Wisdom::AIPromptVersion" + 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_wisdom_message_template" { + cloudformation_type_name = "AWS::Wisdom::MessageTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_message_template_version" { + cloudformation_type_name = "AWS::Wisdom::MessageTemplateVersion" + suppress_plural_data_source_generation = true +} + +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_data_protection_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::DataProtectionSettings" +} + +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/import_examples_gen.json b/internal/provider/import_examples_gen.json index 7ab8decda5..d8220b2a2b 100644 --- a/internal/provider/import_examples_gen.json +++ b/internal/provider/import_examples_gen.json @@ -549,6 +549,11 @@ "identifier": ["ComputeEnvironmentArn"], "path": "./examples/resources/awscc_batch_compute_environment/import.sh" }, + { + "resource": "awscc_batch_job_definition", + "identifier": ["JobDefinitionName"], + "path": "./examples/resources/awscc_batch_job_definition/import.sh" + }, { "resource": "awscc_batch_job_queue", "identifier": ["JobQueueArn"], @@ -669,6 +674,11 @@ "identifier": ["KeyspaceName","TableName"], "path": "./examples/resources/awscc_cassandra_table/import.sh" }, + { + "resource": "awscc_cassandra_type", + "identifier": ["KeyspaceName","TypeName"], + "path": "./examples/resources/awscc_cassandra_type/import.sh" + }, { "resource": "awscc_certificatemanager_account", "identifier": ["AccountId"], @@ -2789,6 +2799,11 @@ "identifier": ["CertificateProviderName"], "path": "./examples/resources/awscc_iot_certificate_provider/import.sh" }, + { + "resource": "awscc_iot_command", + "identifier": ["CommandId"], + "path": "./examples/resources/awscc_iot_command/import.sh" + }, { "resource": "awscc_iot_custom_metric", "identifier": ["MetricName"], @@ -3779,6 +3794,11 @@ "identifier": ["GlobalNetworkId","DeviceId"], "path": "./examples/resources/awscc_networkmanager_device/import.sh" }, + { + "resource": "awscc_networkmanager_direct_connect_gateway_attachment", + "identifier": ["AttachmentId"], + "path": "./examples/resources/awscc_networkmanager_direct_connect_gateway_attachment/import.sh" + }, { "resource": "awscc_networkmanager_global_network", "identifier": ["Id"], @@ -4074,6 +4094,11 @@ "identifier": ["ApplicationId","IndexId"], "path": "./examples/resources/awscc_qbusiness_index/import.sh" }, + { + "resource": "awscc_qbusiness_permission", + "identifier": ["ApplicationId","StatementId"], + "path": "./examples/resources/awscc_qbusiness_permission/import.sh" + }, { "resource": "awscc_qbusiness_plugin", "identifier": ["ApplicationId","PluginId"], @@ -4149,6 +4174,11 @@ "identifier": ["Arn"], "path": "./examples/resources/awscc_ram_permission/import.sh" }, + { + "resource": "awscc_ram_resource_share", + "identifier": ["Arn"], + "path": "./examples/resources/awscc_ram_resource_share/import.sh" + }, { "resource": "awscc_rds_custom_db_engine_version", "identifier": ["Engine","EngineVersion"], @@ -4614,6 +4644,16 @@ "identifier": ["Arn"], "path": "./examples/resources/awscc_s3outposts_endpoint/import.sh" }, + { + "resource": "awscc_s3tables_table_bucket", + "identifier": ["TableBucketARN"], + "path": "./examples/resources/awscc_s3tables_table_bucket/import.sh" + }, + { + "resource": "awscc_s3tables_table_bucket_policy", + "identifier": ["TableBucketARN"], + "path": "./examples/resources/awscc_s3tables_table_bucket_policy/import.sh" + }, { "resource": "awscc_ses_configuration_set", "identifier": ["Name"], @@ -5234,6 +5274,16 @@ "identifier": ["Arn"], "path": "./examples/resources/awscc_vpclattice_listener/import.sh" }, + { + "resource": "awscc_vpclattice_resource_configuration", + "identifier": ["Arn"], + "path": "./examples/resources/awscc_vpclattice_resource_configuration/import.sh" + }, + { + "resource": "awscc_vpclattice_resource_gateway", + "identifier": ["Arn"], + "path": "./examples/resources/awscc_vpclattice_resource_gateway/import.sh" + }, { "resource": "awscc_vpclattice_resource_policy", "identifier": ["ResourceArn"], @@ -5254,6 +5304,11 @@ "identifier": ["Arn"], "path": "./examples/resources/awscc_vpclattice_service_network/import.sh" }, + { + "resource": "awscc_vpclattice_service_network_resource_association", + "identifier": ["Arn"], + "path": "./examples/resources/awscc_vpclattice_service_network_resource_association/import.sh" + }, { "resource": "awscc_vpclattice_service_network_service_association", "identifier": ["Arn"], @@ -5299,6 +5354,16 @@ "identifier": ["AssistantId","AIAgentId","VersionNumber"], "path": "./examples/resources/awscc_wisdom_ai_agent_version/import.sh" }, + { + "resource": "awscc_wisdom_ai_guardrail", + "identifier": ["AIGuardrailId","AssistantId"], + "path": "./examples/resources/awscc_wisdom_ai_guardrail/import.sh" + }, + { + "resource": "awscc_wisdom_ai_guardrail_version", + "identifier": ["AssistantId","AIGuardrailId","VersionNumber"], + "path": "./examples/resources/awscc_wisdom_ai_guardrail_version/import.sh" + }, { "resource": "awscc_wisdom_ai_prompt", "identifier": ["AIPromptId","AssistantId"], diff --git a/internal/provider/plural_data_sources.go b/internal/provider/plural_data_sources.go index d8502c6a10..e8a8300aa0 100644 --- a/internal/provider/plural_data_sources.go +++ b/internal/provider/plural_data_sources.go @@ -72,6 +72,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_backup_restore_testing_selections -cftype AWS::Backup::RestoreTestingSelection -package backup ../aws/backup/restore_testing_selection_plural_data_source_gen.go ../aws/backup/restore_testing_selection_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_backupgateway_hypervisors -cftype AWS::BackupGateway::Hypervisor -package backupgateway ../aws/backupgateway/hypervisor_plural_data_source_gen.go ../aws/backupgateway/hypervisor_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_batch_compute_environments -cftype AWS::Batch::ComputeEnvironment -package batch ../aws/batch/compute_environment_plural_data_source_gen.go ../aws/batch/compute_environment_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_batch_job_definitions -cftype AWS::Batch::JobDefinition -package batch ../aws/batch/job_definition_plural_data_source_gen.go ../aws/batch/job_definition_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_batch_job_queues -cftype AWS::Batch::JobQueue -package batch ../aws/batch/job_queue_plural_data_source_gen.go ../aws/batch/job_queue_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_batch_scheduling_policies -cftype AWS::Batch::SchedulingPolicy -package batch ../aws/batch/scheduling_policy_plural_data_source_gen.go ../aws/batch/scheduling_policy_plural_data_source_gen_test.go //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 @@ -90,6 +91,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_cur_report_definitions -cftype AWS::CUR::ReportDefinition -package cur ../aws/cur/report_definition_plural_data_source_gen.go ../aws/cur/report_definition_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_cassandra_keyspaces -cftype AWS::Cassandra::Keyspace -package cassandra ../aws/cassandra/keyspace_plural_data_source_gen.go ../aws/cassandra/keyspace_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_cassandra_tables -cftype AWS::Cassandra::Table -package cassandra ../aws/cassandra/table_plural_data_source_gen.go ../aws/cassandra/table_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_cassandra_types -cftype AWS::Cassandra::Type -package cassandra ../aws/cassandra/type_plural_data_source_gen.go ../aws/cassandra/type_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_chatbot_custom_actions -cftype AWS::Chatbot::CustomAction -package chatbot ../aws/chatbot/custom_action_plural_data_source_gen.go ../aws/chatbot/custom_action_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_chatbot_microsoft_teams_channel_configurations -cftype AWS::Chatbot::MicrosoftTeamsChannelConfiguration -package chatbot ../aws/chatbot/microsoft_teams_channel_configuration_plural_data_source_gen.go ../aws/chatbot/microsoft_teams_channel_configuration_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_chatbot_slack_channel_configurations -cftype AWS::Chatbot::SlackChannelConfiguration -package chatbot ../aws/chatbot/slack_channel_configuration_plural_data_source_gen.go ../aws/chatbot/slack_channel_configuration_plural_data_source_gen_test.go @@ -410,6 +412,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_iot_ca_certificates -cftype AWS::IoT::CACertificate -package iot ../aws/iot/ca_certificate_plural_data_source_gen.go ../aws/iot/ca_certificate_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_iot_certificates -cftype AWS::IoT::Certificate -package iot ../aws/iot/certificate_plural_data_source_gen.go ../aws/iot/certificate_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_iot_certificate_providers -cftype AWS::IoT::CertificateProvider -package iot ../aws/iot/certificate_provider_plural_data_source_gen.go ../aws/iot/certificate_provider_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_iot_commands -cftype AWS::IoT::Command -package iot ../aws/iot/command_plural_data_source_gen.go ../aws/iot/command_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_iot_custom_metrics -cftype AWS::IoT::CustomMetric -package iot ../aws/iot/custom_metric_plural_data_source_gen.go ../aws/iot/custom_metric_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_iot_dimensions -cftype AWS::IoT::Dimension -package iot ../aws/iot/dimension_plural_data_source_gen.go ../aws/iot/dimension_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_iot_domain_configurations -cftype AWS::IoT::DomainConfiguration -package iot ../aws/iot/domain_configuration_plural_data_source_gen.go ../aws/iot/domain_configuration_plural_data_source_gen_test.go @@ -577,6 +580,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_networkmanager_connect_attachments -cftype AWS::NetworkManager::ConnectAttachment -package networkmanager ../aws/networkmanager/connect_attachment_plural_data_source_gen.go ../aws/networkmanager/connect_attachment_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_networkmanager_connect_peers -cftype AWS::NetworkManager::ConnectPeer -package networkmanager ../aws/networkmanager/connect_peer_plural_data_source_gen.go ../aws/networkmanager/connect_peer_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_networkmanager_core_networks -cftype AWS::NetworkManager::CoreNetwork -package networkmanager ../aws/networkmanager/core_network_plural_data_source_gen.go ../aws/networkmanager/core_network_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_networkmanager_direct_connect_gateway_attachments -cftype AWS::NetworkManager::DirectConnectGatewayAttachment -package networkmanager ../aws/networkmanager/direct_connect_gateway_attachment_plural_data_source_gen.go ../aws/networkmanager/direct_connect_gateway_attachment_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_networkmanager_global_networks -cftype AWS::NetworkManager::GlobalNetwork -package networkmanager ../aws/networkmanager/global_network_plural_data_source_gen.go ../aws/networkmanager/global_network_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_networkmanager_site_to_site_vpn_attachments -cftype AWS::NetworkManager::SiteToSiteVpnAttachment -package networkmanager ../aws/networkmanager/site_to_site_vpn_attachment_plural_data_source_gen.go ../aws/networkmanager/site_to_site_vpn_attachment_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_networkmanager_transit_gateway_peerings -cftype AWS::NetworkManager::TransitGatewayPeering -package networkmanager ../aws/networkmanager/transit_gateway_peering_plural_data_source_gen.go ../aws/networkmanager/transit_gateway_peering_plural_data_source_gen_test.go @@ -624,6 +628,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_quicksight_topics -cftype AWS::QuickSight::Topic -package quicksight ../aws/quicksight/topic_plural_data_source_gen.go ../aws/quicksight/topic_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_quicksight_vpc_connections -cftype AWS::QuickSight::VPCConnection -package quicksight ../aws/quicksight/vpc_connection_plural_data_source_gen.go ../aws/quicksight/vpc_connection_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ram_permissions -cftype AWS::RAM::Permission -package ram ../aws/ram/permission_plural_data_source_gen.go ../aws/ram/permission_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_ram_resource_shares -cftype AWS::RAM::ResourceShare -package ram ../aws/ram/resource_share_plural_data_source_gen.go ../aws/ram/resource_share_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_rds_custom_db_engine_versions -cftype AWS::RDS::CustomDBEngineVersion -package rds ../aws/rds/custom_db_engine_version_plural_data_source_gen.go ../aws/rds/custom_db_engine_version_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_rds_db_clusters -cftype AWS::RDS::DBCluster -package rds ../aws/rds/db_cluster_plural_data_source_gen.go ../aws/rds/db_cluster_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_rds_db_cluster_parameter_groups -cftype AWS::RDS::DBClusterParameterGroup -package rds ../aws/rds/db_cluster_parameter_group_plural_data_source_gen.go ../aws/rds/db_cluster_parameter_group_plural_data_source_gen_test.go @@ -703,6 +708,8 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_s3objectlambda_access_points -cftype AWS::S3ObjectLambda::AccessPoint -package s3objectlambda ../aws/s3objectlambda/access_point_plural_data_source_gen.go ../aws/s3objectlambda/access_point_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_s3outposts_access_points -cftype AWS::S3Outposts::AccessPoint -package s3outposts ../aws/s3outposts/access_point_plural_data_source_gen.go ../aws/s3outposts/access_point_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_s3outposts_endpoints -cftype AWS::S3Outposts::Endpoint -package s3outposts ../aws/s3outposts/endpoint_plural_data_source_gen.go ../aws/s3outposts/endpoint_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_s3tables_table_buckets -cftype AWS::S3Tables::TableBucket -package s3tables ../aws/s3tables/table_bucket_plural_data_source_gen.go ../aws/s3tables/table_bucket_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_s3tables_table_bucket_policies -cftype AWS::S3Tables::TableBucketPolicy -package s3tables ../aws/s3tables/table_bucket_policy_plural_data_source_gen.go ../aws/s3tables/table_bucket_policy_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ses_configuration_sets -cftype AWS::SES::ConfigurationSet -package ses ../aws/ses/configuration_set_plural_data_source_gen.go ../aws/ses/configuration_set_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ses_contact_lists -cftype AWS::SES::ContactList -package ses ../aws/ses/contact_list_plural_data_source_gen.go ../aws/ses/contact_list_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ses_dedicated_ip_pools -cftype AWS::SES::DedicatedIpPool -package ses ../aws/ses/dedicated_ip_pool_plural_data_source_gen.go ../aws/ses/dedicated_ip_pool_plural_data_source_gen_test.go @@ -805,8 +812,11 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_transfer_workflows -cftype AWS::Transfer::Workflow -package transfer ../aws/transfer/workflow_plural_data_source_gen.go ../aws/transfer/workflow_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_verifiedpermissions_policy_stores -cftype AWS::VerifiedPermissions::PolicyStore -package verifiedpermissions ../aws/verifiedpermissions/policy_store_plural_data_source_gen.go ../aws/verifiedpermissions/policy_store_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_voiceid_domains -cftype AWS::VoiceID::Domain -package voiceid ../aws/voiceid/domain_plural_data_source_gen.go ../aws/voiceid/domain_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_vpclattice_resource_configurations -cftype AWS::VpcLattice::ResourceConfiguration -package vpclattice ../aws/vpclattice/resource_configuration_plural_data_source_gen.go ../aws/vpclattice/resource_configuration_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_vpclattice_resource_gateways -cftype AWS::VpcLattice::ResourceGateway -package vpclattice ../aws/vpclattice/resource_gateway_plural_data_source_gen.go ../aws/vpclattice/resource_gateway_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_vpclattice_services -cftype AWS::VpcLattice::Service -package vpclattice ../aws/vpclattice/service_plural_data_source_gen.go ../aws/vpclattice/service_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_vpclattice_service_networks -cftype AWS::VpcLattice::ServiceNetwork -package vpclattice ../aws/vpclattice/service_network_plural_data_source_gen.go ../aws/vpclattice/service_network_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_vpclattice_service_network_resource_associations -cftype AWS::VpcLattice::ServiceNetworkResourceAssociation -package vpclattice ../aws/vpclattice/service_network_resource_association_plural_data_source_gen.go ../aws/vpclattice/service_network_resource_association_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_vpclattice_service_network_service_associations -cftype AWS::VpcLattice::ServiceNetworkServiceAssociation -package vpclattice ../aws/vpclattice/service_network_service_association_plural_data_source_gen.go ../aws/vpclattice/service_network_service_association_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_vpclattice_service_network_vpc_associations -cftype AWS::VpcLattice::ServiceNetworkVpcAssociation -package vpclattice ../aws/vpclattice/service_network_vpc_association_plural_data_source_gen.go ../aws/vpclattice/service_network_vpc_association_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_vpclattice_target_groups -cftype AWS::VpcLattice::TargetGroup -package vpclattice ../aws/vpclattice/target_group_plural_data_source_gen.go ../aws/vpclattice/target_group_plural_data_source_gen_test.go @@ -1014,6 +1024,7 @@ import ( _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/s3express" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/s3objectlambda" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/s3outposts" + _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/s3tables" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/sagemaker" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/scheduler" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/secretsmanager" diff --git a/internal/provider/resources.go b/internal/provider/resources.go index cc76b7e2d5..933d94f139 100644 --- a/internal/provider/resources.go +++ b/internal/provider/resources.go @@ -112,6 +112,7 @@ //go:generate go run generators/resource/main.go -resource awscc_backup_restore_testing_selection -cfschema ../service/cloudformation/schemas/AWS_Backup_RestoreTestingSelection.json -package backup -- ../aws/backup/restore_testing_selection_resource_gen.go ../aws/backup/restore_testing_selection_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_backupgateway_hypervisor -cfschema ../service/cloudformation/schemas/AWS_BackupGateway_Hypervisor.json -package backupgateway -- ../aws/backupgateway/hypervisor_resource_gen.go ../aws/backupgateway/hypervisor_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_batch_compute_environment -cfschema ../service/cloudformation/schemas/AWS_Batch_ComputeEnvironment.json -package batch -- ../aws/batch/compute_environment_resource_gen.go ../aws/batch/compute_environment_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_batch_job_definition -cfschema ../service/cloudformation/schemas/AWS_Batch_JobDefinition.json -package batch -- ../aws/batch/job_definition_resource_gen.go ../aws/batch/job_definition_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_batch_job_queue -cfschema ../service/cloudformation/schemas/AWS_Batch_JobQueue.json -package batch -- ../aws/batch/job_queue_resource_gen.go ../aws/batch/job_queue_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_batch_scheduling_policy -cfschema ../service/cloudformation/schemas/AWS_Batch_SchedulingPolicy.json -package batch -- ../aws/batch/scheduling_policy_resource_gen.go ../aws/batch/scheduling_policy_resource_gen_test.go //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 @@ -136,6 +137,7 @@ //go:generate go run generators/resource/main.go -resource awscc_cur_report_definition -cfschema ../service/cloudformation/schemas/AWS_CUR_ReportDefinition.json -package cur -- ../aws/cur/report_definition_resource_gen.go ../aws/cur/report_definition_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_cassandra_keyspace -cfschema ../service/cloudformation/schemas/AWS_Cassandra_Keyspace.json -package cassandra -- ../aws/cassandra/keyspace_resource_gen.go ../aws/cassandra/keyspace_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_cassandra_table -cfschema ../service/cloudformation/schemas/AWS_Cassandra_Table.json -package cassandra -- ../aws/cassandra/table_resource_gen.go ../aws/cassandra/table_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_cassandra_type -cfschema ../service/cloudformation/schemas/AWS_Cassandra_Type.json -package cassandra -- ../aws/cassandra/type_resource_gen.go ../aws/cassandra/type_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_certificatemanager_account -cfschema ../service/cloudformation/schemas/AWS_CertificateManager_Account.json -package certificatemanager -- ../aws/certificatemanager/account_resource_gen.go ../aws/certificatemanager/account_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_chatbot_custom_action -cfschema ../service/cloudformation/schemas/AWS_Chatbot_CustomAction.json -package chatbot -- ../aws/chatbot/custom_action_resource_gen.go ../aws/chatbot/custom_action_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_chatbot_microsoft_teams_channel_configuration -cfschema ../service/cloudformation/schemas/AWS_Chatbot_MicrosoftTeamsChannelConfiguration.json -package chatbot -- ../aws/chatbot/microsoft_teams_channel_configuration_resource_gen.go ../aws/chatbot/microsoft_teams_channel_configuration_resource_gen_test.go @@ -560,6 +562,7 @@ //go:generate go run generators/resource/main.go -resource awscc_iot_ca_certificate -cfschema ../service/cloudformation/schemas/AWS_IoT_CACertificate.json -package iot -- ../aws/iot/ca_certificate_resource_gen.go ../aws/iot/ca_certificate_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_iot_certificate -cfschema ../service/cloudformation/schemas/AWS_IoT_Certificate.json -package iot -- ../aws/iot/certificate_resource_gen.go ../aws/iot/certificate_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_iot_certificate_provider -cfschema ../service/cloudformation/schemas/AWS_IoT_CertificateProvider.json -package iot -- ../aws/iot/certificate_provider_resource_gen.go ../aws/iot/certificate_provider_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_iot_command -cfschema ../service/cloudformation/schemas/AWS_IoT_Command.json -package iot -- ../aws/iot/command_resource_gen.go ../aws/iot/command_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_iot_custom_metric -cfschema ../service/cloudformation/schemas/AWS_IoT_CustomMetric.json -package iot -- ../aws/iot/custom_metric_resource_gen.go ../aws/iot/custom_metric_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_iot_dimension -cfschema ../service/cloudformation/schemas/AWS_IoT_Dimension.json -package iot -- ../aws/iot/dimension_resource_gen.go ../aws/iot/dimension_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_iot_domain_configuration -cfschema ../service/cloudformation/schemas/AWS_IoT_DomainConfiguration.json -package iot -- ../aws/iot/domain_configuration_resource_gen.go ../aws/iot/domain_configuration_resource_gen_test.go @@ -758,6 +761,7 @@ //go:generate go run generators/resource/main.go -resource awscc_networkmanager_core_network -cfschema ../service/cloudformation/schemas/AWS_NetworkManager_CoreNetwork.json -package networkmanager -- ../aws/networkmanager/core_network_resource_gen.go ../aws/networkmanager/core_network_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_networkmanager_customer_gateway_association -cfschema ../service/cloudformation/schemas/AWS_NetworkManager_CustomerGatewayAssociation.json -package networkmanager -- ../aws/networkmanager/customer_gateway_association_resource_gen.go ../aws/networkmanager/customer_gateway_association_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_networkmanager_device -cfschema ../service/cloudformation/schemas/AWS_NetworkManager_Device.json -package networkmanager -- ../aws/networkmanager/device_resource_gen.go ../aws/networkmanager/device_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_networkmanager_direct_connect_gateway_attachment -cfschema ../service/cloudformation/schemas/AWS_NetworkManager_DirectConnectGatewayAttachment.json -package networkmanager -- ../aws/networkmanager/direct_connect_gateway_attachment_resource_gen.go ../aws/networkmanager/direct_connect_gateway_attachment_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_networkmanager_global_network -cfschema ../service/cloudformation/schemas/AWS_NetworkManager_GlobalNetwork.json -package networkmanager -- ../aws/networkmanager/global_network_resource_gen.go ../aws/networkmanager/global_network_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_networkmanager_link -cfschema ../service/cloudformation/schemas/AWS_NetworkManager_Link.json -package networkmanager -- ../aws/networkmanager/link_resource_gen.go ../aws/networkmanager/link_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_networkmanager_link_association -cfschema ../service/cloudformation/schemas/AWS_NetworkManager_LinkAssociation.json -package networkmanager -- ../aws/networkmanager/link_association_resource_gen.go ../aws/networkmanager/link_association_resource_gen_test.go @@ -817,6 +821,7 @@ //go:generate go run generators/resource/main.go -resource awscc_qbusiness_application -cfschema ../service/cloudformation/schemas/AWS_QBusiness_Application.json -package qbusiness -- ../aws/qbusiness/application_resource_gen.go ../aws/qbusiness/application_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_qbusiness_data_source -cfschema ../service/cloudformation/schemas/AWS_QBusiness_DataSource.json -package qbusiness -- ../aws/qbusiness/data_source_resource_gen.go ../aws/qbusiness/data_source_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_qbusiness_index -cfschema ../service/cloudformation/schemas/AWS_QBusiness_Index.json -package qbusiness -- ../aws/qbusiness/index_resource_gen.go ../aws/qbusiness/index_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_qbusiness_permission -cfschema ../service/cloudformation/schemas/AWS_QBusiness_Permission.json -package qbusiness -- ../aws/qbusiness/permission_resource_gen.go ../aws/qbusiness/permission_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_qbusiness_plugin -cfschema ../service/cloudformation/schemas/AWS_QBusiness_Plugin.json -package qbusiness -- ../aws/qbusiness/plugin_resource_gen.go ../aws/qbusiness/plugin_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_qbusiness_retriever -cfschema ../service/cloudformation/schemas/AWS_QBusiness_Retriever.json -package qbusiness -- ../aws/qbusiness/retriever_resource_gen.go ../aws/qbusiness/retriever_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_qbusiness_web_experience -cfschema ../service/cloudformation/schemas/AWS_QBusiness_WebExperience.json -package qbusiness -- ../aws/qbusiness/web_experience_resource_gen.go ../aws/qbusiness/web_experience_resource_gen_test.go @@ -832,6 +837,7 @@ //go:generate go run generators/resource/main.go -resource awscc_quicksight_topic -cfschema ../service/cloudformation/schemas/AWS_QuickSight_Topic.json -package quicksight -- ../aws/quicksight/topic_resource_gen.go ../aws/quicksight/topic_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_quicksight_vpc_connection -cfschema ../service/cloudformation/schemas/AWS_QuickSight_VPCConnection.json -package quicksight -- ../aws/quicksight/vpc_connection_resource_gen.go ../aws/quicksight/vpc_connection_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ram_permission -cfschema ../service/cloudformation/schemas/AWS_RAM_Permission.json -package ram -- ../aws/ram/permission_resource_gen.go ../aws/ram/permission_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_ram_resource_share -cfschema ../service/cloudformation/schemas/AWS_RAM_ResourceShare.json -package ram -- ../aws/ram/resource_share_resource_gen.go ../aws/ram/resource_share_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_rds_custom_db_engine_version -cfschema ../service/cloudformation/schemas/AWS_RDS_CustomDBEngineVersion.json -package rds -- ../aws/rds/custom_db_engine_version_resource_gen.go ../aws/rds/custom_db_engine_version_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_rds_db_cluster -cfschema ../service/cloudformation/schemas/AWS_RDS_DBCluster.json -package rds -- ../aws/rds/db_cluster_resource_gen.go ../aws/rds/db_cluster_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_rds_db_cluster_parameter_group -cfschema ../service/cloudformation/schemas/AWS_RDS_DBClusterParameterGroup.json -package rds -- ../aws/rds/db_cluster_parameter_group_resource_gen.go ../aws/rds/db_cluster_parameter_group_resource_gen_test.go @@ -925,6 +931,8 @@ //go:generate go run generators/resource/main.go -resource awscc_s3outposts_bucket -cfschema ../service/cloudformation/schemas/AWS_S3Outposts_Bucket.json -package s3outposts -- ../aws/s3outposts/bucket_resource_gen.go ../aws/s3outposts/bucket_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_s3outposts_bucket_policy -cfschema ../service/cloudformation/schemas/AWS_S3Outposts_BucketPolicy.json -package s3outposts -- ../aws/s3outposts/bucket_policy_resource_gen.go ../aws/s3outposts/bucket_policy_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_s3outposts_endpoint -cfschema ../service/cloudformation/schemas/AWS_S3Outposts_Endpoint.json -package s3outposts -- ../aws/s3outposts/endpoint_resource_gen.go ../aws/s3outposts/endpoint_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_s3tables_table_bucket -cfschema ../service/cloudformation/schemas/AWS_S3Tables_TableBucket.json -package s3tables -- ../aws/s3tables/table_bucket_resource_gen.go ../aws/s3tables/table_bucket_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_s3tables_table_bucket_policy -cfschema ../service/cloudformation/schemas/AWS_S3Tables_TableBucketPolicy.json -package s3tables -- ../aws/s3tables/table_bucket_policy_resource_gen.go ../aws/s3tables/table_bucket_policy_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ses_configuration_set -cfschema ../service/cloudformation/schemas/AWS_SES_ConfigurationSet.json -package ses -- ../aws/ses/configuration_set_resource_gen.go ../aws/ses/configuration_set_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ses_configuration_set_event_destination -cfschema ../service/cloudformation/schemas/AWS_SES_ConfigurationSetEventDestination.json -package ses -- ../aws/ses/configuration_set_event_destination_resource_gen.go ../aws/ses/configuration_set_event_destination_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ses_contact_list -cfschema ../service/cloudformation/schemas/AWS_SES_ContactList.json -package ses -- ../aws/ses/contact_list_resource_gen.go ../aws/ses/contact_list_resource_gen_test.go @@ -1049,10 +1057,13 @@ //go:generate go run generators/resource/main.go -resource awscc_vpclattice_access_log_subscription -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_AccessLogSubscription.json -package vpclattice -- ../aws/vpclattice/access_log_subscription_resource_gen.go ../aws/vpclattice/access_log_subscription_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_vpclattice_auth_policy -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_AuthPolicy.json -package vpclattice -- ../aws/vpclattice/auth_policy_resource_gen.go ../aws/vpclattice/auth_policy_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_vpclattice_listener -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_Listener.json -package vpclattice -- ../aws/vpclattice/listener_resource_gen.go ../aws/vpclattice/listener_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_vpclattice_resource_configuration -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_ResourceConfiguration.json -package vpclattice -- ../aws/vpclattice/resource_configuration_resource_gen.go ../aws/vpclattice/resource_configuration_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_vpclattice_resource_gateway -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_ResourceGateway.json -package vpclattice -- ../aws/vpclattice/resource_gateway_resource_gen.go ../aws/vpclattice/resource_gateway_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_vpclattice_resource_policy -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_ResourcePolicy.json -package vpclattice -- ../aws/vpclattice/resource_policy_resource_gen.go ../aws/vpclattice/resource_policy_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_vpclattice_rule -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_Rule.json -package vpclattice -- ../aws/vpclattice/rule_resource_gen.go ../aws/vpclattice/rule_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_vpclattice_service -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_Service.json -package vpclattice -- ../aws/vpclattice/service_resource_gen.go ../aws/vpclattice/service_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_vpclattice_service_network -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_ServiceNetwork.json -package vpclattice -- ../aws/vpclattice/service_network_resource_gen.go ../aws/vpclattice/service_network_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_vpclattice_service_network_resource_association -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_ServiceNetworkResourceAssociation.json -package vpclattice -- ../aws/vpclattice/service_network_resource_association_resource_gen.go ../aws/vpclattice/service_network_resource_association_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_vpclattice_service_network_service_association -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_ServiceNetworkServiceAssociation.json -package vpclattice -- ../aws/vpclattice/service_network_service_association_resource_gen.go ../aws/vpclattice/service_network_service_association_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_vpclattice_service_network_vpc_association -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_ServiceNetworkVpcAssociation.json -package vpclattice -- ../aws/vpclattice/service_network_vpc_association_resource_gen.go ../aws/vpclattice/service_network_vpc_association_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_vpclattice_target_group -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_TargetGroup.json -package vpclattice -- ../aws/vpclattice/target_group_resource_gen.go ../aws/vpclattice/target_group_resource_gen_test.go @@ -1062,6 +1073,8 @@ //go:generate go run generators/resource/main.go -resource awscc_wafv2_web_acl_association -cfschema ../service/cloudformation/schemas/AWS_WAFv2_WebACLAssociation.json -package wafv2 -- ../aws/wafv2/web_acl_association_resource_gen.go ../aws/wafv2/web_acl_association_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_wisdom_ai_agent -cfschema ../service/cloudformation/schemas/AWS_Wisdom_AIAgent.json -package wisdom -- ../aws/wisdom/ai_agent_resource_gen.go ../aws/wisdom/ai_agent_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_wisdom_ai_agent_version -cfschema ../service/cloudformation/schemas/AWS_Wisdom_AIAgentVersion.json -package wisdom -- ../aws/wisdom/ai_agent_version_resource_gen.go ../aws/wisdom/ai_agent_version_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_wisdom_ai_guardrail -cfschema ../service/cloudformation/schemas/AWS_Wisdom_AIGuardrail.json -package wisdom -- ../aws/wisdom/ai_guardrail_resource_gen.go ../aws/wisdom/ai_guardrail_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_wisdom_ai_guardrail_version -cfschema ../service/cloudformation/schemas/AWS_Wisdom_AIGuardrailVersion.json -package wisdom -- ../aws/wisdom/ai_guardrail_version_resource_gen.go ../aws/wisdom/ai_guardrail_version_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_wisdom_ai_prompt -cfschema ../service/cloudformation/schemas/AWS_Wisdom_AIPrompt.json -package wisdom -- ../aws/wisdom/ai_prompt_resource_gen.go ../aws/wisdom/ai_prompt_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_wisdom_ai_prompt_version -cfschema ../service/cloudformation/schemas/AWS_Wisdom_AIPromptVersion.json -package wisdom -- ../aws/wisdom/ai_prompt_version_resource_gen.go ../aws/wisdom/ai_prompt_version_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_wisdom_assistant -cfschema ../service/cloudformation/schemas/AWS_Wisdom_Assistant.json -package wisdom -- ../aws/wisdom/assistant_resource_gen.go ../aws/wisdom/assistant_resource_gen_test.go @@ -1278,6 +1291,7 @@ import ( _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/s3express" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/s3objectlambda" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/s3outposts" + _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/s3tables" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/sagemaker" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/scheduler" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/secretsmanager" diff --git a/internal/provider/singular_data_sources.go b/internal/provider/singular_data_sources.go index c4807ed46b..e3504cec7b 100644 --- a/internal/provider/singular_data_sources.go +++ b/internal/provider/singular_data_sources.go @@ -112,6 +112,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_backup_restore_testing_selection -cfschema ../service/cloudformation/schemas/AWS_Backup_RestoreTestingSelection.json -package backup ../aws/backup/restore_testing_selection_singular_data_source_gen.go ../aws/backup/restore_testing_selection_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_backupgateway_hypervisor -cfschema ../service/cloudformation/schemas/AWS_BackupGateway_Hypervisor.json -package backupgateway ../aws/backupgateway/hypervisor_singular_data_source_gen.go ../aws/backupgateway/hypervisor_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_batch_compute_environment -cfschema ../service/cloudformation/schemas/AWS_Batch_ComputeEnvironment.json -package batch ../aws/batch/compute_environment_singular_data_source_gen.go ../aws/batch/compute_environment_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_batch_job_definition -cfschema ../service/cloudformation/schemas/AWS_Batch_JobDefinition.json -package batch ../aws/batch/job_definition_singular_data_source_gen.go ../aws/batch/job_definition_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_batch_job_queue -cfschema ../service/cloudformation/schemas/AWS_Batch_JobQueue.json -package batch ../aws/batch/job_queue_singular_data_source_gen.go ../aws/batch/job_queue_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_batch_scheduling_policy -cfschema ../service/cloudformation/schemas/AWS_Batch_SchedulingPolicy.json -package batch ../aws/batch/scheduling_policy_singular_data_source_gen.go ../aws/batch/scheduling_policy_singular_data_source_gen_test.go //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 @@ -136,6 +137,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_cur_report_definition -cfschema ../service/cloudformation/schemas/AWS_CUR_ReportDefinition.json -package cur ../aws/cur/report_definition_singular_data_source_gen.go ../aws/cur/report_definition_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_cassandra_keyspace -cfschema ../service/cloudformation/schemas/AWS_Cassandra_Keyspace.json -package cassandra ../aws/cassandra/keyspace_singular_data_source_gen.go ../aws/cassandra/keyspace_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_cassandra_table -cfschema ../service/cloudformation/schemas/AWS_Cassandra_Table.json -package cassandra ../aws/cassandra/table_singular_data_source_gen.go ../aws/cassandra/table_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_cassandra_type -cfschema ../service/cloudformation/schemas/AWS_Cassandra_Type.json -package cassandra ../aws/cassandra/type_singular_data_source_gen.go ../aws/cassandra/type_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_certificatemanager_account -cfschema ../service/cloudformation/schemas/AWS_CertificateManager_Account.json -package certificatemanager ../aws/certificatemanager/account_singular_data_source_gen.go ../aws/certificatemanager/account_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_chatbot_custom_action -cfschema ../service/cloudformation/schemas/AWS_Chatbot_CustomAction.json -package chatbot ../aws/chatbot/custom_action_singular_data_source_gen.go ../aws/chatbot/custom_action_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_chatbot_microsoft_teams_channel_configuration -cfschema ../service/cloudformation/schemas/AWS_Chatbot_MicrosoftTeamsChannelConfiguration.json -package chatbot ../aws/chatbot/microsoft_teams_channel_configuration_singular_data_source_gen.go ../aws/chatbot/microsoft_teams_channel_configuration_singular_data_source_gen_test.go @@ -560,6 +562,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_iot_ca_certificate -cfschema ../service/cloudformation/schemas/AWS_IoT_CACertificate.json -package iot ../aws/iot/ca_certificate_singular_data_source_gen.go ../aws/iot/ca_certificate_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_iot_certificate -cfschema ../service/cloudformation/schemas/AWS_IoT_Certificate.json -package iot ../aws/iot/certificate_singular_data_source_gen.go ../aws/iot/certificate_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_iot_certificate_provider -cfschema ../service/cloudformation/schemas/AWS_IoT_CertificateProvider.json -package iot ../aws/iot/certificate_provider_singular_data_source_gen.go ../aws/iot/certificate_provider_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_iot_command -cfschema ../service/cloudformation/schemas/AWS_IoT_Command.json -package iot ../aws/iot/command_singular_data_source_gen.go ../aws/iot/command_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_iot_custom_metric -cfschema ../service/cloudformation/schemas/AWS_IoT_CustomMetric.json -package iot ../aws/iot/custom_metric_singular_data_source_gen.go ../aws/iot/custom_metric_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_iot_dimension -cfschema ../service/cloudformation/schemas/AWS_IoT_Dimension.json -package iot ../aws/iot/dimension_singular_data_source_gen.go ../aws/iot/dimension_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_iot_domain_configuration -cfschema ../service/cloudformation/schemas/AWS_IoT_DomainConfiguration.json -package iot ../aws/iot/domain_configuration_singular_data_source_gen.go ../aws/iot/domain_configuration_singular_data_source_gen_test.go @@ -758,6 +761,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_networkmanager_core_network -cfschema ../service/cloudformation/schemas/AWS_NetworkManager_CoreNetwork.json -package networkmanager ../aws/networkmanager/core_network_singular_data_source_gen.go ../aws/networkmanager/core_network_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_networkmanager_customer_gateway_association -cfschema ../service/cloudformation/schemas/AWS_NetworkManager_CustomerGatewayAssociation.json -package networkmanager ../aws/networkmanager/customer_gateway_association_singular_data_source_gen.go ../aws/networkmanager/customer_gateway_association_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_networkmanager_device -cfschema ../service/cloudformation/schemas/AWS_NetworkManager_Device.json -package networkmanager ../aws/networkmanager/device_singular_data_source_gen.go ../aws/networkmanager/device_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_networkmanager_direct_connect_gateway_attachment -cfschema ../service/cloudformation/schemas/AWS_NetworkManager_DirectConnectGatewayAttachment.json -package networkmanager ../aws/networkmanager/direct_connect_gateway_attachment_singular_data_source_gen.go ../aws/networkmanager/direct_connect_gateway_attachment_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_networkmanager_global_network -cfschema ../service/cloudformation/schemas/AWS_NetworkManager_GlobalNetwork.json -package networkmanager ../aws/networkmanager/global_network_singular_data_source_gen.go ../aws/networkmanager/global_network_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_networkmanager_link -cfschema ../service/cloudformation/schemas/AWS_NetworkManager_Link.json -package networkmanager ../aws/networkmanager/link_singular_data_source_gen.go ../aws/networkmanager/link_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_networkmanager_link_association -cfschema ../service/cloudformation/schemas/AWS_NetworkManager_LinkAssociation.json -package networkmanager ../aws/networkmanager/link_association_singular_data_source_gen.go ../aws/networkmanager/link_association_singular_data_source_gen_test.go @@ -817,6 +821,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_qbusiness_application -cfschema ../service/cloudformation/schemas/AWS_QBusiness_Application.json -package qbusiness ../aws/qbusiness/application_singular_data_source_gen.go ../aws/qbusiness/application_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_qbusiness_data_source -cfschema ../service/cloudformation/schemas/AWS_QBusiness_DataSource.json -package qbusiness ../aws/qbusiness/data_source_singular_data_source_gen.go ../aws/qbusiness/data_source_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_qbusiness_index -cfschema ../service/cloudformation/schemas/AWS_QBusiness_Index.json -package qbusiness ../aws/qbusiness/index_singular_data_source_gen.go ../aws/qbusiness/index_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_qbusiness_permission -cfschema ../service/cloudformation/schemas/AWS_QBusiness_Permission.json -package qbusiness ../aws/qbusiness/permission_singular_data_source_gen.go ../aws/qbusiness/permission_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_qbusiness_plugin -cfschema ../service/cloudformation/schemas/AWS_QBusiness_Plugin.json -package qbusiness ../aws/qbusiness/plugin_singular_data_source_gen.go ../aws/qbusiness/plugin_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_qbusiness_retriever -cfschema ../service/cloudformation/schemas/AWS_QBusiness_Retriever.json -package qbusiness ../aws/qbusiness/retriever_singular_data_source_gen.go ../aws/qbusiness/retriever_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_qbusiness_web_experience -cfschema ../service/cloudformation/schemas/AWS_QBusiness_WebExperience.json -package qbusiness ../aws/qbusiness/web_experience_singular_data_source_gen.go ../aws/qbusiness/web_experience_singular_data_source_gen_test.go @@ -832,6 +837,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_quicksight_topic -cfschema ../service/cloudformation/schemas/AWS_QuickSight_Topic.json -package quicksight ../aws/quicksight/topic_singular_data_source_gen.go ../aws/quicksight/topic_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_quicksight_vpc_connection -cfschema ../service/cloudformation/schemas/AWS_QuickSight_VPCConnection.json -package quicksight ../aws/quicksight/vpc_connection_singular_data_source_gen.go ../aws/quicksight/vpc_connection_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ram_permission -cfschema ../service/cloudformation/schemas/AWS_RAM_Permission.json -package ram ../aws/ram/permission_singular_data_source_gen.go ../aws/ram/permission_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_ram_resource_share -cfschema ../service/cloudformation/schemas/AWS_RAM_ResourceShare.json -package ram ../aws/ram/resource_share_singular_data_source_gen.go ../aws/ram/resource_share_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_rds_custom_db_engine_version -cfschema ../service/cloudformation/schemas/AWS_RDS_CustomDBEngineVersion.json -package rds ../aws/rds/custom_db_engine_version_singular_data_source_gen.go ../aws/rds/custom_db_engine_version_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_rds_db_cluster -cfschema ../service/cloudformation/schemas/AWS_RDS_DBCluster.json -package rds ../aws/rds/db_cluster_singular_data_source_gen.go ../aws/rds/db_cluster_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_rds_db_cluster_parameter_group -cfschema ../service/cloudformation/schemas/AWS_RDS_DBClusterParameterGroup.json -package rds ../aws/rds/db_cluster_parameter_group_singular_data_source_gen.go ../aws/rds/db_cluster_parameter_group_singular_data_source_gen_test.go @@ -925,6 +931,8 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_s3outposts_bucket -cfschema ../service/cloudformation/schemas/AWS_S3Outposts_Bucket.json -package s3outposts ../aws/s3outposts/bucket_singular_data_source_gen.go ../aws/s3outposts/bucket_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_s3outposts_bucket_policy -cfschema ../service/cloudformation/schemas/AWS_S3Outposts_BucketPolicy.json -package s3outposts ../aws/s3outposts/bucket_policy_singular_data_source_gen.go ../aws/s3outposts/bucket_policy_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_s3outposts_endpoint -cfschema ../service/cloudformation/schemas/AWS_S3Outposts_Endpoint.json -package s3outposts ../aws/s3outposts/endpoint_singular_data_source_gen.go ../aws/s3outposts/endpoint_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_s3tables_table_bucket -cfschema ../service/cloudformation/schemas/AWS_S3Tables_TableBucket.json -package s3tables ../aws/s3tables/table_bucket_singular_data_source_gen.go ../aws/s3tables/table_bucket_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_s3tables_table_bucket_policy -cfschema ../service/cloudformation/schemas/AWS_S3Tables_TableBucketPolicy.json -package s3tables ../aws/s3tables/table_bucket_policy_singular_data_source_gen.go ../aws/s3tables/table_bucket_policy_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ses_configuration_set -cfschema ../service/cloudformation/schemas/AWS_SES_ConfigurationSet.json -package ses ../aws/ses/configuration_set_singular_data_source_gen.go ../aws/ses/configuration_set_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ses_configuration_set_event_destination -cfschema ../service/cloudformation/schemas/AWS_SES_ConfigurationSetEventDestination.json -package ses ../aws/ses/configuration_set_event_destination_singular_data_source_gen.go ../aws/ses/configuration_set_event_destination_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ses_contact_list -cfschema ../service/cloudformation/schemas/AWS_SES_ContactList.json -package ses ../aws/ses/contact_list_singular_data_source_gen.go ../aws/ses/contact_list_singular_data_source_gen_test.go @@ -1049,10 +1057,13 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_vpclattice_access_log_subscription -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_AccessLogSubscription.json -package vpclattice ../aws/vpclattice/access_log_subscription_singular_data_source_gen.go ../aws/vpclattice/access_log_subscription_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_vpclattice_auth_policy -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_AuthPolicy.json -package vpclattice ../aws/vpclattice/auth_policy_singular_data_source_gen.go ../aws/vpclattice/auth_policy_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_vpclattice_listener -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_Listener.json -package vpclattice ../aws/vpclattice/listener_singular_data_source_gen.go ../aws/vpclattice/listener_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_vpclattice_resource_configuration -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_ResourceConfiguration.json -package vpclattice ../aws/vpclattice/resource_configuration_singular_data_source_gen.go ../aws/vpclattice/resource_configuration_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_vpclattice_resource_gateway -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_ResourceGateway.json -package vpclattice ../aws/vpclattice/resource_gateway_singular_data_source_gen.go ../aws/vpclattice/resource_gateway_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_vpclattice_resource_policy -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_ResourcePolicy.json -package vpclattice ../aws/vpclattice/resource_policy_singular_data_source_gen.go ../aws/vpclattice/resource_policy_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_vpclattice_rule -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_Rule.json -package vpclattice ../aws/vpclattice/rule_singular_data_source_gen.go ../aws/vpclattice/rule_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_vpclattice_service -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_Service.json -package vpclattice ../aws/vpclattice/service_singular_data_source_gen.go ../aws/vpclattice/service_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_vpclattice_service_network -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_ServiceNetwork.json -package vpclattice ../aws/vpclattice/service_network_singular_data_source_gen.go ../aws/vpclattice/service_network_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_vpclattice_service_network_resource_association -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_ServiceNetworkResourceAssociation.json -package vpclattice ../aws/vpclattice/service_network_resource_association_singular_data_source_gen.go ../aws/vpclattice/service_network_resource_association_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_vpclattice_service_network_service_association -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_ServiceNetworkServiceAssociation.json -package vpclattice ../aws/vpclattice/service_network_service_association_singular_data_source_gen.go ../aws/vpclattice/service_network_service_association_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_vpclattice_service_network_vpc_association -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_ServiceNetworkVpcAssociation.json -package vpclattice ../aws/vpclattice/service_network_vpc_association_singular_data_source_gen.go ../aws/vpclattice/service_network_vpc_association_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_vpclattice_target_group -cfschema ../service/cloudformation/schemas/AWS_VpcLattice_TargetGroup.json -package vpclattice ../aws/vpclattice/target_group_singular_data_source_gen.go ../aws/vpclattice/target_group_singular_data_source_gen_test.go @@ -1062,6 +1073,8 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_wafv2_web_acl_association -cfschema ../service/cloudformation/schemas/AWS_WAFv2_WebACLAssociation.json -package wafv2 ../aws/wafv2/web_acl_association_singular_data_source_gen.go ../aws/wafv2/web_acl_association_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_wisdom_ai_agent -cfschema ../service/cloudformation/schemas/AWS_Wisdom_AIAgent.json -package wisdom ../aws/wisdom/ai_agent_singular_data_source_gen.go ../aws/wisdom/ai_agent_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_wisdom_ai_agent_version -cfschema ../service/cloudformation/schemas/AWS_Wisdom_AIAgentVersion.json -package wisdom ../aws/wisdom/ai_agent_version_singular_data_source_gen.go ../aws/wisdom/ai_agent_version_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_wisdom_ai_guardrail -cfschema ../service/cloudformation/schemas/AWS_Wisdom_AIGuardrail.json -package wisdom ../aws/wisdom/ai_guardrail_singular_data_source_gen.go ../aws/wisdom/ai_guardrail_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_wisdom_ai_guardrail_version -cfschema ../service/cloudformation/schemas/AWS_Wisdom_AIGuardrailVersion.json -package wisdom ../aws/wisdom/ai_guardrail_version_singular_data_source_gen.go ../aws/wisdom/ai_guardrail_version_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_wisdom_ai_prompt -cfschema ../service/cloudformation/schemas/AWS_Wisdom_AIPrompt.json -package wisdom ../aws/wisdom/ai_prompt_singular_data_source_gen.go ../aws/wisdom/ai_prompt_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_wisdom_ai_prompt_version -cfschema ../service/cloudformation/schemas/AWS_Wisdom_AIPromptVersion.json -package wisdom ../aws/wisdom/ai_prompt_version_singular_data_source_gen.go ../aws/wisdom/ai_prompt_version_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_wisdom_assistant -cfschema ../service/cloudformation/schemas/AWS_Wisdom_Assistant.json -package wisdom ../aws/wisdom/assistant_singular_data_source_gen.go ../aws/wisdom/assistant_singular_data_source_gen_test.go @@ -1278,6 +1291,7 @@ import ( _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/s3express" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/s3objectlambda" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/s3outposts" + _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/s3tables" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/sagemaker" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/scheduler" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/secretsmanager" diff --git a/internal/service/cloudformation/schemas/AWS_AmazonMQ_Configuration.json b/internal/service/cloudformation/schemas/AWS_AmazonMQ_Configuration.json index 090459a06d..38a83f2b99 100644 --- a/internal/service/cloudformation/schemas/AWS_AmazonMQ_Configuration.json +++ b/internal/service/cloudformation/schemas/AWS_AmazonMQ_Configuration.json @@ -81,7 +81,6 @@ }, "required": [ "EngineType", - "Data", "Name" ], "propertyTransform": { diff --git a/internal/service/cloudformation/schemas/AWS_AppConfig_ConfigurationProfile.json b/internal/service/cloudformation/schemas/AWS_AppConfig_ConfigurationProfile.json index c874b81956..7e07e2f9e7 100644 --- a/internal/service/cloudformation/schemas/AWS_AppConfig_ConfigurationProfile.json +++ b/internal/service/cloudformation/schemas/AWS_AppConfig_ConfigurationProfile.json @@ -1,5 +1,4 @@ { - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-appconfig", "tagging": { "permissions": [ "appconfig:TagResource", @@ -12,6 +11,27 @@ "tagProperty": "/properties/Tags", "cloudFormationSystemTags": true }, + "typeName": "AWS::AppConfig::ConfigurationProfile", + "readOnlyProperties": [ + "/properties/ConfigurationProfileId", + "/properties/KmsKeyArn" + ], + "description": "An example resource schema demonstrating some basic constructs and validation rules.", + "createOnlyProperties": [ + "/properties/LocationUri", + "/properties/Type", + "/properties/ApplicationId" + ], + "primaryIdentifier": [ + "/properties/ApplicationId", + "/properties/ConfigurationProfileId" + ], + "required": [ + "LocationUri", + "ApplicationId", + "Name" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-appconfig", "handlers": { "read": { "permissions": [ @@ -57,22 +77,10 @@ ] } }, - "typeName": "AWS::AppConfig::ConfigurationProfile", - "readOnlyProperties": [ - "/properties/ConfigurationProfileId", - "/properties/KmsKeyArn" - ], - "description": "An example resource schema demonstrating some basic constructs and validation rules.", - "createOnlyProperties": [ - "/properties/LocationUri", - "/properties/Type", - "/properties/ApplicationId" + "writeOnlyProperties": [ + "/properties/DeletionProtectionCheck" ], "additionalProperties": false, - "primaryIdentifier": [ - "/properties/ApplicationId", - "/properties/ConfigurationProfileId" - ], "definitions": { "Validators": { "description": "A list of methods for validating the configuration.", @@ -162,6 +170,15 @@ "type": "string", "maxLength": 2048 }, + "DeletionProtectionCheck": { + "description": "On resource deletion this controls whether the Deletion Protection check should be applied, bypassed, or (the default) whether the behavior should be controlled by the account-level Deletion Protection setting. See https://docs.aws.amazon.com/appconfig/latest/userguide/deletion-protection.html", + "type": "string", + "enum": [ + "ACCOUNT_DEFAULT", + "APPLY", + "BYPASS" + ] + }, "ApplicationId": { "pattern": "[a-z0-9]{4,7}", "description": "The application ID.", @@ -182,10 +199,5 @@ "type": "string", "maxLength": 128 } - }, - "required": [ - "LocationUri", - "ApplicationId", - "Name" - ] + } } diff --git a/internal/service/cloudformation/schemas/AWS_AppConfig_Environment.json b/internal/service/cloudformation/schemas/AWS_AppConfig_Environment.json index 5b936e9497..9134413794 100644 --- a/internal/service/cloudformation/schemas/AWS_AppConfig_Environment.json +++ b/internal/service/cloudformation/schemas/AWS_AppConfig_Environment.json @@ -1,5 +1,4 @@ { - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-appconfig.git", "tagging": { "permissions": [ "appconfig:TagResource", @@ -12,6 +11,23 @@ "tagProperty": "/properties/Tags", "cloudFormationSystemTags": true }, + "typeName": "AWS::AppConfig::Environment", + "readOnlyProperties": [ + "/properties/EnvironmentId" + ], + "description": "Resource Type definition for AWS::AppConfig::Environment", + "createOnlyProperties": [ + "/properties/ApplicationId" + ], + "primaryIdentifier": [ + "/properties/ApplicationId", + "/properties/EnvironmentId" + ], + "required": [ + "Name", + "ApplicationId" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-appconfig.git", "handlers": { "read": { "permissions": [ @@ -58,19 +74,10 @@ ] } }, - "typeName": "AWS::AppConfig::Environment", - "readOnlyProperties": [ - "/properties/EnvironmentId" - ], - "description": "Resource Type definition for AWS::AppConfig::Environment", - "createOnlyProperties": [ - "/properties/ApplicationId" + "writeOnlyProperties": [ + "/properties/DeletionProtectionCheck" ], "additionalProperties": false, - "primaryIdentifier": [ - "/properties/ApplicationId", - "/properties/EnvironmentId" - ], "definitions": { "Monitor": { "description": "Amazon CloudWatch alarm to monitor during the deployment process.", @@ -149,6 +156,15 @@ "$ref": "#/definitions/Monitor" } }, + "DeletionProtectionCheck": { + "description": "On resource deletion this controls whether the Deletion Protection check should be applied, bypassed, or (the default) whether the behavior should be controlled by the account-level Deletion Protection setting. See https://docs.aws.amazon.com/appconfig/latest/userguide/deletion-protection.html", + "type": "string", + "enum": [ + "ACCOUNT_DEFAULT", + "APPLY", + "BYPASS" + ] + }, "ApplicationId": { "pattern": "[a-z0-9]{4,7}", "description": "The application ID.", @@ -169,9 +185,5 @@ "type": "string", "maxLength": 64 } - }, - "required": [ - "Name", - "ApplicationId" - ] + } } diff --git a/internal/service/cloudformation/schemas/AWS_ApplicationAutoScaling_ScalingPolicy.json b/internal/service/cloudformation/schemas/AWS_ApplicationAutoScaling_ScalingPolicy.json index 419b0bcc74..be6207761a 100644 --- a/internal/service/cloudformation/schemas/AWS_ApplicationAutoScaling_ScalingPolicy.json +++ b/internal/service/cloudformation/schemas/AWS_ApplicationAutoScaling_ScalingPolicy.json @@ -76,16 +76,16 @@ "additionalProperties": false, "definitions": { "PredictiveScalingMetricDataQuery": { - "description": "", + "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.", "additionalProperties": false, "type": "object", "properties": { "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" }, "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 ``MetricDataQuery`` object, you must specify either ``Expression`` or ``MetricStat``, but not both.", "type": "string" }, "Label": { @@ -93,11 +93,11 @@ "type": "string" }, "MetricStat": { - "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.", "$ref": "#/definitions/PredictiveScalingMetricStat" }, "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" } } @@ -122,7 +122,7 @@ } }, "PredictiveScalingMetricDimension": { - "description": "", + "description": "Describes the dimension of a metric.", "additionalProperties": false, "type": "object", "properties": { @@ -152,12 +152,13 @@ } }, "PredictiveScalingCustomizedCapacityMetric": { - "description": "", + "description": "Represents a CloudWatch metric of your choosing for a predictive scaling policy.", "additionalProperties": false, "type": "object", "properties": { "MetricDataQueries": { "uniqueItems": true, + "description": "One or more metric data queries to provide data points for a metric specification.", "insertionOrder": false, "type": "array", "items": { @@ -197,12 +198,13 @@ } }, "PredictiveScalingCustomizedScalingMetric": { - "description": "", + "description": "One or more metric data queries to provide data points for a metric specification.", "additionalProperties": false, "type": "object", "properties": { "MetricDataQueries": { "uniqueItems": true, + "description": "One or more metric data queries to provide data points for a metric specification.", "insertionOrder": false, "type": "array", "items": { @@ -256,14 +258,16 @@ } }, "PredictiveScalingPredefinedLoadMetric": { - "description": "", + "description": "Describes a load metric for a predictive scaling policy. \n When returned in the output of ``DescribePolicies``, it indicates that a predictive scaling policy uses individually specified load and scaling metrics instead of a metric pair.", "additionalProperties": false, "type": "object", "properties": { "PredefinedMetricType": { + "description": "The metric type.", "type": "string" }, "ResourceLabel": { + "description": "A label that uniquely identifies a target group.", "type": "string" } }, @@ -306,14 +310,16 @@ ] }, "PredictiveScalingPredefinedMetricPair": { - "description": "", + "description": "Represents a metric pair for a predictive scaling policy.", "additionalProperties": false, "type": "object", "properties": { "PredefinedMetricType": { + "description": "Indicates which metrics to use. There are two different types of metrics for each metric type: one is a load metric and one is a scaling metric.", "type": "string" }, "ResourceLabel": { + "description": "A label that uniquely identifies a specific target group from which to determine the total and average request count.", "type": "string" } }, @@ -381,21 +387,25 @@ ] }, "PredictiveScalingPolicyConfiguration": { - "description": "", + "description": "Represents a predictive scaling policy configuration.", "additionalProperties": false, "type": "object", "properties": { "MaxCapacityBreachBehavior": { + "description": "Defines the behavior that should be applied if the forecast capacity approaches or exceeds the maximum capacity. Defaults to ``HonorMaxCapacity`` if not specified.", "type": "string" }, "MaxCapacityBuffer": { + "description": "The size of the capacity buffer to use when the forecast capacity is close to or exceeds the maximum capacity. The value is specified as a percentage relative to the forecast capacity. For example, if the buffer is 10, this means a 10 percent buffer, such that if the forecast capacity is 50, and the maximum capacity is 40, then the effective maximum capacity is 55. \n Required if the ``MaxCapacityBreachBehavior`` property is set to ``IncreaseMaxCapacity``, and cannot be used otherwise.", "type": "integer" }, "Mode": { + "description": "The predictive scaling mode. Defaults to ``ForecastOnly`` if not specified.", "type": "string" }, "MetricSpecifications": { "uniqueItems": true, + "description": "This structure includes the metrics and target utilization to use for predictive scaling. \n This is an array, but we currently only support a single metric specification. That is, you can specify a target value and a single metric pair, or a target value and one scaling metric and one load metric.", "insertionOrder": false, "type": "array", "items": { @@ -403,6 +413,7 @@ } }, "SchedulingBufferTime": { + "description": "The amount of time, in seconds, that the start time can be advanced. \n The value must be less than the forecast interval duration of 3600 seconds (60 minutes). Defaults to 300 seconds if not specified.", "type": "integer" } }, @@ -411,14 +422,16 @@ ] }, "PredictiveScalingPredefinedScalingMetric": { - "description": "", + "description": "Describes a scaling metric for a predictive scaling policy. \n When returned in the output of ``DescribePolicies``, it indicates that a predictive scaling policy uses individually specified load and scaling metrics instead of a metric pair.", "additionalProperties": false, "type": "object", "properties": { "PredefinedMetricType": { + "description": "The metric type.", "type": "string" }, "ResourceLabel": { + "description": "A label that uniquely identifies a specific target group from which to determine the average request count.", "type": "string" } }, @@ -427,29 +440,36 @@ ] }, "PredictiveScalingMetricSpecification": { - "description": "", + "description": "This structure specifies the metrics and target utilization settings for a predictive scaling policy. \n You must specify either a metric pair, or a load metric and a scaling metric individually. Specifying a metric pair instead of individual metrics provides a simpler way to configure metrics for a scaling policy. You choose the metric pair, and the policy automatically knows the correct sum and average statistics to use for the load metric and the scaling metric.", "additionalProperties": false, "type": "object", "properties": { "CustomizedLoadMetricSpecification": { + "description": "The customized load metric specification.", "$ref": "#/definitions/PredictiveScalingCustomizedLoadMetric" }, "PredefinedLoadMetricSpecification": { + "description": "The predefined load metric specification.", "$ref": "#/definitions/PredictiveScalingPredefinedLoadMetric" }, "TargetValue": { + "description": "Specifies the target utilization.", "type": "number" }, "PredefinedScalingMetricSpecification": { + "description": "The predefined scaling metric specification.", "$ref": "#/definitions/PredictiveScalingPredefinedScalingMetric" }, "CustomizedCapacityMetricSpecification": { + "description": "The customized capacity metric specification.", "$ref": "#/definitions/PredictiveScalingCustomizedCapacityMetric" }, "CustomizedScalingMetricSpecification": { + "description": "The customized scaling metric specification.", "$ref": "#/definitions/PredictiveScalingCustomizedScalingMetric" }, "PredefinedMetricPairSpecification": { + "description": "The predefined metric pair specification that determines the appropriate scaling metric and load metric to use.", "$ref": "#/definitions/PredictiveScalingPredefinedMetricPair" } }, @@ -458,7 +478,7 @@ ] }, "PredictiveScalingMetric": { - "description": "", + "description": "Describes the scaling metric.", "additionalProperties": false, "type": "object", "properties": { @@ -468,7 +488,7 @@ }, "Dimensions": { "uniqueItems": false, - "description": "The dimensions for the metric.", + "description": "Describes the dimensions of the metric.", "insertionOrder": false, "type": "array", "items": { @@ -482,12 +502,13 @@ } }, "PredictiveScalingCustomizedLoadMetric": { - "description": "", + "description": "The customized load metric specification.", "additionalProperties": false, "type": "object", "properties": { "MetricDataQueries": { "uniqueItems": true, + "description": "", "insertionOrder": false, "type": "array", "items": { @@ -524,20 +545,20 @@ } }, "PredictiveScalingMetricStat": { - "description": "", + "description": "This structure defines the CloudWatch metric to return, along with the statistic and unit.", "additionalProperties": false, "type": "object", "properties": { "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 metrics for predictive scaling are ``Average`` and ``Sum``.", "type": "string" }, "Metric": { - "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).", "$ref": "#/definitions/PredictiveScalingMetric" }, "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" } } @@ -613,7 +634,7 @@ "$ref": "#/definitions/StepScalingPolicyConfiguration" }, "PredictiveScalingPolicyConfiguration": { - "description": "", + "description": "The predictive scaling policy configuration.", "$ref": "#/definitions/PredictiveScalingPolicyConfiguration" } } diff --git a/internal/service/cloudformation/schemas/AWS_Backup_BackupSelection.json b/internal/service/cloudformation/schemas/AWS_Backup_BackupSelection.json index 97a86cbef9..8e5e2f5be9 100644 --- a/internal/service/cloudformation/schemas/AWS_Backup_BackupSelection.json +++ b/internal/service/cloudformation/schemas/AWS_Backup_BackupSelection.json @@ -172,7 +172,8 @@ }, "list": { "permissions": [ - "backup:ListBackupSelections" + "backup:ListBackupSelections", + "backup:ListBackupPlans" ] } } diff --git a/internal/service/cloudformation/schemas/AWS_Backup_RestoreTestingSelection.json b/internal/service/cloudformation/schemas/AWS_Backup_RestoreTestingSelection.json index 64f85212f2..9fe3740921 100644 --- a/internal/service/cloudformation/schemas/AWS_Backup_RestoreTestingSelection.json +++ b/internal/service/cloudformation/schemas/AWS_Backup_RestoreTestingSelection.json @@ -134,7 +134,8 @@ }, "list": { "permissions": [ - "backup:ListRestoreTestingSelections" + "backup:ListRestoreTestingSelections", + "backup:ListRestoreTestingPlans" ], "timeoutInMinutes": 5 } diff --git a/internal/service/cloudformation/schemas/AWS_Batch_JobDefinition.json b/internal/service/cloudformation/schemas/AWS_Batch_JobDefinition.json new file mode 100644 index 0000000000..0605b1ab39 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Batch_JobDefinition.json @@ -0,0 +1,1235 @@ +{ + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "tagging": { + "permissions": [ + "Batch:TagResource", + "Batch:UntagResource" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true + }, + "handlers": { + "read": { + "permissions": [ + "Batch:DescribeJobDefinitions" + ] + }, + "create": { + "permissions": [ + "Batch:RegisterJobDefinition", + "Batch:TagResource", + "Batch:DescribeJobDefinitions", + "Iam:PassRole" + ] + }, + "update": { + "permissions": [ + "Batch:DescribeJobDefinitions", + "Batch:RegisterJobDefinition", + "Batch:DeregisterJobDefinition", + "Batch:TagResource", + "Batch:UntagResource", + "Iam:PassRole" + ] + }, + "list": { + "permissions": [ + "Batch:DescribeJobDefinitions" + ] + }, + "delete": { + "permissions": [ + "Batch:DescribeJobDefinitions", + "Batch:DeregisterJobDefinition", + "Iam:PassRole" + ] + } + }, + "typeName": "AWS::Batch::JobDefinition", + "description": "Resource Type definition for AWS::Batch::JobDefinition", + "createOnlyProperties": [ + "/properties/JobDefinitionName" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/JobDefinitionName" + ], + "definitions": { + "JobTimeout": { + "additionalProperties": false, + "type": "object", + "properties": { + "AttemptDurationSeconds": { + "type": "integer" + } + } + }, + "EksContainerEnvironmentVariable": { + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ] + }, + "NodeRangeProperty": { + "additionalProperties": false, + "type": "object", + "properties": { + "Container": { + "$ref": "#/definitions/MultiNodeContainerProperties" + }, + "TargetNodes": { + "type": "string" + }, + "EcsProperties": { + "$ref": "#/definitions/MultiNodeEcsProperties" + }, + "InstanceTypes": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "type": "string" + } + }, + "EksProperties": { + "$ref": "#/definitions/EksProperties" + } + }, + "required": [ + "TargetNodes" + ] + }, + "EksEmptyDir": { + "additionalProperties": false, + "type": "object", + "properties": { + "Medium": { + "type": "string" + }, + "SizeLimit": { + "type": "string" + } + } + }, + "LogConfiguration": { + "additionalProperties": false, + "type": "object", + "properties": { + "SecretOptions": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Secret" + } + }, + "Options": { + "patternProperties": { + "": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "LogDriver": { + "type": "string" + } + }, + "required": [ + "LogDriver" + ] + }, + "RuntimePlatform": { + "additionalProperties": false, + "type": "object", + "properties": { + "OperatingSystemFamily": { + "type": "string" + }, + "CpuArchitecture": { + "type": "string" + } + } + }, + "MultiNodeEcsTaskProperties": { + "additionalProperties": false, + "type": "object", + "properties": { + "ExecutionRoleArn": { + "type": "string" + }, + "TaskRoleArn": { + "type": "string" + }, + "IpcMode": { + "type": "string" + }, + "Volumes": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Volume" + } + }, + "Containers": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/TaskContainerProperties" + } + }, + "PidMode": { + "type": "string" + } + } + }, + "NodeProperties": { + "additionalProperties": false, + "type": "object", + "properties": { + "MainNode": { + "type": "integer" + }, + "NodeRangeProperties": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/NodeRangeProperty" + } + }, + "NumNodes": { + "type": "integer" + } + }, + "required": [ + "NumNodes", + "MainNode", + "NodeRangeProperties" + ] + }, + "Tmpfs": { + "additionalProperties": false, + "type": "object", + "properties": { + "Size": { + "type": "integer" + }, + "ContainerPath": { + "type": "string" + }, + "MountOptions": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "ContainerPath", + "Size" + ] + }, + "TaskContainerDependency": { + "additionalProperties": false, + "type": "object", + "properties": { + "Condition": { + "type": "string" + }, + "ContainerName": { + "type": "string" + } + }, + "required": [ + "ContainerName", + "Condition" + ] + }, + "ContainerProperties": { + "additionalProperties": false, + "type": "object", + "properties": { + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "User": { + "type": "string" + }, + "Secrets": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Secret" + } + }, + "Memory": { + "type": "integer" + }, + "Privileged": { + "type": "boolean" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "FargatePlatformConfiguration": { + "additionalProperties": false, + "type": "object", + "properties": { + "PlatformVersion": { + "type": "string" + } + } + }, + "JobRoleArn": { + "type": "string" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "Vcpus": { + "type": "integer" + }, + "Image": { + "type": "string" + }, + "ResourceRequirements": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/ResourceRequirement" + } + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "MountPoints": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/MountPoint" + } + }, + "ExecutionRoleArn": { + "type": "string" + }, + "RuntimePlatform": { + "$ref": "#/definitions/RuntimePlatform" + }, + "Volumes": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Volume" + } + }, + "Command": { + "uniqueItems": false, + "insertionOrder": true, + "type": "array", + "items": { + "type": "string" + } + }, + "Environment": { + "uniqueItems": false, + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/Environment" + } + }, + "Ulimits": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Ulimit" + } + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "EphemeralStorage": { + "$ref": "#/definitions/EphemeralStorage" + } + }, + "required": [ + "Image" + ] + }, + "EcsProperties": { + "additionalProperties": false, + "type": "object", + "properties": { + "TaskProperties": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/EcsTaskProperties" + } + } + }, + "required": [ + "TaskProperties" + ] + }, + "EksContainerResourceRequirements": { + "additionalProperties": false, + "type": "object", + "properties": { + "Limits": { + "patternProperties": { + "": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Requests": { + "patternProperties": { + "": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } + }, + "NetworkConfiguration": { + "additionalProperties": false, + "type": "object", + "properties": { + "AssignPublicIp": { + "type": "string" + } + } + }, + "EcsTaskProperties": { + "additionalProperties": false, + "type": "object", + "properties": { + "PlatformVersion": { + "type": "string" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "RuntimePlatform": { + "$ref": "#/definitions/RuntimePlatform" + }, + "TaskRoleArn": { + "type": "string" + }, + "IpcMode": { + "type": "string" + }, + "Volumes": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Volume" + } + }, + "Containers": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/TaskContainerProperties" + } + }, + "NetworkConfiguration": { + "$ref": "#/definitions/NetworkConfiguration" + }, + "PidMode": { + "type": "string" + }, + "EphemeralStorage": { + "$ref": "#/definitions/EphemeralStorage" + } + } + }, + "EksContainerSecurityContext": { + "additionalProperties": false, + "type": "object", + "properties": { + "RunAsUser": { + "type": "integer" + }, + "AllowPrivilegeEscalation": { + "type": "boolean" + }, + "RunAsNonRoot": { + "type": "boolean" + }, + "Privileged": { + "type": "boolean" + }, + "ReadOnlyRootFilesystem": { + "type": "boolean" + }, + "RunAsGroup": { + "type": "integer" + } + } + }, + "TaskContainerProperties": { + "additionalProperties": false, + "type": "object", + "properties": { + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "User": { + "type": "string" + }, + "Secrets": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Secret" + } + }, + "Privileged": { + "type": "boolean" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "Image": { + "type": "string" + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "Essential": { + "type": "boolean" + }, + "ResourceRequirements": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/ResourceRequirement" + } + }, + "Name": { + "type": "string" + }, + "MountPoints": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/MountPoint" + } + }, + "DependsOn": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/TaskContainerDependency" + } + }, + "Command": { + "uniqueItems": false, + "insertionOrder": true, + "type": "array", + "items": { + "type": "string" + } + }, + "Environment": { + "uniqueItems": false, + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/Environment" + } + }, + "Ulimits": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Ulimit" + } + } + }, + "required": [ + "Image" + ] + }, + "EksMetadata": { + "additionalProperties": false, + "type": "object", + "properties": { + "Labels": { + "patternProperties": { + "": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + } + } + }, + "EksSecret": { + "additionalProperties": false, + "type": "object", + "properties": { + "SecretName": { + "type": "string" + }, + "Optional": { + "type": "boolean" + } + }, + "required": [ + "SecretName" + ] + }, + "RepositoryCredentials": { + "additionalProperties": false, + "type": "object", + "properties": { + "CredentialsParameter": { + "type": "string" + } + }, + "required": [ + "CredentialsParameter" + ] + }, + "EFSVolumeConfiguration": { + "additionalProperties": false, + "type": "object", + "properties": { + "TransitEncryption": { + "type": "string" + }, + "AuthorizationConfig": { + "$ref": "#/definitions/EFSAuthorizationConfig" + }, + "FileSystemId": { + "type": "string" + }, + "RootDirectory": { + "type": "string" + }, + "TransitEncryptionPort": { + "type": "integer" + } + }, + "required": [ + "FileSystemId" + ] + }, + "ImagePullSecret": { + "additionalProperties": false, + "type": "object", + "properties": { + "Name": { + "type": "string" + } + } + }, + "EvaluateOnExit": { + "additionalProperties": false, + "type": "object", + "properties": { + "Action": { + "type": "string" + }, + "OnExitCode": { + "type": "string" + }, + "OnReason": { + "type": "string" + }, + "OnStatusReason": { + "type": "string" + } + }, + "required": [ + "Action" + ] + }, + "MultiNodeEcsProperties": { + "additionalProperties": false, + "type": "object", + "properties": { + "TaskProperties": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/MultiNodeEcsTaskProperties" + } + } + }, + "required": [ + "TaskProperties" + ] + }, + "Device": { + "additionalProperties": false, + "type": "object", + "properties": { + "HostPath": { + "type": "string" + }, + "Permissions": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "type": "string" + } + }, + "ContainerPath": { + "type": "string" + } + } + }, + "LinuxParameters": { + "additionalProperties": false, + "type": "object", + "properties": { + "Swappiness": { + "type": "integer" + }, + "Tmpfs": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tmpfs" + } + }, + "SharedMemorySize": { + "type": "integer" + }, + "Devices": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Device" + } + }, + "InitProcessEnabled": { + "type": "boolean" + }, + "MaxSwap": { + "type": "integer" + } + } + }, + "Ulimit": { + "additionalProperties": false, + "type": "object", + "properties": { + "SoftLimit": { + "type": "integer" + }, + "HardLimit": { + "type": "integer" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "HardLimit", + "Name", + "SoftLimit" + ] + }, + "Host": { + "additionalProperties": false, + "type": "object", + "properties": { + "SourcePath": { + "type": "string" + } + } + }, + "EFSAuthorizationConfig": { + "additionalProperties": false, + "type": "object", + "properties": { + "Iam": { + "type": "string" + }, + "AccessPointId": { + "type": "string" + } + } + }, + "EksVolume": { + "additionalProperties": false, + "type": "object", + "properties": { + "Secret": { + "$ref": "#/definitions/EksSecret" + }, + "EmptyDir": { + "$ref": "#/definitions/EksEmptyDir" + }, + "HostPath": { + "$ref": "#/definitions/EksHostPath" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ] + }, + "EksContainerVolumeMount": { + "additionalProperties": false, + "type": "object", + "properties": { + "MountPath": { + "type": "string" + }, + "ReadOnly": { + "type": "boolean" + }, + "Name": { + "type": "string" + } + } + }, + "EksProperties": { + "additionalProperties": false, + "type": "object", + "properties": { + "PodProperties": { + "$ref": "#/definitions/EksPodProperties" + } + } + }, + "MultiNodeContainerProperties": { + "additionalProperties": false, + "type": "object", + "properties": { + "RepositoryCredentials": { + "$ref": "#/definitions/RepositoryCredentials" + }, + "User": { + "type": "string" + }, + "Secrets": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Secret" + } + }, + "Memory": { + "type": "integer" + }, + "Privileged": { + "type": "boolean" + }, + "LinuxParameters": { + "$ref": "#/definitions/LinuxParameters" + }, + "JobRoleArn": { + "type": "string" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "Vcpus": { + "type": "integer" + }, + "Image": { + "type": "string" + }, + "ResourceRequirements": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/ResourceRequirement" + } + }, + "LogConfiguration": { + "$ref": "#/definitions/LogConfiguration" + }, + "MountPoints": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/MountPoint" + } + }, + "ExecutionRoleArn": { + "type": "string" + }, + "RuntimePlatform": { + "$ref": "#/definitions/RuntimePlatform" + }, + "Volumes": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Volume" + } + }, + "Command": { + "uniqueItems": false, + "insertionOrder": true, + "type": "array", + "items": { + "type": "string" + } + }, + "Environment": { + "uniqueItems": false, + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/Environment" + } + }, + "Ulimits": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Ulimit" + } + }, + "InstanceType": { + "type": "string" + }, + "EphemeralStorage": { + "$ref": "#/definitions/EphemeralStorage" + } + }, + "required": [ + "Image" + ] + }, + "MountPoint": { + "additionalProperties": false, + "type": "object", + "properties": { + "ReadOnly": { + "type": "boolean" + }, + "SourceVolume": { + "type": "string" + }, + "ContainerPath": { + "type": "string" + } + } + }, + "Secret": { + "additionalProperties": false, + "type": "object", + "properties": { + "ValueFrom": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ] + }, + "Volume": { + "additionalProperties": false, + "type": "object", + "properties": { + "Host": { + "$ref": "#/definitions/Host" + }, + "EfsVolumeConfiguration": { + "$ref": "#/definitions/EFSVolumeConfiguration" + }, + "Name": { + "type": "string" + } + } + }, + "EksHostPath": { + "additionalProperties": false, + "type": "object", + "properties": { + "Path": { + "type": "string" + } + } + }, + "Environment": { + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "type": "string" + }, + "Name": { + "type": "string" + } + } + }, + "ResourceRequirement": { + "additionalProperties": false, + "type": "object", + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + } + }, + "EphemeralStorage": { + "additionalProperties": false, + "type": "object", + "properties": { + "SizeInGiB": { + "type": "integer" + } + }, + "required": [ + "SizeInGiB" + ] + }, + "EksContainer": { + "additionalProperties": false, + "type": "object", + "properties": { + "Args": { + "uniqueItems": false, + "insertionOrder": true, + "type": "array", + "items": { + "type": "string" + } + }, + "VolumeMounts": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/EksContainerVolumeMount" + } + }, + "ImagePullPolicy": { + "type": "string" + }, + "Command": { + "uniqueItems": false, + "insertionOrder": true, + "type": "array", + "items": { + "type": "string" + } + }, + "SecurityContext": { + "$ref": "#/definitions/EksContainerSecurityContext" + }, + "Resources": { + "$ref": "#/definitions/EksContainerResourceRequirements" + }, + "Image": { + "type": "string" + }, + "Env": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/EksContainerEnvironmentVariable" + } + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Image" + ] + }, + "RetryStrategy": { + "additionalProperties": false, + "type": "object", + "properties": { + "EvaluateOnExit": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/EvaluateOnExit" + } + }, + "Attempts": { + "type": "integer" + } + } + }, + "EksPodProperties": { + "additionalProperties": false, + "type": "object", + "properties": { + "InitContainers": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/EksContainer" + } + }, + "Volumes": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/EksVolume" + } + }, + "DnsPolicy": { + "type": "string" + }, + "Containers": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/EksContainer" + } + }, + "Metadata": { + "$ref": "#/definitions/EksMetadata" + }, + "ServiceAccountName": { + "type": "string" + }, + "ImagePullSecrets": { + "uniqueItems": false, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/ImagePullSecret" + } + }, + "HostNetwork": { + "type": "boolean" + }, + "ShareProcessNamespace": { + "type": "boolean" + } + } + } + }, + "properties": { + "Parameters": { + "patternProperties": { + "": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object" + }, + "Timeout": { + "$ref": "#/definitions/JobTimeout" + }, + "JobDefinitionName": { + "type": "string", + "maxLength": 128 + }, + "PropagateTags": { + "type": "boolean" + }, + "PlatformCapabilities": { + "uniqueItems": false, + "insertionOrder": true, + "type": "array", + "items": { + "type": "string" + } + }, + "EksProperties": { + "$ref": "#/definitions/EksProperties" + }, + "Type": { + "type": "string" + }, + "NodeProperties": { + "$ref": "#/definitions/NodeProperties" + }, + "SchedulingPriority": { + "type": "integer" + }, + "ContainerProperties": { + "$ref": "#/definitions/ContainerProperties" + }, + "EcsProperties": { + "$ref": "#/definitions/EcsProperties" + }, + "RetryStrategy": { + "$ref": "#/definitions/RetryStrategy" + }, + "Tags": { + "patternProperties": { + "": { + "type": "string" + } + }, + "description": "A key-value pair to associate with a resource.", + "additionalProperties": false, + "type": "object" + } + }, + "required": [ + "Type" + ] +} diff --git a/internal/service/cloudformation/schemas/AWS_Cassandra_Keyspace.json b/internal/service/cloudformation/schemas/AWS_Cassandra_Keyspace.json index 6418835c30..5ff5ff5f2c 100644 --- a/internal/service/cloudformation/schemas/AWS_Cassandra_Keyspace.json +++ b/internal/service/cloudformation/schemas/AWS_Cassandra_Keyspace.json @@ -18,6 +18,10 @@ }, "ReplicationSpecification": { "$ref": "#/definitions/ReplicationSpecification" + }, + "ClientSideTimestampsEnabled": { + "type": "boolean", + "description": "Indicates whether client-side timestamps are enabled (true) or disabled (false) for all tables in the keyspace. To add a Region to a single-Region keyspace with at least one table, the value must be set to true. After you enabled client-side timestamps for a table, you can?t disable it again." } }, "definitions": { @@ -102,7 +106,6 @@ "additionalProperties": false, "required": [], "createOnlyProperties": [ - "/properties/ReplicationSpecification", "/properties/KeyspaceName" ], "primaryIdentifier": [ @@ -143,12 +146,23 @@ "permissions": [ "cassandra:Alter", "cassandra:AlterMultiRegionResource", + "cassandra:Modify", + "cassandra:ModifyMultiRegionResource", "cassandra:Select", "cassandra:SelectMultiRegionResource", "cassandra:TagResource", "cassandra:TagMultiRegionResource", "cassandra:UntagResource", - "cassandra:UntagMultiRegionResource" + "cassandra:UntagMultiRegionResource", + "application-autoscaling:RegisterScalableTarget", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:DescribeScalableTargets", + "application-autoscaling:DescribeScalingPolicies", + "application-autoscaling:PutScalingPolicy", + "cloudwatch:DeleteAlarms", + "cloudwatch:DescribeAlarms", + "cloudwatch:PutMetricAlarm", + "iam:CreateServiceLinkedRole" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_Cassandra_Type.json b/internal/service/cloudformation/schemas/AWS_Cassandra_Type.json new file mode 100644 index 0000000000..936d9571c5 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Cassandra_Type.json @@ -0,0 +1,120 @@ +{ + "typeName": "AWS::Cassandra::Type", + "description": "Resource schema for AWS::Cassandra::Type", + "definitions": { + "Field": { + "type": "object", + "properties": { + "FieldName": { + "type": "string" + }, + "FieldType": { + "type": "string" + } + }, + "required": [ + "FieldName", + "FieldType" + ], + "additionalProperties": false + } + }, + "properties": { + "KeyspaceName": { + "description": "Name of the Keyspace which contains the User-Defined Type.", + "type": "string" + }, + "TypeName": { + "description": "Name of the User-Defined Type.", + "type": "string" + }, + "Fields": { + "description": "Field definitions of the User-Defined Type", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Field" + } + }, + "DirectReferringTables": { + "description": "List of Tables that directly reference the User-Defined Type in their columns.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string" + } + }, + "DirectParentTypes": { + "description": "List of parent User-Defined Types that directly reference the User-Defined Type in their fields.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "type": "string" + } + }, + "MaxNestingDepth": { + "description": "Maximum nesting depth of the User-Defined Type across the field types.", + "type": "integer" + }, + "LastModifiedTimestamp": { + "description": "Timestamp of the last time the User-Defined Type's meta data was modified.", + "type": "number" + }, + "KeyspaceArn": { + "description": "ARN of the Keyspace which contains the User-Defined Type.", + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "KeyspaceName", + "TypeName", + "Fields" + ], + "createOnlyProperties": [ + "/properties/KeyspaceName", + "/properties/TypeName", + "/properties/Fields" + ], + "readOnlyProperties": [ + "/properties/DirectReferringTables", + "/properties/DirectParentTypes", + "/properties/MaxNestingDepth", + "/properties/LastModifiedTimestamp", + "/properties/KeyspaceArn" + ], + "primaryIdentifier": [ + "/properties/KeyspaceName", + "/properties/TypeName" + ], + "tagging": { + "taggable": false + }, + "handlers": { + "create": { + "permissions": [ + "cassandra:Create", + "cassandra:Select" + ] + }, + "read": { + "permissions": [ + "cassandra:Select" + ] + }, + "delete": { + "permissions": [ + "cassandra:Drop", + "cassandra:Select" + ] + }, + "list": { + "permissions": [ + "cassandra:Select" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTable.json b/internal/service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTable.json index ed960a221c..927098922d 100644 --- a/internal/service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTable.json +++ b/internal/service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTable.json @@ -396,6 +396,117 @@ ], "additionalProperties": false }, + "SnowflakeTableReference": { + "type": "object", + "properties": { + "SecretArn": { + "type": "string", + "maxLength": 256 + }, + "AccountIdentifier": { + "type": "string", + "maxLength": 256, + "minLength": 3 + }, + "DatabaseName": { + "type": "string", + "maxLength": 256, + "minLength": 1 + }, + "TableName": { + "type": "string", + "maxLength": 256, + "minLength": 1 + }, + "SchemaName": { + "type": "string", + "maxLength": 256, + "minLength": 1 + }, + "TableSchema": { + "$ref": "#/definitions/SnowflakeTableSchema" + } + }, + "required": [ + "AccountIdentifier", + "DatabaseName", + "SchemaName", + "SecretArn", + "TableName", + "TableSchema" + ], + "additionalProperties": false + }, + "SnowflakeTableSchema": { + "oneOf": [ + { + "type": "object", + "title": "V1", + "properties": { + "V1": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SnowflakeTableSchemaV1" + }, + "maxItems": 250, + "minItems": 1 + } + }, + "required": [ + "V1" + ], + "additionalProperties": false + } + ] + }, + "SnowflakeTableSchemaV1": { + "type": "object", + "properties": { + "ColumnName": { + "type": "string", + "maxLength": 128 + }, + "ColumnType": { + "type": "string", + "maxLength": 255 + } + }, + "required": [ + "ColumnName", + "ColumnType" + ], + "additionalProperties": false + }, + "AthenaTableReference": { + "type": "object", + "properties": { + "WorkGroup": { + "type": "string", + "maxLength": 128, + "minLength": 1 + }, + "OutputLocation": { + "type": "string", + "maxLength": 1024, + "minLength": 8 + }, + "DatabaseName": { + "type": "string", + "maxLength": 128 + }, + "TableName": { + "type": "string", + "maxLength": 128 + } + }, + "required": [ + "DatabaseName", + "TableName", + "WorkGroup" + ], + "additionalProperties": false + }, "AnalysisRule": { "type": "object", "properties": { @@ -413,17 +524,47 @@ "additionalProperties": false }, "TableReference": { - "type": "object", - "title": "Glue", - "properties": { - "Glue": { - "$ref": "#/definitions/GlueTableReference" + "oneOf": [ + { + "type": "object", + "title": "Glue", + "properties": { + "Glue": { + "$ref": "#/definitions/GlueTableReference" + } + }, + "required": [ + "Glue" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Snowflake", + "properties": { + "Snowflake": { + "$ref": "#/definitions/SnowflakeTableReference" + } + }, + "required": [ + "Snowflake" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "Athena", + "properties": { + "Athena": { + "$ref": "#/definitions/AthenaTableReference" + } + }, + "required": [ + "Athena" + ], + "additionalProperties": false } - }, - "required": [ - "Glue" - ], - "additionalProperties": false + ] }, "Tag": { "type": "object", @@ -553,7 +694,8 @@ "glue:GetSchemaVersion", "cleanrooms:ListTagsForResource", "cleanrooms:TagResource", - "cleanrooms:ListConfiguredTables" + "cleanrooms:ListConfiguredTables", + "athena:GetTableMetadata" ] }, "read": { diff --git a/internal/service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTableAssociation.json b/internal/service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTableAssociation.json index 959c0797dd..64df102bee 100644 --- a/internal/service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTableAssociation.json +++ b/internal/service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTableAssociation.json @@ -169,7 +169,7 @@ "properties": { "Arn": { "type": "string", - "maxLength": 100 + "maxLength": 256 }, "Tags": { "description": "An arbitrary set of tags (key-value pairs) for this cleanrooms collaboration.", diff --git a/internal/service/cloudformation/schemas/AWS_CloudFront_Distribution.json b/internal/service/cloudformation/schemas/AWS_CloudFront_Distribution.json index 357d15286a..2b756b02c5 100644 --- a/internal/service/cloudformation/schemas/AWS_CloudFront_Distribution.json +++ b/internal/service/cloudformation/schemas/AWS_CloudFront_Distribution.json @@ -59,6 +59,10 @@ "uniqueItems": false, "description": "A list of CloudFront functions that are associated with this cache behavior. CloudFront functions must be published to the ``LIVE`` stage to associate them with a cache behavior." }, + "GrpcConfig": { + "$ref": "#/definitions/GrpcConfig", + "description": "" + }, "LambdaFunctionAssociations": { "items": { "$ref": "#/definitions/LambdaFunctionAssociation" @@ -285,6 +289,10 @@ "uniqueItems": false, "description": "A list of CloudFront functions that are associated with this cache behavior. Your functions must be published to the ``LIVE`` stage to associate them with a cache behavior." }, + "GrpcConfig": { + "$ref": "#/definitions/GrpcConfig", + "description": "" + }, "LambdaFunctionAssociations": { "items": { "$ref": "#/definitions/LambdaFunctionAssociation" @@ -558,6 +566,19 @@ "type": "object", "description": "A complex type that controls the countries in which your content is distributed. CF determines the location of your users using ``MaxMind`` GeoIP databases. To disable geo restriction, remove the [Restrictions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-restrictions) property from your stack template." }, + "GrpcConfig": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object", + "description": "" + }, "LambdaFunctionAssociation": { "additionalProperties": false, "properties": { @@ -652,9 +673,6 @@ "description": "An optional string that you want CloudFront to prefix to the access log ``filenames`` for this distribution, for example, ``myprefix/``. If you want to enable logging, but you don't want to specify a prefix, you still must include an empty ``Prefix`` element in the ``Logging`` element." } }, - "required": [ - "Bucket" - ], "type": "object", "description": "A complex type that controls whether access logs are written for the distribution." }, @@ -747,6 +765,10 @@ "Members": { "$ref": "#/definitions/OriginGroupMembers", "description": "A complex type that contains information about the origins in an origin group." + }, + "SelectionCriteria": { + "$ref": "#/definitions/OriginGroupSelectionCriteria", + "description": "" } }, "required": [ @@ -808,6 +830,13 @@ "type": "object", "description": "A complex data type for the origins included in an origin group." }, + "OriginGroupSelectionCriteria": { + "enum": [ + "default", + "media-quality-based" + ], + "type": "string" + }, "OriginGroups": { "additionalProperties": false, "properties": { diff --git a/internal/service/cloudformation/schemas/AWS_CodeDeploy_Application.json b/internal/service/cloudformation/schemas/AWS_CodeDeploy_Application.json index e1125c22f6..ade51a31f2 100644 --- a/internal/service/cloudformation/schemas/AWS_CodeDeploy_Application.json +++ b/internal/service/cloudformation/schemas/AWS_CodeDeploy_Application.json @@ -52,7 +52,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "codedeploy:TagResource", + "codedeploy:UntagResource" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_Comprehend_DocumentClassifier.json b/internal/service/cloudformation/schemas/AWS_Comprehend_DocumentClassifier.json index 38e4bd9e6c..d90a2c24df 100644 --- a/internal/service/cloudformation/schemas/AWS_Comprehend_DocumentClassifier.json +++ b/internal/service/cloudformation/schemas/AWS_Comprehend_DocumentClassifier.json @@ -104,7 +104,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "comprehend:TagResource", + "comprehend:UntagResource" + ] }, "definitions": { "Tag": { diff --git a/internal/service/cloudformation/schemas/AWS_Config_StoredQuery.json b/internal/service/cloudformation/schemas/AWS_Config_StoredQuery.json index 4109208cf1..8acef3cfd1 100644 --- a/internal/service/cloudformation/schemas/AWS_Config_StoredQuery.json +++ b/internal/service/cloudformation/schemas/AWS_Config_StoredQuery.json @@ -81,7 +81,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "config:TagResource", + "config:UntagResource", + "config:ListTagsForResource" + ] }, "createOnlyProperties": [ "/properties/QueryName" diff --git a/internal/service/cloudformation/schemas/AWS_ConnectCampaignsV2_Campaign.json b/internal/service/cloudformation/schemas/AWS_ConnectCampaignsV2_Campaign.json index 586c934346..fc307b56e3 100644 --- a/internal/service/cloudformation/schemas/AWS_ConnectCampaignsV2_Campaign.json +++ b/internal/service/cloudformation/schemas/AWS_ConnectCampaignsV2_Campaign.json @@ -359,10 +359,13 @@ }, "Source": { "type": "object", - "description": "The possible types of channel config parameters", + "description": "The possible source of the campaign", "properties": { "CustomerProfilesSegmentArn": { "$ref": "#/definitions/Arn" + }, + "EventTrigger": { + "$ref": "#/definitions/EventTrigger" } }, "oneOf": [ @@ -370,10 +373,25 @@ "required": [ "CustomerProfilesSegmentArn" ] + }, + { + "required": [ + "EventTrigger" + ] } ], "additionalProperties": false }, + "EventTrigger": { + "type": "object", + "description": "The event trigger of the campaign", + "properties": { + "CustomerProfilesDomainArn": { + "$ref": "#/definitions/Arn" + } + }, + "additionalProperties": false + }, "TimeRange": { "type": "object", "description": "Time range in 24 hour format", diff --git a/internal/service/cloudformation/schemas/AWS_Connect_Queue.json b/internal/service/cloudformation/schemas/AWS_Connect_Queue.json index 94d9e3fd39..75c3c90d95 100644 --- a/internal/service/cloudformation/schemas/AWS_Connect_Queue.json +++ b/internal/service/cloudformation/schemas/AWS_Connect_Queue.json @@ -1,224 +1,243 @@ { - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", - "tagging": { - "permissions": [ - "connect:TagResource", - "connect:UntagResource" - ], - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": true - }, - "handlers": { - "read": { - "permissions": [ - "connect:DescribeQueue", - "connect:ListQueueQuickConnects" - ] - }, - "create": { - "permissions": [ - "connect:CreateQueue", - "connect:TagResource" - ] - }, - "update": { - "permissions": [ - "connect:UpdateQueueHoursOfOperation", - "connect:UpdateQueueMaxContacts", - "connect:UpdateQueueName", - "connect:UpdateQueueOutboundCallerConfig", - "connect:UpdateQueueOutboundEmailConfig", - "connect:UpdateQueueStatus", - "connect:AssociateQueueQuickConnects", - "connect:DisassociateQueueQuickConnects", - "connect:TagResource", - "connect:UntagResource" - ] - }, - "list": { - "permissions": [ - "connect:ListQueues", - "connect:ListQueueQuickConnects" - ], - "handlerSchema": { - "properties": { - "InstanceArn": { - "$ref": "resource-schema.json#/properties/InstanceArn" - } - }, - "required": [ - "InstanceArn" - ] - } - }, - "delete": { - "permissions": [ - "connect:DeleteQueue", - "connect:UntagResource" - ] - } - }, "typeName": "AWS::Connect::Queue", - "readOnlyProperties": [ - "/properties/QueueArn", - "/properties/Type" - ], "description": "Resource Type definition for AWS::Connect::Queue", - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/QueueArn" - ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", "definitions": { + "OutboundCallerIdName": { + "description": "The caller ID name.", + "type": "string", + "minLength": 1, + "maxLength": 255 + }, "OutboundCallerIdNumberArn": { - "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:phone-number/[-a-zA-Z0-9]*$", "description": "The caller ID number.", - "type": "string" + "type": "string", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:phone-number/[-a-zA-Z0-9]*$" }, "OutboundFlowArn": { - "minLength": 1, - "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/contact-flow/[-a-zA-Z0-9]*$", "description": "The outbound whisper flow to be used during an outbound call.", "type": "string", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/contact-flow/[-a-zA-Z0-9]*$", + "minLength": 1, "maxLength": 500 }, - "QuickConnectArn": { - "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/transfer-destination/[-a-zA-Z0-9]*$", - "description": "The Amazon Resource Name (ARN) for the quick connect.", - "type": "string" + "OutboundEmailAddressId": { + "description": "The email address connect resource ID.", + "type": "string", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/email-address/[-a-zA-Z0-9]*$" + }, + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "$ref": "#/definitions/Key" + }, + "Value": { + "$ref": "#/definitions/Value" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false + }, + "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, + "pattern": "" }, "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", + "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 }, "OutboundCallerConfig": { "description": "The outbound caller ID name, number, and outbound whisper flow.", - "additionalProperties": false, "type": "object", + "additionalProperties": false, "properties": { + "OutboundCallerIdName": { + "$ref": "#/definitions/OutboundCallerIdName" + }, "OutboundCallerIdNumberArn": { "$ref": "#/definitions/OutboundCallerIdNumberArn" }, "OutboundFlowArn": { "$ref": "#/definitions/OutboundFlowArn" - }, - "OutboundCallerIdName": { - "$ref": "#/definitions/OutboundCallerIdName" } } }, - "OutboundCallerIdName": { - "minLength": 1, - "description": "The caller ID name.", - "type": "string", - "maxLength": 255 - }, - "Tag": { - "description": "A key-value pair to associate with a resource.", - "additionalProperties": false, + "OutboundEmailConfig": { + "description": "The outbound email address ID.", "type": "object", + "additionalProperties": false, "properties": { - "Value": { - "$ref": "#/definitions/Value" - }, - "Key": { - "$ref": "#/definitions/Key" + "OutboundEmailAddressId": { + "$ref": "#/definitions/OutboundEmailAddressId" } - }, - "required": [ - "Key", - "Value" - ] + } }, - "Key": { - "minLength": 1, - "pattern": "", - "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 -.", + "QuickConnectArn": { + "description": "The Amazon Resource Name (ARN) for the quick connect.", "type": "string", - "maxLength": 128 + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/transfer-destination/[-a-zA-Z0-9]*$" } }, - "required": [ - "InstanceArn", - "HoursOfOperationArn", - "Name" - ], "properties": { - "Status": { - "description": "The status of the queue.", + "InstanceArn": { + "description": "The identifier of the Amazon Connect instance.", "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ] + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$" + }, + "Description": { + "description": "The description of the queue.", + "type": "string", + "minLength": 1, + "maxLength": 250 }, "HoursOfOperationArn": { - "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/operating-hours/[-a-zA-Z0-9]*$", "description": "The identifier for the hours of operation.", - "type": "string" - }, - "Type": { - "description": "The type of queue.", "type": "string", - "enum": [ - "STANDARD", - "AGENT" - ] + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/operating-hours/[-a-zA-Z0-9]*$" }, - "Description": { + "MaxContacts": { + "description": "The maximum number of contacts that can be in the queue before it is considered full.", + "type": "integer", + "minimum": 0 + }, + "Name": { + "description": "The name of the queue.", + "type": "string", "minLength": 1, - "description": "The description of the queue.", + "maxLength": 127 + }, + "OutboundCallerConfig": { + "description": "The outbound caller ID name, number, and outbound whisper flow.", + "$ref": "#/definitions/OutboundCallerConfig" + }, + "OutboundEmailConfig": { + "description": "The outbound email address ID.", + "$ref": "#/definitions/OutboundEmailConfig" + }, + "QueueArn": { + "description": "The Amazon Resource Name (ARN) for the queue.", "type": "string", - "maxLength": 250 + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/queue/[-a-zA-Z0-9]*$" }, - "InstanceArn": { - "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", - "description": "The identifier of the Amazon Connect instance.", - "type": "string" + "Status": { + "description": "The status of the queue.", + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ] }, "QuickConnectArns": { + "description": "The quick connects available to agents who are working the queue.", + "type": "array", "minItems": 1, "maxItems": 50, - "description": "The quick connects available to agents who are working the queue.", "insertionOrder": false, - "type": "array", "items": { "$ref": "#/definitions/QuickConnectArn" } }, - "OutboundCallerConfig": { - "description": "The outbound caller ID name, number, and outbound whisper flow.", - "$ref": "#/definitions/OutboundCallerConfig" - }, - "QueueArn": { - "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/queue/[-a-zA-Z0-9]*$", - "description": "The Amazon Resource Name (ARN) for the queue.", - "type": "string" - }, - "MaxContacts": { - "description": "The maximum number of contacts that can be in the queue before it is considered full.", - "type": "integer", - "minimum": 0 - }, "Tags": { + "type": "array", "maxItems": 50, "uniqueItems": true, - "description": "An array of key-value pairs to apply to this resource.", "insertionOrder": false, - "type": "array", + "description": "An array of key-value pairs to apply to this resource.", "items": { "$ref": "#/definitions/Tag" } }, - "Name": { - "minLength": 1, - "description": "The name of the queue.", + "Type": { "type": "string", - "maxLength": 127 + "description": "The type of queue.", + "enum": [ + "STANDARD", + "AGENT" + ] + } + }, + "handlers": { + "create": { + "permissions": [ + "connect:CreateQueue", + "connect:TagResource" + ] + }, + "read": { + "permissions": [ + "connect:DescribeQueue", + "connect:ListQueueQuickConnects" + ] + }, + "delete": { + "permissions": [ + "connect:DeleteQueue", + "connect:UntagResource" + ] + }, + "update": { + "permissions": [ + "connect:UpdateQueueHoursOfOperation", + "connect:UpdateQueueMaxContacts", + "connect:UpdateQueueName", + "connect:UpdateQueueOutboundCallerConfig", + "connect:UpdateQueueOutboundEmailConfig", + "connect:UpdateQueueStatus", + "connect:AssociateQueueQuickConnects", + "connect:DisassociateQueueQuickConnects", + "connect:TagResource", + "connect:UntagResource" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "InstanceArn": { + "$ref": "resource-schema.json#/properties/InstanceArn" + } + }, + "required": [ + "InstanceArn" + ] + }, + "permissions": [ + "connect:ListQueues", + "connect:ListQueueQuickConnects" + ] } - } + }, + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/QueueArn" + ], + "readOnlyProperties": [ + "/properties/QueueArn", + "/properties/Type" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "connect:TagResource", + "connect:UntagResource" + ] + }, + "required": [ + "InstanceArn", + "HoursOfOperationArn", + "Name" + ] } diff --git a/internal/service/cloudformation/schemas/AWS_Connect_Rule.json b/internal/service/cloudformation/schemas/AWS_Connect_Rule.json index 187e1ea152..bd74b2401c 100644 --- a/internal/service/cloudformation/schemas/AWS_Connect_Rule.json +++ b/internal/service/cloudformation/schemas/AWS_Connect_Rule.json @@ -1,39 +1,44 @@ { "typeName": "AWS::Connect::Rule", - "description": "Resource Type definition for AWS:Connect::Rule", + "description": "Creates a rule for the specified CON instance.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", "definitions": { "FieldValue": { - "description": "The value of the field.", + "description": "Object for case field values.", "type": "object", "properties": { "StringValue": { - "type": "string" + "type": "string", + "description": "" }, "BooleanValue": { - "type": "boolean" + "type": "boolean", + "description": "" }, "DoubleValue": { - "type": "number" + "type": "number", + "description": "" }, "EmptyValue": { - "type": "object" + "type": "object", + "description": "" } }, "additionalProperties": false }, "Field": { - "description": "The field of the case.", + "description": "", "type": "object", "properties": { "Id": { - "description": "The Id of the field", + "description": "", "type": "string", "minLength": 1, "maxLength": 500 }, "Value": { - "$ref": "#/definitions/FieldValue" + "$ref": "#/definitions/FieldValue", + "description": "" } }, "required": [ @@ -63,7 +68,7 @@ "type": "object", "properties": { "UserTags": { - "description": "The collection of recipients who are identified by user tags", + "description": "The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }. CON users with the specified tags will be notified.", "patternProperties": { "": { "type": "string" @@ -72,7 +77,7 @@ "additionalProperties": false }, "UserArns": { - "description": "The list of recipients by user arns.", + "description": "The Amazon Resource Name (ARN) of the user account.", "type": "array", "minItems": 1, "maxItems": 5, @@ -86,12 +91,13 @@ "additionalProperties": false }, "Reference": { - "description": "A contact reference.", + "description": "Information about the reference when the ``referenceType`` is ``URL``. Otherwise, null. (Supports variable injection in the ``Value`` field.)", "type": "object", "properties": { "Value": { "type": "string", - "pattern": "^(/|https:)" + "pattern": "^(/|https:)", + "description": "A valid value for the reference. For example, for a URL reference, a formatted URL that is displayed to an agent in the Contact Control Panel (CCP)." }, "Type": { "type": "string", @@ -102,7 +108,8 @@ "STRING", "DATE", "EMAIL" - ] + ], + "description": "The type of the reference. ``DATE`` must be of type Epoch timestamp. \n *Allowed values*: ``URL`` | ``ATTACHMENT`` | ``NUMBER`` | ``STRING`` | ``DATE`` | ``EMAIL``" } }, "required": [ @@ -112,28 +119,28 @@ "additionalProperties": false }, "TaskAction": { - "description": "The definition of task action.", + "description": "Information about the task action. This field is required if ``TriggerEventSource`` is one of the following values: ``OnZendeskTicketCreate`` | ``OnZendeskTicketStatusUpdate`` | ``OnSalesforceCaseCreate``", "type": "object", "properties": { "Name": { - "description": "The name which appears in the agent's Contact Control Panel (CCP).", + "description": "The name. Supports variable injection. For more information, see [JSONPath reference](https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-variable-injection.html) in the *Administrators Guide*.", "type": "string", "minLength": 1, "maxLength": 512 }, "Description": { - "description": "The description which appears in the agent's Contact Control Panel (CCP).", + "description": "The description. Supports variable injection. For more information, see [JSONPath reference](https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-variable-injection.html) in the *Administrators Guide*.", "type": "string", "minLength": 0, "maxLength": 4096 }, "ContactFlowArn": { - "description": "The Amazon Resource Name (ARN) of the contact flow.", + "description": "The Amazon Resource Name (ARN) of the flow.", "type": "string", "pattern": "^$|arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/contact-flow/[-a-zA-Z0-9]*$" }, "References": { - "description": "A formatted URL that is shown to an agent in the Contact Control Panel (CCP).", + "description": "Information about the reference when the ``referenceType`` is ``URL``. Otherwise, null. ``URL`` is the only accepted type. (Supports variable injection in the ``Value`` field.)", "patternProperties": { "": { "$ref": "#/definitions/Reference" @@ -149,11 +156,11 @@ "additionalProperties": false }, "SubmitAutoEvaluationAction": { - "description": "The definition of submit auto evaluation action.", + "description": "", "type": "object", "properties": { "EvaluationFormArn": { - "description": "The Amazon Resource Name (ARN) of the evaluation form.", + "description": "", "type": "string", "pattern": "^$|arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/evaluation-form/[-a-zA-Z0-9]*$" } @@ -164,11 +171,11 @@ "additionalProperties": false }, "EventBridgeAction": { - "description": "The definition for event bridge action.", + "description": "The EV action definition.", "type": "object", "properties": { "Name": { - "description": "The name of the event bridge action.", + "description": "The name.", "type": "string", "pattern": "^[a-zA-Z0-9._-]{1,100}$" } @@ -183,37 +190,38 @@ "type": "object" }, "SendNotificationAction": { - "description": "The definition for sending notification action.", + "description": "Information about the send notification action.", "type": "object", "properties": { "DeliveryMethod": { - "description": "The means of delivery.", + "description": "Notification delivery method.\n *Allowed value*: ``EMAIL``", "type": "string", "enum": [ "EMAIL" ] }, "Subject": { - "description": "The subject of notification.", + "description": "The subject of the email if the delivery method is ``EMAIL``. Supports variable injection. For more information, see [JSONPath reference](https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-variable-injection.html) in the *Administrators Guide*.", "type": "string", "minLength": 1, "maxLength": 200 }, "Content": { - "description": "The content of notification.", + "description": "Notification content. Supports variable injection. For more information, see [JSONPath reference](https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-variable-injection.html) in the *Administrators Guide*.", "type": "string", "minLength": 1, "maxLength": 1024 }, "ContentType": { - "description": "The type of content.", + "description": "Content type format.\n *Allowed value*: ``PLAIN_TEXT``", "type": "string", "enum": [ "PLAIN_TEXT" ] }, "Recipient": { - "$ref": "#/definitions/NotificationRecipientType" + "$ref": "#/definitions/NotificationRecipientType", + "description": "Notification recipient." } }, "required": [ @@ -225,14 +233,15 @@ "additionalProperties": false }, "CreateCaseAction": { - "description": "The definition for create case action.", + "description": "", "type": "object", "properties": { "Fields": { - "$ref": "#/definitions/Fields" + "$ref": "#/definitions/Fields", + "description": "" }, "TemplateId": { - "description": "The Id of template.", + "description": "", "type": "string", "minLength": 1, "maxLength": 500 @@ -245,11 +254,12 @@ "additionalProperties": false }, "UpdateCaseAction": { - "description": "The definition for update case action.", + "description": "", "type": "object", "properties": { "Fields": { - "$ref": "#/definitions/Fields" + "$ref": "#/definitions/Fields", + "description": "" } }, "required": [ @@ -284,11 +294,11 @@ "maxItems": 1 }, "RuleTriggerEventSource": { - "description": "The event source that will trigger the rule.", + "description": "The name of the event source.", "type": "object", "properties": { "EventSourceName": { - "description": "The name of event source.", + "description": "The name of the event source.", "type": "string", "enum": [ "OnContactEvaluationSubmit", @@ -305,7 +315,7 @@ ] }, "IntegrationAssociationArn": { - "description": "The Amazon Resource Name (ARN) for the AppIntegration association.", + "description": "The Amazon Resource Name (ARN) of the integration association. ``IntegrationAssociationArn`` is required if ``TriggerEventSource`` is one of the following values: ``OnZendeskTicketCreate`` | ``OnZendeskTicketStatusUpdate`` | ``OnSalesforceCaseCreate``", "type": "string", "pattern": "^$|arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/integration-association/[-a-zA-Z0-9]*$" } @@ -382,32 +392,40 @@ "maxItems": 1 }, "Actions": { - "description": "The list of actions that will be executed when a rule is triggered.", + "description": "A list of actions to be run when the rule is triggered.", "type": "object", "properties": { "AssignContactCategoryActions": { - "$ref": "#/definitions/AssignContactCategoryActions" + "$ref": "#/definitions/AssignContactCategoryActions", + "description": "Information about the contact category action. The syntax can be empty, for example, ``{}``." }, "EventBridgeActions": { - "$ref": "#/definitions/EventBridgeActions" + "$ref": "#/definitions/EventBridgeActions", + "description": "Information about the EV action." }, "TaskActions": { - "$ref": "#/definitions/TaskActions" + "$ref": "#/definitions/TaskActions", + "description": "Information about the task action. This field is required if ``TriggerEventSource`` is one of the following values: ``OnZendeskTicketCreate`` | ``OnZendeskTicketStatusUpdate`` | ``OnSalesforceCaseCreate``" }, "SendNotificationActions": { - "$ref": "#/definitions/SendNotificationActions" + "$ref": "#/definitions/SendNotificationActions", + "description": "Information about the send notification action." }, "CreateCaseActions": { - "$ref": "#/definitions/CreateCaseActions" + "$ref": "#/definitions/CreateCaseActions", + "description": "" }, "UpdateCaseActions": { - "$ref": "#/definitions/UpdateCaseActions" + "$ref": "#/definitions/UpdateCaseActions", + "description": "" }, "EndAssociatedTasksActions": { - "$ref": "#/definitions/EndAssociatedTasksActions" + "$ref": "#/definitions/EndAssociatedTasksActions", + "description": "" }, "SubmitAutoEvaluationActions": { - "$ref": "#/definitions/SubmitAutoEvaluationActions" + "$ref": "#/definitions/SubmitAutoEvaluationActions", + "description": "" } }, "additionalProperties": false @@ -419,14 +437,14 @@ "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 -. ", + "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 -", "pattern": "", "minLength": 1, "maxLength": 128 }, "Value": { "type": "string", - "description": "The value for the tag. You can specify a value that's 1 to 256 characters in length.", + "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 -", "maxLength": 256 } }, @@ -443,7 +461,7 @@ "pattern": "^[a-zA-Z0-9._-]{1,200}$" }, "RuleArn": { - "description": "The Amazon Resource Name (ARN) of the rule.", + "description": "", "type": "string", "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/rule/[-a-zA-Z0-9]*$" }, @@ -453,19 +471,19 @@ "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$" }, "TriggerEventSource": { - "description": "The event source that triggers the rule.", + "description": "The event source to trigger the rule.", "$ref": "#/definitions/RuleTriggerEventSource" }, "Function": { - "description": "The conditions of a rule.", + "description": "The conditions of the rule.", "type": "string" }, "Actions": { - "description": "The list of actions that will be executed when a rule is triggered.", + "description": "A list of actions to be run when the rule is triggered.", "$ref": "#/definitions/Actions" }, "PublishStatus": { - "description": "The publish status of a rule, either draft or published.", + "description": "The publish status of the rule.\n *Allowed values*: ``DRAFT`` | ``PUBLISHED``", "type": "string", "enum": [ "DRAFT", @@ -473,7 +491,7 @@ ] }, "Tags": { - "description": "One or more tags.", + "description": "The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.", "type": "array", "maxItems": 50, "uniqueItems": true, diff --git a/internal/service/cloudformation/schemas/AWS_Connect_TaskTemplate.json b/internal/service/cloudformation/schemas/AWS_Connect_TaskTemplate.json index 41fa78912a..d358aeb6c3 100644 --- a/internal/service/cloudformation/schemas/AWS_Connect_TaskTemplate.json +++ b/internal/service/cloudformation/schemas/AWS_Connect_TaskTemplate.json @@ -228,6 +228,11 @@ "type": "string", "pattern": "^$|arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/contact-flow/[-a-zA-Z0-9]*$" }, + "SelfAssignContactFlowArn": { + "description": "The identifier of the contact flow.", + "type": "string", + "pattern": "^$|arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/contact-flow/[-a-zA-Z0-9]*$" + }, "Constraints": { "description": "The constraints for the task template", "type": "object", diff --git a/internal/service/cloudformation/schemas/AWS_DataZone_Domain.json b/internal/service/cloudformation/schemas/AWS_DataZone_Domain.json index 5daa48f77d..56c5201b26 100644 --- a/internal/service/cloudformation/schemas/AWS_DataZone_Domain.json +++ b/internal/service/cloudformation/schemas/AWS_DataZone_Domain.json @@ -178,7 +178,9 @@ "datazone:TagResource", "sso:CreateManagedApplicationInstance", "sso:DeleteManagedApplicationInstance", - "sso:PutApplicationAssignmentConfiguration" + "sso:PutApplicationAssignmentConfiguration", + "sso:ListInstances", + "iam:PassRole" ] }, "read": { @@ -194,7 +196,9 @@ "datazone:UntagResource", "sso:CreateManagedApplicationInstance", "sso:DeleteManagedApplicationInstance", - "sso:PutApplicationAssignmentConfiguration" + "sso:PutApplicationAssignmentConfiguration", + "sso:ListInstances", + "iam:PassRole" ] }, "delete": { @@ -202,7 +206,8 @@ "datazone:DeleteDomain", "datazone:GetDomain", "sso:DeleteManagedApplicationInstance", - "sso:PutApplicationAssignmentConfiguration" + "sso:PutApplicationAssignmentConfiguration", + "sso:ListInstances" ] }, "list": { diff --git a/internal/service/cloudformation/schemas/AWS_DataZone_ProjectMembership.json b/internal/service/cloudformation/schemas/AWS_DataZone_ProjectMembership.json index 602650796b..ef5d798fe8 100644 --- a/internal/service/cloudformation/schemas/AWS_DataZone_ProjectMembership.json +++ b/internal/service/cloudformation/schemas/AWS_DataZone_ProjectMembership.json @@ -78,7 +78,10 @@ "type": "string", "enum": [ "PROJECT_OWNER", - "PROJECT_CONTRIBUTOR" + "PROJECT_CONTRIBUTOR", + "PROJECT_CATALOG_VIEWER", + "PROJECT_CATALOG_CONSUMER", + "PROJECT_CATALOG_STEWARD" ] }, "MemberIdentifierType": { diff --git a/internal/service/cloudformation/schemas/AWS_DataZone_SubscriptionTarget.json b/internal/service/cloudformation/schemas/AWS_DataZone_SubscriptionTarget.json index 8479ecd420..7910e715fc 100644 --- a/internal/service/cloudformation/schemas/AWS_DataZone_SubscriptionTarget.json +++ b/internal/service/cloudformation/schemas/AWS_DataZone_SubscriptionTarget.json @@ -129,7 +129,6 @@ "AuthorizedPrincipals", "DomainIdentifier", "EnvironmentIdentifier", - "ManageAccessRole", "Name", "SubscriptionTargetConfig", "Type" diff --git a/internal/service/cloudformation/schemas/AWS_DynamoDB_Table.json b/internal/service/cloudformation/schemas/AWS_DynamoDB_Table.json index a305846d4c..fed42ad4e6 100644 --- a/internal/service/cloudformation/schemas/AWS_DynamoDB_Table.json +++ b/internal/service/cloudformation/schemas/AWS_DynamoDB_Table.json @@ -625,7 +625,7 @@ "$ref": "#/definitions/ContributorInsightsSpecification" }, "ImportSourceSpecification": { - "description": "Specifies the properties of data being imported from the S3 bucket source to the table.\n If you specify the ``ImportSourceSpecification`` property, and also specify either the ``StreamSpecification``, the ``TableClass`` property, or the ``DeletionProtectionEnabled`` property, the IAM entity creating/updating stack must have ``UpdateTable`` permission.", + "description": "Specifies the properties of data being imported from the S3 bucket source to the\" table.\n If you specify the ``ImportSourceSpecification`` property, and also specify either the ``StreamSpecification``, the ``TableClass`` property, the ``DeletionProtectionEnabled`` property, or the ``WarmThroughput`` property, the IAM entity creating/updating stack must have ``UpdateTable`` permission.", "$ref": "#/definitions/ImportSourceSpecification" }, "PointInTimeRecoverySpecification": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_CustomerGateway.json b/internal/service/cloudformation/schemas/AWS_EC2_CustomerGateway.json index dcd52048f5..d5b87ace62 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_CustomerGateway.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_CustomerGateway.json @@ -115,7 +115,7 @@ } }, "CertificateArn": { - "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", + "pattern": "^arn:(aws[a-zA-Z-]*)?:acm:[a-z]{2}((-gov)|(-iso([a-z]{1})?))?-[a-z]+-\\d{1}:\\d{12}:certificate\\/[a-zA-Z0-9-_]+$", "description": "The Amazon Resource Name (ARN) for the customer gateway certificate.", "type": "string" }, diff --git a/internal/service/cloudformation/schemas/AWS_EC2_NetworkInterface.json b/internal/service/cloudformation/schemas/AWS_EC2_NetworkInterface.json index 02ff855c23..e46e393a1e 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_NetworkInterface.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_NetworkInterface.json @@ -1,9 +1,168 @@ { - "typeName": "AWS::EC2::NetworkInterface", + "tagging": { + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true + }, "$schema": "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-resource-schema/master/src/main/resources/schema/provider.definition.schema.v1.json", - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2/networkinterface", + "typeName": "AWS::EC2::NetworkInterface", + "readOnlyProperties": [ + "/properties/Id", + "/properties/SecondaryPrivateIpAddresses", + "/properties/PrimaryPrivateIpAddress", + "/properties/PrimaryIpv6Address", + "/properties/VpcId" + ], "description": "The AWS::EC2::NetworkInterface resource creates network interface", + "createOnlyProperties": [ + "/properties/PrivateIpAddress", + "/properties/InterfaceType", + "/properties/SubnetId" + ], + "primaryIdentifier": [ + "/properties/Id" + ], + "required": [ + "SubnetId" + ], + "conditionalCreateOnlyProperties": [ + "/properties/PrivateIpAddresses", + "/properties/EnablePrimaryIpv6", + "/properties/ConnectionTrackingSpecification" + ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2/networkinterface", + "handlers": { + "read": { + "permissions": [ + "ec2:DescribeNetworkInterfaces" + ] + }, + "create": { + "permissions": [ + "ec2:CreateNetworkInterface", + "ec2:DescribeNetworkInterfaces", + "ec2:CreateTags", + "ec2:ModifyNetworkInterfaceAttribute", + "ec2:ModifyPublicIpDnsNameOptions" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeNetworkInterfaces", + "ec2:ModifyNetworkInterfaceAttribute", + "ec2:UnassignIpv6Addresses", + "ec2:AssignIpv6Addresses", + "ec2:DeleteTags", + "ec2:CreateTags", + "ec2:UnassignPrivateIpAddresses", + "ec2:AssignPrivateIpAddresses", + "ec2:ModifyPublicIpDnsNameOptions" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeNetworkInterfaces" + ] + }, + "delete": { + "permissions": [ + "ec2:DescribeNetworkInterfaces", + "ec2:DeleteNetworkInterface" + ] + } + }, "additionalProperties": false, + "definitions": { + "PrivateIpAddressSpecification": { + "additionalProperties": false, + "type": "object", + "properties": { + "PrivateIpAddress": { + "type": "string" + }, + "Primary": { + "type": "boolean" + } + }, + "required": [ + "PrivateIpAddress", + "Primary" + ] + }, + "Ipv4PrefixSpecification": { + "additionalProperties": false, + "type": "object", + "properties": { + "Ipv4Prefix": { + "type": "string" + } + }, + "required": [ + "Ipv4Prefix" + ] + }, + "InstanceIpv6Address": { + "additionalProperties": false, + "type": "object", + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ] + }, + "Ipv6PrefixSpecification": { + "additionalProperties": false, + "type": "object", + "properties": { + "Ipv6Prefix": { + "type": "string" + } + }, + "required": [ + "Ipv6Prefix" + ] + }, + "Tag": { + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "type": "string" + }, + "Key": { + "type": "string" + } + }, + "required": [ + "Value", + "Key" + ] + }, + "ConnectionTrackingSpecification": { + "additionalProperties": false, + "type": "object", + "properties": { + "UdpTimeout": { + "type": "integer" + }, + "TcpEstablishedTimeout": { + "type": "integer" + }, + "UdpStreamTimeout": { + "type": "integer" + } + } + } + }, "properties": { "Description": { "description": "A description for the network interface.", @@ -13,11 +172,15 @@ "description": "Assigns a single private IP address to the network interface, which is used as the primary private IP address. If you want to specify multiple private IP address, use the PrivateIpAddresses property. ", "type": "string" }, + "PrimaryIpv6Address": { + "description": "The primary IPv6 address", + "type": "string" + }, "PrivateIpAddresses": { - "description": "Assigns a list of private IP addresses to the network interface. You can specify a primary private IP address by setting the value of the Primary property to true in the PrivateIpAddressSpecification property. If you want EC2 to automatically assign private IP addresses, use the SecondaryPrivateIpAddressCount property and do not specify this property.", - "type": "array", "uniqueItems": false, + "description": "Assigns a list of private IP addresses to the network interface. You can specify a primary private IP address by setting the value of the Primary property to true in the PrivateIpAddressSpecification property. If you want EC2 to automatically assign private IP addresses, use the SecondaryPrivateIpAddressCount property and do not specify this property.", "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/PrivateIpAddressSpecification" } @@ -26,15 +189,19 @@ "description": "The number of secondary private IPv4 addresses to assign to a network interface. When you specify a number of secondary IPv4 addresses, Amazon EC2 selects these IP addresses within the subnet's IPv4 CIDR range. You can't specify this option and specify more than one private IP address using privateIpAddresses", "type": "integer" }, + "Ipv6PrefixCount": { + "description": "The number of IPv6 prefixes to assign to a network interface. When you specify a number of IPv6 prefixes, Amazon EC2 selects these prefixes from your existing subnet CIDR reservations, if available, or from free spaces in the subnet. By default, these will be /80 prefixes. You can't specify a count of IPv6 prefixes if you've specified one of the following: specific IPv6 prefixes, specific IPv6 addresses, or a count of IPv6 addresses.", + "type": "integer" + }, "PrimaryPrivateIpAddress": { "description": "Returns the primary private IP address of the network interface.", "type": "string" }, "Ipv4Prefixes": { - "description": "Assigns a list of IPv4 prefixes to the network interface. If you want EC2 to automatically assign IPv4 prefixes, use the Ipv4PrefixCount property and do not specify this property. Presently, only /28 prefixes are supported. You can't specify IPv4 prefixes if you've specified one of the following: a count of IPv4 prefixes, specific private IPv4 addresses, or a count of private IPv4 addresses.", - "type": "array", "uniqueItems": false, + "description": "Assigns a list of IPv4 prefixes to the network interface. If you want EC2 to automatically assign IPv4 prefixes, use the Ipv4PrefixCount property and do not specify this property. Presently, only /28 prefixes are supported. You can't specify IPv4 prefixes if you've specified one of the following: a count of IPv4 prefixes, specific private IPv4 addresses, or a count of private IPv4 addresses.", "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/Ipv4PrefixSpecification" } @@ -43,37 +210,37 @@ "description": "The number of IPv4 prefixes to assign to a network interface. When you specify a number of IPv4 prefixes, Amazon EC2 selects these prefixes from your existing subnet CIDR reservations, if available, or from free spaces in the subnet. By default, these will be /28 prefixes. You can't specify a count of IPv4 prefixes if you've specified one of the following: specific IPv4 prefixes, specific private IPv4 addresses, or a count of private IPv4 addresses.", "type": "integer" }, + "EnablePrimaryIpv6": { + "description": "If you have instances or ENIs that rely on the IPv6 address not changing, to avoid disrupting traffic to instances or ENIs, you can enable a primary IPv6 address. Enable this option to automatically assign an IPv6 associated with the ENI attached to your instance to be the primary IPv6 address. When you enable an IPv6 address to be a primary IPv6, you cannot disable it. Traffic will be routed to the primary IPv6 address until the instance is terminated or the ENI is detached. If you have multiple IPv6 addresses associated with an ENI and you enable a primary IPv6 address, the first IPv6 address associated with the ENI becomes the primary IPv6 address.", + "type": "boolean" + }, "GroupSet": { - "description": "A list of security group IDs associated with this network interface.", - "type": "array", "uniqueItems": false, + "description": "A list of security group IDs associated with this network interface.", "insertionOrder": false, + "type": "array", "items": { "type": "string" } }, "Ipv6Addresses": { - "description": "One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet to associate with the network interface. If you're specifying a number of IPv6 addresses, use the Ipv6AddressCount property and don't specify this property.", - "type": "array", "uniqueItems": true, + "description": "One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet to associate with the network interface. If you're specifying a number of IPv6 addresses, use the Ipv6AddressCount property and don't specify this property.", "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/InstanceIpv6Address" } }, "Ipv6Prefixes": { - "description": "Assigns a list of IPv6 prefixes to the network interface. If you want EC2 to automatically assign IPv6 prefixes, use the Ipv6PrefixCount property and do not specify this property. Presently, only /80 prefixes are supported. You can't specify IPv6 prefixes if you've specified one of the following: a count of IPv6 prefixes, specific IPv6 addresses, or a count of IPv6 addresses.", - "type": "array", "uniqueItems": false, + "description": "Assigns a list of IPv6 prefixes to the network interface. If you want EC2 to automatically assign IPv6 prefixes, use the Ipv6PrefixCount property and do not specify this property. Presently, only /80 prefixes are supported. You can't specify IPv6 prefixes if you've specified one of the following: a count of IPv6 prefixes, specific IPv6 addresses, or a count of IPv6 addresses.", "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/Ipv6PrefixSpecification" } }, - "Ipv6PrefixCount": { - "description": "The number of IPv6 prefixes to assign to a network interface. When you specify a number of IPv6 prefixes, Amazon EC2 selects these prefixes from your existing subnet CIDR reservations, if available, or from free spaces in the subnet. By default, these will be /80 prefixes. You can't specify a count of IPv6 prefixes if you've specified one of the following: specific IPv6 prefixes, specific IPv6 addresses, or a count of IPv6 addresses.", - "type": "integer" - }, "SubnetId": { "description": "The ID of the subnet to associate with the network interface.", "type": "string" @@ -87,202 +254,37 @@ "type": "string" }, "SecondaryPrivateIpAddresses": { - "description": "Returns the secondary private IP addresses of the network interface.", - "type": "array", "uniqueItems": false, + "description": "Returns the secondary private IP addresses of the network interface.", "insertionOrder": false, + "type": "array", "items": { "type": "string" } }, + "VpcId": { + "description": "The ID of the VPC", + "type": "string" + }, "Ipv6AddressCount": { "description": "The number of IPv6 addresses to assign to a network interface. Amazon EC2 automatically selects the IPv6 addresses from the subnet range. To specify specific IPv6 addresses, use the Ipv6Addresses property and don't specify this property.", "type": "integer" }, - "EnablePrimaryIpv6": { - "description": "If you have instances or ENIs that rely on the IPv6 address not changing, to avoid disrupting traffic to instances or ENIs, you can enable a primary IPv6 address. Enable this option to automatically assign an IPv6 associated with the ENI attached to your instance to be the primary IPv6 address. When you enable an IPv6 address to be a primary IPv6, you cannot disable it. Traffic will be routed to the primary IPv6 address until the instance is terminated or the ENI is detached. If you have multiple IPv6 addresses associated with an ENI and you enable a primary IPv6 address, the first IPv6 address associated with the ENI becomes the primary IPv6 address.", - "type": "boolean" - }, - "PrimaryIpv6Address": { - "description": "The primary IPv6 address", - "type": "string" - }, - "ConnectionTrackingSpecification": { - "$ref": "#/definitions/ConnectionTrackingSpecification" - }, "Id": { "description": "Network interface id.", "type": "string" }, "Tags": { - "description": "An arbitrary set of tags (key-value pairs) for this network interface.", - "type": "array", "uniqueItems": false, + "description": "An arbitrary set of tags (key-value pairs) for this network interface.", "insertionOrder": false, + "type": "array", "items": { "$ref": "#/definitions/Tag" } }, - "VpcId": { - "description": "The ID of the VPC", - "type": "string" - } - }, - "definitions": { - "PrivateIpAddressSpecification": { - "type": "object", - "additionalProperties": false, - "properties": { - "PrivateIpAddress": { - "type": "string" - }, - "Primary": { - "type": "boolean" - } - }, - "required": [ - "PrivateIpAddress", - "Primary" - ] - }, - "InstanceIpv6Address": { - "type": "object", - "additionalProperties": false, - "properties": { - "Ipv6Address": { - "type": "string" - } - }, - "required": [ - "Ipv6Address" - ] - }, - "Ipv4PrefixSpecification": { - "type": "object", - "additionalProperties": false, - "properties": { - "Ipv4Prefix": { - "type": "string" - } - }, - "required": [ - "Ipv4Prefix" - ] - }, - "Ipv6PrefixSpecification": { - "type": "object", - "additionalProperties": false, - "properties": { - "Ipv6Prefix": { - "type": "string" - } - }, - "required": [ - "Ipv6Prefix" - ] - }, "ConnectionTrackingSpecification": { - "type": "object", - "additionalProperties": false, - "properties": { - "TcpEstablishedTimeout": { - "type": "integer" - }, - "UdpStreamTimeout": { - "type": "integer" - }, - "UdpTimeout": { - "type": "integer" - } - } - }, - "Tag": { - "type": "object", - "additionalProperties": false, - "properties": { - "Value": { - "type": "string" - }, - "Key": { - "type": "string" - } - }, - "required": [ - "Value", - "Key" - ] - } - }, - "required": [ - "SubnetId" - ], - "createOnlyProperties": [ - "/properties/PrivateIpAddress", - "/properties/InterfaceType", - "/properties/SubnetId" - ], - "primaryIdentifier": [ - "/properties/Id" - ], - "readOnlyProperties": [ - "/properties/Id", - "/properties/SecondaryPrivateIpAddresses", - "/properties/PrimaryPrivateIpAddress", - "/properties/PrimaryIpv6Address", - "/properties/VpcId" - ], - "conditionalCreateOnlyProperties": [ - "/properties/PrivateIpAddresses", - "/properties/EnablePrimaryIpv6", - "/properties/ConnectionTrackingSpecification" - ], - "tagging": { - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags", - "permissions": [ - "ec2:CreateTags", - "ec2:DeleteTags" - ] - }, - "handlers": { - "create": { - "permissions": [ - "ec2:CreateNetworkInterface", - "ec2:DescribeNetworkInterfaces", - "ec2:CreateTags", - "ec2:ModifyNetworkInterfaceAttribute" - ] - }, - "delete": { - "permissions": [ - "ec2:DescribeNetworkInterfaces", - "ec2:DeleteNetworkInterface" - ] - }, - "list": { - "permissions": [ - "ec2:DescribeNetworkInterfaces" - ] - }, - "read": { - "permissions": [ - "ec2:DescribeNetworkInterfaces" - ] - }, - "update": { - "permissions": [ - "ec2:DescribeNetworkInterfaces", - "ec2:ModifyNetworkInterfaceAttribute", - "ec2:UnassignIpv6Addresses", - "ec2:AssignIpv6Addresses", - "ec2:DeleteTags", - "ec2:CreateTags", - "ec2:UnassignPrivateIpAddresses", - "ec2:AssignPrivateIpAddresses" - ] + "$ref": "#/definitions/ConnectionTrackingSpecification" } } } diff --git a/internal/service/cloudformation/schemas/AWS_ECS_Service.json b/internal/service/cloudformation/schemas/AWS_ECS_Service.json index 4612f500e9..7680009659 100644 --- a/internal/service/cloudformation/schemas/AWS_ECS_Service.json +++ b/internal/service/cloudformation/schemas/AWS_ECS_Service.json @@ -12,6 +12,7 @@ "cloudFormationSystemTags": false }, "propertyTransform": { + "/properties/TaskDefinition": "TaskDefinition $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:ecs:[a-z0-9-]+:[0-9]{12}:task-definition/\", $contains(TaskDefinition,\":\")?TaskDefinition:$join([TaskDefinition, \":[0-9]+\"])])", "/properties/Role": "Role $OR $join([\"arn:(aws)[-]{0,1}[a-z]{0,3}[-]{0,1}[a-z]{0,3}:iam::[0-9]{12}[:]role/{1}\", Role])" }, "handlers": { @@ -151,17 +152,20 @@ } }, "VpcLatticeConfiguration": { - "description": "", + "description": "The VPC Lattice configuration for your service that holds the information for the target group(s) Amazon ECS tasks will be registered to.", "additionalProperties": false, "type": "object", "properties": { "TargetGroupArn": { + "description": "The full Amazon Resource Name (ARN) of the target group or groups associated with the VPC Lattice configuration that the Amazon ECS tasks will be registered to.", "type": "string" }, "PortName": { + "description": "The name of the port mapping to register in the VPC Lattice target group. This is the name of the ``portMapping`` you defined in your task definition.", "type": "string" }, "RoleArn": { + "description": "The ARN of the IAM role to associate with this VPC Lattice configuration. This is the Amazon ECS\u2028 infrastructure IAM role that is used to manage your VPC Lattice infrastructure.", "type": "string" } }, @@ -269,7 +273,7 @@ ] }, "DeploymentController": { - "description": "The deployment controller to use for the service. For more information, see [Amazon ECS deployment types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html) in the *Amazon Elastic Container Service Developer Guide*.", + "description": "The deployment controller to use for the service.", "additionalProperties": false, "type": "object", "properties": { @@ -352,7 +356,7 @@ } }, "AssignPublicIp": { - "description": "Whether the task's elastic network interface receives a public IP address. The default value is ``DISABLED``.", + "description": "Whether the task's elastic network interface receives a public IP address. The default value is ``ENABLED``.", "type": "string", "enum": [ "DISABLED", @@ -691,7 +695,7 @@ }, "AvailabilityZoneRebalancing": { "default": "DISABLED", - "description": "", + "description": "Indicates whether to use Availability Zone rebalancing for the service.\n For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide*.", "type": "string", "enum": [ "ENABLED", @@ -718,7 +722,7 @@ } }, "HealthCheckGracePeriodSeconds": { - "description": "The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing target health checks after a task has first started. This is only used when your service is configured to use a load balancer. If your service has a load balancer defined and you don't specify a health check grace period value, the default value of ``0`` is used.\n If you do not use an Elastic Load Balancing, we recommend that you use the ``startPeriod`` in the task definition health check parameters. For more information, see [Health check](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_HealthCheck.html).\n If your service's tasks take a while to start and respond to Elastic Load Balancing health checks, you can specify a health check grace period of up to 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS service scheduler ignores health check status. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up.", + "description": "The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started. If you don't specify a health check grace period value, the default value of ``0`` is used. If you don't use any of the health checks, then ``healthCheckGracePeriodSeconds`` is unused.\n If your service's tasks take a while to start and respond to health checks, you can specify a health check grace period of up to 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS service scheduler ignores health check status. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up.", "type": "integer" }, "EnableECSManagedTags": { @@ -756,7 +760,7 @@ "type": "integer" }, "VpcLatticeConfigurations": { - "description": "", + "description": "The VPC Lattice configuration for the service being created.", "type": "array", "items": { "$ref": "#/definitions/VpcLatticeConfiguration" diff --git a/internal/service/cloudformation/schemas/AWS_ECS_TaskDefinition.json b/internal/service/cloudformation/schemas/AWS_ECS_TaskDefinition.json index dae3914ed7..d3d8e27a1f 100644 --- a/internal/service/cloudformation/schemas/AWS_ECS_TaskDefinition.json +++ b/internal/service/cloudformation/schemas/AWS_ECS_TaskDefinition.json @@ -64,6 +64,7 @@ "/properties/Family", "/properties/ContainerDefinitions", "/properties/Cpu", + "/properties/EnableFaultInjection", "/properties/ExecutionRoleArn", "/properties/InferenceAccelerators", "/properties/Memory", @@ -119,7 +120,7 @@ "type": "object", "properties": { "Command": { - "description": "A string array representing the command that the container runs to determine if it is healthy. The string array must start with ``CMD`` to run the command arguments directly, or ``CMD-SHELL`` to run the command with the container's default shell. \n When you use the AWS Management Console JSON panel, the CLIlong, or the APIs, enclose the list of commands in double quotes and brackets.\n ``[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]`` \n You don't include the double quotes and brackets when you use the AWS Management Console.\n ``CMD-SHELL, curl -f http://localhost/ || exit 1`` \n An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command", + "description": "A string array representing the command that the container runs to determine if it is healthy. The string array must start with ``CMD`` to run the command arguments directly, or ``CMD-SHELL`` to run the command with the container's default shell. \n When you use the AWS Management Console JSON panel, the CLIlong, or the APIs, enclose the list of commands in double quotes and brackets.\n ``[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]`` \n You don't include the double quotes and brackets when you use the AWS Management Console.\n ``CMD-SHELL, curl -f http://localhost/ || exit 1`` \n An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command.", "insertionOrder": true, "type": "array", "items": { @@ -343,7 +344,7 @@ }, "VersionConsistency": { "default": "enabled", - "description": "", + "description": "Specifies whether Amazon ECS will resolve the container image tag provided in the container definition to an image digest. By default, the value is ``enabled``. If you set the value for a container as ``disabled``, Amazon ECS will not resolve the provided container image tag to a digest and will use the original image URI specified in the container definition for deployment. For more information about container image resolution, see [Container image resolution](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html#deployment-container-image-stability) in the *Amazon ECS Developer Guide*.", "type": "string", "enum": [ "enabled", @@ -647,7 +648,7 @@ "type": "string" }, "Name": { - "description": "The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.\n For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*.", + "description": "The name that's used for the port mapping. This parameter is the name that you use in the ``serviceConnectConfiguration`` and the ``vpcLatticeConfigurations`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.", "type": "string" } } @@ -1040,7 +1041,7 @@ "type": "object", "properties": { "SizeInGiB": { - "description": "The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``20`` GiB and the maximum supported value is ``200`` GiB.", + "description": "The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``21`` GiB and the maximum supported value is ``200`` GiB.", "type": "integer" } } @@ -1121,6 +1122,10 @@ "description": "The process namespace to use for the containers in the task. The valid values are ``host`` or ``task``. On Fargate for Linux containers, the only valid value is ``task``. For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task.\n If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance.\n If ``task`` is specified, all containers within the specified task share the same process namespace.\n If no value is specified, the default is a private namespace for each container.\n If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure.\n This parameter is not supported for Windows containers.\n This parameter is only supported for tasks that are hosted on FARGATElong if the tasks are using platform version ``1.4.0`` or later (Linux). This isn't supported for Windows containers on Fargate.", "type": "string" }, + "EnableFaultInjection": { + "description": "", + "type": "boolean" + }, "ExecutionRoleArn": { "description": "The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission to make AWS API calls on your behalf. For informationabout the required IAM roles for Amazon ECS, see [IAM roles for Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/security-ecs-iam-role-overview.html) in the *Amazon Elastic Container Service Developer Guide*.", "type": "string" diff --git a/internal/service/cloudformation/schemas/AWS_FIS_ExperimentTemplate.json b/internal/service/cloudformation/schemas/AWS_FIS_ExperimentTemplate.json index 764a14bf25..01e563f407 100644 --- a/internal/service/cloudformation/schemas/AWS_FIS_ExperimentTemplate.json +++ b/internal/service/cloudformation/schemas/AWS_FIS_ExperimentTemplate.json @@ -320,8 +320,7 @@ "type": "object", "additionalProperties": false, "required": [ - "Outputs", - "DataSources" + "Outputs" ], "properties": { "Outputs": { diff --git a/internal/service/cloudformation/schemas/AWS_HealthLake_FHIRDatastore.json b/internal/service/cloudformation/schemas/AWS_HealthLake_FHIRDatastore.json index c81b3f8f98..ebd1348ade 100644 --- a/internal/service/cloudformation/schemas/AWS_HealthLake_FHIRDatastore.json +++ b/internal/service/cloudformation/schemas/AWS_HealthLake_FHIRDatastore.json @@ -89,6 +89,11 @@ "required": [ "KmsEncryptionConfig" ], + "default": { + "KmsEncryptionConfig": { + "CmkType": "AWS_OWNED_KMS_KEY" + } + }, "additionalProperties": false }, "KmsEncryptionConfig": { @@ -147,6 +152,10 @@ "required": [ "AuthorizationStrategy" ], + "default": { + "AuthorizationStrategy": "AWS_AUTH", + "FineGrainedAuthorizationEnabled": false + }, "additionalProperties": false }, "Tag": { diff --git a/internal/service/cloudformation/schemas/AWS_ImageBuilder_Component.json b/internal/service/cloudformation/schemas/AWS_ImageBuilder_Component.json index f4e1203f12..1a160cc32f 100644 --- a/internal/service/cloudformation/schemas/AWS_ImageBuilder_Component.json +++ b/internal/service/cloudformation/schemas/AWS_ImageBuilder_Component.json @@ -144,7 +144,8 @@ }, "read": { "permissions": [ - "imagebuilder:GetComponent" + "imagebuilder:GetComponent", + "kms:Decrypt" ] }, "delete": { @@ -156,7 +157,8 @@ }, "list": { "permissions": [ - "imagebuilder:ListComponents" + "imagebuilder:ListComponents", + "imagebuilder:ListComponentBuildVersions" ], "handlerSchema": { "properties": { diff --git a/internal/service/cloudformation/schemas/AWS_ImageBuilder_ContainerRecipe.json b/internal/service/cloudformation/schemas/AWS_ImageBuilder_ContainerRecipe.json index 6c02e824f8..e53282ead7 100644 --- a/internal/service/cloudformation/schemas/AWS_ImageBuilder_ContainerRecipe.json +++ b/internal/service/cloudformation/schemas/AWS_ImageBuilder_ContainerRecipe.json @@ -324,7 +324,8 @@ }, "read": { "permissions": [ - "imagebuilder:GetContainerRecipe" + "imagebuilder:GetContainerRecipe", + "kms:Decrypt" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_ImageBuilder_Workflow.json b/internal/service/cloudformation/schemas/AWS_ImageBuilder_Workflow.json index 3af3f1ec39..63b007f79a 100644 --- a/internal/service/cloudformation/schemas/AWS_ImageBuilder_Workflow.json +++ b/internal/service/cloudformation/schemas/AWS_ImageBuilder_Workflow.json @@ -119,7 +119,8 @@ }, "read": { "permissions": [ - "imagebuilder:GetWorkflow" + "imagebuilder:GetWorkflow", + "kms:Decrypt" ] }, "delete": { @@ -131,7 +132,8 @@ }, "list": { "permissions": [ - "imagebuilder:ListWorkflows" + "imagebuilder:ListWorkflows", + "imagebuilder:ListWorkflowBuildVersions" ], "handlerSchema": { "properties": { diff --git a/internal/service/cloudformation/schemas/AWS_IoTSiteWise_Gateway.json b/internal/service/cloudformation/schemas/AWS_IoTSiteWise_Gateway.json index ad288d78ca..0377cb0fa4 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTSiteWise_Gateway.json +++ b/internal/service/cloudformation/schemas/AWS_IoTSiteWise_Gateway.json @@ -1,62 +1,97 @@ { + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-IoTSiteWise.git", + "tagging": { + "permissions": [ + "iotsitewise:TagResource", + "iotsitewise:UntagResource", + "iotsitewise:ListTagsForResource" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true + }, + "handlers": { + "read": { + "permissions": [ + "iotsitewise:DescribeGateway", + "iotsitewise:DescribeGatewayCapabilityConfiguration", + "iotsitewise:ListTagsForResource" + ] + }, + "create": { + "permissions": [ + "iotsitewise:CreateGateway", + "iotsitewise:DescribeGateway", + "iotsitewise:DescribeGatewayCapabilityConfiguration", + "iotsitewise:UpdateGatewayCapabilityConfiguration", + "iam:PassRole", + "iam:GetRole", + "greengrass:GetCoreDevice", + "iotsitewise:ListTagsForResource", + "iotsitewise:TagResource", + "iot:DescribeThing" + ] + }, + "update": { + "permissions": [ + "iotsitewise:UpdateGateway", + "iotsitewise:UpdateGatewayCapabilityConfiguration", + "iotsitewise:TagResource", + "iotsitewise:UntagResource", + "iotsitewise:DescribeGateway", + "iotsitewise:DescribeGatewayCapabilityConfiguration", + "iotsitewise:ListTagsForResource" + ] + }, + "list": { + "permissions": [ + "iotsitewise:ListGateways", + "iotsitewise:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iotsitewise:DescribeGateway", + "iotsitewise:DescribeGatewayCapabilityConfiguration", + "iotsitewise:DeleteGateway" + ] + } + }, "typeName": "AWS::IoTSiteWise::Gateway", + "readOnlyProperties": [ + "/properties/GatewayId" + ], "description": "Resource schema for AWS::IoTSiteWise::Gateway", - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-IoTSiteWise.git", + "createOnlyProperties": [ + "/properties/GatewayPlatform" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/GatewayId" + ], "definitions": { - "GatewayPlatform": { - "description": "Contains a gateway's platform information.", - "type": "object", + "GatewayCapabilitySummary": { + "description": "Contains a summary of a gateway capability configuration.", "additionalProperties": false, - "properties": { - "Greengrass": { - "description": "A gateway that runs on AWS IoT Greengrass V1.", - "$ref": "#/definitions/Greengrass" - }, - "GreengrassV2": { - "description": "A gateway that runs on AWS IoT Greengrass V2.", - "$ref": "#/definitions/GreengrassV2" - }, - "SiemensIE": { - "description": "A gateway that runs on Siemens Industrial Edge.", - "$ref": "#/definitions/SiemensIE" - } - }, - "oneOf": [ - { - "required": [ - "Greengrass" - ] - }, - { - "required": [ - "GreengrassV2" - ] - }, - { - "required": [ - "SiemensIE" - ] - } - ] - }, - "Greengrass": { - "description": "Contains the ARN of AWS IoT Greengrass Group V1 that the gateway runs on.", "type": "object", - "additionalProperties": false, "properties": { - "GroupArn": { - "description": "The ARN of the Greengrass group.", - "type": "string" + "CapabilityNamespace": { + "$ref": "#/definitions/CapabilityNamespace" + }, + "CapabilityConfiguration": { + "$ref": "#/definitions/CapabilityConfiguration" } }, "required": [ - "GroupArn" + "CapabilityNamespace" ] }, "GreengrassV2": { "description": "Contains the CoreDeviceThingName of AWS IoT Greengrass Group V2 that the gateway runs on.", - "type": "object", "additionalProperties": false, + "type": "object", "properties": { "CoreDeviceThingName": { "description": "The name of the CoreDevice in GreenGrass V2.", @@ -67,29 +102,73 @@ "CoreDeviceThingName" ] }, - "SiemensIE": { - "description": "Contains the IotCoreThingName of AWS IoT Thing that the gateway runs on.", - "type": "object", + "CapabilityNamespace": { + "description": "The namespace of the capability configuration.", + "type": "string" + }, + "Greengrass": { + "description": "Contains the ARN of AWS IoT Greengrass Group V1 that the gateway runs on.", "additionalProperties": false, + "type": "object", "properties": { - "IotCoreThingName": { - "description": "The name of the IoT Core Thing.", + "GroupArn": { + "description": "The ARN of the Greengrass group.", "type": "string" } }, "required": [ - "IotCoreThingName" + "GroupArn" ] }, + "CapabilityConfiguration": { + "description": "The JSON document that defines the gateway capability's configuration.", + "type": "string" + }, + "GatewayPlatform": { + "oneOf": [ + { + "required": [ + "Greengrass" + ] + }, + { + "required": [ + "GreengrassV2" + ] + }, + { + "required": [ + "SiemensIE" + ] + } + ], + "description": "Contains a gateway's platform information.", + "additionalProperties": false, + "type": "object", + "properties": { + "GreengrassV2": { + "description": "A gateway that runs on AWS IoT Greengrass V2.", + "$ref": "#/definitions/GreengrassV2" + }, + "Greengrass": { + "description": "A gateway that runs on AWS IoT Greengrass V1.", + "$ref": "#/definitions/Greengrass" + }, + "SiemensIE": { + "description": "A gateway that runs on Siemens Industrial Edge.", + "$ref": "#/definitions/SiemensIE" + } + } + }, "Tag": { "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted", - "type": "object", "additionalProperties": false, + "type": "object", "properties": { - "Key": { + "Value": { "type": "string" }, - "Value": { + "Key": { "type": "string" } }, @@ -98,32 +177,35 @@ "Value" ] }, - "CapabilityNamespace": { - "description": "The namespace of the capability configuration.", - "type": "string" - }, - "CapabilityConfiguration": { - "description": "The JSON document that defines the gateway capability's configuration.", - "type": "string" - }, - "GatewayCapabilitySummary": { - "description": "Contains a summary of a gateway capability configuration.", - "type": "object", + "SiemensIE": { + "description": "Contains the IotCoreThingName of AWS IoT Thing that the gateway runs on.", "additionalProperties": false, + "type": "object", "properties": { - "CapabilityNamespace": { - "$ref": "#/definitions/CapabilityNamespace" - }, - "CapabilityConfiguration": { - "$ref": "#/definitions/CapabilityConfiguration" + "IotCoreThingName": { + "description": "The name of the IoT Core Thing.", + "type": "string" } }, "required": [ - "CapabilityNamespace" + "IotCoreThingName" ] } }, + "required": [ + "GatewayName", + "GatewayPlatform" + ], "properties": { + "GatewayCapabilitySummaries": { + "uniqueItems": true, + "description": "A list of gateway capability summaries that each contain a namespace and status.", + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/GatewayCapabilitySummary" + } + }, "GatewayName": { "description": "A unique, friendly name for the gateway.", "type": "string" @@ -132,100 +214,18 @@ "description": "The gateway's platform. You can only specify one platform in a gateway.", "$ref": "#/definitions/GatewayPlatform" }, - "Tags": { - "description": "A list of key-value pairs that contain metadata for the gateway.", - "type": "array", - "uniqueItems": false, - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - } - }, "GatewayId": { "description": "The ID of the gateway device.", "type": "string" }, - "GatewayCapabilitySummaries": { - "description": "A list of gateway capability summaries that each contain a namespace and status.", + "Tags": { + "uniqueItems": false, + "description": "A list of key-value pairs that contain metadata for the gateway.", + "insertionOrder": false, "type": "array", - "uniqueItems": true, - "insertionOrder": true, "items": { - "$ref": "#/definitions/GatewayCapabilitySummary" + "$ref": "#/definitions/Tag" } } - }, - "additionalProperties": false, - "tagging": { - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags", - "permissions": [ - "iotsitewise:TagResource", - "iotsitewise:UntagResource", - "iotsitewise:ListTagsForResource" - ] - }, - "required": [ - "GatewayName", - "GatewayPlatform" - ], - "readOnlyProperties": [ - "/properties/GatewayId" - ], - "createOnlyProperties": [ - "/properties/GatewayPlatform" - ], - "primaryIdentifier": [ - "/properties/GatewayId" - ], - "handlers": { - "create": { - "permissions": [ - "iotsitewise:CreateGateway", - "iotsitewise:DescribeGateway", - "iotsitewise:DescribeGatewayCapabilityConfiguration", - "iotsitewise:UpdateGatewayCapabilityConfiguration", - "iam:PassRole", - "iam:GetRole", - "greengrass:GetCoreDevice", - "iotsitewise:ListTagsForResource", - "iotsitewise:TagResource", - "iot:DescribeThing" - ] - }, - "read": { - "permissions": [ - "iotsitewise:DescribeGateway", - "iotsitewise:DescribeGatewayCapabilityConfiguration", - "iotsitewise:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "iotsitewise:UpdateGateway", - "iotsitewise:UpdateGatewayCapabilityConfiguration", - "iotsitewise:TagResource", - "iotsitewise:UntagResource", - "iotsitewise:DescribeGateway", - "iotsitewise:DescribeGatewayCapabilityConfiguration", - "iotsitewise:ListTagsForResource" - ] - }, - "delete": { - "permissions": [ - "iotsitewise:DescribeGateway", - "iotsitewise:DescribeGatewayCapabilityConfiguration", - "iotsitewise:DeleteGateway" - ] - }, - "list": { - "permissions": [ - "iotsitewise:ListGateways", - "iotsitewise:ListTagsForResource" - ] - } } } diff --git a/internal/service/cloudformation/schemas/AWS_IoT_Command.json b/internal/service/cloudformation/schemas/AWS_IoT_Command.json new file mode 100644 index 0000000000..da8673418f --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_IoT_Command.json @@ -0,0 +1,254 @@ +{ + "typeName": "AWS::IoT::Command", + "description": "Represents the resource definition of AWS IoT Command.", + "definitions": { + "CommandParameterList": { + "type": "array", + "items": { + "$ref": "#/definitions/CommandParameter" + }, + "minItems": 1, + "insertionOrder": false + }, + "CommandParameter": { + "type": "object", + "properties": { + "Name": { + "$ref": "#/definitions/CommandParameterName" + }, + "Value": { + "$ref": "#/definitions/CommandParameterValue" + }, + "DefaultValue": { + "$ref": "#/definitions/CommandParameterValue" + }, + "Description": { + "$ref": "#/definitions/CommandParameterDescription" + } + }, + "required": [ + "Name" + ], + "additionalProperties": false + }, + "CommandParameterName": { + "type": "string", + "pattern": "^[.$a-zA-Z0-9_-]+$", + "minLength": 1, + "maxLength": 192 + }, + "CommandParameterDescription": { + "type": "string", + "maxLength": 2028 + }, + "CommandParameterValue": { + "type": "object", + "properties": { + "S": { + "type": "string", + "minLength": 1 + }, + "B": { + "type": "boolean" + }, + "I": { + "type": "integer" + }, + "L": { + "type": "string", + "pattern": "^-?\\d+$", + "maxLength": 19 + }, + "D": { + "type": "number" + }, + "BIN": { + "type": "string", + "minLength": 1 + }, + "UL": { + "type": "string", + "pattern": "^[0-9]*$", + "minLength": 1, + "maxLength": 20 + } + }, + "additionalProperties": false + }, + "MimeType": { + "type": "string", + "minLength": 1 + }, + "CommandPayloadContent": { + "type": "string" + }, + "CommandPayload": { + "type": "object", + "properties": { + "Content": { + "$ref": "#/definitions/CommandPayloadContent" + }, + "ContentType": { + "$ref": "#/definitions/MimeType" + } + }, + "additionalProperties": false + }, + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "The tag's key.", + "minLength": 1, + "maxLength": 128 + }, + "Value": { + "type": "string", + "description": "The tag's value.", + "minLength": 1, + "maxLength": 256 + } + }, + "required": [ + "Value", + "Key" + ], + "additionalProperties": false + } + }, + "properties": { + "CommandArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the command." + }, + "CommandId": { + "type": "string", + "pattern": "^[a-zA-Z0-9_-]+$", + "minLength": 1, + "maxLength": 64, + "description": "The unique identifier for the command." + }, + "CreatedAt": { + "type": "string", + "description": "The date and time when the command was created." + }, + "Deprecated": { + "type": "boolean", + "description": "A flag indicating whether the command is deprecated." + }, + "Description": { + "type": "string", + "maxLength": 2028, + "description": "The description of the command." + }, + "DisplayName": { + "type": "string", + "description": "The display name for the command." + }, + "LastUpdatedAt": { + "type": "string", + "description": "The date and time when the command was last updated." + }, + "MandatoryParameters": { + "$ref": "#/definitions/CommandParameterList", + "description": "The list of mandatory parameters for the command." + }, + "Namespace": { + "type": "string", + "enum": [ + "AWS-IoT", + "AWS-IoT-FleetWise" + ], + "description": "The namespace to which the command belongs." + }, + "RoleArn": { + "type": "string", + "minLength": 20, + "maxLength": 2028, + "description": "The customer role associated with the command." + }, + "Payload": { + "$ref": "#/definitions/CommandPayload", + "description": "The payload associated with the command." + }, + "PendingDeletion": { + "type": "boolean", + "description": "A flag indicating whether the command is pending deletion." + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "description": "The tags to be associated with the command.", + "insertionOrder": true + } + }, + "required": [ + "CommandId" + ], + "createOnlyProperties": [ + "/properties/CommandId" + ], + "readOnlyProperties": [ + "/properties/CommandArn" + ], + "writeOnlyProperties": [ + "/properties/LastUpdatedAt" + ], + "primaryIdentifier": [ + "/properties/CommandId" + ], + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "iot:CreateCommand", + "iot:TagResource" + ] + }, + "read": { + "permissions": [ + "iot:GetCommand", + "iot:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "iot:UpdateCommand", + "iot:GetCommand", + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "iot:GetCommand", + "iot:UpdateCommand", + "iot:DeleteCommand" + ] + }, + "list": { + "permissions": [ + "iot:ListCommands" + ] + } + }, + "additionalProperties": false, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] + } +} diff --git a/internal/service/cloudformation/schemas/AWS_IoT_SoftwarePackageVersion.json b/internal/service/cloudformation/schemas/AWS_IoT_SoftwarePackageVersion.json index 4c20f38e63..53a9e117b7 100644 --- a/internal/service/cloudformation/schemas/AWS_IoT_SoftwarePackageVersion.json +++ b/internal/service/cloudformation/schemas/AWS_IoT_SoftwarePackageVersion.json @@ -66,7 +66,8 @@ "pattern": "^[a-zA-Z0-9-_.]+$" }, "PackageVersionArn": { - "type": "string" + "type": "string", + "pattern": "^arn:[!-~]+$" }, "Status": { "$ref": "#/definitions/PackageVersionStatus" @@ -93,7 +94,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "iot:TagResource", + "iot:UntagResource", + "iot:ListTagsForResource" + ] }, "required": [ "PackageName" diff --git a/internal/service/cloudformation/schemas/AWS_Lambda_Function.json b/internal/service/cloudformation/schemas/AWS_Lambda_Function.json index 50ae884555..79f4514786 100644 --- a/internal/service/cloudformation/schemas/AWS_Lambda_Function.json +++ b/internal/service/cloudformation/schemas/AWS_Lambda_Function.json @@ -259,13 +259,13 @@ } }, "Code": { - "description": "The [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) for a Lambda function. To deploy a function defined as a container image, you specify the location of a container image in the Amazon ECR registry. For a .zip file deployment package, you can specify the location of an object in Amazon S3. For Node.js and Python functions, you can specify the function code inline in the template.\n Changes to a deployment package in Amazon S3 or a container image in ECR are not detected automatically during stack updates. To update the function code, change the object key or version in the template.", + "description": "The [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) for a Lambda function. To deploy a function defined as a container image, you specify the location of a container image in the Amazon ECR registry. For a .zip file deployment package, you can specify the location of an object in Amazon S3. For Node.js and Python functions, you can specify the function code inline in the template.\n When you specify source code inline for a Node.js function, the ``index`` file that CFN creates uses the extension ``.js``. This means that LAM treats the file as a CommonJS module. ES modules aren't supported for inline functions.\n Changes to a deployment package in Amazon S3 or a container image in ECR are not detected automatically during stack updates. To update the function code, change the object key or version in the template.", "additionalProperties": false, "type": "object", "properties": { "SourceKMSKeyArn": { "pattern": "^(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()$", - "description": "", + "description": "The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's .zip deployment package. If you don't provide a customer managed key, Lambda uses an [owned key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk).", "type": "string" }, "S3ObjectVersion": { @@ -282,7 +282,7 @@ "maxLength": 63 }, "ZipFile": { - "description": "(Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, CFN places it in a file named ``index`` and zips it to create a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html). This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index``. For example, ``index.handler``.\n For JSON, you must escape quotes and special characters such as newline (``\\n``) with a backslash.\n If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module ([cfn-response](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html)) that simplifies sending responses. See [Using Lambda with CloudFormation](https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html) for details.", + "description": "(Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, CFN places it in a file named ``index`` and zips it to create a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html). This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index``. For example, ``index.handler``.\n When you specify source code inline for a Node.js function, the ``index`` file that CFN creates uses the extension ``.js``. This means that LAM treats the file as a CommonJS module. ES modules aren't supported for inline functions.\n For JSON, you must escape quotes and special characters such as newline (``\\n``) with a backslash.\n If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module ([cfn-response](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html)) that simplifies sending responses. See [Using Lambda with CloudFormation](https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html) for details.", "type": "string" }, "S3Key": { @@ -477,7 +477,7 @@ }, "KmsKeyArn": { "pattern": "^(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()$", - "description": "The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's [environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption). When [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) is activated, LAM also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, LAM also uses this key to encrypt your function when it's deployed. Note that this is not the same key that's used to protect your container image in the ECRlong (ECR). If you don't provide a customer managed key, LAM uses a default service key.", + "description": "The ARN of the KMSlong (KMS) customer managed key that's used to encrypt the following resources:\n + The function's [environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption).\n + The function's [Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) snapshots.\n + When used with ``SourceKMSKeyArn``, the unzipped version of the .zip deployment package that's used for function invocations. For more information, see [Specifying a customer managed key for Lambda](https://docs.aws.amazon.com/lambda/latest/dg/encrypt-zip-package.html#enable-zip-custom-encryption).\n + The optimized version of the container image that's used for function invocations. Note that this is not the same key that's used to protect your container image in the Amazon Elastic Container Registry (Amazon ECR). For more information, see [Function lifecycle](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-lifecycle).\n \n If you don't provide a customer managed key, Lambda uses an [owned key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) or an [](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk).", "type": "string" }, "PackageType": { diff --git a/internal/service/cloudformation/schemas/AWS_Logs_AccountPolicy.json b/internal/service/cloudformation/schemas/AWS_Logs_AccountPolicy.json index ef76c484fb..09f37fd895 100644 --- a/internal/service/cloudformation/schemas/AWS_Logs_AccountPolicy.json +++ b/internal/service/cloudformation/schemas/AWS_Logs_AccountPolicy.json @@ -33,7 +33,9 @@ "type": "string", "enum": [ "DATA_PROTECTION_POLICY", - "SUBSCRIPTION_FILTER_POLICY" + "SUBSCRIPTION_FILTER_POLICY", + "FIELD_INDEX_POLICY", + "TRANSFORMER_POLICY" ] }, "Scope": { @@ -52,6 +54,7 @@ "create": { "permissions": [ "logs:PutAccountPolicy", + "logs:PutIndexPolicy", "logs:PutDataProtectionPolicy", "logs:DescribeAccountPolicies", "logs:CreateLogDelivery", @@ -59,24 +62,30 @@ "firehose:TagDeliveryStream", "logs:PutSubscriptionFilter", "logs:DeleteSubscriptionFilter", + "logs:PutTransformer", "iam:PassRole" ] }, "read": { "permissions": [ - "logs:DescribeAccountPolicies" + "logs:DescribeAccountPolicies", + "logs:GetTransformer" ] }, "update": { "permissions": [ "logs:PutAccountPolicy", + "logs:PutIndexPolicy", "logs:PutDataProtectionPolicy", "logs:DescribeAccountPolicies", "logs:DeleteAccountPolicy", + "logs:DeleteIndexPolicy", "logs:DeleteDataProtectionPolicy", "logs:CreateLogDelivery", "logs:PutSubscriptionFilter", "logs:DeleteSubscriptionFilter", + "logs:PutTransformer", + "logs:DeleteTransformer", "s3:REST.PUT.OBJECT", "firehose:TagDeliveryStream", "iam:PassRole" @@ -85,15 +94,18 @@ "delete": { "permissions": [ "logs:DeleteAccountPolicy", + "logs:DeleteIndexPolicy", "logs:DeleteDataProtectionPolicy", "logs:DescribeAccountPolicies", "logs:DeleteSubscriptionFilter", + "logs:DeleteTransformer", "iam:PassRole" ] }, "list": { "permissions": [ - "logs:DescribeAccountPolicies" + "logs:DescribeAccountPolicies", + "logs:GetTransformer" ], "handlerSchema": { "properties": { diff --git a/internal/service/cloudformation/schemas/AWS_Logs_Integration.json b/internal/service/cloudformation/schemas/AWS_Logs_Integration.json index 02113d53bb..e0b552a219 100644 --- a/internal/service/cloudformation/schemas/AWS_Logs_Integration.json +++ b/internal/service/cloudformation/schemas/AWS_Logs_Integration.json @@ -47,7 +47,7 @@ "type": "string", "pattern": "[\\.\\-_/#A-Za-z0-9]+", "minLength": 1, - "maxLength": 256 + "maxLength": 50 }, "IntegrationType": { "description": "The type of the Integration.", diff --git a/internal/service/cloudformation/schemas/AWS_Logs_MetricFilter.json b/internal/service/cloudformation/schemas/AWS_Logs_MetricFilter.json index f04e173fb4..98e4282690 100644 --- a/internal/service/cloudformation/schemas/AWS_Logs_MetricFilter.json +++ b/internal/service/cloudformation/schemas/AWS_Logs_MetricFilter.json @@ -186,6 +186,10 @@ "type": "string", "maxLength": 512 }, + "ApplyOnTransformedLogs": { + "description": "", + "type": "boolean" + }, "FilterName": { "minLength": 1, "pattern": "^[^:*]{1,512}", diff --git a/internal/service/cloudformation/schemas/AWS_Logs_QueryDefinition.json b/internal/service/cloudformation/schemas/AWS_Logs_QueryDefinition.json index 1bdfcc6794..51b18bf68b 100644 --- a/internal/service/cloudformation/schemas/AWS_Logs_QueryDefinition.json +++ b/internal/service/cloudformation/schemas/AWS_Logs_QueryDefinition.json @@ -37,6 +37,16 @@ "type": "string", "minLength": 0, "maxLength": 256 + }, + "QueryLanguage": { + "description": "Query language of the query string. Possible values are CWLI, SQL, PPL, with CWLI being the default.", + "type": "string", + "enum": [ + "CWLI", + "SQL", + "PPL" + ], + "default": "CWLI" } }, "required": [ diff --git a/internal/service/cloudformation/schemas/AWS_Logs_SubscriptionFilter.json b/internal/service/cloudformation/schemas/AWS_Logs_SubscriptionFilter.json index 27d2cab6fe..335f4bf618 100644 --- a/internal/service/cloudformation/schemas/AWS_Logs_SubscriptionFilter.json +++ b/internal/service/cloudformation/schemas/AWS_Logs_SubscriptionFilter.json @@ -38,6 +38,10 @@ "Random", "ByLogStream" ] + }, + "ApplyOnTransformedLogs": { + "description": "", + "type": "boolean" } }, "handlers": { diff --git a/internal/service/cloudformation/schemas/AWS_Logs_Transformer.json b/internal/service/cloudformation/schemas/AWS_Logs_Transformer.json new file mode 100644 index 0000000000..e88e89789b --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Logs_Transformer.json @@ -0,0 +1,658 @@ +{ + "typeName": "AWS::Logs::Transformer", + "description": "Specifies a transformer on the log group to transform logs into consistent structured and information rich format.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-logs.git", + "properties": { + "LogGroupIdentifier": { + "description": "Existing log group that you want to associate with this transformer.", + "type": "string", + "minLength": 1, + "maxLength": 2048, + "pattern": "[\\w#+=/:,.@-]*" + }, + "TransformerConfig": { + "description": "List of processors in a transformer", + "type": "array", + "items": { + "$ref": "#/definitions/Processor" + }, + "minItems": 1, + "maxItems": 20, + "insertionOrder": false + } + }, + "required": [ + "LogGroupIdentifier", + "TransformerConfig" + ], + "additionalProperties": false, + "definitions": { + "Processor": { + "description": "Individual processor configuration", + "type": "object", + "properties": { + "ParseCloudfront": { + "$ref": "#/definitions/ParseCloudfront" + }, + "ParseVPC": { + "$ref": "#/definitions/ParseVPC" + }, + "ParseWAF": { + "$ref": "#/definitions/ParseWAF" + }, + "ParseJSON": { + "type": "object", + "properties": { + "Source": { + "type": "string" + }, + "Destination": { + "$ref": "#/definitions/NonEmptyAndMaxLengthString" + } + }, + "additionalProperties": false + }, + "ParseRoute53": { + "$ref": "#/definitions/ParseRoute53" + }, + "ParsePostgres": { + "$ref": "#/definitions/ParsePostgres" + }, + "ParseKeyValue": { + "type": "object", + "properties": { + "Source": { + "$ref": "#/definitions/NonEmptyString" + }, + "Destination": { + "$ref": "#/definitions/NonEmptyString" + }, + "FieldDelimiter": { + "type": "string" + }, + "KeyValueDelimiter": { + "type": "string" + }, + "KeyPrefix": { + "$ref": "#/definitions/NonEmptyString" + }, + "NonMatchValue": { + "$ref": "#/definitions/NonEmptyString" + }, + "OverwriteIfExists": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "CopyValue": { + "type": "object", + "properties": { + "Entries": { + "type": "array", + "items": { + "$ref": "#/definitions/CopyValueEntry" + }, + "minItems": 1, + "maxItems": 5, + "insertionOrder": false + } + }, + "required": [ + "Entries" + ], + "additionalProperties": false + }, + "Csv": { + "type": "object", + "properties": { + "QuoteCharacter": { + "type": "string", + "maxLength": 1 + }, + "Delimiter": { + "type": "string", + "maxLength": 1 + }, + "Source": { + "type": "string" + }, + "Columns": { + "type": "array", + "items": { + "$ref": "#/definitions/Column" + }, + "minItems": 1, + "maxItems": 100, + "insertionOrder": false + } + }, + "additionalProperties": false + }, + "DateTimeConverter": { + "type": "object", + "properties": { + "Source": { + "$ref": "#/definitions/NonEmptyString" + }, + "Target": { + "$ref": "#/definitions/NonEmptyAndMaxLengthString" + }, + "TargetFormat": { + "type": "string" + }, + "MatchPatterns": { + "type": "array", + "items": { + "$ref": "#/definitions/MatchPattern" + }, + "minItems": 1, + "maxItems": 5, + "uniqueItems": true, + "insertionOrder": false + }, + "SourceTimezone": { + "type": "string" + }, + "TargetTimezone": { + "type": "string" + }, + "Locale": { + "type": "string" + } + }, + "required": [ + "Source", + "Target", + "MatchPatterns" + ], + "additionalProperties": false + }, + "DeleteKeys": { + "type": "object", + "properties": { + "WithKeys": { + "type": "array", + "items": { + "$ref": "#/definitions/WithKey" + }, + "minItems": 1, + "maxItems": 5, + "uniqueItems": true, + "insertionOrder": false + } + }, + "required": [ + "WithKeys" + ], + "additionalProperties": false + }, + "Grok": { + "type": "object", + "properties": { + "Source": { + "$ref": "#/definitions/NonEmptyString" + }, + "Match": { + "type": "string", + "maxLength": 128 + } + }, + "required": [ + "Match" + ], + "additionalProperties": false + }, + "ListToMap": { + "type": "object", + "properties": { + "Source": { + "$ref": "#/definitions/NonEmptyString" + }, + "Key": { + "$ref": "#/definitions/NonEmptyString" + }, + "ValueKey": { + "$ref": "#/definitions/NonEmptyString" + }, + "Target": { + "$ref": "#/definitions/NonEmptyAndMaxLengthString" + }, + "Flatten": { + "type": "boolean" + }, + "FlattenedElement": { + "type": "string", + "enum": [ + "first", + "last" + ] + } + }, + "required": [ + "Source", + "Key" + ], + "additionalProperties": false + }, + "AddKeys": { + "type": "object", + "properties": { + "Entries": { + "type": "array", + "items": { + "$ref": "#/definitions/AddKeyEntry" + }, + "minItems": 1, + "maxItems": 5, + "uniqueItems": true, + "insertionOrder": false + } + }, + "required": [ + "Entries" + ], + "additionalProperties": false + }, + "MoveKeys": { + "type": "object", + "properties": { + "Entries": { + "type": "array", + "items": { + "$ref": "#/definitions/MoveKeyEntry" + }, + "minItems": 1, + "maxItems": 5, + "insertionOrder": false + } + }, + "required": [ + "Entries" + ], + "additionalProperties": false + }, + "RenameKeys": { + "type": "object", + "properties": { + "Entries": { + "type": "array", + "items": { + "$ref": "#/definitions/RenameKeyEntry" + }, + "minItems": 1, + "maxItems": 5, + "insertionOrder": false + } + }, + "required": [ + "Entries" + ], + "additionalProperties": false + }, + "LowerCaseString": { + "type": "object", + "properties": { + "WithKeys": { + "type": "array", + "items": { + "$ref": "#/definitions/WithKey" + }, + "minItems": 1, + "maxItems": 10, + "uniqueItems": true, + "insertionOrder": false + } + }, + "required": [ + "WithKeys" + ], + "additionalProperties": false + }, + "SplitString": { + "type": "object", + "properties": { + "Entries": { + "type": "array", + "items": { + "$ref": "#/definitions/SplitStringEntry" + }, + "minItems": 1, + "maxItems": 10, + "insertionOrder": false + } + }, + "required": [ + "Entries" + ], + "additionalProperties": false + }, + "SubstituteString": { + "type": "object", + "properties": { + "Entries": { + "type": "array", + "items": { + "$ref": "#/definitions/SubstituteStringEntry" + }, + "minItems": 1, + "maxItems": 10, + "insertionOrder": false + } + }, + "required": [ + "Entries" + ], + "additionalProperties": false + }, + "TrimString": { + "type": "object", + "properties": { + "WithKeys": { + "type": "array", + "items": { + "$ref": "#/definitions/WithKey" + }, + "minItems": 1, + "maxItems": 10, + "uniqueItems": true, + "insertionOrder": false + } + }, + "required": [ + "WithKeys" + ], + "additionalProperties": false + }, + "UpperCaseString": { + "type": "object", + "properties": { + "WithKeys": { + "type": "array", + "items": { + "$ref": "#/definitions/WithKey" + }, + "minItems": 1, + "maxItems": 10, + "uniqueItems": true, + "insertionOrder": false + } + }, + "required": [ + "WithKeys" + ], + "additionalProperties": false + }, + "TypeConverter": { + "type": "object", + "properties": { + "Entries": { + "type": "array", + "items": { + "$ref": "#/definitions/TypeConverterEntry" + }, + "minItems": 1, + "maxItems": 5, + "insertionOrder": false + } + }, + "required": [ + "Entries" + ], + "additionalProperties": false + } + }, + "additionalProperties": false, + "minProperties": 1, + "maxProperties": 1 + }, + "ParseCloudfront": { + "type": "object", + "properties": { + "Source": { + "$ref": "#/definitions/NonEmptyString" + } + }, + "additionalProperties": false + }, + "ParseVPC": { + "type": "object", + "properties": { + "Source": { + "$ref": "#/definitions/NonEmptyString" + } + }, + "additionalProperties": false + }, + "ParseWAF": { + "type": "object", + "properties": { + "Source": { + "$ref": "#/definitions/NonEmptyString" + } + }, + "additionalProperties": false + }, + "ParseRoute53": { + "type": "object", + "properties": { + "Source": { + "$ref": "#/definitions/NonEmptyString" + } + }, + "additionalProperties": false + }, + "ParsePostgres": { + "type": "object", + "properties": { + "Source": { + "$ref": "#/definitions/NonEmptyString" + } + }, + "additionalProperties": false + }, + "AddKeyEntry": { + "type": "object", + "properties": { + "Key": { + "$ref": "#/definitions/NonEmptyAndMaxLengthString" + }, + "Value": { + "type": "string", + "minLength": 1, + "maxLength": 256 + }, + "OverwriteIfExists": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "Key", + "Value" + ] + }, + "CopyValueEntry": { + "type": "object", + "properties": { + "Source": { + "$ref": "#/definitions/NonEmptyString" + }, + "Target": { + "$ref": "#/definitions/NonEmptyAndMaxLengthString" + }, + "OverwriteIfExists": { + "type": "boolean" + } + }, + "required": [ + "Source", + "Target" + ], + "additionalProperties": false + }, + "Column": { + "$ref": "#/definitions/NonEmptyAndMaxLengthString" + }, + "WithKey": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "MatchPattern": { + "$ref": "#/definitions/NonEmptyString" + }, + "MoveKeyEntry": { + "type": "object", + "properties": { + "Source": { + "$ref": "#/definitions/NonEmptyString" + }, + "Target": { + "$ref": "#/definitions/NonEmptyString" + }, + "OverwriteIfExists": { + "type": "boolean" + } + }, + "required": [ + "Source", + "Target" + ], + "additionalProperties": false + }, + "RenameKeyEntry": { + "type": "object", + "properties": { + "Key": { + "$ref": "#/definitions/NonEmptyString" + }, + "RenameTo": { + "$ref": "#/definitions/NonEmptyString" + }, + "OverwriteIfExists": { + "type": "boolean" + } + }, + "required": [ + "Key", + "RenameTo" + ], + "additionalProperties": false + }, + "SplitStringEntry": { + "type": "object", + "properties": { + "Source": { + "$ref": "#/definitions/NonEmptyString" + }, + "Delimiter": { + "type": "string", + "maxLength": 1 + } + }, + "required": [ + "Source", + "Delimiter" + ], + "additionalProperties": false + }, + "SubstituteStringEntry": { + "type": "object", + "properties": { + "Source": { + "$ref": "#/definitions/NonEmptyString" + }, + "From": { + "$ref": "#/definitions/NonEmptyAndMaxLengthString" + }, + "To": { + "$ref": "#/definitions/NonEmptyAndMaxLengthString" + } + }, + "required": [ + "Source", + "From", + "To" + ], + "additionalProperties": false + }, + "TypeConverterEntry": { + "type": "object", + "properties": { + "Key": { + "$ref": "#/definitions/NonEmptyString" + }, + "Type": { + "type": "string", + "enum": [ + "boolean", + "integer", + "double", + "string" + ] + } + }, + "required": [ + "Key", + "Type" + ], + "additionalProperties": false + }, + "NonEmptyAndMaxLengthString": { + "type": "string", + "maxLength": 128, + "pattern": "^.*[a-zA-Z0-9]+.*$" + }, + "NonEmptyString": { + "type": "string", + "pattern": "^.*[a-zA-Z0-9]+.*$" + }, + "MaxLengthString": { + "type": "string", + "maxLength": 128 + } + }, + "primaryIdentifier": [ + "/properties/LogGroupIdentifier" + ], + "createOnlyProperties": [ + "/properties/LogGroupIdentifier" + ], + "handlers": { + "create": { + "permissions": [ + "logs:PutTransformer", + "logs:GetTransformer" + ] + }, + "read": { + "permissions": [ + "logs:GetTransformer" + ] + }, + "update": { + "permissions": [ + "logs:GetTransformer", + "logs:PutTransformer" + ] + }, + "delete": { + "permissions": [ + "logs:DeleteTransformer" + ] + }, + "list": { + "permissions": [ + "logs:DescribeLogGroups", + "logs:GetTransformer" + ] + } + }, + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + } +} diff --git a/internal/service/cloudformation/schemas/AWS_M2_Environment.json b/internal/service/cloudformation/schemas/AWS_M2_Environment.json index 102201c2d1..0e169d2a91 100644 --- a/internal/service/cloudformation/schemas/AWS_M2_Environment.json +++ b/internal/service/cloudformation/schemas/AWS_M2_Environment.json @@ -67,6 +67,13 @@ ], "additionalProperties": false }, + "NetworkType": { + "type": "string", + "enum": [ + "ipv4", + "dual" + ] + }, "StorageConfiguration": { "type": "object", "description": "Defines the storage configuration for an environment.", @@ -153,6 +160,9 @@ "description": "The name of the environment.", "pattern": "^[A-Za-z0-9][A-Za-z0-9_\\-]{1,59}$" }, + "NetworkType": { + "$ref": "#/definitions/NetworkType" + }, "PreferredMaintenanceWindow": { "type": "string", "description": "Configures a desired maintenance window for the environment. If you do not provide a value, a random system-generated value will be assigned.", @@ -213,6 +223,7 @@ "/properties/EngineType", "/properties/KmsKeyId", "/properties/Name", + "/properties/NetworkType", "/properties/PubliclyAccessible", "/properties/SecurityGroupIds", "/properties/StorageConfigurations", diff --git a/internal/service/cloudformation/schemas/AWS_MSK_Replicator.json b/internal/service/cloudformation/schemas/AWS_MSK_Replicator.json index 32c9c4db6c..231f8e532f 100644 --- a/internal/service/cloudformation/schemas/AWS_MSK_Replicator.json +++ b/internal/service/cloudformation/schemas/AWS_MSK_Replicator.json @@ -358,7 +358,12 @@ "/properties/ReplicatorName", "/properties/Description", "/properties/KafkaClusters", - "/properties/ServiceExecutionRoleArn" + "/properties/ServiceExecutionRoleArn", + "/properties/ReplicationInfoList/*/SourceKafkaClusterArn", + "/properties/ReplicationInfoList/*/TargetKafkaClusterArn", + "/properties/ReplicationInfoList/*/TargetCompressionType", + "/properties/ReplicationInfoList/*/TopicReplication/StartingPosition", + "/properties/ReplicationInfoList/*/TopicReplication/TopicNameConfiguration" ], "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_MediaLive_ChannelPlacementGroup.json b/internal/service/cloudformation/schemas/AWS_MediaLive_ChannelPlacementGroup.json index 04c46fec79..42566f31d3 100644 --- a/internal/service/cloudformation/schemas/AWS_MediaLive_ChannelPlacementGroup.json +++ b/internal/service/cloudformation/schemas/AWS_MediaLive_ChannelPlacementGroup.json @@ -89,8 +89,8 @@ ], "tagging": { "taggable": true, - "tagOnCreate": false, - "tagUpdatable": false, + "tagOnCreate": true, + "tagUpdatable": true, "cloudFormationSystemTags": false, "tagProperty": "/properties/Tags", "permissions": [ @@ -103,12 +103,14 @@ "permissions": [ "medialive:CreateChannelPlacementGroup", "medialive:DescribeChannelPlacementGroup", - "medialive:CreateTags" + "medialive:CreateTags", + "medialive:ListTagsForResource" ] }, "read": { "permissions": [ - "medialive:DescribeChannelPlacementGroup" + "medialive:DescribeChannelPlacementGroup", + "medialive:ListTagsForResource" ] }, "update": { @@ -116,7 +118,8 @@ "medialive:UpdateChannelPlacementGroup", "medialive:DescribeChannelPlacementGroup", "medialive:CreateTags", - "medialive:DeleteTags" + "medialive:DeleteTags", + "medialive:ListTagsForResource" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_MediaLive_Cluster.json b/internal/service/cloudformation/schemas/AWS_MediaLive_Cluster.json index 33b8583719..26721f7ff1 100644 --- a/internal/service/cloudformation/schemas/AWS_MediaLive_Cluster.json +++ b/internal/service/cloudformation/schemas/AWS_MediaLive_Cluster.json @@ -166,12 +166,14 @@ "ecs:RegisterTaskDefinition", "ecs:TagResource", "ecs:CreateService", - "iam:PassRole" + "iam:PassRole", + "medialive:ListTagsForResource" ] }, "read": { "permissions": [ - "medialive:DescribeCluster" + "medialive:DescribeCluster", + "medialive:ListTagsForResource" ] }, "update": { @@ -179,13 +181,15 @@ "medialive:UpdateCluster", "medialive:DescribeCluster", "medialive:CreateTags", - "medialive:DeleteTags" + "medialive:DeleteTags", + "medialive:ListTagsForResource" ] }, "delete": { "permissions": [ "medialive:DeleteCluster", - "medialive:DescribeCluster" + "medialive:DescribeCluster", + "ecs:DeleteService" ] }, "list": { diff --git a/internal/service/cloudformation/schemas/AWS_MediaLive_Network.json b/internal/service/cloudformation/schemas/AWS_MediaLive_Network.json index 771d627443..69db73c377 100644 --- a/internal/service/cloudformation/schemas/AWS_MediaLive_Network.json +++ b/internal/service/cloudformation/schemas/AWS_MediaLive_Network.json @@ -133,12 +133,15 @@ "create": { "permissions": [ "medialive:CreateNetwork", - "medialive:CreateTags" + "medialive:CreateTags", + "medialive:DescribeNetwork", + "medialive:ListTagsForResource" ] }, "read": { "permissions": [ - "medialive:DescribeNetwork" + "medialive:DescribeNetwork", + "medialive:ListTagsForResource" ] }, "update": { @@ -146,7 +149,8 @@ "medialive:UpdateNetwork", "medialive:CreateTags", "medialive:DeleteTags", - "medialive:DescribeNetwork" + "medialive:DescribeNetwork", + "medialive:ListTagsForResource" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_MediaLive_SdiSource.json b/internal/service/cloudformation/schemas/AWS_MediaLive_SdiSource.json index cc2b142a71..1ecbf8bd38 100644 --- a/internal/service/cloudformation/schemas/AWS_MediaLive_SdiSource.json +++ b/internal/service/cloudformation/schemas/AWS_MediaLive_SdiSource.json @@ -108,12 +108,15 @@ "create": { "permissions": [ "medialive:CreateSdiSource", - "medialive:CreateTags" + "medialive:CreateTags", + "medialive:DescribeSdiSource", + "medialive:ListTagsForResource" ] }, "read": { "permissions": [ - "medialive:DescribeSdiSource" + "medialive:DescribeSdiSource", + "medialive:ListTagsForResource" ] }, "update": { @@ -121,7 +124,8 @@ "medialive:UpdateSdiSource", "medialive:DescribeSdiSource", "medialive:CreateTags", - "medialive:DeleteTags" + "medialive:DeleteTags", + "medialive:ListTagsForResource" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_NetworkManager_DirectConnectGatewayAttachment.json b/internal/service/cloudformation/schemas/AWS_NetworkManager_DirectConnectGatewayAttachment.json new file mode 100644 index 0000000000..e57ddbcf8f --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_NetworkManager_DirectConnectGatewayAttachment.json @@ -0,0 +1,239 @@ +{ + "typeName": "AWS::NetworkManager::DirectConnectGatewayAttachment", + "description": "AWS::NetworkManager::DirectConnectGatewayAttachment Resource Type", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-networkmanager/aws-networkmanager-directconnectgatewayattachment", + "properties": { + "CoreNetworkId": { + "description": "The ID of a core network for the Direct Connect Gateway attachment.", + "type": "string" + }, + "CoreNetworkArn": { + "description": "The ARN of a core network for the Direct Connect Gateway attachment.", + "type": "string" + }, + "AttachmentId": { + "description": "Id of the attachment.", + "type": "string" + }, + "OwnerAccountId": { + "description": "Owner account of the attachment.", + "type": "string" + }, + "AttachmentType": { + "description": "Attachment type.", + "type": "string" + }, + "State": { + "description": "State of the attachment.", + "type": "string" + }, + "EdgeLocations": { + "description": "The Regions where the edges are located.", + "type": "array", + "insertionOrder": false, + "items": { + "type": "string" + } + }, + "DirectConnectGatewayArn": { + "description": "The ARN of the Direct Connect Gateway.", + "type": "string" + }, + "ResourceArn": { + "description": "The ARN of the Resource.", + "type": "string" + }, + "AttachmentPolicyRuleNumber": { + "description": "The policy rule number associated with the attachment.", + "type": "integer" + }, + "SegmentName": { + "description": "The name of the segment attachment..", + "type": "string" + }, + "ProposedSegmentChange": { + "description": "The attachment to move from one segment to another.", + "$ref": "#/definitions/ProposedSegmentChange" + }, + "NetworkFunctionGroupName": { + "description": "The name of the network function group attachment.", + "type": "string" + }, + "ProposedNetworkFunctionGroupChange": { + "description": "The attachment to move from one network function group to another.", + "$ref": "#/definitions/ProposedNetworkFunctionGroupChange" + }, + "Tags": { + "description": "Tags for the attachment.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + } + }, + "CreatedAt": { + "description": "Creation time of the attachment.", + "type": "string" + }, + "UpdatedAt": { + "description": "Last update time of the attachment.", + "type": "string" + } + }, + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "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 -." + }, + "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 -." + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false + }, + "ProposedSegmentChange": { + "description": "The attachment to move from one segment to another.", + "type": "object", + "properties": { + "Tags": { + "description": "The key-value tags that changed for the segment.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + } + }, + "AttachmentPolicyRuleNumber": { + "description": "The rule number in the policy document that applies to this change.", + "type": "integer" + }, + "SegmentName": { + "description": "The name of the segment to change.", + "type": "string" + } + }, + "additionalProperties": false + }, + "ProposedNetworkFunctionGroupChange": { + "description": "The attachment to move from one network function group to another.", + "type": "object", + "properties": { + "Tags": { + "description": "The key-value tags that changed for the network function group.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + } + }, + "AttachmentPolicyRuleNumber": { + "description": "The rule number in the policy document that applies to this change.", + "type": "integer" + }, + "NetworkFunctionGroupName": { + "description": "The name of the network function group to change.", + "type": "string" + } + }, + "additionalProperties": false + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "networkmanager:TagResource", + "networkmanager:UntagResource", + "networkmanager:ListTagsForResource" + ] + }, + "additionalProperties": false, + "required": [ + "CoreNetworkId", + "DirectConnectGatewayArn", + "EdgeLocations" + ], + "createOnlyProperties": [ + "/properties/CoreNetworkId", + "/properties/DirectConnectGatewayArn" + ], + "readOnlyProperties": [ + "/properties/CoreNetworkArn", + "/properties/CreatedAt", + "/properties/UpdatedAt", + "/properties/AttachmentType", + "/properties/State", + "/properties/AttachmentId", + "/properties/OwnerAccountId", + "/properties/AttachmentPolicyRuleNumber", + "/properties/SegmentName", + "/properties/NetworkFunctionGroupName", + "/properties/ResourceArn" + ], + "primaryIdentifier": [ + "/properties/AttachmentId" + ], + "additionalIdentifiers": [ + [ + "/properties/CoreNetworkId", + "/properties/DirectConnectGatewayArn" + ] + ], + "handlers": { + "create": { + "permissions": [ + "networkmanager:CreateDirectConnectGatewayAttachment", + "networkmanager:GetDirectConnectGatewayAttachment", + "networkmanager:TagResource", + "ec2:DescribeRegions", + "iam:CreateServiceLinkedRole" + ], + "timeoutInMinutes": 60 + }, + "read": { + "permissions": [ + "networkmanager:GetDirectConnectGatewayAttachment" + ] + }, + "update": { + "permissions": [ + "networkmanager:UpdateDirectConnectGatewayAttachment", + "networkmanager:GetDirectConnectGatewayAttachment", + "networkmanager:ListTagsForResource", + "networkmanager:TagResource", + "networkmanager:UntagResource", + "ec2:DescribeRegions" + ], + "timeoutInMinutes": 60 + }, + "delete": { + "permissions": [ + "networkmanager:DeleteAttachment", + "networkmanager:GetDirectConnectGatewayAttachment", + "networkmanager:UntagResource", + "ec2:DescribeRegions" + ], + "timeoutInMinutes": 60 + }, + "list": { + "permissions": [ + "networkmanager:ListAttachments" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_NetworkManager_TransitGatewayPeering.json b/internal/service/cloudformation/schemas/AWS_NetworkManager_TransitGatewayPeering.json index 7ba3dc73a4..3b784fd9d4 100644 --- a/internal/service/cloudformation/schemas/AWS_NetworkManager_TransitGatewayPeering.json +++ b/internal/service/cloudformation/schemas/AWS_NetworkManager_TransitGatewayPeering.json @@ -132,8 +132,7 @@ }, "read": { "permissions": [ - "networkmanager:GetTransitGatewayPeering", - "networkmanager:TagResource" + "networkmanager:GetTransitGatewayPeering" ] }, "update": { diff --git a/internal/service/cloudformation/schemas/AWS_Oam_Link.json b/internal/service/cloudformation/schemas/AWS_Oam_Link.json index c16c2abef9..f36f5f87b9 100644 --- a/internal/service/cloudformation/schemas/AWS_Oam_Link.json +++ b/internal/service/cloudformation/schemas/AWS_Oam_Link.json @@ -120,6 +120,8 @@ "permissions": [ "oam:CreateLink", "oam:GetLink", + "oam:TagResource", + "oam:ListTagsForResource", "cloudwatch:Link", "logs:Link", "xray:Link", @@ -129,7 +131,8 @@ }, "read": { "permissions": [ - "oam:GetLink" + "oam:GetLink", + "oam:ListTagsForResource" ] }, "update": { @@ -142,7 +145,8 @@ "applicationinsights:Link", "internetmonitor:Link", "oam:TagResource", - "oam:UntagResource" + "oam:UntagResource", + "oam:ListTagsForResource" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_Oam_Sink.json b/internal/service/cloudformation/schemas/AWS_Oam_Sink.json index 87fc7c1c92..ee160d0374 100644 --- a/internal/service/cloudformation/schemas/AWS_Oam_Sink.json +++ b/internal/service/cloudformation/schemas/AWS_Oam_Sink.json @@ -64,7 +64,9 @@ "oam:CreateSink", "oam:PutSinkPolicy", "oam:GetSinkPolicy", - "oam:GetSink" + "oam:GetSink", + "oam:TagResource", + "oam:ListTagsForResource" ] }, "delete": { @@ -82,7 +84,8 @@ "read": { "permissions": [ "oam:GetSinkPolicy", - "oam:GetSink" + "oam:GetSink", + "oam:ListTagsForResource" ] }, "update": { @@ -91,7 +94,8 @@ "oam:GetSinkPolicy", "oam:GetSink", "oam:TagResource", - "oam:UntagResource" + "oam:UntagResource", + "oam:ListTagsForResource" ] } } diff --git a/internal/service/cloudformation/schemas/AWS_Organizations_Policy.json b/internal/service/cloudformation/schemas/AWS_Organizations_Policy.json index 173a466437..d9f44e88ea 100644 --- a/internal/service/cloudformation/schemas/AWS_Organizations_Policy.json +++ b/internal/service/cloudformation/schemas/AWS_Organizations_Policy.json @@ -11,7 +11,7 @@ "maxLength": 128 }, "Type": { - "description": "The type of policy to create. You can specify one of the following values: AISERVICES_OPT_OUT_POLICY, BACKUP_POLICY, SERVICE_CONTROL_POLICY, TAG_POLICY, CHATBOT_POLICY, RESOURCE_CONTROL_POLICY", + "description": "The type of policy to create. You can specify one of the following values: AISERVICES_OPT_OUT_POLICY, BACKUP_POLICY, SERVICE_CONTROL_POLICY, TAG_POLICY, CHATBOT_POLICY, RESOURCE_CONTROL_POLICY,DECLARATIVE_POLICY_EC2", "type": "string", "enum": [ "SERVICE_CONTROL_POLICY", @@ -19,7 +19,8 @@ "BACKUP_POLICY", "TAG_POLICY", "CHATBOT_POLICY", - "RESOURCE_CONTROL_POLICY" + "RESOURCE_CONTROL_POLICY", + "DECLARATIVE_POLICY_EC2" ] }, "Content": { diff --git a/internal/service/cloudformation/schemas/AWS_QBusiness_Application.json b/internal/service/cloudformation/schemas/AWS_QBusiness_Application.json index 8e6282dcfd..d95dcf3cb4 100644 --- a/internal/service/cloudformation/schemas/AWS_QBusiness_Application.json +++ b/internal/service/cloudformation/schemas/AWS_QBusiness_Application.json @@ -69,7 +69,27 @@ "enum": [ "AWS_IAM_IDP_SAML", "AWS_IAM_IDP_OIDC", - "AWS_IAM_IDC" + "AWS_IAM_IDC", + "AWS_QUICKSIGHT_IDP" + ] + }, + "PersonalizationConfiguration": { + "type": "object", + "properties": { + "PersonalizationControlMode": { + "$ref": "#/definitions/PersonalizationControlMode" + } + }, + "required": [ + "PersonalizationControlMode" + ], + "additionalProperties": false + }, + "PersonalizationControlMode": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" ] }, "QAppsConfiguration": { @@ -91,30 +111,26 @@ "DISABLED" ] }, - "SubscriptionType": { - "type": "string", - "enum": [ - "Q_LITE", - "Q_BUSINESS" - ] - }, - "PersonalizationConfiguration": { + "QuickSightConfiguration": { "type": "object", "properties": { - "PersonalizationControlMode": { - "$ref": "#/definitions/PersonalizationControlMode" + "ClientNamespace": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "pattern": "^[a-zA-Z0-9._-]*$" } }, "required": [ - "PersonalizationControlMode" + "ClientNamespace" ], "additionalProperties": false }, - "PersonalizationControlMode": { + "SubscriptionType": { "type": "string", "enum": [ - "ENABLED", - "DISABLED" + "Q_LITE", + "Q_BUSINESS" ] }, "Tag": { @@ -159,7 +175,6 @@ }, "ClientIdsForOIDC": { "type": "array", - "insertionOrder": false, "items": { "type": "string", "maxLength": 255, @@ -198,12 +213,6 @@ "minLength": 10, "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::\\d{12}:application/(sso)?ins-[a-zA-Z0-9-.]{16}/apl-[a-zA-Z0-9]{16}$" }, - "QAppsConfiguration": { - "$ref": "#/definitions/QAppsConfiguration" - }, - "PersonalizationConfiguration": { - "$ref": "#/definitions/PersonalizationConfiguration" - }, "IdentityCenterInstanceArn": { "type": "string", "maxLength": 1224, @@ -213,6 +222,15 @@ "IdentityType": { "$ref": "#/definitions/IdentityType" }, + "PersonalizationConfiguration": { + "$ref": "#/definitions/PersonalizationConfiguration" + }, + "QAppsConfiguration": { + "$ref": "#/definitions/QAppsConfiguration" + }, + "QuickSightConfiguration": { + "$ref": "#/definitions/QuickSightConfiguration" + }, "RoleArn": { "type": "string", "maxLength": 1284, @@ -224,7 +242,6 @@ }, "Tags": { "type": "array", - "insertionOrder": false, "items": { "$ref": "#/definitions/Tag" }, @@ -254,7 +271,8 @@ "/properties/ClientIdsForOIDC", "/properties/EncryptionConfiguration", "/properties/IamIdentityProviderArn", - "/properties/IdentityType" + "/properties/IdentityType", + "/properties/QuickSightConfiguration" ], "primaryIdentifier": [ "/properties/ApplicationId" @@ -268,9 +286,11 @@ "kms:DescribeKey", "qbusiness:CreateApplication", "qbusiness:GetApplication", - "qbusiness:UpdateApplication", "qbusiness:ListTagsForResource", "qbusiness:TagResource", + "qbusiness:UpdateApplication", + "quicksight:DescribeAccountSubscription", + "quicksight:ListNamespaces", "sso:CreateApplication", "sso:DeleteApplication", "sso:DescribeInstance", diff --git a/internal/service/cloudformation/schemas/AWS_QBusiness_DataAccessor.json b/internal/service/cloudformation/schemas/AWS_QBusiness_DataAccessor.json new file mode 100644 index 0000000000..28227ef8fa --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_QBusiness_DataAccessor.json @@ -0,0 +1,329 @@ +{ + "typeName": "AWS::QBusiness::DataAccessor", + "description": "Definition of AWS::QBusiness::DataAccessor Resource Type", + "definitions": { + "ActionConfiguration": { + "type": "object", + "properties": { + "Action": { + "type": "string", + "pattern": "^qbusiness:[a-zA-Z]+$" + }, + "FilterConfiguration": { + "$ref": "#/definitions/ActionFilterConfiguration" + } + }, + "required": [ + "Action" + ], + "additionalProperties": false + }, + "ActionFilterConfiguration": { + "type": "object", + "properties": { + "DocumentAttributeFilter": { + "$ref": "#/definitions/AttributeFilter" + } + }, + "required": [ + "DocumentAttributeFilter" + ], + "additionalProperties": false + }, + "AttributeFilter": { + "type": "object", + "properties": { + "AndAllFilters": { + "type": "array", + "items": { + "$ref": "#/definitions/AttributeFilter" + } + }, + "OrAllFilters": { + "type": "array", + "items": { + "$ref": "#/definitions/AttributeFilter" + } + }, + "NotFilter": { + "$ref": "#/definitions/AttributeFilter" + }, + "EqualsTo": { + "$ref": "#/definitions/DocumentAttribute" + }, + "ContainsAll": { + "$ref": "#/definitions/DocumentAttribute" + }, + "ContainsAny": { + "$ref": "#/definitions/DocumentAttribute" + }, + "GreaterThan": { + "$ref": "#/definitions/DocumentAttribute" + }, + "GreaterThanOrEquals": { + "$ref": "#/definitions/DocumentAttribute" + }, + "LessThan": { + "$ref": "#/definitions/DocumentAttribute" + }, + "LessThanOrEquals": { + "$ref": "#/definitions/DocumentAttribute" + } + }, + "additionalProperties": false + }, + "DocumentAttribute": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "maxLength": 200, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_][a-zA-Z0-9_-]*$" + }, + "Value": { + "$ref": "#/definitions/DocumentAttributeValue" + } + }, + "required": [ + "Name", + "Value" + ], + "additionalProperties": false + }, + "DocumentAttributeValue": { + "oneOf": [ + { + "type": "object", + "title": "StringValue", + "properties": { + "StringValue": { + "type": "string", + "maxLength": 2048 + } + }, + "required": [ + "StringValue" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "StringListValue", + "properties": { + "StringListValue": { + "type": "array", + "items": { + "type": "string", + "maxLength": 2048, + "minLength": 1 + } + } + }, + "required": [ + "StringListValue" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "LongValue", + "properties": { + "LongValue": { + "type": "number" + } + }, + "required": [ + "LongValue" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "DateValue", + "properties": { + "DateValue": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "DateValue" + ], + "additionalProperties": false + } + ] + }, + "Tag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "maxLength": 128, + "minLength": 1 + }, + "Value": { + "type": "string", + "maxLength": 256, + "minLength": 0 + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false + }, + "Unit": { + "type": "object", + "additionalProperties": false + } + }, + "properties": { + "ActionConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionConfiguration" + }, + "maxItems": 10, + "minItems": 1 + }, + "ApplicationId": { + "type": "string", + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{35}$" + }, + "CreatedAt": { + "type": "string", + "format": "date-time" + }, + "DataAccessorArn": { + "type": "string", + "maxLength": 1284, + "minLength": 0, + "pattern": "" + }, + "DataAccessorId": { + "type": "string", + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{35}$" + }, + "DisplayName": { + "type": "string", + "maxLength": 1000, + "minLength": 1, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*$" + }, + "IdcApplicationArn": { + "type": "string", + "maxLength": 1224, + "minLength": 10, + "pattern": "^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):sso::\\d{12}:application/(sso)?ins-[a-zA-Z0-9-.]{16}/apl-[a-zA-Z0-9]{16}$" + }, + "Principal": { + "type": "string", + "maxLength": 1284, + "minLength": 1, + "pattern": "^arn:aws:iam::[0-9]{12}:role/.+" + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 0 + }, + "UpdatedAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "ActionConfigurations", + "DisplayName", + "Principal" + ], + "readOnlyProperties": [ + "/properties/CreatedAt", + "/properties/DataAccessorArn", + "/properties/DataAccessorId", + "/properties/IdcApplicationArn", + "/properties/UpdatedAt" + ], + "createOnlyProperties": [ + "/properties/ApplicationId", + "/properties/Principal" + ], + "primaryIdentifier": [ + "/properties/ApplicationId", + "/properties/DataAccessorId" + ], + "handlers": { + "create": { + "permissions": [ + "qbusiness:CreateDataAccessor", + "qbusiness:GetDataAccessor", + "qbusiness:ListTagsForResource", + "qbusiness:TagResource", + "sso:CreateApplication", + "sso:PutApplicationAuthenticationMethod", + "sso:PutApplicationGrant", + "sso:PutApplicationAccessScope" + ] + }, + "read": { + "permissions": [ + "qbusiness:GetDataAccessor", + "qbusiness:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "qbusiness:GetDataAccessor", + "qbusiness:ListTagsForResource", + "qbusiness:TagResource", + "qbusiness:UntagResource", + "qbusiness:UpdateDataAccessor" + ] + }, + "delete": { + "permissions": [ + "qbusiness:DeleteDataAccessor", + "qbusiness:GetDataAccessor", + "sso:DeleteApplication" + ] + }, + "list": { + "permissions": [ + "qbusiness:ListDataAccessors" + ], + "handlerSchema": { + "properties": { + "ApplicationId": { + "$ref": "resource-schema.json#/properties/ApplicationId" + } + }, + "required": [ + "ApplicationId" + ] + } + } + }, + "tagging": { + "taggable": true, + "tagUpdatable": true, + "tagOnCreate": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "qbusiness:UntagResource", + "qbusiness:TagResource", + "qbusiness:ListTagsForResource" + ] + }, + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-qbusiness", + "additionalProperties": false +} diff --git a/internal/service/cloudformation/schemas/AWS_QBusiness_DataSource.json b/internal/service/cloudformation/schemas/AWS_QBusiness_DataSource.json index de7e11c992..82377065f1 100644 --- a/internal/service/cloudformation/schemas/AWS_QBusiness_DataSource.json +++ b/internal/service/cloudformation/schemas/AWS_QBusiness_DataSource.json @@ -180,6 +180,34 @@ "BEGINS_WITH" ] }, + "ImageExtractionStatus": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, + "ImageExtractionConfiguration": { + "type": "object", + "properties": { + "ImageExtractionStatus": { + "$ref": "#/definitions/ImageExtractionStatus" + } + }, + "required": [ + "ImageExtractionStatus" + ], + "additionalProperties": false + }, + "MediaExtractionConfiguration": { + "type": "object", + "properties": { + "ImageExtractionConfiguration": { + "$ref": "#/definitions/ImageExtractionConfiguration" + } + }, + "additionalProperties": false + }, "DocumentEnrichmentConfiguration": { "type": "object", "properties": { @@ -303,6 +331,9 @@ "DocumentEnrichmentConfiguration": { "$ref": "#/definitions/DocumentEnrichmentConfiguration" }, + "MediaExtractionConfiguration": { + "$ref": "#/definitions/MediaExtractionConfiguration" + }, "IndexId": { "type": "string", "maxLength": 36, diff --git a/internal/service/cloudformation/schemas/AWS_QBusiness_Permission.json b/internal/service/cloudformation/schemas/AWS_QBusiness_Permission.json new file mode 100644 index 0000000000..46bcfa6c25 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_QBusiness_Permission.json @@ -0,0 +1,91 @@ +{ + "typeName": "AWS::QBusiness::Permission", + "description": "Definition of AWS::QBusiness::Permission Resource Type", + "properties": { + "ApplicationId": { + "type": "string", + "maxLength": 36, + "minLength": 36, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{35}$" + }, + "StatementId": { + "type": "string", + "maxLength": 100, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_-]+$" + }, + "Actions": { + "type": "array", + "items": { + "type": "string", + "pattern": "^qbusiness:[a-zA-Z]+$" + }, + "maxItems": 10, + "minItems": 1 + }, + "Principal": { + "type": "string", + "maxLength": 1284, + "minLength": 1, + "pattern": "^arn:aws:iam::[0-9]{12}:role/.+" + } + }, + "required": [ + "ApplicationId", + "StatementId", + "Actions", + "Principal" + ], + "createOnlyProperties": [ + "/properties/ApplicationId", + "/properties/StatementId", + "/properties/Actions", + "/properties/Principal" + ], + "primaryIdentifier": [ + "/properties/ApplicationId", + "/properties/StatementId" + ], + "handlers": { + "create": { + "permissions": [ + "qbusiness:AssociatePermission", + "qbusiness:PutResourcePolicy" + ] + }, + "read": { + "permissions": [ + "qbusiness:GetPolicy" + ] + }, + "delete": { + "permissions": [ + "qbusiness:DisassociatePermission", + "qbusiness:PutResourcePolicy" + ] + }, + "list": { + "permissions": [ + "qbusiness:GetPolicy" + ], + "handlerSchema": { + "properties": { + "ApplicationId": { + "$ref": "resource-schema.json#/properties/ApplicationId" + } + }, + "required": [ + "ApplicationId" + ] + } + } + }, + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-qbusiness", + "additionalProperties": false +} diff --git a/internal/service/cloudformation/schemas/AWS_QBusiness_Plugin.json b/internal/service/cloudformation/schemas/AWS_QBusiness_Plugin.json index 175af0a5ef..38d2081b7f 100644 --- a/internal/service/cloudformation/schemas/AWS_QBusiness_Plugin.json +++ b/internal/service/cloudformation/schemas/AWS_QBusiness_Plugin.json @@ -100,6 +100,18 @@ "maxLength": 1284, "minLength": 0, "pattern": "" + }, + "AuthorizationUrl": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^(https?|ftp|file)://([^\\s]*)$" + }, + "TokenUrl": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^(https?|ftp|file)://([^\\s]*)$" } }, "required": [ @@ -177,7 +189,19 @@ "SALESFORCE", "JIRA", "ZENDESK", - "CUSTOM" + "CUSTOM", + "QUICKSIGHT", + "SERVICENOW_NOW_PLATFORM", + "JIRA_CLOUD", + "SALESFORCE_CRM", + "ZENDESK_SUITE", + "ATLASSIAN_CONFLUENCE", + "GOOGLE_CALENDAR", + "MICROSOFT_TEAMS", + "MICROSOFT_EXCHANGE", + "PAGERDUTY_ADVANCE", + "SMARTSHEET", + "ASANA" ] }, "S3": { @@ -271,7 +295,6 @@ }, "Tags": { "type": "array", - "insertionOrder": false, "items": { "$ref": "#/definitions/Tag" }, @@ -287,7 +310,6 @@ } }, "required": [ - "ApplicationId", "AuthConfiguration", "DisplayName", "Type" @@ -314,8 +336,7 @@ "qbusiness:CreatePlugin", "qbusiness:GetPlugin", "qbusiness:ListTagsForResource", - "qbusiness:TagResource", - "qbusiness:UpdatePlugin" + "qbusiness:TagResource" ] }, "read": { @@ -357,7 +378,16 @@ } }, "tagging": { - "taggable": true + "taggable": true, + "tagUpdatable": true, + "tagOnCreate": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "qbusiness:UntagResource", + "qbusiness:TagResource", + "qbusiness:ListTagsForResource" + ] }, "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-qbusiness", "additionalProperties": false diff --git a/internal/service/cloudformation/schemas/AWS_QBusiness_WebExperience.json b/internal/service/cloudformation/schemas/AWS_QBusiness_WebExperience.json index 667bbec00a..465b57e792 100644 --- a/internal/service/cloudformation/schemas/AWS_QBusiness_WebExperience.json +++ b/internal/service/cloudformation/schemas/AWS_QBusiness_WebExperience.json @@ -111,6 +111,36 @@ "maxLength": 64, "minLength": 1, "pattern": "^(http:\\/\\/|https:\\/\\/)[a-zA-Z0-9-_.]+(?::[0-9]{1,5})?$" + }, + "CustomizationConfiguration": { + "type": "object", + "properties": { + "CustomCSSUrl": { + "type": "string", + "maxLength": 1284, + "minLength": 0, + "pattern": "^(https?://[a-zA-Z0-9-_.+%/]+\\.css)?$" + }, + "LogoUrl": { + "type": "string", + "maxLength": 1284, + "minLength": 0, + "pattern": "^(https?://[a-zA-Z0-9-_.+%/]+\\.(svg|png))?$" + }, + "FontUrl": { + "type": "string", + "maxLength": 1284, + "minLength": 0, + "pattern": "^(https?://[a-zA-Z0-9-_.+%/]+\\.(ttf|woff|woff2|otf))?$" + }, + "FaviconUrl": { + "type": "string", + "maxLength": 1284, + "minLength": 0, + "pattern": "^(https?://[a-zA-Z0-9-_.+%/]+\\.(svg|ico))?$" + } + }, + "additionalProperties": false } }, "properties": { @@ -195,6 +225,9 @@ }, "maxItems": 10, "minItems": 0 + }, + "CustomizationConfiguration": { + "$ref": "#/definitions/CustomizationConfiguration" } }, "required": [ diff --git a/internal/service/cloudformation/schemas/AWS_RAM_ResourceShare.json b/internal/service/cloudformation/schemas/AWS_RAM_ResourceShare.json new file mode 100644 index 0000000000..f1b1c97e84 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_RAM_ResourceShare.json @@ -0,0 +1,145 @@ +{ + "typeName": "AWS::RAM::ResourceShare", + "description": "Resource type definition for AWS::RAM::ResourceShare", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ram", + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "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 -." + }, + "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 -." + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false + } + }, + "properties": { + "AllowExternalPrincipals": { + "description": "Specifies whether principals outside your organization in AWS Organizations can be associated with a resource share. A value of `true` lets you share with individual AWS accounts that are not in your organization. A value of `false` only has meaning if your account is a member of an AWS Organization. The default value is `true`.", + "type": "boolean" + }, + "Arn": { + "type": "string" + }, + "Name": { + "description": "Specifies the name of the resource share.", + "type": "string" + }, + "PermissionArns": { + "description": "Specifies the [Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the AWS RAM permission to associate with the resource share. If you do not specify an ARN for the permission, AWS RAM automatically attaches the default version of the permission for each resource type. You can associate only one permission with each resource type included in the resource share.", + "type": "array", + "insertionOrder": false, + "items": { + "type": "string" + } + }, + "Principals": { + "description": "Specifies the principals to associate with the resource share. The possible values are:\n\n- An AWS account ID\n\n- An Amazon Resource Name (ARN) of an organization in AWS Organizations\n\n- An ARN of an organizational unit (OU) in AWS Organizations\n\n- An ARN of an IAM role\n\n- An ARN of an IAM user", + "type": "array", + "insertionOrder": false, + "items": { + "type": "string" + } + }, + "ResourceArns": { + "description": "Specifies a list of one or more ARNs of the resources to associate with the resource share.", + "type": "array", + "insertionOrder": false, + "items": { + "type": "string" + } + }, + "Sources": { + "description": "Specifies from which source accounts the service principal has access to the resources in this resource share.", + "type": "array", + "insertionOrder": false, + "items": { + "type": "string" + } + }, + "Tags": { + "description": "Specifies one or more tags to attach to the resource share itself. It doesn't attach the tags to the resources associated with the resource share.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + } + } + }, + "additionalProperties": false, + "required": [ + "Name" + ], + "readOnlyProperties": [ + "/properties/Arn" + ], + "writeOnlyProperties": [ + "/properties/PermissionArns", + "/properties/Principals", + "/properties/ResourceArns", + "/properties/Sources" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "ram:TagResource", + "ram:UntagResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "ram:CreateResourceShare", + "ram:TagResource" + ] + }, + "read": { + "permissions": [ + "ram:GetResourceShares" + ] + }, + "update": { + "permissions": [ + "ram:GetPermission", + "ram:GetResourceShares", + "ram:GetResourceShareAssociations", + "ram:ListResourceSharePermissions", + "ram:UpdateResourceShare", + "ram:AssociateResourceSharePermission", + "ram:AssociateResourceShare", + "ram:DisassociateResourceShare", + "ram:UntagResource", + "ram:TagResource" + ] + }, + "delete": { + "permissions": [ + "ram:DeleteResourceShare", + "ram:GetResourceShares" + ] + }, + "list": { + "permissions": [ + "ram:GetResourceShares" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_RDS_CustomDBEngineVersion.json b/internal/service/cloudformation/schemas/AWS_RDS_CustomDBEngineVersion.json index 816d04b609..ebe8339790 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_CustomDBEngineVersion.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_CustomDBEngineVersion.json @@ -1,24 +1,32 @@ { "typeName": "AWS::RDS::CustomDBEngineVersion", - "description": "The AWS::RDS::CustomDBEngineVersion resource creates an Amazon RDS custom DB engine version.", + "description": "Creates a custom DB engine version (CEV).", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "tagging": { - "taggable": true + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "rds:AddTagsToResource", + "rds:RemoveTagsFromResource" + ] }, "definitions": { "Tag": { - "description": "A key-value pair to associate with a resource.", + "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*.", "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 -.", + "description": "A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", "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 -.", + "description": "A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: \"^([\\\\p{L}\\\\p{Z}\\\\p{N}_.:/=+\\\\-@]*)$\").", "minLength": 0, "maxLength": 256 } @@ -32,13 +40,13 @@ "properties": { "DatabaseInstallationFilesS3BucketName": { "type": "string", - "description": "The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is `my-custom-installation-files`.", + "description": "The name of an Amazon S3 bucket that contains database installation files for your CEV. For example, a valid bucket name is ``my-custom-installation-files``.", "minLength": 3, "maxLength": 63 }, "DatabaseInstallationFilesS3Prefix": { "type": "string", - "description": "The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is `123456789012/cev1`. If this setting isn't specified, no prefix is assumed.", + "description": "The Amazon S3 directory that contains the database installation files for your CEV. For example, a valid bucket name is ``123456789012/cev1``. If this setting isn't specified, no prefix is assumed.", "minLength": 1, "maxLength": 255 }, @@ -50,47 +58,47 @@ }, "Engine": { "type": "string", - "description": "The database engine to use for your custom engine version (CEV). The only supported value is `custom-oracle-ee`.", + "description": "The database engine to use for your custom engine version (CEV).\n Valid values:\n + ``custom-oracle-ee`` \n + ``custom-oracle-ee-cdb``", "minLength": 1, "maxLength": 35 }, "EngineVersion": { "type": "string", - "description": "The name of your CEV. The name format is 19.customized_string . For example, a valid name is 19.my_cev1. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of Engine and EngineVersion is unique per customer per Region.", + "description": "The name of your CEV. The name format is ``major version.customized_string``. For example, a valid CEV name is ``19.my_cev1``. This setting is required for RDS Custom for Oracle, but optional for Amazon RDS. The combination of ``Engine`` and ``EngineVersion`` is unique per customer per Region.\n *Constraints:* Minimum length is 1. Maximum length is 60.\n *Pattern:* ``^[a-z0-9_.-]{1,60$``}", "minLength": 1, "maxLength": 60 }, "KMSKeyId": { "type": "string", - "description": "The AWS KMS key identifier for an encrypted CEV. A symmetric KMS key is required for RDS Custom, but optional for Amazon RDS.", + "description": "The AWS KMS key identifier for an encrypted CEV. A symmetric encryption KMS key is required for RDS Custom, but optional for Amazon RDS.\n If you have an existing symmetric encryption KMS key in your account, you can use it with RDS Custom. No further action is necessary. If you don't already have a symmetric encryption KMS key in your account, follow the instructions in [Creating a symmetric encryption KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) in the *Key Management Service Developer Guide*.\n You can choose the same symmetric encryption key when you create a CEV and a DB instance, or choose different keys.", "minLength": 1, "maxLength": 2048 }, "Manifest": { "type": "string", - "description": "The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed.", + "description": "The CEV manifest, which is a JSON document that describes the installation .zip files stored in Amazon S3. Specify the name/value pairs in a file or a quoted string. RDS Custom applies the patches in the order in which they are listed.\n The following JSON fields are valid:\n + MediaImportTemplateVersion Version of the CEV manifest. The date is in the format YYYY-MM-DD. + databaseInstallationFileNames Ordered list of installation files for the CEV. + opatchFileNames Ordered list of OPatch installers used for the Oracle DB engine. + psuRuPatchFileNames The PSU and RU patches for this CEV. + OtherPatchFileNames The patches that are not in the list of PSU and RU patches. Amazon RDS applies these patches after applying the PSU and RU patches. \n For more information, see [Creating the CEV manifest](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev.html#custom-cev.preparing.manifest) in the *Amazon RDS User Guide*.", "minLength": 1, "maxLength": 51000 }, "DBEngineVersionArn": { "type": "string", - "description": "The ARN of the custom engine version." + "description": "" }, "SourceCustomDbEngineVersionIdentifier": { "type": "string", - "description": "The identifier of the source custom engine version." + "description": "The ARN of a CEV to use as a source for creating a new CEV. You can specify a different Amazon Machine Imagine (AMI) by using either ``Source`` or ``UseAwsProvidedLatestImage``. You can't specify a different JSON manifest when you specify ``SourceCustomDbEngineVersionIdentifier``." }, "UseAwsProvidedLatestImage": { "type": "boolean", - "description": "A value that indicates whether AWS provided latest image is applied automatically to the Custom Engine Version. By default, AWS provided latest image is applied automatically. This value is only applied on create." + "description": "Specifies whether to use the latest service-provided Amazon Machine Image (AMI) for the CEV. If you specify ``UseAwsProvidedLatestImage``, you can't also specify ``ImageId``." }, "ImageId": { "type": "string", - "description": "The identifier of Amazon Machine Image (AMI) used for CEV." + "description": "A value that indicates the ID of the AMI." }, "Status": { "type": "string", - "description": "The availability status to be assigned to the CEV.", + "description": "A value that indicates the status of a custom engine version (CEV).", "default": "available", "enum": [ "available", @@ -99,7 +107,7 @@ ] }, "Tags": { - "description": "An array of key-value pairs to apply to this resource.", + "description": "A list of tags. 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.*", "type": "array", "uniqueItems": false, "insertionOrder": false, @@ -112,7 +120,7 @@ "propertyTransform": { "/properties/Engine": "$lowercase(Engine)", "/properties/EngineVersion": "$lowercase(EngineVersion)", - "/properties/KMSKeyId": "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KMSKeyId])" + "/properties/KMSKeyId": "$join([\"arn:.+?:kms:.+?:.+?:key\\/\", KMSKeyId])" }, "required": [ "Engine", diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json b/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json index bad515c3e5..7231e3b6de 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json @@ -48,7 +48,7 @@ }, "ClusterScalabilityType": { "type": "string", - "description": "" + "description": "Specifies the scalability mode of the Aurora DB cluster. When set to ``limitless``, the cluster operates as an Aurora Limitless Database, allowing you to create a DB shard group for horizontal scaling (sharding) capabilities. When set to ``standard`` (the default), the cluster uses normal DB instance creation." }, "CopyTagsToSnapshot": { "description": "A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", @@ -141,7 +141,7 @@ "type": "string" }, "EngineLifecycleSupport": { - "description": "The life cycle type for this DB cluster.\n By default, this value is set to ``open-source-rds-extended-support``, which enrolls your DB cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to ``open-source-rds-extended-support-disabled``. In this case, creating the DB cluster will fail if the DB major version is past its end of standard support date.\n You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:\n + Amazon Aurora (PostgreSQL only) - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) in the *Amazon Aurora User Guide* \n + Amazon RDS - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) in the *Amazon RDS User Guide* \n \n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values: ``open-source-rds-extended-support | open-source-rds-extended-support-disabled`` \n Default: ``open-source-rds-extended-support``", + "description": "The life cycle type for this DB cluster.\n By default, this value is set to ``open-source-rds-extended-support``, which enrolls your DB cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to ``open-source-rds-extended-support-disabled``. In this case, creating the DB cluster will fail if the DB major version is past its end of standard support date.\n You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:\n + Amazon Aurora - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) in the *Amazon Aurora User Guide* \n + Amazon RDS - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) in the *Amazon RDS User Guide* \n \n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values: ``open-source-rds-extended-support | open-source-rds-extended-support-disabled`` \n Default: ``open-source-rds-extended-support``", "type": "string" }, "EngineMode": { @@ -336,12 +336,16 @@ "additionalProperties": false, "properties": { "MinCapacity": { - "description": "The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. The smallest value that you can use is 0.5.", + "description": "The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. For Aurora versions that support the Aurora Serverless v2 auto-pause feature, the smallest value that you can use is 0. For versions that don't support Aurora Serverless v2 auto-pause, the smallest value that you can use is 0.5.", "type": "number" }, "MaxCapacity": { "description": "The maximum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 40, 40.5, 41, and so on. The largest value that you can use is 128.\n The maximum capacity must be higher than 0.5 ACUs. For more information, see [Choosing the maximum Aurora Serverless v2 capacity setting for a cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.setting-capacity.html#aurora-serverless-v2.max_capacity_considerations) in the *Amazon Aurora User Guide*.\n Aurora automatically sets certain parameters for Aurora Serverless V2 DB instances to values that depend on the maximum ACU value in the capacity range. When you update the maximum capacity value, the ``ParameterApplyStatus`` value for the DB instance changes to ``pending-reboot``. You can update the parameter values by rebooting the DB instance after changing the capacity range.", "type": "number" + }, + "SecondsUntilAutoPause": { + "type": "integer", + "description": "" } } }, diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json b/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json index f79fe8a66f..b0806a259c 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json @@ -485,6 +485,7 @@ "/properties/DBParameterGroupName": "$lowercase(DBParameterGroupName)", "/properties/DBSnapshotIdentifier": "$lowercase(DBSnapshotIdentifier)", "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/DBSystemId": "$uppercase(DBSystemId)", "/properties/Engine": "$lowercase(Engine)", "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", "/properties/KmsKeyId": "$join([\"arn:.+?:kms:.+?:.+?:key\\/\", KmsKeyId])", @@ -504,6 +505,7 @@ "/properties/DBInstanceIdentifier", "/properties/DBName", "/properties/DBSubnetGroupName", + "/properties/DBSystemId", "/properties/KmsKeyId", "/properties/MasterUsername", "/properties/NcharCharacterSetName", @@ -556,7 +558,6 @@ "/properties/Endpoint/HostedZoneId", "/properties/DbiResourceId", "/properties/DBInstanceArn", - "/properties/DBSystemId", "/properties/MasterUserSecret/SecretArn", "/properties/CertificateDetails/CAIdentifier", "/properties/CertificateDetails/ValidTill" diff --git a/internal/service/cloudformation/schemas/AWS_RedshiftServerless_Workgroup.json b/internal/service/cloudformation/schemas/AWS_RedshiftServerless_Workgroup.json index 87f7f28779..e64243ee66 100644 --- a/internal/service/cloudformation/schemas/AWS_RedshiftServerless_Workgroup.json +++ b/internal/service/cloudformation/schemas/AWS_RedshiftServerless_Workgroup.json @@ -56,6 +56,20 @@ }, "additionalProperties": false }, + "PerformanceTarget": { + "type": "object", + "properties": { + "Status": { + "$ref": "#/definitions/PerformanceTargetStatus" + }, + "Level": { + "type": "integer", + "minimum": 1, + "maximum": 100 + } + }, + "additionalProperties": false + }, "VpcEndpoint": { "type": "object", "properties": { @@ -144,6 +158,9 @@ }, "CreationDate": { "type": "string" + }, + "PricePerformanceTarget": { + "$ref": "#/definitions/PerformanceTarget" } }, "additionalProperties": false @@ -176,6 +193,13 @@ "MODIFYING", "DELETING" ] + }, + "PerformanceTargetStatus": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ] } }, "properties": { @@ -251,6 +275,11 @@ "description": "The custom port to use when connecting to a workgroup. Valid port ranges are 5431-5455 and 8191-8215. The default is 5439.", "type": "integer" }, + "PricePerformanceTarget": { + "description": "A property that represents the price performance target settings for the workgroup.", + "type": "object", + "$ref": "#/definitions/PerformanceTarget" + }, "Tags": { "description": "The map of the key-value pairs used to tag the workgroup.", "type": "array", diff --git a/internal/service/cloudformation/schemas/AWS_S3Express_DirectoryBucket.json b/internal/service/cloudformation/schemas/AWS_S3Express_DirectoryBucket.json index 35d28b07f2..3d433c6abf 100644 --- a/internal/service/cloudformation/schemas/AWS_S3Express_DirectoryBucket.json +++ b/internal/service/cloudformation/schemas/AWS_S3Express_DirectoryBucket.json @@ -4,27 +4,28 @@ "additionalProperties": false, "properties": { "BucketName": { - "description": "Specifies a name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone. The bucket name must also follow the format 'bucket_base_name--az_id--x-s3' (for example, 'DOC-EXAMPLE-BUCKET--usw2-az1--x-s3'). If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name.", + "description": "Specifies a name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone or Local Zone. The bucket name must also follow the format 'bucket_base_name--zone_id--x-s3'. The zone_id can be the ID of an Availability Zone or a Local Zone. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name.", "maxLength": 63, "pattern": "^[a-z0-9][a-z0-9//.//-]*[a-z0-9]$", "type": "string" }, "LocationName": { - "description": "Specifies the AZ ID of the Availability Zone where the directory bucket will be created. An example AZ ID value is 'use1-az5'.", + "description": "Specifies the Zone ID of the Availability Zone or Local Zone where the directory bucket will be created. An example Availability Zone ID value is 'use1-az5'.", "type": "string" }, "AvailabilityZoneName": { - "description": "Returns the code for the Availability Zone where the directory bucket was created.", + "description": "Returns the code for the Availability Zone or Local Zone where the directory bucket was created. An example for the code of an Availability Zone is 'us-east-1f'.", "examples": [ "us-east-1f" ], "type": "string" }, "DataRedundancy": { - "description": "Specifies the number of Availability Zone that's used for redundancy for the bucket.", + "description": "Specifies the number of Availability Zone or Local Zone that's used for redundancy for the bucket.", "type": "string", "enum": [ - "SingleAvailabilityZone" + "SingleAvailabilityZone", + "SingleLocalZone" ] }, "Arn": { diff --git a/internal/service/cloudformation/schemas/AWS_S3Tables_TableBucket.json b/internal/service/cloudformation/schemas/AWS_S3Tables_TableBucket.json new file mode 100644 index 0000000000..4f61b606b2 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_S3Tables_TableBucket.json @@ -0,0 +1,107 @@ +{ + "typeName": "AWS::S3Tables::TableBucket", + "description": "Creates an Amazon S3 Tables table bucket in the same AWS Region where you create the AWS CloudFormation stack.", + "properties": { + "TableBucketARN": { + "$ref": "#/definitions/TableBucketARN" + }, + "TableBucketName": { + "$ref": "#/definitions/TableBucketName" + }, + "UnreferencedFileRemoval": { + "$ref": "#/definitions/UnreferencedFileRemoval" + } + }, + "definitions": { + "TableBucketARN": { + "description": "The Amazon Resource Name (ARN) of the specified table bucket.", + "type": "string", + "examples": [ + "arn:aws:s3tables:us-west-2:123456789012:bucket/mytablebucket" + ] + }, + "TableBucketName": { + "description": "A name for the table bucket.", + "type": "string", + "minLength": 3, + "maxLength": 63 + }, + "UnreferencedFileRemoval": { + "description": "Settings governing the Unreferenced File Removal maintenance action. Unreferenced file removal identifies and deletes all objects that are not referenced by any table snapshots.", + "additionalProperties": false, + "type": "object", + "properties": { + "Status": { + "description": "Indicates whether the Unreferenced File Removal maintenance action is enabled.", + "type": "string", + "enum": [ + "Enabled", + "Disabled" + ] + }, + "UnreferencedDays": { + "description": "For any object not referenced by your table and older than the UnreferencedDays property, S3 creates a delete marker and marks the object version as noncurrent.", + "type": "integer", + "minimum": 1 + }, + "NoncurrentDays": { + "description": "S3 permanently deletes noncurrent objects after the number of days specified by the NoncurrentDays property.", + "type": "integer", + "minimum": 1 + } + } + } + }, + "additionalProperties": false, + "required": [ + "TableBucketName" + ], + "createOnlyProperties": [ + "/properties/TableBucketName" + ], + "readOnlyProperties": [ + "/properties/TableBucketARN" + ], + "primaryIdentifier": [ + "/properties/TableBucketARN" + ], + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, + "handlers": { + "create": { + "permissions": [ + "s3tables:CreateTableBucket", + "s3tables:PutTableBucketMaintenanceConfiguration", + "s3tables:GetTableBucket", + "s3tables:GetTableBucketMaintenanceConfiguration" + ] + }, + "read": { + "permissions": [ + "s3tables:GetTableBucket", + "s3tables:GetTableBucketMaintenanceConfiguration" + ] + }, + "update": { + "permissions": [ + "s3tables:PutTableBucketMaintenanceConfiguration", + "s3tables:GetTableBucket", + "s3tables:GetTableBucketMaintenanceConfiguration" + ] + }, + "delete": { + "permissions": [ + "s3tables:DeleteTableBucket" + ] + }, + "list": { + "permissions": [ + "s3tables:ListTableBuckets" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_S3Tables_TableBucketPolicy.json b/internal/service/cloudformation/schemas/AWS_S3Tables_TableBucketPolicy.json new file mode 100644 index 0000000000..043b3d50b1 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_S3Tables_TableBucketPolicy.json @@ -0,0 +1,77 @@ +{ + "typeName": "AWS::S3Tables::TableBucketPolicy", + "description": "Applies an IAM resource policy to a table bucket.", + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" + }, + "TableBucketARN": { + "$ref": "#/definitions/TableBucketARN" + } + }, + "definitions": { + "ResourcePolicy": { + "description": "A policy document containing permissions to add to the specified table bucket. In IAM, you must provide policy documents in JSON format. However, in CloudFormation you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to IAM.", + "type": [ + "object", + "string" + ] + }, + "TableBucketARN": { + "description": "The Amazon Resource Name (ARN) of the table bucket to which the policy applies.", + "type": "string", + "examples": [ + "arn:aws:s3tables:us-west-2:123456789012:bucket/mytablebucket" + ] + } + }, + "additionalProperties": false, + "required": [ + "ResourcePolicy", + "TableBucketARN" + ], + "createOnlyProperties": [ + "/properties/TableBucketARN" + ], + "primaryIdentifier": [ + "/properties/TableBucketARN" + ], + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, + "handlers": { + "create": { + "permissions": [ + "s3tables:GetTableBucket", + "s3tables:GetTableBucketPolicy", + "s3tables:PutTableBucketPolicy" + ] + }, + "read": { + "permissions": [ + "s3tables:GetTableBucketPolicy" + ] + }, + "update": { + "permissions": [ + "s3tables:GetTableBucketPolicy", + "s3tables:PutTableBucketPolicy" + ] + }, + "delete": { + "permissions": [ + "s3tables:GetTableBucketPolicy", + "s3tables:DeleteTableBucketPolicy" + ] + }, + "list": { + "permissions": [ + "s3tables:GetTableBucketPolicy", + "s3tables:ListTableBuckets" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_SSM_ResourcePolicy.json b/internal/service/cloudformation/schemas/AWS_SSM_ResourcePolicy.json index 04763afdb6..1327a93a87 100644 --- a/internal/service/cloudformation/schemas/AWS_SSM_ResourcePolicy.json +++ b/internal/service/cloudformation/schemas/AWS_SSM_ResourcePolicy.json @@ -55,11 +55,13 @@ }, "update": { "permissions": [ + "ssm:GetResourcePolicies", "ssm:PutResourcePolicy" ] }, "delete": { "permissions": [ + "ssm:GetResourcePolicies", "ssm:DeleteResourcePolicy" ] }, diff --git a/internal/service/cloudformation/schemas/AWS_SageMaker_DataQualityJobDefinition.json b/internal/service/cloudformation/schemas/AWS_SageMaker_DataQualityJobDefinition.json index d205544e1f..af1fea3426 100644 --- a/internal/service/cloudformation/schemas/AWS_SageMaker_DataQualityJobDefinition.json +++ b/internal/service/cloudformation/schemas/AWS_SageMaker_DataQualityJobDefinition.json @@ -587,5 +587,16 @@ "/properties/Tags", "/properties/Tags/*/Key", "/properties/Tags/*/Value" - ] + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": false, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "sagemaker:AddTags", + "sagemaker:ListTags" + ] + } } diff --git a/internal/service/cloudformation/schemas/AWS_SageMaker_ModelBiasJobDefinition.json b/internal/service/cloudformation/schemas/AWS_SageMaker_ModelBiasJobDefinition.json index 6b925bdfa8..18dfaaca0d 100644 --- a/internal/service/cloudformation/schemas/AWS_SageMaker_ModelBiasJobDefinition.json +++ b/internal/service/cloudformation/schemas/AWS_SageMaker_ModelBiasJobDefinition.json @@ -623,5 +623,16 @@ "/properties/Tags", "/properties/Tags/*/Key", "/properties/Tags/*/Value" - ] + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": false, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "sagemaker:AddTags", + "sagemaker:ListTags" + ] + } } diff --git a/internal/service/cloudformation/schemas/AWS_SageMaker_ModelExplainabilityJobDefinition.json b/internal/service/cloudformation/schemas/AWS_SageMaker_ModelExplainabilityJobDefinition.json index 65273989c4..98ae1a5513 100644 --- a/internal/service/cloudformation/schemas/AWS_SageMaker_ModelExplainabilityJobDefinition.json +++ b/internal/service/cloudformation/schemas/AWS_SageMaker_ModelExplainabilityJobDefinition.json @@ -577,5 +577,16 @@ "/properties/Tags", "/properties/Tags/*/Key", "/properties/Tags/*/Value" - ] + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": false, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "sagemaker:AddTags", + "sagemaker:ListTags" + ] + } } diff --git a/internal/service/cloudformation/schemas/AWS_SageMaker_ModelQualityJobDefinition.json b/internal/service/cloudformation/schemas/AWS_SageMaker_ModelQualityJobDefinition.json index e6b5291d6a..1ac1a969dd 100644 --- a/internal/service/cloudformation/schemas/AWS_SageMaker_ModelQualityJobDefinition.json +++ b/internal/service/cloudformation/schemas/AWS_SageMaker_ModelQualityJobDefinition.json @@ -649,5 +649,16 @@ "/properties/Tags", "/properties/Tags/*/Key", "/properties/Tags/*/Value" - ] + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": false, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "sagemaker:AddTags", + "sagemaker:ListTags" + ] + } } diff --git a/internal/service/cloudformation/schemas/AWS_StepFunctions_StateMachineVersion.json b/internal/service/cloudformation/schemas/AWS_StepFunctions_StateMachineVersion.json index 31f25bd46b..5043c1c69c 100644 --- a/internal/service/cloudformation/schemas/AWS_StepFunctions_StateMachineVersion.json +++ b/internal/service/cloudformation/schemas/AWS_StepFunctions_StateMachineVersion.json @@ -37,7 +37,8 @@ ], "createOnlyProperties": [ "/properties/StateMachineArn", - "/properties/StateMachineRevisionId" + "/properties/StateMachineRevisionId", + "/properties/Description" ], "writeOnlyProperties": [ "/properties/StateMachineArn" diff --git a/internal/service/cloudformation/schemas/AWS_Transfer_Server.json b/internal/service/cloudformation/schemas/AWS_Transfer_Server.json index 99f1a90170..c031ad9ec7 100644 --- a/internal/service/cloudformation/schemas/AWS_Transfer_Server.json +++ b/internal/service/cloudformation/schemas/AWS_Transfer_Server.json @@ -171,6 +171,17 @@ "PUBLIC_KEY_AND_PASSWORD" ] }, + "State": { + "type": "string", + "enum": [ + "OFFLINE", + "ONLINE", + "STARTING", + "STOPPING", + "START_FAILED", + "STOP_FAILED" + ] + }, "Tag": { "type": "object", "properties": { @@ -327,6 +338,9 @@ "minLength": 19, "pattern": "^s-([0-9a-f]{17})$" }, + "State": { + "$ref": "#/definitions/State" + }, "StructuredLogDestinations": { "type": "array", "insertionOrder": false, @@ -355,7 +369,8 @@ "readOnlyProperties": [ "/properties/Arn", "/properties/As2ServiceManagedEgressIpAddresses", - "/properties/ServerId" + "/properties/ServerId", + "/properties/State" ], "writeOnlyProperties": [ "/properties/IdentityProviderType" diff --git a/internal/service/cloudformation/schemas/AWS_VpcLattice_ResourceConfiguration.json b/internal/service/cloudformation/schemas/AWS_VpcLattice_ResourceConfiguration.json new file mode 100644 index 0000000000..5f6b45fccb --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_VpcLattice_ResourceConfiguration.json @@ -0,0 +1,255 @@ +{ + "tagging": { + "permissions": [ + "vpc-lattice:UntagResource", + "vpc-lattice:TagResource", + "vpc-lattice:ListTagsForResource" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": true + }, + "typeName": "AWS::VpcLattice::ResourceConfiguration", + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "description": "VpcLattice ResourceConfiguration CFN resource", + "createOnlyProperties": [ + "/properties/ResourceGatewayId", + "/properties/ResourceConfigurationType", + "/properties/ProtocolType", + "/properties/ResourceConfigurationAuthType" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "required": [], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "handlers": { + "read": { + "permissions": [ + "vpc-lattice:GetResourceConfiguration", + "vpc-lattice:ListTagsForResource" + ] + }, + "create": { + "permissions": [ + "ec2:DescribeSubnets", + "vpc-lattice:CreateResourceConfiguration", + "vpc-lattice:GetResourceConfiguration", + "vpc-lattice:TagResource", + "vpc-lattice:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "ec2:DescribeSubnets", + "vpc-lattice:TagResource", + "vpc-lattice:UntagResource", + "vpc-lattice:ListTagsForResource", + "vpc-lattice:UpdateResourceConfiguration", + "vpc-lattice:GetResourceConfiguration" + ] + }, + "list": { + "permissions": [ + "vpc-lattice:ListResourceConfigurations" + ] + }, + "delete": { + "permissions": [ + "vpc-lattice:DeleteResourceConfiguration", + "vpc-lattice:GetResourceConfiguration", + "vpc-lattice:UntagResource" + ] + } + }, + "writeOnlyProperties": [ + "/properties/ResourceConfigurationAuthType", + "/properties/ResourceConfigurationGroupId" + ], + "additionalIdentifiers": [ + [ + "/properties/Id" + ] + ], + "additionalProperties": false, + "definitions": { + "IpResource": { + "minLength": 4, + "type": "string", + "maxLength": 39 + }, + "PortRange": { + "minLength": 1, + "pattern": "^((\\d{1,5}\\-\\d{1,5})|(\\d+))$", + "type": "string", + "maxLength": 11 + }, + "DnsResource": { + "additionalProperties": false, + "type": "object", + "properties": { + "IpAddressType": { + "type": "string", + "enum": [ + "IPV4", + "IPV6", + "DUALSTACK" + ] + }, + "DomainName": { + "minLength": 3, + "type": "string", + "maxLength": 255 + } + }, + "required": [ + "DomainName", + "IpAddressType" + ] + }, + "ArnResource": { + "pattern": "", + "type": "string", + "maxLength": 1224 + }, + "Tag": { + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "minLength": 1, + "type": "string", + "maxLength": 256 + }, + "Key": { + "minLength": 1, + "type": "string", + "maxLength": 128 + } + }, + "required": [ + "Key" + ] + }, + "Id": { + "minLength": 22, + "pattern": "^rcfg-[0-9a-z]{17}$", + "type": "string", + "maxLength": 22 + } + }, + "properties": { + "AllowAssociationToSharableServiceNetwork": { + "type": "boolean" + }, + "ProtocolType": { + "type": "string", + "enum": [ + "TCP" + ] + }, + "ResourceConfigurationType": { + "type": "string", + "enum": [ + "GROUP", + "CHILD", + "SINGLE", + "ARN" + ] + }, + "PortRanges": { + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/PortRange" + } + }, + "ResourceConfigurationDefinition": { + "oneOf": [ + { + "additionalProperties": false, + "type": "object", + "title": "IpResource", + "properties": { + "IpResource": { + "$ref": "#/definitions/IpResource" + } + }, + "required": [ + "IpResource" + ] + }, + { + "additionalProperties": false, + "type": "object", + "title": "ArnResource", + "properties": { + "ArnResource": { + "$ref": "#/definitions/ArnResource" + } + }, + "required": [ + "ArnResource" + ] + }, + { + "additionalProperties": false, + "type": "object", + "title": "DnsResource", + "properties": { + "DnsResource": { + "$ref": "#/definitions/DnsResource" + } + }, + "required": [ + "DnsResource" + ] + } + ], + "type": "object" + }, + "Id": { + "$ref": "#/definitions/Id" + }, + "ResourceGatewayId": { + "type": "string" + }, + "Arn": { + "minLength": 20, + "pattern": "^arn:[a-z0-9f\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:resourceconfiguration/rcfg-[0-9a-z]{17}$", + "type": "string", + "maxLength": 2048 + }, + "ResourceConfigurationAuthType": { + "type": "string", + "enum": [ + "NONE", + "AWS_IAM" + ] + }, + "ResourceConfigurationGroupId": { + "$ref": "#/definitions/Id" + }, + "Tags": { + "minItems": 0, + "maxItems": 50, + "uniqueItems": true, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + } + }, + "Name": { + "minLength": 3, + "pattern": "", + "type": "string", + "maxLength": 40 + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_VpcLattice_ResourceGateway.json b/internal/service/cloudformation/schemas/AWS_VpcLattice_ResourceGateway.json new file mode 100644 index 0000000000..eda93c2c5b --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_VpcLattice_ResourceGateway.json @@ -0,0 +1,183 @@ +{ + "tagging": { + "permissions": [ + "vpc-lattice:UntagResource", + "vpc-lattice:TagResource", + "vpc-lattice:ListTagsForResource" + ], + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": false + }, + "handlers": { + "read": { + "permissions": [ + "vpc-lattice:GetResourceGateway", + "vpc-lattice:ListTagsForResource" + ] + }, + "create": { + "permissions": [ + "vpc-lattice:CreateResourceGateway", + "vpc-lattice:GetResourceGateway", + "vpc-lattice:TagResource", + "vpc-lattice:ListTagsForResource", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups" + ] + }, + "update": { + "permissions": [ + "vpc-lattice:UpdateResourceGateway", + "vpc-lattice:GetResourceGateway", + "vpc-lattice:TagResource", + "vpc-lattice:UntagResource", + "vpc-lattice:ListTagsForResource", + "ec2:DescribeVpcs", + "ec2:DescribeSubnets", + "ec2:DescribeSecurityGroups" + ] + }, + "list": { + "permissions": [ + "vpc-lattice:ListResourceGateways" + ] + }, + "delete": { + "permissions": [ + "vpc-lattice:DeleteResourceGateway", + "vpc-lattice:GetResourceGateway" + ] + } + }, + "typeName": "AWS::VpcLattice::ResourceGateway", + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "description": "Creates a resource gateway for a service. ", + "additionalIdentifiers": [ + [ + "/properties/Id" + ] + ], + "createOnlyProperties": [ + "/properties/VpcIdentifier", + "/properties/SubnetIds", + "/properties/IpAddressType", + "/properties/Name" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/Arn" + ], + "definitions": { + "Tag": { + "additionalProperties": false, + "type": "object", + "properties": { + "Value": { + "minLength": 1, + "type": "string", + "maxLength": 256 + }, + "Key": { + "minLength": 1, + "type": "string", + "maxLength": 128 + } + }, + "required": [ + "Key" + ] + } + }, + "properties": { + "IpAddressType": { + "type": "string", + "enum": [ + "IPV4", + "IPV6", + "DUALSTACK" + ] + }, + "VpcIdentifier": { + "minLength": 5, + "type": "string", + "maxLength": 50 + }, + "Id": { + "minLength": 17, + "pattern": "^((rgw-[0-9a-z]{17})|(arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:resourcegateway/rgw-[0-9a-z]{17}))$", + "type": "string", + "maxLength": 2048 + }, + "Arn": { + "minLength": 20, + "pattern": "^arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:resourcegateway/rgw-[0-9a-z]{17}$", + "type": "string", + "maxLength": 2048 + }, + "SubnetIds": { + "uniqueItems": true, + "description": "The ID of one or more subnets in which to create an endpoint network interface.", + "insertionOrder": false, + "type": "array", + "items": { + "relationshipRef": { + "typeName": "AWS::EC2::Subnet", + "propertyPath": "/properties/SubnetId" + }, + "type": "string" + } + }, + "SecurityGroupIds": { + "uniqueItems": true, + "description": "The ID of one or more security groups to associate with the endpoint network interface.", + "insertionOrder": false, + "type": "array", + "items": { + "anyOf": [ + { + "relationshipRef": { + "typeName": "AWS::EC2::SecurityGroup", + "propertyPath": "/properties/GroupId" + } + }, + { + "relationshipRef": { + "typeName": "AWS::EC2::SecurityGroup", + "propertyPath": "/properties/Id" + } + }, + { + "relationshipRef": { + "typeName": "AWS::EC2::VPC", + "propertyPath": "/properties/DefaultSecurityGroup" + } + } + ], + "type": "string" + } + }, + "Tags": { + "minItems": 0, + "maxItems": 50, + "uniqueItems": true, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + } + }, + "Name": { + "minLength": 3, + "pattern": "", + "type": "string", + "maxLength": 40 + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_VpcLattice_ServiceNetworkResourceAssociation.json b/internal/service/cloudformation/schemas/AWS_VpcLattice_ServiceNetworkResourceAssociation.json new file mode 100644 index 0000000000..a3b95b9d70 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_VpcLattice_ServiceNetworkResourceAssociation.json @@ -0,0 +1,129 @@ +{ + "typeName": "AWS::VpcLattice::ServiceNetworkResourceAssociation", + "description": "VpcLattice ServiceNetworkResourceAssociation CFN resource", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "Value": { + "type": "string", + "minLength": 1, + "maxLength": 256 + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false + } + }, + "properties": { + "Id": { + "type": "string", + "minLength": 22, + "maxLength": 22, + "pattern": "^snra-[0-9a-f]{17}$" + }, + "Arn": { + "type": "string", + "minLength": 22, + "maxLength": 2048, + "pattern": "^arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:servicenetworkresourceassociation/snra-[0-9a-f]{17}$" + }, + "ResourceConfigurationId": { + "type": "string", + "minLength": 17, + "maxLength": 2048, + "pattern": "^rcfg-[0-9a-z]{17}$" + }, + "ServiceNetworkId": { + "type": "string", + "minLength": 3, + "maxLength": 2048, + "pattern": "^((sn-[0-9a-z]{17})|(arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:servicenetwork/sn-[0-9a-z]{17}))$" + }, + "Tags": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "minItems": 0, + "maxItems": 50, + "items": { + "$ref": "#/definitions/Tag" + } + } + }, + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/ResourceConfigurationId", + "/properties/ServiceNetworkId" + ], + "readOnlyProperties": [ + "/properties/Id", + "/properties/Arn" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "additionalIdentifiers": [ + [ + "/properties/Id" + ] + ], + "handlers": { + "create": { + "permissions": [ + "vpc-lattice:CreateServiceNetworkResourceAssociation", + "vpc-lattice:GetServiceNetworkResourceAssociation", + "vpc-lattice:TagResource", + "vpc-lattice:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "vpc-lattice:GetServiceNetworkResourceAssociation", + "vpc-lattice:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "vpc-lattice:TagResource", + "vpc-lattice:UntagResource", + "vpc-lattice:GetServiceNetworkResourceAssociation", + "vpc-lattice:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "vpc-lattice:DeleteServiceNetworkResourceAssociation", + "vpc-lattice:GetServiceNetworkResourceAssociation", + "vpc-lattice:UntagResource" + ] + }, + "list": { + "permissions": [ + "vpc-lattice:ListServiceNetworkResourceAssociations" + ] + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "vpc-lattice:UntagResource", + "vpc-lattice:TagResource", + "vpc-lattice:ListTagsForResource" + ] + } +} diff --git a/internal/service/cloudformation/schemas/AWS_Wisdom_AIAgent.json b/internal/service/cloudformation/schemas/AWS_Wisdom_AIAgent.json index e96d5c5abf..d214cf4093 100644 --- a/internal/service/cloudformation/schemas/AWS_Wisdom_AIAgent.json +++ b/internal/service/cloudformation/schemas/AWS_Wisdom_AIAgent.json @@ -36,6 +36,19 @@ "AnswerRecommendationAIAgentConfiguration" ], "additionalProperties": false + }, + { + "type": "object", + "title": "SelfServiceAIAgentConfiguration", + "properties": { + "SelfServiceAIAgentConfiguration": { + "$ref": "#/definitions/SelfServiceAIAgentConfiguration" + } + }, + "required": [ + "SelfServiceAIAgentConfiguration" + ], + "additionalProperties": false } ] }, @@ -43,9 +56,34 @@ "type": "string", "enum": [ "MANUAL_SEARCH", - "ANSWER_RECOMMENDATION" + "ANSWER_RECOMMENDATION", + "SELF_SERVICE" ] }, + "SelfServiceAIAgentConfiguration": { + "type": "object", + "properties": { + "SelfServicePreProcessingAIPromptId": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$" + }, + "SelfServiceAnswerGenerationAIPromptId": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$" + }, + "SelfServiceAIGuardrailId": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$" + }, + "AssociationConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/AssociationConfiguration" + } + } + }, + "additionalProperties": false + }, "AnswerRecommendationAIAgentConfiguration": { "type": "object", "properties": { @@ -61,6 +99,10 @@ "type": "string", "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$" }, + "AnswerGenerationAIGuardrailId": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$" + }, "AssociationConfigurations": { "type": "array", "items": { @@ -134,6 +176,10 @@ "type": "string", "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$" }, + "AnswerGenerationAIGuardrailId": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$" + }, "AssociationConfigurations": { "type": "array", "items": { diff --git a/internal/service/cloudformation/schemas/AWS_Wisdom_AIGuardrail.json b/internal/service/cloudformation/schemas/AWS_Wisdom_AIGuardrail.json new file mode 100644 index 0000000000..cc59ce5efe --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Wisdom_AIGuardrail.json @@ -0,0 +1,499 @@ +{ + "typeName": "AWS::Wisdom::AIGuardrail", + "description": "Definition of AWS::Wisdom::AIGuardrail Resource Type", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "AIGuardrailContentPolicyConfig": { + "type": "object", + "description": "Content policy config for a guardrail.", + "properties": { + "FiltersConfig": { + "type": "array", + "items": { + "$ref": "#/definitions/GuardrailContentFilterConfig" + }, + "maxItems": 6, + "minItems": 1, + "description": "List of content filter configs in content policy." + } + }, + "required": [ + "FiltersConfig" + ], + "additionalProperties": false + }, + "AIGuardrailContextualGroundingPolicyConfig": { + "type": "object", + "description": "Contextual grounding policy config for a guardrail.", + "properties": { + "FiltersConfig": { + "type": "array", + "items": { + "$ref": "#/definitions/GuardrailContextualGroundingFilterConfig" + }, + "minItems": 1, + "description": "List of contextual grounding filter configs." + } + }, + "required": [ + "FiltersConfig" + ], + "additionalProperties": false + }, + "AIGuardrailSensitiveInformationPolicyConfig": { + "type": "object", + "description": "Sensitive information policy config for a guardrail.", + "properties": { + "PiiEntitiesConfig": { + "type": "array", + "items": { + "$ref": "#/definitions/GuardrailPiiEntityConfig" + }, + "minItems": 1, + "uniqueItems": true, + "description": "List of entities." + }, + "RegexesConfig": { + "type": "array", + "items": { + "$ref": "#/definitions/GuardrailRegexConfig" + }, + "minItems": 1, + "description": "List of regex." + } + }, + "additionalProperties": false + }, + "AIGuardrailTopicPolicyConfig": { + "type": "object", + "description": "Topic policy config for a guardrail.", + "properties": { + "TopicsConfig": { + "type": "array", + "items": { + "$ref": "#/definitions/GuardrailTopicConfig" + }, + "minItems": 1, + "description": "List of topic configs in topic policy." + } + }, + "required": [ + "TopicsConfig" + ], + "additionalProperties": false + }, + "AIGuardrailWordPolicyConfig": { + "type": "object", + "description": "Word policy config for a guardrail.", + "properties": { + "WordsConfig": { + "type": "array", + "items": { + "$ref": "#/definitions/GuardrailWordConfig" + }, + "minItems": 1, + "description": "List of custom word configs." + }, + "ManagedWordListsConfig": { + "type": "array", + "items": { + "$ref": "#/definitions/GuardrailManagedWordsConfig" + }, + "description": "A config for the list of managed words." + } + }, + "additionalProperties": false + }, + "GuardrailContentFilterConfig": { + "type": "object", + "description": "Content filter config in content policy.", + "properties": { + "Type": { + "$ref": "#/definitions/GuardrailContentFilterType" + }, + "InputStrength": { + "$ref": "#/definitions/GuardrailFilterStrength" + }, + "OutputStrength": { + "$ref": "#/definitions/GuardrailFilterStrength" + } + }, + "required": [ + "InputStrength", + "OutputStrength", + "Type" + ], + "additionalProperties": false + }, + "GuardrailContentFilterType": { + "type": "string", + "description": "Type of text to text filter in content policy", + "enum": [ + "SEXUAL", + "VIOLENCE", + "HATE", + "INSULTS", + "MISCONDUCT", + "PROMPT_ATTACK" + ] + }, + "GuardrailContextualGroundingFilterConfig": { + "type": "object", + "description": "A config for grounding filter.", + "properties": { + "Type": { + "$ref": "#/definitions/GuardrailContextualGroundingFilterType" + }, + "Threshold": { + "type": "number", + "default": 0, + "minimum": 0, + "description": "The threshold for this filter." + } + }, + "required": [ + "Threshold", + "Type" + ], + "additionalProperties": false + }, + "GuardrailContextualGroundingFilterType": { + "type": "string", + "description": "Type of contextual grounding filter", + "enum": [ + "GROUNDING", + "RELEVANCE" + ] + }, + "GuardrailFilterStrength": { + "type": "string", + "description": "Strength for filters", + "enum": [ + "NONE", + "LOW", + "MEDIUM", + "HIGH" + ] + }, + "GuardrailManagedWordsConfig": { + "type": "object", + "description": "A managed words config.", + "properties": { + "Type": { + "$ref": "#/definitions/GuardrailManagedWordsType" + } + }, + "required": [ + "Type" + ], + "additionalProperties": false + }, + "GuardrailManagedWordsType": { + "type": "string", + "description": "Options for managed words.", + "enum": [ + "PROFANITY" + ] + }, + "GuardrailPiiEntityConfig": { + "type": "object", + "description": "Pii entity configuration.", + "properties": { + "Type": { + "$ref": "#/definitions/GuardrailPiiEntityType" + }, + "Action": { + "$ref": "#/definitions/GuardrailSensitiveInformationAction" + } + }, + "required": [ + "Action", + "Type" + ], + "additionalProperties": false + }, + "GuardrailPiiEntityType": { + "type": "string", + "description": "The currently supported PII entities", + "enum": [ + "ADDRESS", + "AGE", + "AWS_ACCESS_KEY", + "AWS_SECRET_KEY", + "CA_HEALTH_NUMBER", + "CA_SOCIAL_INSURANCE_NUMBER", + "CREDIT_DEBIT_CARD_CVV", + "CREDIT_DEBIT_CARD_EXPIRY", + "CREDIT_DEBIT_CARD_NUMBER", + "DRIVER_ID", + "EMAIL", + "INTERNATIONAL_BANK_ACCOUNT_NUMBER", + "IP_ADDRESS", + "LICENSE_PLATE", + "MAC_ADDRESS", + "NAME", + "PASSWORD", + "PHONE", + "PIN", + "SWIFT_CODE", + "UK_NATIONAL_HEALTH_SERVICE_NUMBER", + "UK_NATIONAL_INSURANCE_NUMBER", + "UK_UNIQUE_TAXPAYER_REFERENCE_NUMBER", + "URL", + "USERNAME", + "US_BANK_ACCOUNT_NUMBER", + "US_BANK_ROUTING_NUMBER", + "US_INDIVIDUAL_TAX_IDENTIFICATION_NUMBER", + "US_PASSPORT_NUMBER", + "US_SOCIAL_SECURITY_NUMBER", + "VEHICLE_IDENTIFICATION_NUMBER" + ] + }, + "GuardrailRegexConfig": { + "type": "object", + "description": "A regex configuration.", + "properties": { + "Name": { + "type": "string", + "maxLength": 100, + "minLength": 1, + "description": "The regex name." + }, + "Description": { + "type": "string", + "maxLength": 1000, + "minLength": 1, + "description": "The regex description." + }, + "Pattern": { + "type": "string", + "minLength": 1, + "description": "The regex pattern." + }, + "Action": { + "$ref": "#/definitions/GuardrailSensitiveInformationAction" + } + }, + "required": [ + "Action", + "Name", + "Pattern" + ], + "additionalProperties": false + }, + "GuardrailSensitiveInformationAction": { + "type": "string", + "description": "Options for sensitive information action.", + "enum": [ + "BLOCK", + "ANONYMIZE" + ] + }, + "GuardrailTopicConfig": { + "type": "object", + "description": "Topic config in topic policy.", + "properties": { + "Name": { + "type": "string", + "maxLength": 100, + "minLength": 1, + "pattern": "^[0-9a-zA-Z-_ !?.]+$", + "description": "Name of topic in topic policy" + }, + "Definition": { + "type": "string", + "maxLength": 200, + "minLength": 1, + "description": "Definition of topic in topic policy" + }, + "Examples": { + "type": "array", + "items": { + "type": "string", + "maxLength": 100, + "minLength": 1, + "description": "Text example in topic policy" + }, + "minItems": 0, + "description": "List of text examples" + }, + "Type": { + "$ref": "#/definitions/GuardrailTopicType" + } + }, + "required": [ + "Definition", + "Name", + "Type" + ], + "additionalProperties": false + }, + "GuardrailTopicType": { + "type": "string", + "description": "Type of topic in a policy", + "enum": [ + "DENY" + ] + }, + "GuardrailWordConfig": { + "type": "object", + "description": "A custom word config.", + "properties": { + "Text": { + "type": "string", + "minLength": 1, + "description": "The custom word text." + } + }, + "required": [ + "Text" + ], + "additionalProperties": false + }, + "Tags": { + "type": "object", + "patternProperties": { + "": { + "type": "string", + "maxLength": 256, + "minLength": 1 + } + }, + "additionalProperties": false + } + }, + "properties": { + "AssistantId": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$|^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}$" + }, + "AssistantArn": { + "type": "string", + "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}$" + }, + "AIGuardrailArn": { + "type": "string", + "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}$" + }, + "AIGuardrailId": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$|^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}(:[A-Z0-9_$]+){0,1}$" + }, + "Name": { + "type": "string", + "maxLength": 255, + "minLength": 1, + "pattern": "^[a-zA-Z0-9\\s_.,-]+" + }, + "BlockedInputMessaging": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "Messaging for when violations are detected in text" + }, + "BlockedOutputsMessaging": { + "type": "string", + "maxLength": 500, + "minLength": 1, + "description": "Messaging for when violations are detected in text" + }, + "Description": { + "type": "string", + "maxLength": 200, + "minLength": 1, + "description": "Description of the guardrail or its version" + }, + "TopicPolicyConfig": { + "$ref": "#/definitions/AIGuardrailTopicPolicyConfig" + }, + "ContentPolicyConfig": { + "$ref": "#/definitions/AIGuardrailContentPolicyConfig" + }, + "WordPolicyConfig": { + "$ref": "#/definitions/AIGuardrailWordPolicyConfig" + }, + "SensitiveInformationPolicyConfig": { + "$ref": "#/definitions/AIGuardrailSensitiveInformationPolicyConfig" + }, + "ContextualGroundingPolicyConfig": { + "$ref": "#/definitions/AIGuardrailContextualGroundingPolicyConfig" + }, + "Tags": { + "$ref": "#/definitions/Tags" + } + }, + "required": [ + "AssistantId", + "BlockedInputMessaging", + "BlockedOutputsMessaging" + ], + "readOnlyProperties": [ + "/properties/AIGuardrailArn", + "/properties/AIGuardrailId", + "/properties/AssistantArn" + ], + "createOnlyProperties": [ + "/properties/AssistantId", + "/properties/Name", + "/properties/Tags" + ], + "primaryIdentifier": [ + "/properties/AIGuardrailId", + "/properties/AssistantId" + ], + "additionalIdentifiers": [ + [ + "/properties/AIGuardrailArn", + "/properties/AssistantArn" + ] + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": false, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "wisdom:TagResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "wisdom:CreateAIGuardrail", + "wisdom:TagResource" + ] + }, + "read": { + "permissions": [ + "wisdom:GetAIGuardrail" + ] + }, + "update": { + "permissions": [ + "wisdom:UpdateAIGuardrail" + ] + }, + "delete": { + "permissions": [ + "wisdom:DeleteAIGuardrail" + ] + }, + "list": { + "permissions": [ + "wisdom:ListAIGuardrails" + ], + "handlerSchema": { + "properties": { + "AssistantId": { + "$ref": "resource-schema.json#/properties/AssistantId" + } + }, + "required": [ + "AssistantId" + ] + } + } + }, + "additionalProperties": false +} diff --git a/internal/service/cloudformation/schemas/AWS_Wisdom_AIGuardrailVersion.json b/internal/service/cloudformation/schemas/AWS_Wisdom_AIGuardrailVersion.json new file mode 100644 index 0000000000..d6e5e7ce23 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Wisdom_AIGuardrailVersion.json @@ -0,0 +1,110 @@ +{ + "typeName": "AWS::Wisdom::AIGuardrailVersion", + "description": "Definition of AWS::Wisdom::AIGuardrailVersion Resource Type", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": {}, + "properties": { + "AIGuardrailArn": { + "type": "string", + "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$" + }, + "AssistantArn": { + "type": "string", + "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$" + }, + "AIGuardrailId": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, + "AssistantId": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, + "AIGuardrailVersionId": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$" + }, + "VersionNumber": { + "type": "number" + }, + "ModifiedTimeSeconds": { + "type": "number" + } + }, + "additionalProperties": false, + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, + "required": [ + "AssistantId", + "AIGuardrailId" + ], + "createOnlyProperties": [ + "/properties/AssistantId", + "/properties/AIGuardrailId", + "/properties/ModifiedTimeSeconds" + ], + "readOnlyProperties": [ + "/properties/AIGuardrailVersionId", + "/properties/AIGuardrailArn", + "/properties/AssistantArn", + "/properties/VersionNumber" + ], + "primaryIdentifier": [ + "/properties/AssistantId", + "/properties/AIGuardrailId", + "/properties/VersionNumber" + ], + "additionalIdentifiers": [ + [ + "/properties/AIGuardrailArn", + "/properties/AssistantArn" + ] + ], + "handlers": { + "create": { + "permissions": [ + "wisdom:CreateAIGuardrailVersion" + ] + }, + "read": { + "permissions": [ + "wisdom:GetAIGuardrail", + "wisdom:GetAIGuardrailVersion" + ] + }, + "update": { + "permissions": [ + "wisdom:GetAIGuardrail", + "wisdom:GetAIGuardrailVersion" + ] + }, + "delete": { + "permissions": [ + "wisdom:DeleteAIGuardrailVersion" + ] + }, + "list": { + "permissions": [ + "wisdom:ListAIGuardrailVersions" + ], + "handlerSchema": { + "properties": { + "AssistantId": { + "$ref": "resource-schema.json#/properties/AssistantId" + }, + "AIGuardrailId": { + "$ref": "resource-schema.json#/properties/AIGuardrailId" + } + }, + "required": [ + "AssistantId", + "AIGuardrailId" + ] + } + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_Wisdom_AIPrompt.json b/internal/service/cloudformation/schemas/AWS_Wisdom_AIPrompt.json index a5cfab8f13..4d115f09f5 100644 --- a/internal/service/cloudformation/schemas/AWS_Wisdom_AIPrompt.json +++ b/internal/service/cloudformation/schemas/AWS_Wisdom_AIPrompt.json @@ -39,7 +39,9 @@ "enum": [ "ANSWER_GENERATION", "INTENT_LABELING_GENERATION", - "QUERY_REFORMULATION" + "QUERY_REFORMULATION", + "SELF_SERVICE_PRE_PROCESSING", + "SELF_SERVICE_ANSWER_GENERATION" ] }, "Tags": { diff --git a/internal/service/cloudformation/schemas/AWS_WorkSpaces_WorkspacesPool.json b/internal/service/cloudformation/schemas/AWS_WorkSpaces_WorkspacesPool.json index d2bb4891fc..b3a534539a 100644 --- a/internal/service/cloudformation/schemas/AWS_WorkSpaces_WorkspacesPool.json +++ b/internal/service/cloudformation/schemas/AWS_WorkSpaces_WorkspacesPool.json @@ -153,10 +153,8 @@ "/properties/PoolArn", "/properties/CreatedAt" ], - "writeOnlyProperties": [ - "/properties/Tags" - ], "deprecatedProperties": [ + "/properties/Tags", "/properties/Tags/TagKey", "/properties/Tags/TagValue" ], @@ -164,8 +162,7 @@ "create": { "permissions": [ "workspaces:CreateWorkspacesPool", - "workspaces:DescribeWorkspacesPools", - "workspaces:CreateTags" + "workspaces:DescribeWorkspacesPools" ] }, "read": {