diff --git a/CHANGELOG.md b/CHANGELOG.md index b432363220..5eaf895423 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,8 +10,14 @@ FEATURES: * **New Data Source:** `awscc_applicationautoscaling_scalable_targets` * **New Data Source:** `awscc_cloudfront_key_value_store` * **New Data Source:** `awscc_cloudfront_key_value_stores` +* **New Data Source:** `awscc_codepipeline_custom_action_type` +* **New Data Source:** `awscc_codepipeline_custom_action_types` * **New Data Source:** `awscc_connect_instance` * **New Data Source:** `awscc_connect_instances` +* **New Data Source:** `awscc_datazone_environment` +* **New Data Source:** `awscc_datazone_environments` +* **New Data Source:** `awscc_datazone_subscription_target` +* **New Data Source:** `awscc_datazone_subscription_targets` * **New Data Source:** `awscc_ec2_vpcdhcp_options_association` * **New Data Source:** `awscc_ec2_vpcdhcp_options_associations` * **New Data Source:** `awscc_groundstation_config` @@ -36,6 +42,8 @@ FEATURES: * **New Data Source:** `awscc_ivschat_logging_configurations` * **New Data Source:** `awscc_ivschat_room` * **New Data Source:** `awscc_ivschat_rooms` +* **New Data Source:** `awscc_networkmanager_link` +* **New Data Source:** `awscc_networkmanager_links` * **New Data Source:** `awscc_omics_variant_store` * **New Data Source:** `awscc_omics_variant_stores` * **New Data Source:** `awscc_opensearchservice_domain` @@ -74,7 +82,10 @@ FEATURES: * **New Resource:** `awscc_appintegrations_application` * **New Resource:** `awscc_applicationautoscaling_scalable_target` * **New Resource:** `awscc_cloudfront_key_value_store` +* **New Resource:** `awscc_codepipeline_custom_action_type` * **New Resource:** `awscc_connect_instance` +* **New Resource:** `awscc_datazone_environment` +* **New Resource:** `awscc_datazone_subscription_target` * **New Resource:** `awscc_ec2_vpcdhcp_options_association` * **New Resource:** `awscc_groundstation_config` * **New Resource:** `awscc_iot_billing_group` @@ -87,6 +98,7 @@ FEATURES: * **New Resource:** `awscc_iotanalytics_pipeline` * **New Resource:** `awscc_ivschat_logging_configuration` * **New Resource:** `awscc_ivschat_room` +* **New Resource:** `awscc_networkmanager_link` * **New Resource:** `awscc_omics_variant_store` * **New Resource:** `awscc_opensearchservice_domain` * **New Resource:** `awscc_opsworkscm_server` diff --git a/contributing/docs/resource-behavior.md b/contributing/docs/resource-behavior.md index 1be77b7224..2636d71b39 100644 --- a/contributing/docs/resource-behavior.md +++ b/contributing/docs/resource-behavior.md @@ -64,7 +64,9 @@ The _shape_ of a resource defines the names, types and behaviors of its fields. A Terraform attribute's name is obtained by snake casing the corresponding CloudFormation property's name. For example a property named `GlobalReplicationGroupDescription` corresponds to an attribute named `global_replication_group_description`. > [!NOTE] -> If the attribute name is one of the Terraform _meta-arguments_ [`count`](https://developer.hashicorp.com/terraform/language/meta-arguments/count), [`depends_on`](https://developer.hashicorp.com/terraform/language/meta-arguments/depends_on), [`for_each`](https://developer.hashicorp.com/terraform/language/meta-arguments/for_each), [`lifecycle`](https://developer.hashicorp.com/terraform/language/meta-arguments/lifecycle), or [`provider`](https://developer.hashicorp.com/terraform/language/meta-arguments/resource-provider) then generation of the Terraform resource (and data sources) is suppressed. +> If a top-level attribute's name is one of the Terraform _meta-arguments_ [`count`](https://developer.hashicorp.com/terraform/language/meta-arguments/count), [`depends_on`](https://developer.hashicorp.com/terraform/language/meta-arguments/depends_on), [`for_each`](https://developer.hashicorp.com/terraform/language/meta-arguments/for_each), or [`lifecycle`](https://developer.hashicorp.com/terraform/language/meta-arguments/lifecycle) then generation of the Terraform resource (and data sources) is suppressed. +> +> If a top-level attribute's name is [`provider`](https://developer.hashicorp.com/terraform/language/meta-arguments/resource-provider) it is renamed to `provider_name`. #### Attribute Types diff --git a/docs/data-sources/codepipeline_custom_action_type.md b/docs/data-sources/codepipeline_custom_action_type.md new file mode 100644 index 0000000000..f3e3afe32d --- /dev/null +++ b/docs/data-sources/codepipeline_custom_action_type.md @@ -0,0 +1,83 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_codepipeline_custom_action_type Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::CodePipeline::CustomActionType +--- + +# awscc_codepipeline_custom_action_type (Data Source) + +Data Source schema for AWS::CodePipeline::CustomActionType + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `category` (String) The category of the custom action, such as a build action or a test action. +- `configuration_properties` (Attributes Set) The configuration properties for the custom action. (see [below for nested schema](#nestedatt--configuration_properties)) +- `custom_action_type_id` (String) +- `input_artifact_details` (Attributes) The details of the input artifact for the action, such as its commit ID. (see [below for nested schema](#nestedatt--input_artifact_details)) +- `output_artifact_details` (Attributes) The details of the output artifact of the action, such as its commit ID. (see [below for nested schema](#nestedatt--output_artifact_details)) +- `provider_name` (String) The provider of the service used in the custom action, such as AWS CodeDeploy. +- `settings` (Attributes) URLs that provide users information about this custom action. (see [below for nested schema](#nestedatt--settings)) +- `tags` (Attributes List) Any tags assigned to the custom action. (see [below for nested schema](#nestedatt--tags)) +- `version` (String) The version identifier of the custom action. + + +### Nested Schema for `configuration_properties` + +Read-Only: + +- `description` (String) The description of the action configuration property that is displayed to users. +- `key` (Boolean) Whether the configuration property is a key. +- `name` (String) The name of the action configuration property. +- `queryable` (Boolean) Indicates that the property is used with PollForJobs. When creating a custom action, an action can have up to one queryable property. If it has one, that property must be both required and not secret.If you create a pipeline with a custom action type, and that custom action contains a queryable property, the value for that configuration property is subject to other restrictions. The value must be less than or equal to twenty (20) characters. The value can contain only alphanumeric characters, underscores, and hyphens. +- `required` (Boolean) Whether the configuration property is a required value. +- `secret` (Boolean) Whether the configuration property is secret. Secrets are hidden from all calls except for GetJobDetails, GetThirdPartyJobDetails, PollForJobs, and PollForThirdPartyJobs. +- `type` (String) The type of the configuration property. + + + +### Nested Schema for `input_artifact_details` + +Read-Only: + +- `maximum_count` (Number) The maximum number of artifacts allowed for the action type. +- `minimum_count` (Number) The minimum number of artifacts allowed for the action type. + + + +### Nested Schema for `output_artifact_details` + +Read-Only: + +- `maximum_count` (Number) The maximum number of artifacts allowed for the action type. +- `minimum_count` (Number) The minimum number of artifacts allowed for the action type. + + + +### Nested Schema for `settings` + +Read-Only: + +- `entity_url_template` (String) The URL returned to the AWS CodePipeline console that provides a deep link to the resources of the external system, such as the configuration page for an AWS CodeDeploy deployment group. This link is provided as part of the action display in the pipeline. +- `execution_url_template` (String) The URL returned to the AWS CodePipeline console that contains a link to the top-level landing page for the external system, such as the console page for AWS CodeDeploy. This link is shown on the pipeline view page in the AWS CodePipeline console and provides a link to the execution entity of the external action. +- `revision_url_template` (String) The URL returned to the AWS CodePipeline console that contains a link to the page where customers can update or change the configuration of the external action. +- `third_party_configuration_url` (String) The URL of a sign-up page where users can sign up for an external service and perform initial configuration of the action provided by that service. + + + +### Nested Schema for `tags` + +Read-Only: + +- `key` (String) +- `value` (String) diff --git a/docs/data-sources/codepipeline_custom_action_types.md b/docs/data-sources/codepipeline_custom_action_types.md new file mode 100644 index 0000000000..690d94d813 --- /dev/null +++ b/docs/data-sources/codepipeline_custom_action_types.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_codepipeline_custom_action_types Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::CodePipeline::CustomActionType +--- + +# awscc_codepipeline_custom_action_types (Data Source) + +Plural Data Source schema for AWS::CodePipeline::CustomActionType + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/datazone_environment.md b/docs/data-sources/datazone_environment.md new file mode 100644 index 0000000000..45903a46a9 --- /dev/null +++ b/docs/data-sources/datazone_environment.md @@ -0,0 +1,50 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_datazone_environment Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::DataZone::Environment +--- + +# awscc_datazone_environment (Data Source) + +Data Source schema for AWS::DataZone::Environment + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `aws_account_id` (String) The AWS account in which the Amazon DataZone environment is created. +- `aws_account_region` (String) The AWS region in which the Amazon DataZone environment is created. +- `created_at` (String) The timestamp of when the environment was created. +- `created_by` (String) The Amazon DataZone user who created the environment. +- `description` (String) The description of the Amazon DataZone environment. +- `domain_id` (String) The identifier of the Amazon DataZone domain in which the environment is created. +- `domain_identifier` (String) The identifier of the Amazon DataZone domain in which the environment would be created. +- `environment_blueprint_id` (String) The ID of the blueprint with which the Amazon DataZone environment was created. +- `environment_id` (String) The ID of the Amazon DataZone environment. +- `environment_profile_id` (String) The ID of the environment profile with which the Amazon DataZone environment was created. +- `environment_profile_identifier` (String) The ID of the environment profile with which the Amazon DataZone environment would be created. +- `glossary_terms` (List of String) The glossary terms that can be used in the Amazon DataZone environment. +- `name` (String) The name of the environment. +- `project_id` (String) The ID of the Amazon DataZone project in which the environment is created. +- `project_identifier` (String) The ID of the Amazon DataZone project in which the environment would be created. +- `provider_name` (String) The provider of the Amazon DataZone environment. +- `status` (String) The status of the Amazon DataZone environment. +- `updated_at` (String) The timestamp of when the environment was updated. +- `user_parameters` (Attributes List) The user parameters of the Amazon DataZone environment. (see [below for nested schema](#nestedatt--user_parameters)) + + +### Nested Schema for `user_parameters` + +Read-Only: + +- `name` (String) The name of an environment parameter. +- `value` (String) The value of an environment parameter. diff --git a/docs/data-sources/datazone_environments.md b/docs/data-sources/datazone_environments.md new file mode 100644 index 0000000000..1a04ad8439 --- /dev/null +++ b/docs/data-sources/datazone_environments.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_datazone_environments Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::DataZone::Environment +--- + +# awscc_datazone_environments (Data Source) + +Plural Data Source schema for AWS::DataZone::Environment + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/datazone_subscription_target.md b/docs/data-sources/datazone_subscription_target.md new file mode 100644 index 0000000000..89a744116b --- /dev/null +++ b/docs/data-sources/datazone_subscription_target.md @@ -0,0 +1,48 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_datazone_subscription_target Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::DataZone::SubscriptionTarget +--- + +# awscc_datazone_subscription_target (Data Source) + +Data Source schema for AWS::DataZone::SubscriptionTarget + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `applicable_asset_types` (List of String) The asset types that can be included in the subscription target. +- `authorized_principals` (List of String) The authorized principals of the subscription target. +- `created_at` (String) The timestamp of when the subscription target was created. +- `created_by` (String) The Amazon DataZone user who created the subscription target. +- `domain_id` (String) The ID of the Amazon DataZone domain in which subscription target is created. +- `domain_identifier` (String) The ID of the Amazon DataZone domain in which subscription target would be created. +- `environment_id` (String) The ID of the environment in which subscription target is 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. +- `project_id` (String) The identifier of the project specified in the subscription target. +- `provider_name` (String) The provider of the subscription target. +- `subscription_target_config` (Attributes List) The configuration of the subscription target. (see [below for nested schema](#nestedatt--subscription_target_config)) +- `subscription_target_id` (String) The ID of the subscription target. +- `type` (String) The type of the subscription target. +- `updated_at` (String) The timestamp of when the subscription target was updated. +- `updated_by` (String) The Amazon DataZone user who updated the subscription target. + + +### Nested Schema for `subscription_target_config` + +Read-Only: + +- `content` (String) The content of the subscription target configuration. +- `form_name` (String) The form name included in the subscription target configuration. diff --git a/docs/data-sources/datazone_subscription_targets.md b/docs/data-sources/datazone_subscription_targets.md new file mode 100644 index 0000000000..349c0b426f --- /dev/null +++ b/docs/data-sources/datazone_subscription_targets.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_datazone_subscription_targets Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::DataZone::SubscriptionTarget +--- + +# awscc_datazone_subscription_targets (Data Source) + +Plural Data Source schema for AWS::DataZone::SubscriptionTarget + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/networkmanager_link.md b/docs/data-sources/networkmanager_link.md new file mode 100644 index 0000000000..04db868ea7 --- /dev/null +++ b/docs/data-sources/networkmanager_link.md @@ -0,0 +1,51 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_networkmanager_link Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::NetworkManager::Link +--- + +# awscc_networkmanager_link (Data Source) + +Data Source schema for AWS::NetworkManager::Link + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `bandwidth` (Attributes) The Bandwidth for the link. (see [below for nested schema](#nestedatt--bandwidth)) +- `created_at` (String) The date and time that the device was created. +- `description` (String) The description of the link. +- `global_network_id` (String) The ID of the global network. +- `link_arn` (String) The Amazon Resource Name (ARN) of the link. +- `link_id` (String) The ID of the link. +- `provider_name` (String) The provider of the link. +- `site_id` (String) The ID of the site +- `state` (String) The state of the link. +- `tags` (Attributes Set) The tags for the link. (see [below for nested schema](#nestedatt--tags)) +- `type` (String) The type of the link. + + +### Nested Schema for `bandwidth` + +Read-Only: + +- `download_speed` (Number) Download speed in Mbps. +- `upload_speed` (Number) Upload speed in Mbps. + + + +### 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_links.md b/docs/data-sources/networkmanager_links.md new file mode 100644 index 0000000000..63eb3c9239 --- /dev/null +++ b/docs/data-sources/networkmanager_links.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_networkmanager_links Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::NetworkManager::Link +--- + +# awscc_networkmanager_links (Data Source) + +Plural Data Source schema for AWS::NetworkManager::Link + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/resources/codepipeline_custom_action_type.md b/docs/resources/codepipeline_custom_action_type.md new file mode 100644 index 0000000000..80d311b63e --- /dev/null +++ b/docs/resources/codepipeline_custom_action_type.md @@ -0,0 +1,97 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_codepipeline_custom_action_type Resource - terraform-provider-awscc" +subcategory: "" +description: |- + The AWS::CodePipeline::CustomActionType resource creates a custom action for activities that aren't included in the CodePipeline default actions, such as running an internally developed build process or a test suite. You can use these custom actions in the stage of a pipeline. +--- + +# awscc_codepipeline_custom_action_type (Resource) + +The AWS::CodePipeline::CustomActionType resource creates a custom action for activities that aren't included in the CodePipeline default actions, such as running an internally developed build process or a test suite. You can use these custom actions in the stage of a pipeline. + + + + +## Schema + +### Required + +- `category` (String) The category of the custom action, such as a build action or a test action. +- `input_artifact_details` (Attributes) The details of the input artifact for the action, such as its commit ID. (see [below for nested schema](#nestedatt--input_artifact_details)) +- `output_artifact_details` (Attributes) The details of the output artifact of the action, such as its commit ID. (see [below for nested schema](#nestedatt--output_artifact_details)) +- `provider_name` (String) The provider of the service used in the custom action, such as AWS CodeDeploy. +- `version` (String) The version identifier of the custom action. + +### Optional + +- `configuration_properties` (Attributes Set) The configuration properties for the custom action. (see [below for nested schema](#nestedatt--configuration_properties)) +- `settings` (Attributes) URLs that provide users information about this custom action. (see [below for nested schema](#nestedatt--settings)) +- `tags` (Attributes List) Any tags assigned to the custom action. (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- `custom_action_type_id` (String) +- `id` (String) Uniquely identifies the resource. + + +### Nested Schema for `input_artifact_details` + +Required: + +- `maximum_count` (Number) The maximum number of artifacts allowed for the action type. +- `minimum_count` (Number) The minimum number of artifacts allowed for the action type. + + + +### Nested Schema for `output_artifact_details` + +Required: + +- `maximum_count` (Number) The maximum number of artifacts allowed for the action type. +- `minimum_count` (Number) The minimum number of artifacts allowed for the action type. + + + +### Nested Schema for `configuration_properties` + +Required: + +- `key` (Boolean) Whether the configuration property is a key. +- `name` (String) The name of the action configuration property. +- `required` (Boolean) Whether the configuration property is a required value. +- `secret` (Boolean) Whether the configuration property is secret. Secrets are hidden from all calls except for GetJobDetails, GetThirdPartyJobDetails, PollForJobs, and PollForThirdPartyJobs. + +Optional: + +- `description` (String) The description of the action configuration property that is displayed to users. +- `queryable` (Boolean) Indicates that the property is used with PollForJobs. When creating a custom action, an action can have up to one queryable property. If it has one, that property must be both required and not secret.If you create a pipeline with a custom action type, and that custom action contains a queryable property, the value for that configuration property is subject to other restrictions. The value must be less than or equal to twenty (20) characters. The value can contain only alphanumeric characters, underscores, and hyphens. +- `type` (String) The type of the configuration property. + + + +### Nested Schema for `settings` + +Optional: + +- `entity_url_template` (String) The URL returned to the AWS CodePipeline console that provides a deep link to the resources of the external system, such as the configuration page for an AWS CodeDeploy deployment group. This link is provided as part of the action display in the pipeline. +- `execution_url_template` (String) The URL returned to the AWS CodePipeline console that contains a link to the top-level landing page for the external system, such as the console page for AWS CodeDeploy. This link is shown on the pipeline view page in the AWS CodePipeline console and provides a link to the execution entity of the external action. +- `revision_url_template` (String) The URL returned to the AWS CodePipeline console that contains a link to the page where customers can update or change the configuration of the external action. +- `third_party_configuration_url` (String) The URL of a sign-up page where users can sign up for an external service and perform initial configuration of the action provided by that service. + + + +### Nested Schema for `tags` + +Required: + +- `key` (String) +- `value` (String) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_codepipeline_custom_action_type.example +``` diff --git a/docs/resources/datazone_environment.md b/docs/resources/datazone_environment.md new file mode 100644 index 0000000000..51364ec0f5 --- /dev/null +++ b/docs/resources/datazone_environment.md @@ -0,0 +1,61 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_datazone_environment Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Definition of AWS::DataZone::Environment Resource Type +--- + +# awscc_datazone_environment (Resource) + +Definition of AWS::DataZone::Environment Resource Type + + + + +## Schema + +### Required + +- `domain_identifier` (String) The identifier of the Amazon DataZone domain in which the environment would be created. +- `environment_profile_identifier` (String) The ID of the environment profile with which the Amazon DataZone environment would be created. +- `name` (String) The name of the environment. +- `project_identifier` (String) The ID of the Amazon DataZone project in which the environment would be created. + +### Optional + +- `description` (String) The description of the Amazon DataZone environment. +- `glossary_terms` (List of String) The glossary terms that can be used in the Amazon DataZone environment. +- `user_parameters` (Attributes List) The user parameters of the Amazon DataZone environment. (see [below for nested schema](#nestedatt--user_parameters)) + +### Read-Only + +- `aws_account_id` (String) The AWS account in which the Amazon DataZone environment is created. +- `aws_account_region` (String) The AWS region in which the Amazon DataZone environment is created. +- `created_at` (String) The timestamp of when the environment was created. +- `created_by` (String) The Amazon DataZone user who created the environment. +- `domain_id` (String) The identifier of the Amazon DataZone domain in which the environment is created. +- `environment_blueprint_id` (String) The ID of the blueprint with which the Amazon DataZone environment was created. +- `environment_id` (String) The ID of the Amazon DataZone environment. +- `environment_profile_id` (String) The ID of the environment profile with which the Amazon DataZone environment was created. +- `id` (String) Uniquely identifies the resource. +- `project_id` (String) The ID of the Amazon DataZone project in which the environment is created. +- `provider_name` (String) The provider of the Amazon DataZone environment. +- `status` (String) The status of the Amazon DataZone environment. +- `updated_at` (String) The timestamp of when the environment was updated. + + +### Nested Schema for `user_parameters` + +Optional: + +- `name` (String) The name of an environment parameter. +- `value` (String) The value of an environment parameter. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_datazone_environment.example +``` diff --git a/docs/resources/datazone_subscription_target.md b/docs/resources/datazone_subscription_target.md new file mode 100644 index 0000000000..e5dbf9ce11 --- /dev/null +++ b/docs/resources/datazone_subscription_target.md @@ -0,0 +1,59 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_datazone_subscription_target Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Subscription targets enables one to access the data to which you have subscribed in your projects. +--- + +# awscc_datazone_subscription_target (Resource) + +Subscription targets enables one to access the data to which you have subscribed in your projects. + + + + +## Schema + +### Required + +- `applicable_asset_types` (List of String) The asset types that can be included in the subscription target. +- `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 + +- `provider_name` (String) The provider of the subscription target. + +### Read-Only + +- `created_at` (String) The timestamp of when the subscription target was created. +- `created_by` (String) The Amazon DataZone user who created the subscription target. +- `domain_id` (String) The ID of the Amazon DataZone domain in which subscription target is created. +- `environment_id` (String) The ID of the environment in which subscription target is created. +- `id` (String) Uniquely identifies the resource. +- `project_id` (String) The identifier of the project specified in the subscription target. +- `subscription_target_id` (String) The ID of the subscription target. +- `updated_at` (String) The timestamp of when the subscription target was updated. +- `updated_by` (String) The Amazon DataZone user who updated the subscription target. + + +### Nested Schema for `subscription_target_config` + +Required: + +- `content` (String) The content of the subscription target configuration. +- `form_name` (String) The form name included in the subscription target configuration. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_datazone_subscription_target.example +``` diff --git a/docs/resources/networkmanager_link.md b/docs/resources/networkmanager_link.md new file mode 100644 index 0000000000..7552d9de6b --- /dev/null +++ b/docs/resources/networkmanager_link.md @@ -0,0 +1,62 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_networkmanager_link Resource - terraform-provider-awscc" +subcategory: "" +description: |- + The AWS::NetworkManager::Link type describes a link. +--- + +# awscc_networkmanager_link (Resource) + +The AWS::NetworkManager::Link type describes a link. + + + + +## Schema + +### Required + +- `bandwidth` (Attributes) The Bandwidth for the link. (see [below for nested schema](#nestedatt--bandwidth)) +- `global_network_id` (String) The ID of the global network. +- `site_id` (String) The ID of the site + +### Optional + +- `description` (String) The description of the link. +- `provider_name` (String) The provider of the link. +- `tags` (Attributes Set) The tags for the link. (see [below for nested schema](#nestedatt--tags)) +- `type` (String) The type of the link. + +### Read-Only + +- `created_at` (String) The date and time that the device was created. +- `id` (String) Uniquely identifies the resource. +- `link_arn` (String) The Amazon Resource Name (ARN) of the link. +- `link_id` (String) The ID of the link. +- `state` (String) The state of the link. + + +### Nested Schema for `bandwidth` + +Optional: + +- `download_speed` (Number) Download speed in Mbps. +- `upload_speed` (Number) Upload speed in Mbps. + + + +### Nested Schema for `tags` + +Required: + +- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_networkmanager_link.example +``` diff --git a/examples/resources/awscc_codepipeline_custom_action_type/import.sh b/examples/resources/awscc_codepipeline_custom_action_type/import.sh new file mode 100644 index 0000000000..ed898f0d3e --- /dev/null +++ b/examples/resources/awscc_codepipeline_custom_action_type/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_codepipeline_custom_action_type.example \ No newline at end of file diff --git a/examples/resources/awscc_datazone_environment/import.sh b/examples/resources/awscc_datazone_environment/import.sh new file mode 100644 index 0000000000..3d0075e6dc --- /dev/null +++ b/examples/resources/awscc_datazone_environment/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_datazone_environment.example \ No newline at end of file diff --git a/examples/resources/awscc_datazone_subscription_target/import.sh b/examples/resources/awscc_datazone_subscription_target/import.sh new file mode 100644 index 0000000000..ce569292bf --- /dev/null +++ b/examples/resources/awscc_datazone_subscription_target/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_datazone_subscription_target.example \ No newline at end of file diff --git a/examples/resources/awscc_networkmanager_link/import.sh b/examples/resources/awscc_networkmanager_link/import.sh new file mode 100644 index 0000000000..45d9899277 --- /dev/null +++ b/examples/resources/awscc_networkmanager_link/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_networkmanager_link.example \ No newline at end of file diff --git a/internal/aws/codepipeline/custom_action_type_plural_data_source_gen.go b/internal/aws/codepipeline/custom_action_type_plural_data_source_gen.go new file mode 100644 index 0000000000..dd4213bec6 --- /dev/null +++ b/internal/aws/codepipeline/custom_action_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 codepipeline + +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_codepipeline_custom_action_types", customActionTypesDataSource) +} + +// customActionTypesDataSource returns the Terraform awscc_codepipeline_custom_action_types data source. +// This Terraform data source corresponds to the CloudFormation AWS::CodePipeline::CustomActionType resource. +func customActionTypesDataSource(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::CodePipeline::CustomActionType", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::CodePipeline::CustomActionType").WithTerraformTypeName("awscc_codepipeline_custom_action_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/codepipeline/custom_action_type_plural_data_source_gen_test.go b/internal/aws/codepipeline/custom_action_type_plural_data_source_gen_test.go new file mode 100644 index 0000000000..f543867a21 --- /dev/null +++ b/internal/aws/codepipeline/custom_action_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 codepipeline_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSCodePipelineCustomActionTypesDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::CodePipeline::CustomActionType", "awscc_codepipeline_custom_action_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/codepipeline/custom_action_type_resource_gen.go b/internal/aws/codepipeline/custom_action_type_resource_gen.go new file mode 100644 index 0000000000..444535aadb --- /dev/null +++ b/internal/aws/codepipeline/custom_action_type_resource_gen.go @@ -0,0 +1,457 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package codepipeline + +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/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-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_codepipeline_custom_action_type", customActionTypeResource) +} + +// customActionTypeResource returns the Terraform awscc_codepipeline_custom_action_type resource. +// This Terraform resource corresponds to the CloudFormation AWS::CodePipeline::CustomActionType resource. +func customActionTypeResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Category + // CloudFormation resource type schema: + // + // { + // "description": "The category of the custom action, such as a build action or a test action.", + // "type": "string" + // } + "category": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The category of the custom action, such as a build action or a test action.", + Required: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ConfigurationProperties + // CloudFormation resource type schema: + // + // { + // "description": "The configuration properties for the custom action.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "The configuration properties for the custom action.", + // "properties": { + // "Description": { + // "description": "The description of the action configuration property that is displayed to users. ", + // "type": "string" + // }, + // "Key": { + // "description": "Whether the configuration property is a key.", + // "type": "boolean" + // }, + // "Name": { + // "description": "The name of the action configuration property.", + // "type": "string" + // }, + // "Queryable": { + // "description": "Indicates that the property is used with PollForJobs. When creating a custom action, an action can have up to one queryable property. If it has one, that property must be both required and not secret.If you create a pipeline with a custom action type, and that custom action contains a queryable property, the value for that configuration property is subject to other restrictions. The value must be less than or equal to twenty (20) characters. The value can contain only alphanumeric characters, underscores, and hyphens. ", + // "type": "boolean" + // }, + // "Required": { + // "description": "Whether the configuration property is a required value.", + // "type": "boolean" + // }, + // "Secret": { + // "description": "Whether the configuration property is secret. Secrets are hidden from all calls except for GetJobDetails, GetThirdPartyJobDetails, PollForJobs, and PollForThirdPartyJobs.", + // "type": "boolean" + // }, + // "Type": { + // "description": "The type of the configuration property.", + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Name", + // "Required", + // "Secret" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + "configuration_properties": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Description + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The description of the action configuration property that is displayed to users. ", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Key + "key": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Whether the configuration property is a key.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the action configuration property.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Queryable + "queryable": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Indicates that the property is used with PollForJobs. When creating a custom action, an action can have up to one queryable property. If it has one, that property must be both required and not secret.If you create a pipeline with a custom action type, and that custom action contains a queryable property, the value for that configuration property is subject to other restrictions. The value must be less than or equal to twenty (20) characters. The value can contain only alphanumeric characters, underscores, and hyphens. ", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Required + "required": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Whether the configuration property is a required value.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Secret + "secret": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Whether the configuration property is secret. Secrets are hidden from all calls except for GetJobDetails, GetThirdPartyJobDetails, PollForJobs, and PollForThirdPartyJobs.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The type of the configuration property.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The configuration properties for the custom action.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + setplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "custom_action_type_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InputArtifactDetails + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The details of the input artifact for the action, such as its commit ID.", + // "properties": { + // "MaximumCount": { + // "description": "The maximum number of artifacts allowed for the action type.", + // "type": "integer" + // }, + // "MinimumCount": { + // "description": "The minimum number of artifacts allowed for the action type.", + // "type": "integer" + // } + // }, + // "required": [ + // "MaximumCount", + // "MinimumCount" + // ], + // "type": "object" + // } + "input_artifact_details": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaximumCount + "maximum_count": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The maximum number of artifacts allowed for the action type.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: MinimumCount + "minimum_count": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The minimum number of artifacts allowed for the action type.", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The details of the input artifact for the action, such as its commit ID.", + Required: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: OutputArtifactDetails + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The details of the output artifact of the action, such as its commit ID.", + // "properties": { + // "MaximumCount": { + // "description": "The maximum number of artifacts allowed for the action type.", + // "type": "integer" + // }, + // "MinimumCount": { + // "description": "The minimum number of artifacts allowed for the action type.", + // "type": "integer" + // } + // }, + // "required": [ + // "MaximumCount", + // "MinimumCount" + // ], + // "type": "object" + // } + "output_artifact_details": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaximumCount + "maximum_count": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The maximum number of artifacts allowed for the action type.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: MinimumCount + "minimum_count": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The minimum number of artifacts allowed for the action type.", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The details of the output artifact of the action, such as its commit ID.", + Required: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Provider + // CloudFormation resource type schema: + // + // { + // "description": "The provider of the service used in the custom action, such as AWS CodeDeploy.", + // "type": "string" + // } + "provider_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The provider of the service used in the custom action, such as AWS CodeDeploy.", + Required: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Settings + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "URLs that provide users information about this custom action.", + // "properties": { + // "EntityUrlTemplate": { + // "description": "The URL returned to the AWS CodePipeline console that provides a deep link to the resources of the external system, such as the configuration page for an AWS CodeDeploy deployment group. This link is provided as part of the action display in the pipeline. ", + // "type": "string" + // }, + // "ExecutionUrlTemplate": { + // "description": "The URL returned to the AWS CodePipeline console that contains a link to the top-level landing page for the external system, such as the console page for AWS CodeDeploy. This link is shown on the pipeline view page in the AWS CodePipeline console and provides a link to the execution entity of the external action. ", + // "type": "string" + // }, + // "RevisionUrlTemplate": { + // "description": "The URL returned to the AWS CodePipeline console that contains a link to the page where customers can update or change the configuration of the external action. ", + // "type": "string" + // }, + // "ThirdPartyConfigurationUrl": { + // "description": "The URL of a sign-up page where users can sign up for an external service and perform initial configuration of the action provided by that service.", + // "type": "string" + // } + // }, + // "type": "object" + // } + "settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EntityUrlTemplate + "entity_url_template": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The URL returned to the AWS CodePipeline console that provides a deep link to the resources of the external system, such as the configuration page for an AWS CodeDeploy deployment group. This link is provided as part of the action display in the pipeline. ", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ExecutionUrlTemplate + "execution_url_template": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The URL returned to the AWS CodePipeline console that contains a link to the top-level landing page for the external system, such as the console page for AWS CodeDeploy. This link is shown on the pipeline view page in the AWS CodePipeline console and provides a link to the execution entity of the external action. ", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RevisionUrlTemplate + "revision_url_template": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The URL returned to the AWS CodePipeline console that contains a link to the page where customers can update or change the configuration of the external action. ", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ThirdPartyConfigurationUrl + "third_party_configuration_url": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The URL of a sign-up page where users can sign up for an external service and perform initial configuration of the action provided by that service.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "URLs that provide users information about this custom action.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + objectplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "Any tags assigned to the custom action.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Value", + // "Key" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + "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*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Any tags assigned to the custom action.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Version + // CloudFormation resource type schema: + // + // { + // "description": "The version identifier of the custom action.", + // "type": "string" + // } + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The version identifier of the custom action.", + 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: "The AWS::CodePipeline::CustomActionType resource creates a custom action for activities that aren't included in the CodePipeline default actions, such as running an internally developed build process or a test suite. You can use these custom actions in the stage of a pipeline.", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::CodePipeline::CustomActionType").WithTerraformTypeName("awscc_codepipeline_custom_action_type") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "category": "Category", + "configuration_properties": "ConfigurationProperties", + "custom_action_type_id": "Id", + "description": "Description", + "entity_url_template": "EntityUrlTemplate", + "execution_url_template": "ExecutionUrlTemplate", + "input_artifact_details": "InputArtifactDetails", + "key": "Key", + "maximum_count": "MaximumCount", + "minimum_count": "MinimumCount", + "name": "Name", + "output_artifact_details": "OutputArtifactDetails", + "provider_name": "Provider", + "queryable": "Queryable", + "required": "Required", + "revision_url_template": "RevisionUrlTemplate", + "secret": "Secret", + "settings": "Settings", + "tags": "Tags", + "third_party_configuration_url": "ThirdPartyConfigurationUrl", + "type": "Type", + "value": "Value", + "version": "Version", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/ConfigurationProperties/*/Type", + }) + 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/codepipeline/custom_action_type_resource_gen_test.go b/internal/aws/codepipeline/custom_action_type_resource_gen_test.go new file mode 100644 index 0000000000..727ad608c1 --- /dev/null +++ b/internal/aws/codepipeline/custom_action_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 codepipeline_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSCodePipelineCustomActionType_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::CodePipeline::CustomActionType", "awscc_codepipeline_custom_action_type", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/codepipeline/custom_action_type_resource_test.go b/internal/aws/codepipeline/custom_action_type_resource_test.go new file mode 100644 index 0000000000..12af0fec29 --- /dev/null +++ b/internal/aws/codepipeline/custom_action_type_resource_test.go @@ -0,0 +1,57 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package codepipeline_test + +import ( + "testing" + "fmt" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSCodePipelineCustomActionType_success(t *testing.T) { + td := acctest.NewTestData(t, "AWS::CodePipeline::CustomActionType", "awscc_codepipeline_custom_action_type", "test") + resourceName := td.ResourceName + rName := td.RandomName() + + td.ResourceTest(t, []resource.TestStep{ + { + Config: testAccAWSCodePipelineCustomActionTypeConfig(&td, rName), + Check: resource.ComposeAggregateTestCheckFunc( + td.CheckExistsInAWS(), + resource.TestCheckResourceAttr(resourceName, "category", "Test"), + resource.TestCheckResourceAttr(resourceName, "input_artifact_details.maximum_count", "5"), + resource.TestCheckResourceAttr(resourceName, "input_artifact_details.minimum_count", "0"), + resource.TestCheckResourceAttr(resourceName, "output_artifact_details.maximum_count", "4"), + resource.TestCheckResourceAttr(resourceName, "output_artifact_details.minimum_count", "1"), + resource.TestCheckResourceAttr(resourceName, "provider_name", rName), + resource.TestCheckResourceAttr(resourceName, "version", "1"), + ), + }, + }) +} + +func testAccAWSCodePipelineCustomActionTypeConfig(td *acctest.TestData, rName string) string { + return fmt.Sprintf(` +resource %[1]q %[2]q { + category = "Test" + + input_artifact_details = { + maximum_count = 5 + minimum_count = 0 + } + + output_artifact_details = { + maximum_count = 4 + minimum_count = 1 + } + + provider_name = %[3]q + version = "1" +} +`, td.TerraformResourceType, td.ResourceLabel, rName) +} \ No newline at end of file diff --git a/internal/aws/codepipeline/custom_action_type_singular_data_source_gen.go b/internal/aws/codepipeline/custom_action_type_singular_data_source_gen.go new file mode 100644 index 0000000000..d36f4b0e66 --- /dev/null +++ b/internal/aws/codepipeline/custom_action_type_singular_data_source_gen.go @@ -0,0 +1,378 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package codepipeline + +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_codepipeline_custom_action_type", customActionTypeDataSource) +} + +// customActionTypeDataSource returns the Terraform awscc_codepipeline_custom_action_type data source. +// This Terraform data source corresponds to the CloudFormation AWS::CodePipeline::CustomActionType resource. +func customActionTypeDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Category + // CloudFormation resource type schema: + // + // { + // "description": "The category of the custom action, such as a build action or a test action.", + // "type": "string" + // } + "category": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The category of the custom action, such as a build action or a test action.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ConfigurationProperties + // CloudFormation resource type schema: + // + // { + // "description": "The configuration properties for the custom action.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "The configuration properties for the custom action.", + // "properties": { + // "Description": { + // "description": "The description of the action configuration property that is displayed to users. ", + // "type": "string" + // }, + // "Key": { + // "description": "Whether the configuration property is a key.", + // "type": "boolean" + // }, + // "Name": { + // "description": "The name of the action configuration property.", + // "type": "string" + // }, + // "Queryable": { + // "description": "Indicates that the property is used with PollForJobs. When creating a custom action, an action can have up to one queryable property. If it has one, that property must be both required and not secret.If you create a pipeline with a custom action type, and that custom action contains a queryable property, the value for that configuration property is subject to other restrictions. The value must be less than or equal to twenty (20) characters. The value can contain only alphanumeric characters, underscores, and hyphens. ", + // "type": "boolean" + // }, + // "Required": { + // "description": "Whether the configuration property is a required value.", + // "type": "boolean" + // }, + // "Secret": { + // "description": "Whether the configuration property is secret. Secrets are hidden from all calls except for GetJobDetails, GetThirdPartyJobDetails, PollForJobs, and PollForThirdPartyJobs.", + // "type": "boolean" + // }, + // "Type": { + // "description": "The type of the configuration property.", + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Name", + // "Required", + // "Secret" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + "configuration_properties": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Description + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The description of the action configuration property that is displayed to users. ", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Key + "key": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Whether the configuration property is a key.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the action configuration property.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Queryable + "queryable": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Indicates that the property is used with PollForJobs. When creating a custom action, an action can have up to one queryable property. If it has one, that property must be both required and not secret.If you create a pipeline with a custom action type, and that custom action contains a queryable property, the value for that configuration property is subject to other restrictions. The value must be less than or equal to twenty (20) characters. The value can contain only alphanumeric characters, underscores, and hyphens. ", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Required + "required": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Whether the configuration property is a required value.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Secret + "secret": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Whether the configuration property is secret. Secrets are hidden from all calls except for GetJobDetails, GetThirdPartyJobDetails, PollForJobs, and PollForThirdPartyJobs.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The type of the configuration property.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The configuration properties for the custom action.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "custom_action_type_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InputArtifactDetails + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The details of the input artifact for the action, such as its commit ID.", + // "properties": { + // "MaximumCount": { + // "description": "The maximum number of artifacts allowed for the action type.", + // "type": "integer" + // }, + // "MinimumCount": { + // "description": "The minimum number of artifacts allowed for the action type.", + // "type": "integer" + // } + // }, + // "required": [ + // "MaximumCount", + // "MinimumCount" + // ], + // "type": "object" + // } + "input_artifact_details": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaximumCount + "maximum_count": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The maximum number of artifacts allowed for the action type.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MinimumCount + "minimum_count": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The minimum number of artifacts allowed for the action type.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The details of the input artifact for the action, such as its commit ID.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: OutputArtifactDetails + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The details of the output artifact of the action, such as its commit ID.", + // "properties": { + // "MaximumCount": { + // "description": "The maximum number of artifacts allowed for the action type.", + // "type": "integer" + // }, + // "MinimumCount": { + // "description": "The minimum number of artifacts allowed for the action type.", + // "type": "integer" + // } + // }, + // "required": [ + // "MaximumCount", + // "MinimumCount" + // ], + // "type": "object" + // } + "output_artifact_details": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaximumCount + "maximum_count": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The maximum number of artifacts allowed for the action type.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MinimumCount + "minimum_count": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The minimum number of artifacts allowed for the action type.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The details of the output artifact of the action, such as its commit ID.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Provider + // CloudFormation resource type schema: + // + // { + // "description": "The provider of the service used in the custom action, such as AWS CodeDeploy.", + // "type": "string" + // } + "provider_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The provider of the service used in the custom action, such as AWS CodeDeploy.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Settings + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "URLs that provide users information about this custom action.", + // "properties": { + // "EntityUrlTemplate": { + // "description": "The URL returned to the AWS CodePipeline console that provides a deep link to the resources of the external system, such as the configuration page for an AWS CodeDeploy deployment group. This link is provided as part of the action display in the pipeline. ", + // "type": "string" + // }, + // "ExecutionUrlTemplate": { + // "description": "The URL returned to the AWS CodePipeline console that contains a link to the top-level landing page for the external system, such as the console page for AWS CodeDeploy. This link is shown on the pipeline view page in the AWS CodePipeline console and provides a link to the execution entity of the external action. ", + // "type": "string" + // }, + // "RevisionUrlTemplate": { + // "description": "The URL returned to the AWS CodePipeline console that contains a link to the page where customers can update or change the configuration of the external action. ", + // "type": "string" + // }, + // "ThirdPartyConfigurationUrl": { + // "description": "The URL of a sign-up page where users can sign up for an external service and perform initial configuration of the action provided by that service.", + // "type": "string" + // } + // }, + // "type": "object" + // } + "settings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EntityUrlTemplate + "entity_url_template": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The URL returned to the AWS CodePipeline console that provides a deep link to the resources of the external system, such as the configuration page for an AWS CodeDeploy deployment group. This link is provided as part of the action display in the pipeline. ", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ExecutionUrlTemplate + "execution_url_template": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The URL returned to the AWS CodePipeline console that contains a link to the top-level landing page for the external system, such as the console page for AWS CodeDeploy. This link is shown on the pipeline view page in the AWS CodePipeline console and provides a link to the execution entity of the external action. ", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RevisionUrlTemplate + "revision_url_template": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The URL returned to the AWS CodePipeline console that contains a link to the page where customers can update or change the configuration of the external action. ", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ThirdPartyConfigurationUrl + "third_party_configuration_url": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The URL of a sign-up page where users can sign up for an external service and perform initial configuration of the action provided by that service.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "URLs that provide users information about this custom action.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "Any tags assigned to the custom action.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Value", + // "Key" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": false + // } + "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*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "Any tags assigned to the custom action.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Version + // CloudFormation resource type schema: + // + // { + // "description": "The version identifier of the custom action.", + // "type": "string" + // } + "version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The version identifier of the custom action.", + 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::CodePipeline::CustomActionType", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::CodePipeline::CustomActionType").WithTerraformTypeName("awscc_codepipeline_custom_action_type") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "category": "Category", + "configuration_properties": "ConfigurationProperties", + "custom_action_type_id": "Id", + "description": "Description", + "entity_url_template": "EntityUrlTemplate", + "execution_url_template": "ExecutionUrlTemplate", + "input_artifact_details": "InputArtifactDetails", + "key": "Key", + "maximum_count": "MaximumCount", + "minimum_count": "MinimumCount", + "name": "Name", + "output_artifact_details": "OutputArtifactDetails", + "provider_name": "Provider", + "queryable": "Queryable", + "required": "Required", + "revision_url_template": "RevisionUrlTemplate", + "secret": "Secret", + "settings": "Settings", + "tags": "Tags", + "third_party_configuration_url": "ThirdPartyConfigurationUrl", + "type": "Type", + "value": "Value", + "version": "Version", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/codepipeline/custom_action_type_singular_data_source_gen_test.go b/internal/aws/codepipeline/custom_action_type_singular_data_source_gen_test.go new file mode 100644 index 0000000000..796030ec89 --- /dev/null +++ b/internal/aws/codepipeline/custom_action_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 codepipeline_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSCodePipelineCustomActionTypeDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::CodePipeline::CustomActionType", "awscc_codepipeline_custom_action_type", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSCodePipelineCustomActionTypeDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::CodePipeline::CustomActionType", "awscc_codepipeline_custom_action_type", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/datazone/environment_plural_data_source_gen.go b/internal/aws/datazone/environment_plural_data_source_gen.go new file mode 100644 index 0000000000..77b3b18521 --- /dev/null +++ b/internal/aws/datazone/environment_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 datazone + +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_datazone_environments", environmentsDataSource) +} + +// environmentsDataSource returns the Terraform awscc_datazone_environments data source. +// This Terraform data source corresponds to the CloudFormation AWS::DataZone::Environment resource. +func environmentsDataSource(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::DataZone::Environment", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::DataZone::Environment").WithTerraformTypeName("awscc_datazone_environments") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/datazone/environment_plural_data_source_gen_test.go b/internal/aws/datazone/environment_plural_data_source_gen_test.go new file mode 100644 index 0000000000..d3a8d8d214 --- /dev/null +++ b/internal/aws/datazone/environment_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 datazone_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSDataZoneEnvironmentsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::DataZone::Environment", "awscc_datazone_environments", "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/datazone/environment_resource_gen.go b/internal/aws/datazone/environment_resource_gen.go new file mode 100644 index 0000000000..20bd47d9c7 --- /dev/null +++ b/internal/aws/datazone/environment_resource_gen.go @@ -0,0 +1,467 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package datazone + +import ( + "context" + "regexp" + + "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/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_datazone_environment", environmentResource) +} + +// environmentResource returns the Terraform awscc_datazone_environment resource. +// This Terraform resource corresponds to the CloudFormation AWS::DataZone::Environment resource. +func environmentResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AwsAccountId + // CloudFormation resource type schema: + // + // { + // "description": "The AWS account in which the Amazon DataZone environment is created.", + // "pattern": "^\\d{12}$", + // "type": "string" + // } + "aws_account_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The AWS account in which the Amazon DataZone environment is created.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AwsAccountRegion + // CloudFormation resource type schema: + // + // { + // "description": "The AWS region in which the Amazon DataZone environment is created.", + // "pattern": "^[a-z]{2}-[a-z]{4,10}-\\d$", + // "type": "string" + // } + "aws_account_region": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The AWS region in which the Amazon DataZone environment is created.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "The timestamp of when the environment was created.", + // "format": "date-time", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "The timestamp of when the environment was created.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CreatedBy + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon DataZone user who created the environment.", + // "type": "string" + // } + "created_by": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon DataZone user who created the environment.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "The description of the Amazon DataZone environment.", + // "maxLength": 2048, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The description of the Amazon DataZone environment.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(2048), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DomainId + // CloudFormation resource type schema: + // + // { + // "description": "The identifier of the Amazon DataZone domain in which the environment is created.", + // "pattern": "^dzd[-_][a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "domain_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the Amazon DataZone domain in which the environment is created.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DomainIdentifier + // CloudFormation resource type schema: + // + // { + // "description": "The identifier of the Amazon DataZone domain in which the environment would be created.", + // "pattern": "^dzd[-_][a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "domain_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the Amazon DataZone domain in which the environment would be created.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^dzd[-_][a-zA-Z0-9_-]{1,36}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + // DomainIdentifier is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: EnvironmentBlueprintId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the blueprint with which the Amazon DataZone environment was created.", + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "environment_blueprint_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the blueprint with which the Amazon DataZone environment was created.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EnvironmentProfileId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the environment profile with which the Amazon DataZone environment was created.", + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "environment_profile_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the environment profile with which the Amazon DataZone environment was created.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EnvironmentProfileIdentifier + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the environment profile with which the Amazon DataZone environment would be created.", + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "environment_profile_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the environment profile with which the Amazon DataZone environment would be created.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9_-]{1,36}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + // EnvironmentProfileIdentifier is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: GlossaryTerms + // CloudFormation resource type schema: + // + // { + // "description": "The glossary terms that can be used in the Amazon DataZone environment.", + // "insertionOrder": false, + // "items": { + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // }, + // "maxItems": 20, + // "minItems": 1, + // "type": "array" + // } + "glossary_terms": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "The glossary terms that can be used in the Amazon DataZone environment.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 20), + listvalidator.ValueStringsAre( + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9_-]{1,36}$"), ""), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the Amazon DataZone environment.", + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "environment_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the Amazon DataZone environment.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "The name of the environment.", + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[\\w -]+$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the environment.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 64), + stringvalidator.RegexMatches(regexp.MustCompile("^[\\w -]+$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: ProjectId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the Amazon DataZone project in which the environment is created.", + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "project_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the Amazon DataZone project in which the environment is created.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ProjectIdentifier + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the Amazon DataZone project in which the environment would be created.", + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "project_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the Amazon DataZone project in which the environment would be created.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9_-]{1,36}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + // ProjectIdentifier is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: Provider + // CloudFormation resource type schema: + // + // { + // "description": "The provider of the Amazon DataZone environment.", + // "type": "string" + // } + "provider_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The provider of the Amazon DataZone environment.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Status + // CloudFormation resource type schema: + // + // { + // "description": "The status of the Amazon DataZone environment.", + // "enum": [ + // "ACTIVE", + // "CREATING", + // "UPDATING", + // "DELETING", + // "CREATE_FAILED", + // "UPDATE_FAILED", + // "DELETE_FAILED", + // "VALIDATION_FAILED", + // "SUSPENDED", + // "DISABLED", + // "EXPIRED", + // "DELETED", + // "INACCESSIBLE" + // ], + // "type": "string" + // } + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The status of the Amazon DataZone environment.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UpdatedAt + // CloudFormation resource type schema: + // + // { + // "description": "The timestamp of when the environment was updated.", + // "format": "date-time", + // "type": "string" + // } + "updated_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "The timestamp of when the environment was updated.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UserParameters + // CloudFormation resource type schema: + // + // { + // "description": "The user parameters of the Amazon DataZone environment.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "The parameter details of an environment.", + // "properties": { + // "Name": { + // "description": "The name of an environment parameter.", + // "type": "string" + // }, + // "Value": { + // "description": "The value of an environment parameter.", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // } + "user_parameters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of an environment parameter.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The value of an environment parameter.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The user parameters of the Amazon DataZone environment.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + listplanmodifier.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::DataZone::Environment Resource Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::DataZone::Environment").WithTerraformTypeName("awscc_datazone_environment") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "aws_account_id": "AwsAccountId", + "aws_account_region": "AwsAccountRegion", + "created_at": "CreatedAt", + "created_by": "CreatedBy", + "description": "Description", + "domain_id": "DomainId", + "domain_identifier": "DomainIdentifier", + "environment_blueprint_id": "EnvironmentBlueprintId", + "environment_id": "Id", + "environment_profile_id": "EnvironmentProfileId", + "environment_profile_identifier": "EnvironmentProfileIdentifier", + "glossary_terms": "GlossaryTerms", + "name": "Name", + "project_id": "ProjectId", + "project_identifier": "ProjectIdentifier", + "provider_name": "Provider", + "status": "Status", + "updated_at": "UpdatedAt", + "user_parameters": "UserParameters", + "value": "Value", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/EnvironmentProfileIdentifier", + "/properties/ProjectIdentifier", + "/properties/DomainIdentifier", + }) + 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/datazone/environment_resource_gen_test.go b/internal/aws/datazone/environment_resource_gen_test.go new file mode 100644 index 0000000000..c9ce3b65d1 --- /dev/null +++ b/internal/aws/datazone/environment_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 datazone_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSDataZoneEnvironment_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::DataZone::Environment", "awscc_datazone_environment", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/datazone/environment_singular_data_source_gen.go b/internal/aws/datazone/environment_singular_data_source_gen.go new file mode 100644 index 0000000000..4d103de0e8 --- /dev/null +++ b/internal/aws/datazone/environment_singular_data_source_gen.go @@ -0,0 +1,353 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package datazone + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_datazone_environment", environmentDataSource) +} + +// environmentDataSource returns the Terraform awscc_datazone_environment data source. +// This Terraform data source corresponds to the CloudFormation AWS::DataZone::Environment resource. +func environmentDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AwsAccountId + // CloudFormation resource type schema: + // + // { + // "description": "The AWS account in which the Amazon DataZone environment is created.", + // "pattern": "^\\d{12}$", + // "type": "string" + // } + "aws_account_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The AWS account in which the Amazon DataZone environment is created.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AwsAccountRegion + // CloudFormation resource type schema: + // + // { + // "description": "The AWS region in which the Amazon DataZone environment is created.", + // "pattern": "^[a-z]{2}-[a-z]{4,10}-\\d$", + // "type": "string" + // } + "aws_account_region": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The AWS region in which the Amazon DataZone environment is created.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "The timestamp of when the environment was created.", + // "format": "date-time", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "The timestamp of when the environment was created.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CreatedBy + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon DataZone user who created the environment.", + // "type": "string" + // } + "created_by": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon DataZone user who created the environment.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "The description of the Amazon DataZone environment.", + // "maxLength": 2048, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The description of the Amazon DataZone environment.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DomainId + // CloudFormation resource type schema: + // + // { + // "description": "The identifier of the Amazon DataZone domain in which the environment is created.", + // "pattern": "^dzd[-_][a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "domain_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the Amazon DataZone domain in which the environment is created.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DomainIdentifier + // CloudFormation resource type schema: + // + // { + // "description": "The identifier of the Amazon DataZone domain in which the environment would be created.", + // "pattern": "^dzd[-_][a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "domain_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the Amazon DataZone domain in which the environment would be created.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EnvironmentBlueprintId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the blueprint with which the Amazon DataZone environment was created.", + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "environment_blueprint_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the blueprint with which the Amazon DataZone environment was created.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EnvironmentProfileId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the environment profile with which the Amazon DataZone environment was created.", + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "environment_profile_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the environment profile with which the Amazon DataZone environment was created.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EnvironmentProfileIdentifier + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the environment profile with which the Amazon DataZone environment would be created.", + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "environment_profile_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the environment profile with which the Amazon DataZone environment would be created.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: GlossaryTerms + // CloudFormation resource type schema: + // + // { + // "description": "The glossary terms that can be used in the Amazon DataZone environment.", + // "insertionOrder": false, + // "items": { + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // }, + // "maxItems": 20, + // "minItems": 1, + // "type": "array" + // } + "glossary_terms": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "The glossary terms that can be used in the Amazon DataZone environment.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the Amazon DataZone environment.", + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "environment_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the Amazon DataZone environment.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "The name of the environment.", + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[\\w -]+$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the environment.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ProjectId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the Amazon DataZone project in which the environment is created.", + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "project_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the Amazon DataZone project in which the environment is created.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ProjectIdentifier + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the Amazon DataZone project in which the environment would be created.", + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "project_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the Amazon DataZone project in which the environment would be created.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Provider + // CloudFormation resource type schema: + // + // { + // "description": "The provider of the Amazon DataZone environment.", + // "type": "string" + // } + "provider_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The provider of the Amazon DataZone environment.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Status + // CloudFormation resource type schema: + // + // { + // "description": "The status of the Amazon DataZone environment.", + // "enum": [ + // "ACTIVE", + // "CREATING", + // "UPDATING", + // "DELETING", + // "CREATE_FAILED", + // "UPDATE_FAILED", + // "DELETE_FAILED", + // "VALIDATION_FAILED", + // "SUSPENDED", + // "DISABLED", + // "EXPIRED", + // "DELETED", + // "INACCESSIBLE" + // ], + // "type": "string" + // } + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The status of the Amazon DataZone environment.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UpdatedAt + // CloudFormation resource type schema: + // + // { + // "description": "The timestamp of when the environment was updated.", + // "format": "date-time", + // "type": "string" + // } + "updated_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "The timestamp of when the environment was updated.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UserParameters + // CloudFormation resource type schema: + // + // { + // "description": "The user parameters of the Amazon DataZone environment.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "The parameter details of an environment.", + // "properties": { + // "Name": { + // "description": "The name of an environment parameter.", + // "type": "string" + // }, + // "Value": { + // "description": "The value of an environment parameter.", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // } + "user_parameters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of an environment parameter.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The value of an environment parameter.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The user parameters of the Amazon DataZone environment.", + 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::DataZone::Environment", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::DataZone::Environment").WithTerraformTypeName("awscc_datazone_environment") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "aws_account_id": "AwsAccountId", + "aws_account_region": "AwsAccountRegion", + "created_at": "CreatedAt", + "created_by": "CreatedBy", + "description": "Description", + "domain_id": "DomainId", + "domain_identifier": "DomainIdentifier", + "environment_blueprint_id": "EnvironmentBlueprintId", + "environment_id": "Id", + "environment_profile_id": "EnvironmentProfileId", + "environment_profile_identifier": "EnvironmentProfileIdentifier", + "glossary_terms": "GlossaryTerms", + "name": "Name", + "project_id": "ProjectId", + "project_identifier": "ProjectIdentifier", + "provider_name": "Provider", + "status": "Status", + "updated_at": "UpdatedAt", + "user_parameters": "UserParameters", + "value": "Value", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/datazone/environment_singular_data_source_gen_test.go b/internal/aws/datazone/environment_singular_data_source_gen_test.go new file mode 100644 index 0000000000..1220a71d74 --- /dev/null +++ b/internal/aws/datazone/environment_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 datazone_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSDataZoneEnvironmentDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::DataZone::Environment", "awscc_datazone_environment", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSDataZoneEnvironmentDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::DataZone::Environment", "awscc_datazone_environment", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/datazone/subscription_target_plural_data_source_gen.go b/internal/aws/datazone/subscription_target_plural_data_source_gen.go new file mode 100644 index 0000000000..7b285fb8b5 --- /dev/null +++ b/internal/aws/datazone/subscription_target_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 datazone + +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_datazone_subscription_targets", subscriptionTargetsDataSource) +} + +// subscriptionTargetsDataSource returns the Terraform awscc_datazone_subscription_targets data source. +// This Terraform data source corresponds to the CloudFormation AWS::DataZone::SubscriptionTarget resource. +func subscriptionTargetsDataSource(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::DataZone::SubscriptionTarget", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::DataZone::SubscriptionTarget").WithTerraformTypeName("awscc_datazone_subscription_targets") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/datazone/subscription_target_plural_data_source_gen_test.go b/internal/aws/datazone/subscription_target_plural_data_source_gen_test.go new file mode 100644 index 0000000000..503c599ab6 --- /dev/null +++ b/internal/aws/datazone/subscription_target_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 datazone_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSDataZoneSubscriptionTargetsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::DataZone::SubscriptionTarget", "awscc_datazone_subscription_targets", "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/datazone/subscription_target_resource_gen.go b/internal/aws/datazone/subscription_target_resource_gen.go new file mode 100644 index 0000000000..898f9351e1 --- /dev/null +++ b/internal/aws/datazone/subscription_target_resource_gen.go @@ -0,0 +1,415 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package datazone + +import ( + "context" + "regexp" + + "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/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_datazone_subscription_target", subscriptionTargetResource) +} + +// subscriptionTargetResource returns the Terraform awscc_datazone_subscription_target resource. +// This Terraform resource corresponds to the CloudFormation AWS::DataZone::SubscriptionTarget resource. +func subscriptionTargetResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ApplicableAssetTypes + // CloudFormation resource type schema: + // + // { + // "description": "The asset types that can be included in the subscription target.", + // "insertionOrder": false, + // "items": { + // "maxLength": 256, + // "minLength": 1, + // "pattern": "^[^\\.]*", + // "type": "string" + // }, + // "type": "array" + // } + "applicable_asset_types": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "The asset types that can be included in the subscription target.", + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.ValueStringsAre( + stringvalidator.LengthBetween(1, 256), + stringvalidator.RegexMatches(regexp.MustCompile("^[^\\.]*"), ""), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AuthorizedPrincipals + // CloudFormation resource type schema: + // + // { + // "description": "The authorized principals of the subscription target.", + // "insertionOrder": false, + // "items": { + // "pattern": "^[a-zA-Z0-9:/_-]*$", + // "type": "string" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // } + "authorized_principals": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "The authorized principals of the subscription target.", + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 10), + listvalidator.ValueStringsAre( + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9:/_-]*$"), ""), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "The timestamp of when the subscription target was created.", + // "format": "date-time", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "The timestamp of when the subscription target was created.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CreatedBy + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon DataZone user who created the subscription target.", + // "type": "string" + // } + "created_by": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon DataZone user who created the subscription target.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DomainId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the Amazon DataZone domain in which subscription target is created.", + // "pattern": "^dzd[-_][a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "domain_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the Amazon DataZone domain in which subscription target is created.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DomainIdentifier + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the Amazon DataZone domain in which subscription target would be created.", + // "pattern": "^dzd[-_][a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "domain_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the Amazon DataZone domain in which subscription target would be created.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^dzd[-_][a-zA-Z0-9_-]{1,36}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + // DomainIdentifier is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: EnvironmentId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the environment in which subscription target is created.", + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "environment_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the environment in which subscription target is created.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EnvironmentIdentifier + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the environment in which subscription target would be created.", + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "environment_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the environment in which subscription target would be created.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9_-]{1,36}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + // EnvironmentIdentifier is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the subscription target.", + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "subscription_target_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the subscription target.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ManageAccessRole + // CloudFormation resource type schema: + // + // { + // "description": "The manage access role that is used to create the subscription target.", + // "type": "string" + // } + "manage_access_role": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The manage access role that is used to create the subscription target.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "The name of the subscription target.", + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the subscription target.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: ProjectId + // CloudFormation resource type schema: + // + // { + // "description": "The identifier of the project specified in the subscription target.", + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "project_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the project specified in the subscription target.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Provider + // CloudFormation resource type schema: + // + // { + // "description": "The provider of the subscription target.", + // "type": "string" + // } + "provider_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The provider of the subscription target.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SubscriptionTargetConfig + // CloudFormation resource type schema: + // + // { + // "description": "The configuration of the subscription target.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "The details of the subscription target configuration.", + // "properties": { + // "Content": { + // "description": "The content of the subscription target configuration.", + // "type": "string" + // }, + // "FormName": { + // "description": "The form name included in the subscription target configuration.", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // } + // }, + // "required": [ + // "Content", + // "FormName" + // ], + // "type": "object" + // }, + // "type": "array" + // } + "subscription_target_config": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Content + "content": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The content of the subscription target configuration.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: FormName + "form_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The form name included in the subscription target configuration.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The configuration of the subscription target.", + Required: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Type + // CloudFormation resource type schema: + // + // { + // "description": "The type of the subscription target.", + // "type": "string" + // } + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The type of the subscription target.", + Required: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UpdatedAt + // CloudFormation resource type schema: + // + // { + // "description": "The timestamp of when the subscription target was updated.", + // "format": "date-time", + // "type": "string" + // } + "updated_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "The timestamp of when the subscription target was updated.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UpdatedBy + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon DataZone user who updated the subscription target.", + // "type": "string" + // } + "updated_by": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon DataZone user who updated the subscription target.", + 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: "Subscription targets enables one to access the data to which you have subscribed in your projects.", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::DataZone::SubscriptionTarget").WithTerraformTypeName("awscc_datazone_subscription_target") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "applicable_asset_types": "ApplicableAssetTypes", + "authorized_principals": "AuthorizedPrincipals", + "content": "Content", + "created_at": "CreatedAt", + "created_by": "CreatedBy", + "domain_id": "DomainId", + "domain_identifier": "DomainIdentifier", + "environment_id": "EnvironmentId", + "environment_identifier": "EnvironmentIdentifier", + "form_name": "FormName", + "manage_access_role": "ManageAccessRole", + "name": "Name", + "project_id": "ProjectId", + "provider_name": "Provider", + "subscription_target_config": "SubscriptionTargetConfig", + "subscription_target_id": "Id", + "type": "Type", + "updated_at": "UpdatedAt", + "updated_by": "UpdatedBy", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/DomainIdentifier", + "/properties/EnvironmentIdentifier", + }) + 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/datazone/subscription_target_resource_gen_test.go b/internal/aws/datazone/subscription_target_resource_gen_test.go new file mode 100644 index 0000000000..51c5be24b6 --- /dev/null +++ b/internal/aws/datazone/subscription_target_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 datazone_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSDataZoneSubscriptionTarget_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::DataZone::SubscriptionTarget", "awscc_datazone_subscription_target", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/datazone/subscription_target_singular_data_source_gen.go b/internal/aws/datazone/subscription_target_singular_data_source_gen.go new file mode 100644 index 0000000000..2a33bef3ba --- /dev/null +++ b/internal/aws/datazone/subscription_target_singular_data_source_gen.go @@ -0,0 +1,324 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package datazone + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_datazone_subscription_target", subscriptionTargetDataSource) +} + +// subscriptionTargetDataSource returns the Terraform awscc_datazone_subscription_target data source. +// This Terraform data source corresponds to the CloudFormation AWS::DataZone::SubscriptionTarget resource. +func subscriptionTargetDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ApplicableAssetTypes + // CloudFormation resource type schema: + // + // { + // "description": "The asset types that can be included in the subscription target.", + // "insertionOrder": false, + // "items": { + // "maxLength": 256, + // "minLength": 1, + // "pattern": "^[^\\.]*", + // "type": "string" + // }, + // "type": "array" + // } + "applicable_asset_types": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "The asset types that can be included in the subscription target.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AuthorizedPrincipals + // CloudFormation resource type schema: + // + // { + // "description": "The authorized principals of the subscription target.", + // "insertionOrder": false, + // "items": { + // "pattern": "^[a-zA-Z0-9:/_-]*$", + // "type": "string" + // }, + // "maxItems": 10, + // "minItems": 1, + // "type": "array" + // } + "authorized_principals": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "The authorized principals of the subscription target.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "The timestamp of when the subscription target was created.", + // "format": "date-time", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "The timestamp of when the subscription target was created.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CreatedBy + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon DataZone user who created the subscription target.", + // "type": "string" + // } + "created_by": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon DataZone user who created the subscription target.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DomainId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the Amazon DataZone domain in which subscription target is created.", + // "pattern": "^dzd[-_][a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "domain_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the Amazon DataZone domain in which subscription target is created.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DomainIdentifier + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the Amazon DataZone domain in which subscription target would be created.", + // "pattern": "^dzd[-_][a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "domain_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the Amazon DataZone domain in which subscription target would be created.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EnvironmentId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the environment in which subscription target is created.", + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "environment_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the environment in which subscription target is created.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EnvironmentIdentifier + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the environment in which subscription target would be created.", + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "environment_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the environment in which subscription target would be created.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the subscription target.", + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "subscription_target_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the subscription target.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ManageAccessRole + // CloudFormation resource type schema: + // + // { + // "description": "The manage access role that is used to create the subscription target.", + // "type": "string" + // } + "manage_access_role": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The manage access role that is used to create the subscription target.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "The name of the subscription target.", + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the subscription target.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ProjectId + // CloudFormation resource type schema: + // + // { + // "description": "The identifier of the project specified in the subscription target.", + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "project_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the project specified in the subscription target.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Provider + // CloudFormation resource type schema: + // + // { + // "description": "The provider of the subscription target.", + // "type": "string" + // } + "provider_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The provider of the subscription target.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SubscriptionTargetConfig + // CloudFormation resource type schema: + // + // { + // "description": "The configuration of the subscription target.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "The details of the subscription target configuration.", + // "properties": { + // "Content": { + // "description": "The content of the subscription target configuration.", + // "type": "string" + // }, + // "FormName": { + // "description": "The form name included in the subscription target configuration.", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // } + // }, + // "required": [ + // "Content", + // "FormName" + // ], + // "type": "object" + // }, + // "type": "array" + // } + "subscription_target_config": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Content + "content": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The content of the subscription target configuration.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FormName + "form_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The form name included in the subscription target configuration.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The configuration of the subscription target.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + // CloudFormation resource type schema: + // + // { + // "description": "The type of the subscription target.", + // "type": "string" + // } + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The type of the subscription target.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UpdatedAt + // CloudFormation resource type schema: + // + // { + // "description": "The timestamp of when the subscription target was updated.", + // "format": "date-time", + // "type": "string" + // } + "updated_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "The timestamp of when the subscription target was updated.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UpdatedBy + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon DataZone user who updated the subscription target.", + // "type": "string" + // } + "updated_by": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon DataZone user who updated the subscription target.", + 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::DataZone::SubscriptionTarget", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::DataZone::SubscriptionTarget").WithTerraformTypeName("awscc_datazone_subscription_target") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "applicable_asset_types": "ApplicableAssetTypes", + "authorized_principals": "AuthorizedPrincipals", + "content": "Content", + "created_at": "CreatedAt", + "created_by": "CreatedBy", + "domain_id": "DomainId", + "domain_identifier": "DomainIdentifier", + "environment_id": "EnvironmentId", + "environment_identifier": "EnvironmentIdentifier", + "form_name": "FormName", + "manage_access_role": "ManageAccessRole", + "name": "Name", + "project_id": "ProjectId", + "provider_name": "Provider", + "subscription_target_config": "SubscriptionTargetConfig", + "subscription_target_id": "Id", + "type": "Type", + "updated_at": "UpdatedAt", + "updated_by": "UpdatedBy", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/datazone/subscription_target_singular_data_source_gen_test.go b/internal/aws/datazone/subscription_target_singular_data_source_gen_test.go new file mode 100644 index 0000000000..ee54374f99 --- /dev/null +++ b/internal/aws/datazone/subscription_target_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 datazone_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSDataZoneSubscriptionTargetDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::DataZone::SubscriptionTarget", "awscc_datazone_subscription_target", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSDataZoneSubscriptionTargetDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::DataZone::SubscriptionTarget", "awscc_datazone_subscription_target", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/eks/cluster_resource_gen.go b/internal/aws/eks/cluster_resource_gen.go index 612d5e3b43..eca2bdb8e4 100644 --- a/internal/aws/eks/cluster_resource_gen.go +++ b/internal/aws/eks/cluster_resource_gen.go @@ -7,6 +7,8 @@ package eks 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" @@ -20,7 +22,6 @@ import ( "github.com/hashicorp/terraform-plugin-framework/types" "github.com/hashicorp/terraform-provider-awscc/internal/generic" "github.com/hashicorp/terraform-provider-awscc/internal/registry" - "regexp" ) func init() { diff --git a/internal/aws/networkmanager/link_plural_data_source_gen.go b/internal/aws/networkmanager/link_plural_data_source_gen.go new file mode 100644 index 0000000000..0f6bf48287 --- /dev/null +++ b/internal/aws/networkmanager/link_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_links", linksDataSource) +} + +// linksDataSource returns the Terraform awscc_networkmanager_links data source. +// This Terraform data source corresponds to the CloudFormation AWS::NetworkManager::Link resource. +func linksDataSource(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::Link", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::NetworkManager::Link").WithTerraformTypeName("awscc_networkmanager_links") + 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/link_plural_data_source_gen_test.go b/internal/aws/networkmanager/link_plural_data_source_gen_test.go new file mode 100644 index 0000000000..0f22601441 --- /dev/null +++ b/internal/aws/networkmanager/link_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 TestAccAWSNetworkManagerLinksDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::NetworkManager::Link", "awscc_networkmanager_links", "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/link_resource_gen.go b/internal/aws/networkmanager/link_resource_gen.go new file mode 100644 index 0000000000..8102500f60 --- /dev/null +++ b/internal/aws/networkmanager/link_resource_gen.go @@ -0,0 +1,300 @@ +// 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/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/setplanmodifier" + "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_networkmanager_link", linkResource) +} + +// linkResource returns the Terraform awscc_networkmanager_link resource. +// This Terraform resource corresponds to the CloudFormation AWS::NetworkManager::Link resource. +func linkResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Bandwidth + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The Bandwidth for the link.", + // "properties": { + // "DownloadSpeed": { + // "description": "Download speed in Mbps.", + // "type": "integer" + // }, + // "UploadSpeed": { + // "description": "Upload speed in Mbps.", + // "type": "integer" + // } + // }, + // "type": "object" + // } + "bandwidth": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DownloadSpeed + "download_speed": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Download speed in Mbps.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UploadSpeed + "upload_speed": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Upload speed in Mbps.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The Bandwidth for the link.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "The date and time that the device was created.", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The date and time that the device was created.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "The description of the link.", + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The description of the link.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: GlobalNetworkId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the global network.", + // "type": "string" + // } + "global_network_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the global network.", + Required: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LinkArn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) of the link.", + // "type": "string" + // } + "link_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the link.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LinkId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the link.", + // "type": "string" + // } + "link_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the link.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Provider + // CloudFormation resource type schema: + // + // { + // "description": "The provider of the link.", + // "type": "string" + // } + "provider_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The provider of the link.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SiteId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the site", + // "type": "string" + // } + "site_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the site", + Required: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: State + // CloudFormation resource type schema: + // + // { + // "description": "The state of the link.", + // "type": "string" + // } + "state": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The state of the link.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "The tags for the link.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a link 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 -.", + Required: 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 -.", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The tags for the link.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Type + // CloudFormation resource type schema: + // + // { + // "description": "The type of the link.", + // "type": "string" + // } + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The type of the link.", + Optional: true, + 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: "The AWS::NetworkManager::Link type describes a link.", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::NetworkManager::Link").WithTerraformTypeName("awscc_networkmanager_link") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "bandwidth": "Bandwidth", + "created_at": "CreatedAt", + "description": "Description", + "download_speed": "DownloadSpeed", + "global_network_id": "GlobalNetworkId", + "key": "Key", + "link_arn": "LinkArn", + "link_id": "LinkId", + "provider_name": "Provider", + "site_id": "SiteId", + "state": "State", + "tags": "Tags", + "type": "Type", + "upload_speed": "UploadSpeed", + "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/networkmanager/link_resource_gen_test.go b/internal/aws/networkmanager/link_resource_gen_test.go new file mode 100644 index 0000000000..279276ffd5 --- /dev/null +++ b/internal/aws/networkmanager/link_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 TestAccAWSNetworkManagerLink_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::NetworkManager::Link", "awscc_networkmanager_link", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/networkmanager/link_singular_data_source_gen.go b/internal/aws/networkmanager/link_singular_data_source_gen.go new file mode 100644 index 0000000000..59a0b62a35 --- /dev/null +++ b/internal/aws/networkmanager/link_singular_data_source_gen.go @@ -0,0 +1,245 @@ +// 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-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_networkmanager_link", linkDataSource) +} + +// linkDataSource returns the Terraform awscc_networkmanager_link data source. +// This Terraform data source corresponds to the CloudFormation AWS::NetworkManager::Link resource. +func linkDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Bandwidth + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The Bandwidth for the link.", + // "properties": { + // "DownloadSpeed": { + // "description": "Download speed in Mbps.", + // "type": "integer" + // }, + // "UploadSpeed": { + // "description": "Upload speed in Mbps.", + // "type": "integer" + // } + // }, + // "type": "object" + // } + "bandwidth": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DownloadSpeed + "download_speed": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Download speed in Mbps.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UploadSpeed + "upload_speed": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Upload speed in Mbps.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The Bandwidth for the link.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "The date and time that the device was created.", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The date and time that the device was created.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "The description of the link.", + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The description of the link.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: GlobalNetworkId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the global network.", + // "type": "string" + // } + "global_network_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the global network.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LinkArn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) of the link.", + // "type": "string" + // } + "link_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the link.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LinkId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the link.", + // "type": "string" + // } + "link_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the link.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Provider + // CloudFormation resource type schema: + // + // { + // "description": "The provider of the link.", + // "type": "string" + // } + "provider_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The provider of the link.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SiteId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the site", + // "type": "string" + // } + "site_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the site", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: State + // CloudFormation resource type schema: + // + // { + // "description": "The state of the link.", + // "type": "string" + // } + "state": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The state of the link.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "The tags for the link.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a link 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: "The tags for the link.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + // CloudFormation resource type schema: + // + // { + // "description": "The type of the link.", + // "type": "string" + // } + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The type of the link.", + 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::Link", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::NetworkManager::Link").WithTerraformTypeName("awscc_networkmanager_link") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "bandwidth": "Bandwidth", + "created_at": "CreatedAt", + "description": "Description", + "download_speed": "DownloadSpeed", + "global_network_id": "GlobalNetworkId", + "key": "Key", + "link_arn": "LinkArn", + "link_id": "LinkId", + "provider_name": "Provider", + "site_id": "SiteId", + "state": "State", + "tags": "Tags", + "type": "Type", + "upload_speed": "UploadSpeed", + "value": "Value", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/networkmanager/link_singular_data_source_gen_test.go b/internal/aws/networkmanager/link_singular_data_source_gen_test.go new file mode 100644 index 0000000000..2b7848c855 --- /dev/null +++ b/internal/aws/networkmanager/link_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 TestAccAWSNetworkManagerLinkDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::NetworkManager::Link", "awscc_networkmanager_link", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSNetworkManagerLinkDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::NetworkManager::Link", "awscc_networkmanager_link", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/route53resolver/resolver_config_resource_gen.go b/internal/aws/route53resolver/resolver_config_resource_gen.go index 8daffa2706..7a77b13766 100644 --- a/internal/aws/route53resolver/resolver_config_resource_gen.go +++ b/internal/aws/route53resolver/resolver_config_resource_gen.go @@ -7,6 +7,7 @@ package route53resolver 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" diff --git a/internal/aws/rum/app_monitor_resource_gen.go b/internal/aws/rum/app_monitor_resource_gen.go index c5ee9e0abe..c45b4d248c 100644 --- a/internal/aws/rum/app_monitor_resource_gen.go +++ b/internal/aws/rum/app_monitor_resource_gen.go @@ -7,6 +7,8 @@ package rum 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/setvalidator" @@ -25,7 +27,6 @@ import ( "github.com/hashicorp/terraform-plugin-framework/types" "github.com/hashicorp/terraform-provider-awscc/internal/generic" "github.com/hashicorp/terraform-provider-awscc/internal/registry" - "regexp" ) func init() { diff --git a/internal/provider/all_schemas.hcl b/internal/provider/all_schemas.hcl index 1ba4fac7bc..81be2ad56e 100644 --- a/internal/provider/all_schemas.hcl +++ b/internal/provider/all_schemas.hcl @@ -733,12 +733,6 @@ resource_schema "aws_codegurureviewer_repository_association" { resource_schema "aws_codepipeline_custom_action_type" { cloudformation_type_name = "AWS::CodePipeline::CustomActionType" - - # Top-level "Id" property is not a primary identifier. - # Top-level property Provider conflicts with Terraform meta-argument: provider. - suppress_resource_generation = true - suppress_singular_data_source_generation = true - suppress_plural_data_source_generation = true } resource_schema "aws_codestarconnections_connection" { @@ -1132,11 +1126,6 @@ resource_schema "aws_datazone_domain" { resource_schema "aws_datazone_environment" { cloudformation_type_name = "AWS::DataZone::Environment" - - # top-level property Provider conflicts with Terraform meta-argument: provider - suppress_resource_generation = true - suppress_singular_data_source_generation = true - suppress_plural_data_source_generation = true } resource_schema "aws_datazone_environment_blueprint_configuration" { @@ -1156,11 +1145,6 @@ resource_schema "aws_datazone_project" { resource_schema "aws_datazone_subscription_target" { cloudformation_type_name = "AWS::DataZone::SubscriptionTarget" - - # top-level property Provider conflicts with Terraform meta-argument: provider - suppress_resource_generation = true - suppress_singular_data_source_generation = true - suppress_plural_data_source_generation = true } resource_schema "aws_detective_graph" { @@ -2965,11 +2949,6 @@ resource_schema "aws_networkmanager_global_network" { resource_schema "aws_networkmanager_link" { cloudformation_type_name = "AWS::NetworkManager::Link" - - # Top-level "Provider" property conflicts with Terraform meta-argument. - suppress_plural_data_source_generation = true - suppress_resource_generation = true - suppress_singular_data_source_generation = true } resource_schema "aws_networkmanager_link_association" { diff --git a/internal/provider/generators/shared/codegen/emitter.go b/internal/provider/generators/shared/codegen/emitter.go index 646b9935ea..fa715e60ca 100644 --- a/internal/provider/generators/shared/codegen/emitter.go +++ b/internal/provider/generators/shared/codegen/emitter.go @@ -55,7 +55,8 @@ var ( "depends_on", "for_each", "lifecycle", - "provider", + // Mapped to "provider_name". + // "provider", } ) @@ -777,7 +778,8 @@ func (e Emitter) emitSchema(tfType string, attributeNameMap map[string]string, p for _, name := range names { tfAttributeName := naming.CloudFormationPropertyToTerraformAttribute(name) - if len(parent.path) == 0 && tfAttributeName == "id" { + switch { + case len(parent.path) == 0 && tfAttributeName == "id": // Terraform uses "id" as the attribute name for the resource's primary identifier. // If the resource has its own "Id" property, swap in a new Terraform attribute name. const ( @@ -791,7 +793,16 @@ func (e Emitter) emitSchema(tfType string, attributeNameMap map[string]string, p return features, fmt.Errorf("top-level property %s conflicts with id", tfAttributeName) } attributeNameMap[tfAttributeName] = name - } else { + + case len(parent.path) == 0 && tfAttributeName == "provider": + // Map "provider" to "provider_name" to avoid conflicts with the meta-argument. + tfAttributeName = "provider_name" + if _, ok := attributeNameMap[tfAttributeName]; ok { + return features, fmt.Errorf("top-level property %s conflicts with provider", tfAttributeName) + } + attributeNameMap[tfAttributeName] = name + + default: cfPropertyName, ok := attributeNameMap[tfAttributeName] if ok { if cfPropertyName != name { diff --git a/internal/provider/plural_data_sources.go b/internal/provider/plural_data_sources.go index ed7f705244..4a98c38439 100644 --- a/internal/provider/plural_data_sources.go +++ b/internal/provider/plural_data_sources.go @@ -97,6 +97,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_codebuild_fleets -cftype AWS::CodeBuild::Fleet -package codebuild ../aws/codebuild/fleet_plural_data_source_gen.go ../aws/codebuild/fleet_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_codedeploy_deployment_configs -cftype AWS::CodeDeploy::DeploymentConfig -package codedeploy ../aws/codedeploy/deployment_config_plural_data_source_gen.go ../aws/codedeploy/deployment_config_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_codeguruprofiler_profiling_groups -cftype AWS::CodeGuruProfiler::ProfilingGroup -package codeguruprofiler ../aws/codeguruprofiler/profiling_group_plural_data_source_gen.go ../aws/codeguruprofiler/profiling_group_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_codepipeline_custom_action_types -cftype AWS::CodePipeline::CustomActionType -package codepipeline ../aws/codepipeline/custom_action_type_plural_data_source_gen.go ../aws/codepipeline/custom_action_type_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_codestarconnections_connections -cftype AWS::CodeStarConnections::Connection -package codestarconnections ../aws/codestarconnections/connection_plural_data_source_gen.go ../aws/codestarconnections/connection_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_codestarconnections_repository_links -cftype AWS::CodeStarConnections::RepositoryLink -package codestarconnections ../aws/codestarconnections/repository_link_plural_data_source_gen.go ../aws/codestarconnections/repository_link_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_codestarconnections_sync_configurations -cftype AWS::CodeStarConnections::SyncConfiguration -package codestarconnections ../aws/codestarconnections/sync_configuration_plural_data_source_gen.go ../aws/codestarconnections/sync_configuration_plural_data_source_gen_test.go @@ -141,6 +142,8 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_datasync_storage_systems -cftype AWS::DataSync::StorageSystem -package datasync ../aws/datasync/storage_system_plural_data_source_gen.go ../aws/datasync/storage_system_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_datasync_tasks -cftype AWS::DataSync::Task -package datasync ../aws/datasync/task_plural_data_source_gen.go ../aws/datasync/task_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_datazone_domains -cftype AWS::DataZone::Domain -package datazone ../aws/datazone/domain_plural_data_source_gen.go ../aws/datazone/domain_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_datazone_environments -cftype AWS::DataZone::Environment -package datazone ../aws/datazone/environment_plural_data_source_gen.go ../aws/datazone/environment_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_datazone_subscription_targets -cftype AWS::DataZone::SubscriptionTarget -package datazone ../aws/datazone/subscription_target_plural_data_source_gen.go ../aws/datazone/subscription_target_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_detective_graphs -cftype AWS::Detective::Graph -package detective ../aws/detective/graph_plural_data_source_gen.go ../aws/detective/graph_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_detective_member_invitations -cftype AWS::Detective::MemberInvitation -package detective ../aws/detective/member_invitation_plural_data_source_gen.go ../aws/detective/member_invitation_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_devopsguru_log_anomaly_detection_integrations -cftype AWS::DevOpsGuru::LogAnomalyDetectionIntegration -package devopsguru ../aws/devopsguru/log_anomaly_detection_integration_plural_data_source_gen.go ../aws/devopsguru/log_anomaly_detection_integration_plural_data_source_gen_test.go @@ -448,6 +451,7 @@ //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_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_links -cftype AWS::NetworkManager::Link -package networkmanager ../aws/networkmanager/link_plural_data_source_gen.go ../aws/networkmanager/link_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 //go:generate go run generators/plural-data-source/main.go -data-source awscc_networkmanager_transit_gateway_route_table_attachments -cftype AWS::NetworkManager::TransitGatewayRouteTableAttachment -package networkmanager ../aws/networkmanager/transit_gateway_route_table_attachment_plural_data_source_gen.go ../aws/networkmanager/transit_gateway_route_table_attachment_plural_data_source_gen_test.go @@ -662,6 +666,7 @@ import ( _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/codebuild" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/codedeploy" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/codeguruprofiler" + _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/codepipeline" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/codestarconnections" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/codestarnotifications" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/cognito" diff --git a/internal/provider/resources.go b/internal/provider/resources.go index 44b147c543..e8754e025c 100644 --- a/internal/provider/resources.go +++ b/internal/provider/resources.go @@ -154,6 +154,7 @@ //go:generate go run generators/resource/main.go -resource awscc_codedeploy_deployment_config -cfschema ../service/cloudformation/schemas/AWS_CodeDeploy_DeploymentConfig.json -package codedeploy -- ../aws/codedeploy/deployment_config_resource_gen.go ../aws/codedeploy/deployment_config_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_codeguruprofiler_profiling_group -cfschema ../service/cloudformation/schemas/AWS_CodeGuruProfiler_ProfilingGroup.json -package codeguruprofiler -- ../aws/codeguruprofiler/profiling_group_resource_gen.go ../aws/codeguruprofiler/profiling_group_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_codegurureviewer_repository_association -cfschema ../service/cloudformation/schemas/AWS_CodeGuruReviewer_RepositoryAssociation.json -package codegurureviewer -- ../aws/codegurureviewer/repository_association_resource_gen.go ../aws/codegurureviewer/repository_association_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_codepipeline_custom_action_type -cfschema ../service/cloudformation/schemas/AWS_CodePipeline_CustomActionType.json -package codepipeline -- ../aws/codepipeline/custom_action_type_resource_gen.go ../aws/codepipeline/custom_action_type_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_codestarconnections_connection -cfschema ../service/cloudformation/schemas/AWS_CodeStarConnections_Connection.json -package codestarconnections -- ../aws/codestarconnections/connection_resource_gen.go ../aws/codestarconnections/connection_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_codestarconnections_repository_link -cfschema ../service/cloudformation/schemas/AWS_CodeStarConnections_RepositoryLink.json -package codestarconnections -- ../aws/codestarconnections/repository_link_resource_gen.go ../aws/codestarconnections/repository_link_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_codestarconnections_sync_configuration -cfschema ../service/cloudformation/schemas/AWS_CodeStarConnections_SyncConfiguration.json -package codestarconnections -- ../aws/codestarconnections/sync_configuration_resource_gen.go ../aws/codestarconnections/sync_configuration_resource_gen_test.go @@ -228,9 +229,11 @@ //go:generate go run generators/resource/main.go -resource awscc_datasync_task -cfschema ../service/cloudformation/schemas/AWS_DataSync_Task.json -package datasync -- ../aws/datasync/task_resource_gen.go ../aws/datasync/task_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_datazone_data_source -cfschema ../service/cloudformation/schemas/AWS_DataZone_DataSource.json -package datazone -- ../aws/datazone/data_source_resource_gen.go ../aws/datazone/data_source_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_datazone_domain -cfschema ../service/cloudformation/schemas/AWS_DataZone_Domain.json -package datazone -- ../aws/datazone/domain_resource_gen.go ../aws/datazone/domain_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_datazone_environment -cfschema ../service/cloudformation/schemas/AWS_DataZone_Environment.json -package datazone -- ../aws/datazone/environment_resource_gen.go ../aws/datazone/environment_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_datazone_environment_blueprint_configuration -cfschema ../service/cloudformation/schemas/AWS_DataZone_EnvironmentBlueprintConfiguration.json -package datazone -- ../aws/datazone/environment_blueprint_configuration_resource_gen.go ../aws/datazone/environment_blueprint_configuration_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_datazone_environment_profile -cfschema ../service/cloudformation/schemas/AWS_DataZone_EnvironmentProfile.json -package datazone -- ../aws/datazone/environment_profile_resource_gen.go ../aws/datazone/environment_profile_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_datazone_project -cfschema ../service/cloudformation/schemas/AWS_DataZone_Project.json -package datazone -- ../aws/datazone/project_resource_gen.go ../aws/datazone/project_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_datazone_subscription_target -cfschema ../service/cloudformation/schemas/AWS_DataZone_SubscriptionTarget.json -package datazone -- ../aws/datazone/subscription_target_resource_gen.go ../aws/datazone/subscription_target_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_detective_graph -cfschema ../service/cloudformation/schemas/AWS_Detective_Graph.json -package detective -- ../aws/detective/graph_resource_gen.go ../aws/detective/graph_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_detective_member_invitation -cfschema ../service/cloudformation/schemas/AWS_Detective_MemberInvitation.json -package detective -- ../aws/detective/member_invitation_resource_gen.go ../aws/detective/member_invitation_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_detective_organization_admin -cfschema ../service/cloudformation/schemas/AWS_Detective_OrganizationAdmin.json -package detective -- ../aws/detective/organization_admin_resource_gen.go ../aws/detective/organization_admin_resource_gen_test.go @@ -638,6 +641,7 @@ //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_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 //go:generate go run generators/resource/main.go -resource awscc_networkmanager_site -cfschema ../service/cloudformation/schemas/AWS_NetworkManager_Site.json -package networkmanager -- ../aws/networkmanager/site_resource_gen.go ../aws/networkmanager/site_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_networkmanager_site_to_site_vpn_attachment -cfschema ../service/cloudformation/schemas/AWS_NetworkManager_SiteToSiteVpnAttachment.json -package networkmanager -- ../aws/networkmanager/site_to_site_vpn_attachment_resource_gen.go ../aws/networkmanager/site_to_site_vpn_attachment_resource_gen_test.go @@ -936,6 +940,7 @@ import ( _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/codedeploy" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/codeguruprofiler" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/codegurureviewer" + _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/codepipeline" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/codestarconnections" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/codestarnotifications" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/cognito" diff --git a/internal/provider/singular_data_sources.go b/internal/provider/singular_data_sources.go index 435ab492e0..9160557c35 100644 --- a/internal/provider/singular_data_sources.go +++ b/internal/provider/singular_data_sources.go @@ -154,6 +154,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_codedeploy_deployment_config -cfschema ../service/cloudformation/schemas/AWS_CodeDeploy_DeploymentConfig.json -package codedeploy ../aws/codedeploy/deployment_config_singular_data_source_gen.go ../aws/codedeploy/deployment_config_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_codeguruprofiler_profiling_group -cfschema ../service/cloudformation/schemas/AWS_CodeGuruProfiler_ProfilingGroup.json -package codeguruprofiler ../aws/codeguruprofiler/profiling_group_singular_data_source_gen.go ../aws/codeguruprofiler/profiling_group_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_codegurureviewer_repository_association -cfschema ../service/cloudformation/schemas/AWS_CodeGuruReviewer_RepositoryAssociation.json -package codegurureviewer ../aws/codegurureviewer/repository_association_singular_data_source_gen.go ../aws/codegurureviewer/repository_association_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_codepipeline_custom_action_type -cfschema ../service/cloudformation/schemas/AWS_CodePipeline_CustomActionType.json -package codepipeline ../aws/codepipeline/custom_action_type_singular_data_source_gen.go ../aws/codepipeline/custom_action_type_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_codestarconnections_connection -cfschema ../service/cloudformation/schemas/AWS_CodeStarConnections_Connection.json -package codestarconnections ../aws/codestarconnections/connection_singular_data_source_gen.go ../aws/codestarconnections/connection_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_codestarconnections_repository_link -cfschema ../service/cloudformation/schemas/AWS_CodeStarConnections_RepositoryLink.json -package codestarconnections ../aws/codestarconnections/repository_link_singular_data_source_gen.go ../aws/codestarconnections/repository_link_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_codestarconnections_sync_configuration -cfschema ../service/cloudformation/schemas/AWS_CodeStarConnections_SyncConfiguration.json -package codestarconnections ../aws/codestarconnections/sync_configuration_singular_data_source_gen.go ../aws/codestarconnections/sync_configuration_singular_data_source_gen_test.go @@ -228,9 +229,11 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_datasync_task -cfschema ../service/cloudformation/schemas/AWS_DataSync_Task.json -package datasync ../aws/datasync/task_singular_data_source_gen.go ../aws/datasync/task_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_datazone_data_source -cfschema ../service/cloudformation/schemas/AWS_DataZone_DataSource.json -package datazone ../aws/datazone/data_source_singular_data_source_gen.go ../aws/datazone/data_source_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_datazone_domain -cfschema ../service/cloudformation/schemas/AWS_DataZone_Domain.json -package datazone ../aws/datazone/domain_singular_data_source_gen.go ../aws/datazone/domain_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_datazone_environment -cfschema ../service/cloudformation/schemas/AWS_DataZone_Environment.json -package datazone ../aws/datazone/environment_singular_data_source_gen.go ../aws/datazone/environment_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_datazone_environment_blueprint_configuration -cfschema ../service/cloudformation/schemas/AWS_DataZone_EnvironmentBlueprintConfiguration.json -package datazone ../aws/datazone/environment_blueprint_configuration_singular_data_source_gen.go ../aws/datazone/environment_blueprint_configuration_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_datazone_environment_profile -cfschema ../service/cloudformation/schemas/AWS_DataZone_EnvironmentProfile.json -package datazone ../aws/datazone/environment_profile_singular_data_source_gen.go ../aws/datazone/environment_profile_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_datazone_project -cfschema ../service/cloudformation/schemas/AWS_DataZone_Project.json -package datazone ../aws/datazone/project_singular_data_source_gen.go ../aws/datazone/project_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_datazone_subscription_target -cfschema ../service/cloudformation/schemas/AWS_DataZone_SubscriptionTarget.json -package datazone ../aws/datazone/subscription_target_singular_data_source_gen.go ../aws/datazone/subscription_target_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_detective_graph -cfschema ../service/cloudformation/schemas/AWS_Detective_Graph.json -package detective ../aws/detective/graph_singular_data_source_gen.go ../aws/detective/graph_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_detective_member_invitation -cfschema ../service/cloudformation/schemas/AWS_Detective_MemberInvitation.json -package detective ../aws/detective/member_invitation_singular_data_source_gen.go ../aws/detective/member_invitation_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_detective_organization_admin -cfschema ../service/cloudformation/schemas/AWS_Detective_OrganizationAdmin.json -package detective ../aws/detective/organization_admin_singular_data_source_gen.go ../aws/detective/organization_admin_singular_data_source_gen_test.go @@ -638,6 +641,7 @@ //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_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 //go:generate go run generators/singular-data-source/main.go -data-source awscc_networkmanager_site -cfschema ../service/cloudformation/schemas/AWS_NetworkManager_Site.json -package networkmanager ../aws/networkmanager/site_singular_data_source_gen.go ../aws/networkmanager/site_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_networkmanager_site_to_site_vpn_attachment -cfschema ../service/cloudformation/schemas/AWS_NetworkManager_SiteToSiteVpnAttachment.json -package networkmanager ../aws/networkmanager/site_to_site_vpn_attachment_singular_data_source_gen.go ../aws/networkmanager/site_to_site_vpn_attachment_singular_data_source_gen_test.go @@ -936,6 +940,7 @@ import ( _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/codedeploy" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/codeguruprofiler" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/codegurureviewer" + _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/codepipeline" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/codestarconnections" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/codestarnotifications" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/cognito"