From d26d4936018aa363504517b972fa833b3f2d2751 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 7 Sep 2023 11:12:03 -0400 Subject: [PATCH 1/6] 09/06/2023 CloudFormation schemas in us-east-1; Refresh existing schemas. --- .../schemas/AWS_AccessAnalyzer_Analyzer.json | 7 + .../schemas/AWS_AppFlow_Flow.json | 45 +++++- .../AWS_BillingConductor_CustomLineItem.json | 48 ++++++ ...ot_MicrosoftTeamsChannelConfiguration.json | 1 + .../schemas/AWS_CleanRooms_Membership.json | 66 +++++++- ...AWS_CloudFormation_HookDefaultVersion.json | 9 +- .../AWS_CloudFormation_HookTypeConfig.json | 11 ++ .../AWS_CloudFormation_HookVersion.json | 4 +- .../schemas/AWS_Connect_ContactFlow.json | 25 ++- .../schemas/AWS_Connect_QuickConnect.json | 45 ++++-- .../schemas/AWS_DataSync_Task.json | 144 +++++++++++++++++- .../schemas/AWS_EC2_FlowLog.json | 5 + .../schemas/AWS_EC2_PlacementGroup.json | 1 + .../schemas/AWS_EC2_PrefixList.json | 6 + .../AWS_EMRServerless_Application.json | 4 +- ...S_ElasticLoadBalancingV2_ListenerRule.json | 44 +++++- .../schemas/AWS_GameLift_Location.json | 1 + .../schemas/AWS_IoTWireless_Destination.json | 8 +- .../schemas/AWS_IoTWireless_FuotaTask.json | 1 + .../AWS_IoTWireless_ServiceProfile.json | 2 - .../AWS_IoTWireless_WirelessDevice.json | 6 +- .../schemas/AWS_Macie_FindingsFilter.json | 41 ++++- .../schemas/AWS_Macie_Session.json | 6 + .../AWS_RDS_DBClusterParameterGroup.json | 3 +- .../schemas/AWS_RDS_DBInstance.json | 3 + .../schemas/AWS_RDS_DBParameterGroup.json | 3 +- .../schemas/AWS_RDS_DBSubnetGroup.json | 2 + .../schemas/AWS_RDS_EventSubscription.json | 4 +- .../schemas/AWS_RDS_OptionGroup.json | 4 +- .../schemas/AWS_Redshift_Cluster.json | 12 +- .../AWS_Redshift_ClusterSubnetGroup.json | 7 + .../schemas/AWS_Redshift_EndpointAccess.json | 3 + .../AWS_Redshift_EndpointAuthorization.json | 5 +- .../AWS_Redshift_EventSubscription.json | 8 +- .../schemas/AWS_Redshift_ScheduledAction.json | 10 +- .../AWS_RolesAnywhere_TrustAnchor.json | 50 +++++- .../schemas/AWS_SNS_TopicPolicy.json | 6 - ...ServiceCatalogAppRegistry_Application.json | 6 +- .../AWS_VpcLattice_AccessLogSubscription.json | 22 ++- .../schemas/AWS_VpcLattice_Rule.json | 4 +- .../schemas/AWS_VpcLattice_Service.json | 7 +- .../AWS_VpcLattice_ServiceNetwork.json | 3 +- ...cLattice_ServiceNetworkVpcAssociation.json | 3 +- .../schemas/AWS_VpcLattice_TargetGroup.json | 24 ++- 44 files changed, 651 insertions(+), 68 deletions(-) diff --git a/internal/service/cloudformation/schemas/AWS_AccessAnalyzer_Analyzer.json b/internal/service/cloudformation/schemas/AWS_AccessAnalyzer_Analyzer.json index c2d10fd42a..82acb1c525 100644 --- a/internal/service/cloudformation/schemas/AWS_AccessAnalyzer_Analyzer.json +++ b/internal/service/cloudformation/schemas/AWS_AccessAnalyzer_Analyzer.json @@ -180,5 +180,12 @@ "access-analyzer:ListAnalyzers" ] } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" } } diff --git a/internal/service/cloudformation/schemas/AWS_AppFlow_Flow.json b/internal/service/cloudformation/schemas/AWS_AppFlow_Flow.json index d88cb26038..31a873a251 100644 --- a/internal/service/cloudformation/schemas/AWS_AppFlow_Flow.json +++ b/internal/service/cloudformation/schemas/AWS_AppFlow_Flow.json @@ -178,8 +178,7 @@ "type": "array", "items": { "$ref": "#/definitions/TaskPropertiesObject" - }, - "additionalProperties": false + } } }, "required": [ @@ -833,6 +832,12 @@ "properties": { "ObjectPath": { "$ref": "#/definitions/Object" + }, + "parallelismConfig": { + "$ref": "#/definitions/SAPODataParallelismConfig" + }, + "paginationConfig": { + "$ref": "#/definitions/SAPODataPaginationConfig" } }, "required": [ @@ -1645,6 +1650,42 @@ "BULKV2", "REST_SYNC" ] + }, + "SAPODataParallelismConfig": { + "description": "SAP Source connector parallelism factor", + "type": "object", + "properties": { + "maxParallelism": { + "$ref": "#/definitions/SAPODataMaxParallelism" + } + }, + "required": [ + "maxParallelism" + ], + "additionalProperties": false + }, + "SAPODataPaginationConfig": { + "description": "SAP Source connector page size", + "type": "object", + "properties": { + "maxPageSize": { + "$ref": "#/definitions/SAPODataMaxPageSize" + } + }, + "required": [ + "maxPageSize" + ], + "additionalProperties": false + }, + "SAPODataMaxParallelism": { + "type": "integer", + "minimum": 1, + "maximum": 10 + }, + "SAPODataMaxPageSize": { + "type": "integer", + "minimum": 1, + "maximum": 10000 } }, "required": [ diff --git a/internal/service/cloudformation/schemas/AWS_BillingConductor_CustomLineItem.json b/internal/service/cloudformation/schemas/AWS_BillingConductor_CustomLineItem.json index 5915a91bec..b310a8cbba 100644 --- a/internal/service/cloudformation/schemas/AWS_BillingConductor_CustomLineItem.json +++ b/internal/service/cloudformation/schemas/AWS_BillingConductor_CustomLineItem.json @@ -67,6 +67,51 @@ "ChargeValue" ] }, + "LineItemFilters": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/LineItemFilter" + } + }, + "LineItemFilter": { + "type": "object", + "additionalProperties": false, + "properties": { + "Attribute": { + "type": "string", + "enum": [ + "LINE_ITEM_TYPE" + ] + }, + "MatchOption": { + "type": "string", + "enum": [ + "NOT_EQUAL" + ] + }, + "Values": { + "type": "array", + "insertionOrder": false, + "uniqueItems": true, + "items": { + "$ref": "#/definitions/LineItemFilterValue" + } + } + }, + "required": [ + "Attribute", + "MatchOption", + "Values" + ] + }, + "LineItemFilterValue": { + "type": "string", + "enum": [ + "SAVINGS_PLAN_NEGATION" + ] + }, "CustomLineItemChargeDetails": { "type": "object", "additionalProperties": false, @@ -79,6 +124,9 @@ }, "Type": { "$ref": "#/definitions/Type" + }, + "LineItemFilters": { + "$ref": "#/definitions/LineItemFilters" } }, "required": [ diff --git a/internal/service/cloudformation/schemas/AWS_Chatbot_MicrosoftTeamsChannelConfiguration.json b/internal/service/cloudformation/schemas/AWS_Chatbot_MicrosoftTeamsChannelConfiguration.json index c59def09b5..718f27db91 100644 --- a/internal/service/cloudformation/schemas/AWS_Chatbot_MicrosoftTeamsChannelConfiguration.json +++ b/internal/service/cloudformation/schemas/AWS_Chatbot_MicrosoftTeamsChannelConfiguration.json @@ -111,6 +111,7 @@ }, "delete": { "permissions": [ + "chatbot:GetMicrosoftTeamsChannelConfiguration", "chatbot:DeleteMicrosoftTeamsChannelConfiguration" ] }, diff --git a/internal/service/cloudformation/schemas/AWS_CleanRooms_Membership.json b/internal/service/cloudformation/schemas/AWS_CleanRooms_Membership.json index 15280588ca..20cf4bd49d 100644 --- a/internal/service/cloudformation/schemas/AWS_CleanRooms_Membership.json +++ b/internal/service/cloudformation/schemas/AWS_CleanRooms_Membership.json @@ -36,6 +36,63 @@ "Value", "Key" ] + }, + "ResultFormat": { + "type": "string", + "enum": [ + "CSV", + "PARQUET" + ] + }, + "ProtectedQueryS3OutputConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "ResultFormat": { + "$ref": "#/definitions/ResultFormat" + }, + "Bucket": { + "type": "string", + "minLength": 3, + "maxLength": 63 + }, + "KeyPrefix": { + "type": "string" + } + }, + "required": [ + "ResultFormat", + "Bucket" + ] + }, + "MembershipProtectedQueryOutputConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/ProtectedQueryS3OutputConfiguration" + } + }, + "required": [ + "S3" + ] + }, + "MembershipProtectedQueryResultConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "OutputConfiguration": { + "$ref": "#/definitions/MembershipProtectedQueryOutputConfiguration" + }, + "RoleArn": { + "type": "string", + "minLength": 32, + "maxLength": 512 + } + }, + "required": [ + "OutputConfiguration" + ] } }, "properties": { @@ -76,6 +133,9 @@ }, "QueryLogStatus": { "$ref": "#/definitions/MembershipQueryLogStatus" + }, + "DefaultResultConfiguration": { + "$ref": "#/definitions/MembershipProtectedQueryResultConfiguration" } }, "required": [ @@ -117,7 +177,8 @@ "cleanrooms:GetMembership", "cleanrooms:ListTagsForResource", "cleanrooms:TagResource", - "cleanrooms:ListMemberships" + "cleanrooms:ListMemberships", + "iam:PassRole" ] }, "read": { @@ -145,7 +206,8 @@ "logs:CreateLogGroup", "cleanrooms:ListTagsForResource", "cleanrooms:TagResource", - "cleanrooms:UntagResource" + "cleanrooms:UntagResource", + "iam:PassRole" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_CloudFormation_HookDefaultVersion.json b/internal/service/cloudformation/schemas/AWS_CloudFormation_HookDefaultVersion.json index f46ab71905..3f59e9fb67 100644 --- a/internal/service/cloudformation/schemas/AWS_CloudFormation_HookDefaultVersion.json +++ b/internal/service/cloudformation/schemas/AWS_CloudFormation_HookDefaultVersion.json @@ -69,8 +69,15 @@ "permissions": [] }, "list": { + "handlerSchema": { + "properties": { + "TypeName": { + "$ref": "resource-schema.json#/properties/TypeName" + } + } + }, "permissions": [ - "cloudformation:ListTypeVersions" + "cloudformation:ListTypes" ] } }, diff --git a/internal/service/cloudformation/schemas/AWS_CloudFormation_HookTypeConfig.json b/internal/service/cloudformation/schemas/AWS_CloudFormation_HookTypeConfig.json index dc365d6901..8081989db8 100644 --- a/internal/service/cloudformation/schemas/AWS_CloudFormation_HookTypeConfig.json +++ b/internal/service/cloudformation/schemas/AWS_CloudFormation_HookTypeConfig.json @@ -84,7 +84,18 @@ ] }, "list": { + "handlerSchema": { + "properties": { + "TypeName": { + "$ref": "resource-schema.json#/properties/TypeName" + }, + "TypeArn": { + "$ref": "resource-schema.json#/properties/TypeArn" + } + } + }, "permissions": [ + "cloudformation:ListTypes", "cloudformation:BatchDescribeTypeConfigurations" ] } diff --git a/internal/service/cloudformation/schemas/AWS_CloudFormation_HookVersion.json b/internal/service/cloudformation/schemas/AWS_CloudFormation_HookVersion.json index 04affe4603..0b35006528 100644 --- a/internal/service/cloudformation/schemas/AWS_CloudFormation_HookVersion.json +++ b/internal/service/cloudformation/schemas/AWS_CloudFormation_HookVersion.json @@ -130,8 +130,8 @@ "TypeName": { "$ref": "resource-schema.json#/properties/TypeName" }, - "Arn": { - "$ref": "resource-schema.json#/properties/Arn" + "TypeArn": { + "$ref": "resource-schema.json#/properties/TypeArn" } } }, diff --git a/internal/service/cloudformation/schemas/AWS_Connect_ContactFlow.json b/internal/service/cloudformation/schemas/AWS_Connect_ContactFlow.json index 0374282cc5..71e47bb875 100644 --- a/internal/service/cloudformation/schemas/AWS_Connect_ContactFlow.json +++ b/internal/service/cloudformation/schemas/AWS_Connect_ContactFlow.json @@ -99,6 +99,13 @@ "Name", "Type" ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" + }, "handlers": { "create": { "permissions": [ @@ -124,6 +131,21 @@ "connect:TagResource", "connect:UntagResource" ] + }, + "list": { + "handlerSchema": { + "properties": { + "InstanceArn": { + "$ref": "resource-schema.json#/properties/InstanceArn" + } + }, + "required": [ + "InstanceArn" + ] + }, + "permissions": [ + "connect:ListContactFlows" + ] } }, "additionalProperties": false, @@ -131,8 +153,7 @@ "/properties/ContactFlowArn" ], "readOnlyProperties": [ - "/properties/ContactFlowArn", - "/properties/Status" + "/properties/ContactFlowArn" ], "createOnlyProperties": [ "/properties/Type" diff --git a/internal/service/cloudformation/schemas/AWS_Connect_QuickConnect.json b/internal/service/cloudformation/schemas/AWS_Connect_QuickConnect.json index 4791efb465..af7d1168d3 100644 --- a/internal/service/cloudformation/schemas/AWS_Connect_QuickConnect.json +++ b/internal/service/cloudformation/schemas/AWS_Connect_QuickConnect.json @@ -3,15 +3,6 @@ "description": "Resource Type definition for AWS::Connect::QuickConnect", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", "definitions": { - "QuickConnectType": { - "description": "The type of quick connect. In the Amazon Connect console, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE).", - "type": "string", - "enum": [ - "PHONE_NUMBER", - "QUEUE", - "USER" - ] - }, "PhoneNumber": { "description": "The phone number in E.164 format.", "type": "string", @@ -101,6 +92,15 @@ "QuickConnectType" ] }, + "QuickConnectType": { + "description": "The type of quick connect. In the Amazon Connect console, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE).", + "type": "string", + "enum": [ + "PHONE_NUMBER", + "QUEUE", + "USER" + ] + }, "Tag": { "description": "A key-value pair to associate with a resource.", "type": "object", @@ -161,6 +161,15 @@ "items": { "$ref": "#/definitions/Tag" } + }, + "QuickConnectType": { + "description": "The type of quick connect. In the Amazon Connect console, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE).", + "type": "string", + "enum": [ + "PHONE_NUMBER", + "QUEUE", + "USER" + ] } }, "required": [ @@ -193,6 +202,21 @@ "connect:TagResource", "connect:UntagResource" ] + }, + "list": { + "handlerSchema": { + "properties": { + "InstanceArn": { + "$ref": "resource-schema.json#/properties/InstanceArn" + } + }, + "required": [ + "InstanceArn" + ] + }, + "permissions": [ + "connect:ListQuickConnects" + ] } }, "additionalProperties": false, @@ -200,6 +224,7 @@ "/properties/QuickConnectArn" ], "readOnlyProperties": [ - "/properties/QuickConnectArn" + "/properties/QuickConnectArn", + "/properties/QuickConnectType" ] } diff --git a/internal/service/cloudformation/schemas/AWS_DataSync_Task.json b/internal/service/cloudformation/schemas/AWS_DataSync_Task.json index b394ba049f..e771e97eeb 100644 --- a/internal/service/cloudformation/schemas/AWS_DataSync_Task.json +++ b/internal/service/cloudformation/schemas/AWS_DataSync_Task.json @@ -50,6 +50,140 @@ "Value" ] }, + "TaskReportConfig": { + "additionalProperties": false, + "description": "Specifies how you want to configure a task report, which provides detailed information about for your Datasync transfer.", + "type": "object", + "properties": { + "Destination": { + "additionalProperties": false, + "description": "Specifies where DataSync uploads your task report.", + "type": "object", + "properties": { + "S3": { + "additionalProperties": false, + "description": "Specifies the Amazon S3 bucket where DataSync uploads your task report.", + "type": "object", + "properties": { + "Subdirectory": { + "description": "Specifies a bucket prefix for your report.", + "type": "string", + "maxLength": 4096, + "pattern": "^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\p{Zs}]*$" + }, + "BucketAccessRoleArn": { + "description": "Specifies the Amazon Resource Name (ARN) of the IAM policy that allows Datasync to upload a task report to your S3 bucket.", + "type": "string", + "maxLength": 2048, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$" + }, + "S3BucketArn": { + "description": "Specifies the ARN of the S3 bucket where Datasync uploads your report.", + "type": "string", + "maxLength": 156, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):(s3|s3-outposts):[a-z\\-0-9]*:[0-9]*:.*$" + } + } + } + } + }, + "OutputType": { + "description": "Specifies the type of task report that you want.", + "type": "string", + "enum": [ + "SUMMARY_ONLY", + "STANDARD" + ] + }, + "ReportLevel": { + "description": "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + "type": "string", + "enum": [ + "ERRORS_ONLY", + "SUCCESSES_AND_ERRORS" + ] + }, + "ObjectVersionIds": { + "description": "Specifies whether your task report includes the new version of each object transferred into an S3 bucket, this only applies if you enable versioning on your bucket.", + "type": "string", + "enum": [ + "INCLUDE", + "NONE" + ] + }, + "Overrides": { + "additionalProperties": false, + "description": "Customizes the reporting level for aspects of your task report. For example, your report might generally only include errors, but you could specify that you want a list of successes and errors just for the files that Datasync attempted to delete in your destination location.", + "type": "object", + "properties": { + "Transferred": { + "additionalProperties": false, + "description": "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to transfer.", + "type": "object", + "properties": { + "ReportLevel": { + "description": "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + "type": "string", + "enum": [ + "ERRORS_ONLY", + "SUCCESSES_AND_ERRORS" + ] + } + } + }, + "Verified": { + "additionalProperties": false, + "description": "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to verify at the end of your transfer. This only applies if you configure your task to verify data during and after the transfer (which Datasync does by default)", + "type": "object", + "properties": { + "ReportLevel": { + "description": "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + "type": "string", + "enum": [ + "ERRORS_ONLY", + "SUCCESSES_AND_ERRORS" + ] + } + } + }, + "Deleted": { + "additionalProperties": false, + "description": "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to delete in your destination location. This only applies if you configure your task to delete data in the destination that isn't in the source.", + "type": "object", + "properties": { + "ReportLevel": { + "description": "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + "type": "string", + "enum": [ + "ERRORS_ONLY", + "SUCCESSES_AND_ERRORS" + ] + } + } + }, + "Skipped": { + "additionalProperties": false, + "description": "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to skip during your transfer.", + "type": "object", + "properties": { + "ReportLevel": { + "description": "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + "type": "string", + "enum": [ + "ERRORS_ONLY", + "SUCCESSES_AND_ERRORS" + ] + } + } + } + } + } + }, + "required": [ + "Destination", + "OutputType" + ] + }, "TaskSchedule": { "additionalProperties": false, "description": "Specifies the schedule you want your task to use for repeated executions.", @@ -270,6 +404,9 @@ "Options": { "$ref": "#/definitions/Options" }, + "TaskReportConfig": { + "$ref": "#/definitions/TaskReportConfig" + }, "Schedule": { "$ref": "#/definitions/TaskSchedule" }, @@ -347,7 +484,9 @@ "elasticfilesystem:DescribeFileSystems", "elasticfilesystem:DescribeMountTargets", "logs:DescribeLogGroups", - "iam:GetRole" + "iam:GetRole", + "iam:PassRole", + "iam:AssumeRole" ] }, "read": { @@ -363,7 +502,8 @@ "datasync:ListTagsForResource", "datasync:TagResource", "datasync:UntagResource", - "logs:DescribeLogGroups" + "logs:DescribeLogGroups", + "iam:PassRole" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_FlowLog.json b/internal/service/cloudformation/schemas/AWS_EC2_FlowLog.json index 64b58d44fd..195e22bd72 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_FlowLog.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_FlowLog.json @@ -25,6 +25,10 @@ "description": "The Flow Log ID", "type": "string" }, + "DeliverCrossAccountRole": { + "description": "The ARN of the IAM role that allows Amazon EC2 to publish flow logs across accounts.", + "type": "string" + }, "DeliverLogsPermissionArn": { "description": "The ARN for the IAM role that permits Amazon EC2 to publish flow logs to a CloudWatch Logs log group in your account. If you specify LogDestinationType as s3 or kinesis-data-firehose, do not specify DeliverLogsPermissionArn or LogGroupName.", "type": "string" @@ -116,6 +120,7 @@ "ResourceId" ], "createOnlyProperties": [ + "/properties/DeliverCrossAccountRole", "/properties/DeliverLogsPermissionArn", "/properties/LogGroupName", "/properties/LogDestination", diff --git a/internal/service/cloudformation/schemas/AWS_EC2_PlacementGroup.json b/internal/service/cloudformation/schemas/AWS_EC2_PlacementGroup.json index 33d1750630..4613c55421 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_PlacementGroup.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_PlacementGroup.json @@ -56,6 +56,7 @@ }, "additionalProperties": false, "createOnlyProperties": [ + "/properties/Tags", "/properties/Strategy", "/properties/SpreadLevel", "/properties/PartitionCount" diff --git a/internal/service/cloudformation/schemas/AWS_EC2_PrefixList.json b/internal/service/cloudformation/schemas/AWS_EC2_PrefixList.json index a0ed9e6aea..cb27aefee2 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_PrefixList.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_PrefixList.json @@ -106,6 +106,12 @@ "primaryIdentifier": [ "/properties/PrefixListId" ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true + }, "handlers": { "create": { "permissions": [ diff --git a/internal/service/cloudformation/schemas/AWS_EMRServerless_Application.json b/internal/service/cloudformation/schemas/AWS_EMRServerless_Application.json index d049f9c3a2..6f5842a57f 100644 --- a/internal/service/cloudformation/schemas/AWS_EMRServerless_Application.json +++ b/internal/service/cloudformation/schemas/AWS_EMRServerless_Application.json @@ -321,6 +321,7 @@ "maxLength": 64 }, "WorkerTypeSpecifications": { + "description": "The key-value pairs that specify worker type to WorkerTypeSpecificationInput. This parameter must contain all valid worker types for a Spark or Hive application. Valid worker types include Driver and Executor for Spark applications and HiveDriver and TezTask for Hive applications. You can either set image details in this parameter for each worker type, or in imageConfiguration for all worker types.", "$ref": "#/definitions/WorkerTypeSpecificationInputMap" } }, @@ -341,7 +342,8 @@ "/properties/InitialCapacity", "/properties/AutoStartConfiguration", "/properties/AutoStopConfiguration", - "/properties/NetworkConfiguration" + "/properties/NetworkConfiguration", + "/properties/ImageConfiguration" ], "readOnlyProperties": [ "/properties/Arn", diff --git a/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_ListenerRule.json b/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_ListenerRule.json index d4301f60a9..260b3ca0e3 100644 --- a/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_ListenerRule.json +++ b/internal/service/cloudformation/schemas/AWS_ElasticLoadBalancingV2_ListenerRule.json @@ -1,6 +1,7 @@ { "typeName": "AWS::ElasticLoadBalancingV2::ListenerRule", "description": "Resource Type definition for AWS::ElasticLoadBalancingV2::ListenerRule", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-elasticloadbalancingv2", "additionalProperties": false, "properties": { "ListenerArn": { @@ -12,6 +13,7 @@ "Actions": { "type": "array", "uniqueItems": true, + "insertionOrder": false, "items": { "$ref": "#/definitions/Action" } @@ -22,6 +24,7 @@ "Conditions": { "type": "array", "uniqueItems": true, + "insertionOrder": false, "items": { "$ref": "#/definitions/RuleCondition" } @@ -86,6 +89,7 @@ "Values": { "type": "array", "uniqueItems": true, + "insertionOrder": false, "items": { "type": "string" } @@ -117,6 +121,7 @@ "Values": { "type": "array", "uniqueItems": true, + "insertionOrder": false, "items": { "$ref": "#/definitions/QueryStringKeyValue" } @@ -142,6 +147,7 @@ "Values": { "type": "array", "uniqueItems": true, + "insertionOrder": false, "items": { "type": "string" } @@ -173,6 +179,7 @@ "Values": { "type": "array", "uniqueItems": true, + "insertionOrder": false, "items": { "type": "string" } @@ -272,6 +279,7 @@ "TargetGroups": { "type": "array", "uniqueItems": true, + "insertionOrder": false, "items": { "$ref": "#/definitions/TargetGroupTuple" } @@ -285,6 +293,7 @@ "Values": { "type": "array", "uniqueItems": true, + "insertionOrder": false, "items": { "type": "string" } @@ -298,6 +307,7 @@ "Values": { "type": "array", "uniqueItems": true, + "insertionOrder": false, "items": { "type": "string" } @@ -366,6 +376,7 @@ "Values": { "type": "array", "uniqueItems": true, + "insertionOrder": false, "items": { "type": "string" } @@ -397,15 +408,44 @@ "create": { "permissions": [ "elasticloadbalancing:CreateRule", - "elasticloadbalancing:DescribeRules" + "elasticloadbalancing:DescribeRules", + "cognito-idp:DescribeUserPoolClient" ] }, "delete": { "permissions": [ - "elasticloadbalancing:DeleteRule" + "elasticloadbalancing:DeleteRule", + "elasticloadbalancing:DescribeRules" ] }, "list": { + "handlerSchema": { + "properties": { + "ListenerArn": { + "$ref": "resource-schema.json#/properties/ListenerArn" + }, + "RuleArns": { + "type": "array", + "uniqueItems": false, + "insertionOrder": false, + "items": { + "$ref": "resource-schema.json#/properties/RuleArn" + } + } + }, + "oneOf": [ + { + "required": [ + "ListenerArn" + ] + }, + { + "required": [ + "RuleArns" + ] + } + ] + }, "permissions": [ "elasticloadbalancing:DescribeRules" ] diff --git a/internal/service/cloudformation/schemas/AWS_GameLift_Location.json b/internal/service/cloudformation/schemas/AWS_GameLift_Location.json index 4f973236c1..c92256972b 100644 --- a/internal/service/cloudformation/schemas/AWS_GameLift_Location.json +++ b/internal/service/cloudformation/schemas/AWS_GameLift_Location.json @@ -73,6 +73,7 @@ "permissions": [ "gamelift:CreateLocation", "gamelift:ListLocations", + "gamelift:ListTagsForResource", "gamelift:TagResource" ] }, diff --git a/internal/service/cloudformation/schemas/AWS_IoTWireless_Destination.json b/internal/service/cloudformation/schemas/AWS_IoTWireless_Destination.json index 82757a593b..0de3f8c636 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTWireless_Destination.json +++ b/internal/service/cloudformation/schemas/AWS_IoTWireless_Destination.json @@ -36,7 +36,8 @@ "type": "string", "enum": [ "RuleName", - "MqttTopic" + "MqttTopic", + "SnsTopic" ] }, "Description": { @@ -69,8 +70,7 @@ "required": [ "Name", "Expression", - "ExpressionType", - "RoleArn" + "ExpressionType" ], "readOnlyProperties": [ "/properties/Arn" @@ -85,6 +85,7 @@ "handlers": { "create": { "permissions": [ + "iam:PassRole", "iotwireless:CreateDestination", "iotwireless:TagResource", "iotwireless:ListTagsForResource" @@ -98,6 +99,7 @@ }, "update": { "permissions": [ + "iam:PassRole", "iotwireless:UpdateDestination", "iotwireless:UntagResource", "iotwireless:ListTagsForResource" diff --git a/internal/service/cloudformation/schemas/AWS_IoTWireless_FuotaTask.json b/internal/service/cloudformation/schemas/AWS_IoTWireless_FuotaTask.json index 2e8fdd377a..d35c830485 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTWireless_FuotaTask.json +++ b/internal/service/cloudformation/schemas/AWS_IoTWireless_FuotaTask.json @@ -145,6 +145,7 @@ }, "update": { "permissions": [ + "iam:PassRole", "iotwireless:UpdateFuotaTask", "iotwireless:UntagResource", "iotwireless:ListTagsForResource", diff --git a/internal/service/cloudformation/schemas/AWS_IoTWireless_ServiceProfile.json b/internal/service/cloudformation/schemas/AWS_IoTWireless_ServiceProfile.json index a784eba3dc..82c3e4b860 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTWireless_ServiceProfile.json +++ b/internal/service/cloudformation/schemas/AWS_IoTWireless_ServiceProfile.json @@ -130,9 +130,7 @@ "/properties/LoRaWAN/DrMin", "/properties/LoRaWAN/DrMax", "/properties/LoRaWAN/ChannelMask", - "/properties/LoRaWAN/PrAllowed", "/properties/LoRaWAN/HrAllowed", - "/properties/LoRaWAN/RaAllowed", "/properties/LoRaWAN/NwkGeoLoc", "/properties/LoRaWAN/TargetPer", "/properties/LoRaWAN/MinGwDiversity" diff --git a/internal/service/cloudformation/schemas/AWS_IoTWireless_WirelessDevice.json b/internal/service/cloudformation/schemas/AWS_IoTWireless_WirelessDevice.json index d9de71782d..d553e1783f 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTWireless_WirelessDevice.json +++ b/internal/service/cloudformation/schemas/AWS_IoTWireless_WirelessDevice.json @@ -285,12 +285,14 @@ "permissions": [ "iotwireless:UpdateWirelessDevice", "iotwireless:UntagResource", - "iotwireless:ListTagsForResource" + "iotwireless:ListTagsForResource", + "iotwireless:AssociateWirelessDeviceWithThing" ] }, "delete": { "permissions": [ - "iotwireless:DeleteWirelessDevice" + "iotwireless:DeleteWirelessDevice", + "iotwireless:DisassociateWirelessDeviceFromThing" ] }, "list": { diff --git a/internal/service/cloudformation/schemas/AWS_Macie_FindingsFilter.json b/internal/service/cloudformation/schemas/AWS_Macie_FindingsFilter.json index a8e1918705..1e7b33c0b7 100644 --- a/internal/service/cloudformation/schemas/AWS_Macie_FindingsFilter.json +++ b/internal/service/cloudformation/schemas/AWS_Macie_FindingsFilter.json @@ -74,6 +74,25 @@ "type": "string" } } + }, + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "The tag's key." + }, + "Value": { + "type": "string", + "description": "The tag's value." + } + }, + "required": [ + "Value", + "Key" + ], + "additionalProperties": false } }, "properties": { @@ -104,8 +123,23 @@ "Arn": { "description": "Findings filter ARN.", "type": "string" + }, + "Tags": { + "description": "A collection of tags associated with a resource", + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + } } }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" + }, "required": [ "Name", "FindingCriteria" @@ -130,7 +164,8 @@ "create": { "permissions": [ "macie2:GetFindingsFilter", - "macie2:CreateFindingsFilter" + "macie2:CreateFindingsFilter", + "macie2:TagResource" ] }, "read": { @@ -141,7 +176,9 @@ "update": { "permissions": [ "macie2:GetFindingsFilter", - "macie2:UpdateFindingsFilter" + "macie2:UpdateFindingsFilter", + "macie2:TagResource", + "macie2:UntagResource" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_Macie_Session.json b/internal/service/cloudformation/schemas/AWS_Macie_Session.json index e0daefacbd..9c1f621e1c 100644 --- a/internal/service/cloudformation/schemas/AWS_Macie_Session.json +++ b/internal/service/cloudformation/schemas/AWS_Macie_Session.json @@ -31,6 +31,12 @@ "type": "string" } }, + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, "primaryIdentifier": [ "/properties/AwsAccountId" ], diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBClusterParameterGroup.json b/internal/service/cloudformation/schemas/AWS_RDS_DBClusterParameterGroup.json index 2de6ab32c7..54bd151110 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_DBClusterParameterGroup.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBClusterParameterGroup.json @@ -80,7 +80,8 @@ "rds:DescribeDBClusters", "rds:DescribeEngineDefaultClusterParameters", "rds:ListTagsForResource", - "rds:ModifyDBClusterParameterGroup" + "rds:ModifyDBClusterParameterGroup", + "rds:RemoveTagsFromResource" ], "timeoutInMinutes": 180 }, diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json b/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json index f0d463b997..0d3a5e25aa 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBInstance.json @@ -550,6 +550,9 @@ "rds:CreateDBInstance", "rds:CreateDBInstanceReadReplica", "rds:DescribeDBInstances", + "rds:DescribeDBClusters", + "rds:DescribeDBClusterSnapshots", + "rds:DescribeDBInstanceAutomatedBackups", "rds:DescribeDBSnapshots", "rds:DescribeEvents", "rds:ModifyDBInstance", diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBParameterGroup.json b/internal/service/cloudformation/schemas/AWS_RDS_DBParameterGroup.json index 89001cdf32..838d790430 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_DBParameterGroup.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBParameterGroup.json @@ -80,7 +80,8 @@ "rds:DescribeDBParameters", "rds:DescribeEngineDefaultParameters", "rds:ListTagsForResource", - "rds:ModifyDBParameterGroup" + "rds:ModifyDBParameterGroup", + "rds:RemoveTagsFromResource" ] }, "read": { diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBSubnetGroup.json b/internal/service/cloudformation/schemas/AWS_RDS_DBSubnetGroup.json index 0fbdbe25e2..b2fbdbbff5 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_DBSubnetGroup.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBSubnetGroup.json @@ -74,6 +74,8 @@ "permissions": [ "rds:CreateDBSubnetGroup", "rds:DescribeDBSubnetGroups", + "rds:AddTagsToResource", + "rds:RemoveTagsFromResource", "rds:ListTagsForResource" ] }, diff --git a/internal/service/cloudformation/schemas/AWS_RDS_EventSubscription.json b/internal/service/cloudformation/schemas/AWS_RDS_EventSubscription.json index 0110d4ea9a..af45bdbbb6 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_EventSubscription.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_EventSubscription.json @@ -92,7 +92,9 @@ "permissions": [ "rds:CreateEventSubscription", "rds:DescribeEventSubscriptions", - "rds:ListTagsForResource" + "rds:ListTagsForResource", + "rds:AddTagsToResource", + "rds:RemoveTagsFromResource" ] }, "read": { diff --git a/internal/service/cloudformation/schemas/AWS_RDS_OptionGroup.json b/internal/service/cloudformation/schemas/AWS_RDS_OptionGroup.json index d26b5321f1..9fce1b0595 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_OptionGroup.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_OptionGroup.json @@ -109,6 +109,7 @@ "OptionConfigurations": { "description": "Indicates what options are available in the option group.", "type": "array", + "arrayType": "AttributeList", "insertionOrder": false, "items": { "$ref": "#/definitions/OptionConfiguration" @@ -148,7 +149,8 @@ "rds:CreateOptionGroup", "rds:DescribeOptionGroups", "rds:ListTagsForResource", - "rds:ModifyOptionGroup" + "rds:ModifyOptionGroup", + "rds:RemoveTagsFromResource" ] }, "read": { diff --git a/internal/service/cloudformation/schemas/AWS_Redshift_Cluster.json b/internal/service/cloudformation/schemas/AWS_Redshift_Cluster.json index 89feee84e0..17bbfd4631 100644 --- a/internal/service/cloudformation/schemas/AWS_Redshift_Cluster.json +++ b/internal/service/cloudformation/schemas/AWS_Redshift_Cluster.json @@ -304,7 +304,8 @@ "/properties/MasterUsername" ], "writeOnlyProperties": [ - "/properties/MasterUserPassword" + "/properties/MasterUserPassword", + "/properties/Classic" ], "tagging": { "taggable": true @@ -315,7 +316,8 @@ "redshift:DescribeClusters", "redshift:CreateCluster", "redshift:RestoreFromClusterSnapshot", - "redshift:EnableLogging" + "redshift:EnableLogging", + "redshift:DescribeTags" ], "timeoutInMinutes": 2160 }, @@ -324,7 +326,8 @@ "redshift:DescribeClusters", "redshift:DescribeLoggingStatus", "redshift:DescribeSnapshotCopyGrant", - "redshift:DescribeClusterDbRevisions" + "redshift:DescribeClusterDbRevisions", + "redshift:DescribeTags" ] }, "update": { @@ -335,6 +338,7 @@ "redshift:EnableLogging", "redshift:CreateTags", "redshift:DeleteTags", + "redshift:DescribeTags", "redshift:DisableLogging", "redshift:RebootCluster", "redshift:EnableSnapshotCopy", @@ -353,6 +357,7 @@ }, "delete": { "permissions": [ + "redshift:DescribeTags", "redshift:DescribeClusters", "redshift:DeleteCluster" ], @@ -360,6 +365,7 @@ }, "list": { "permissions": [ + "redshift:DescribeTags", "redshift:DescribeClusters" ] } diff --git a/internal/service/cloudformation/schemas/AWS_Redshift_ClusterSubnetGroup.json b/internal/service/cloudformation/schemas/AWS_Redshift_ClusterSubnetGroup.json index 6ad4ab3286..8af417ef86 100644 --- a/internal/service/cloudformation/schemas/AWS_Redshift_ClusterSubnetGroup.json +++ b/internal/service/cloudformation/schemas/AWS_Redshift_ClusterSubnetGroup.json @@ -80,6 +80,8 @@ "permissions": [ "redshift:CreateClusterSubnetGroup", "redshift:CreateTags", + "redshift:DescribeClusterSubnetGroups", + "redshift:DescribeTags", "ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:AttachNetworkInterface", @@ -95,6 +97,7 @@ "read": { "permissions": [ "redshift:DescribeClusterSubnetGroups", + "redshift:DescribeTags", "ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:AttachNetworkInterface", @@ -110,6 +113,7 @@ "update": { "permissions": [ "redshift:ModifyClusterSubnetGroup", + "redshift:DescribeClusterSubnetGroups", "redshift:DescribeTags", "redshift:CreateTags", "redshift:DeleteTags", @@ -128,6 +132,8 @@ "delete": { "permissions": [ "redshift:DeleteClusterSubnetGroup", + "redshift:DescribeClusterSubnetGroups", + "redshift:DescribeTags", "ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:AttachNetworkInterface", @@ -143,6 +149,7 @@ "list": { "permissions": [ "redshift:DescribeClusterSubnetGroups", + "redshift:DescribeTags", "ec2:AllocateAddress", "ec2:AssociateAddress", "ec2:AttachNetworkInterface", diff --git a/internal/service/cloudformation/schemas/AWS_Redshift_EndpointAccess.json b/internal/service/cloudformation/schemas/AWS_Redshift_EndpointAccess.json index 90af4bcb17..717c53504c 100644 --- a/internal/service/cloudformation/schemas/AWS_Redshift_EndpointAccess.json +++ b/internal/service/cloudformation/schemas/AWS_Redshift_EndpointAccess.json @@ -157,6 +157,7 @@ "create": { "permissions": [ "redshift:CreateEndpointAccess", + "redshift:DescribeEndpointAccess", "ec2:CreateClientVpnEndpoint", "ec2:DescribeVpcAttribute", "ec2:DescribeSecurityGroups", @@ -179,6 +180,7 @@ }, "update": { "permissions": [ + "redshift:DescribeEndpointAccess", "redshift:ModifyEndpointAccess", "ec2:ModifyClientVpnEndpoint", "ec2:DescribeVpcAttribute", @@ -192,6 +194,7 @@ "delete": { "permissions": [ "redshift:DeleteEndpointAccess", + "redshift:DescribeEndpointAccess", "ec2:DeleteClientVpnEndpoint", "ec2:DescribeVpcAttribute", "ec2:DescribeSecurityGroups", diff --git a/internal/service/cloudformation/schemas/AWS_Redshift_EndpointAuthorization.json b/internal/service/cloudformation/schemas/AWS_Redshift_EndpointAuthorization.json index 1660925c51..726a2be413 100644 --- a/internal/service/cloudformation/schemas/AWS_Redshift_EndpointAuthorization.json +++ b/internal/service/cloudformation/schemas/AWS_Redshift_EndpointAuthorization.json @@ -103,7 +103,8 @@ "handlers": { "create": { "permissions": [ - "redshift:AuthorizeEndpointAccess" + "redshift:AuthorizeEndpointAccess", + "redshift:DescribeEndpointAuthorization" ], "timeoutInMinutes": 60 }, @@ -115,6 +116,7 @@ "update": { "permissions": [ "redshift:AuthorizeEndpointAccess", + "redshift:DescribeEndpointAuthorization", "redshift:RevokeEndpointAccess" ], "timeoutInMinutes": 60 @@ -123,6 +125,7 @@ "permissions": [ "redshift:RevokeEndpointAccess", "redshift:DeleteEndpointAccess", + "redshift:DescribeEndpointAuthorization", "ec2:DeleteClientVpnEndpoint", "ec2:DescribeVpcAttribute", "ec2:DescribeSecurityGroups", diff --git a/internal/service/cloudformation/schemas/AWS_Redshift_EventSubscription.json b/internal/service/cloudformation/schemas/AWS_Redshift_EventSubscription.json index 15344ad366..6134ce4493 100644 --- a/internal/service/cloudformation/schemas/AWS_Redshift_EventSubscription.json +++ b/internal/service/cloudformation/schemas/AWS_Redshift_EventSubscription.json @@ -161,7 +161,9 @@ "create": { "permissions": [ "redshift:CreateEventSubscription", - "redshift:CreateTags" + "redshift:CreateTags", + "redshift:DescribeTags", + "redshift:DescribeEventSubscriptions" ] }, "read": { @@ -175,17 +177,21 @@ "redshift:ModifyEventSubscription", "redshift:CreateTags", "redshift:DescribeTags", + "redshift:DescribeEventSubscriptions", "redshift:DeleteTags" ] }, "delete": { "permissions": [ + "redshift:DescribeEventSubscriptions", "redshift:DeleteEventSubscription", + "redshift:DescribeTags", "redshift:DeleteTags" ] }, "list": { "permissions": [ + "redshift:DescribeTags", "redshift:DescribeEventSubscriptions" ] } diff --git a/internal/service/cloudformation/schemas/AWS_Redshift_ScheduledAction.json b/internal/service/cloudformation/schemas/AWS_Redshift_ScheduledAction.json index e27d4e3afa..ffb5b7782a 100644 --- a/internal/service/cloudformation/schemas/AWS_Redshift_ScheduledAction.json +++ b/internal/service/cloudformation/schemas/AWS_Redshift_ScheduledAction.json @@ -160,6 +160,8 @@ "create": { "permissions": [ "redshift:CreateScheduledAction", + "redshift:DescribeScheduledActions", + "redshift:DescribeTags", "redshift:PauseCluster", "redshift:ResumeCluster", "redshift:ResizeCluster", @@ -168,25 +170,31 @@ }, "read": { "permissions": [ - "redshift:DescribeScheduledActions" + "redshift:DescribeScheduledActions", + "redshift:DescribeTags" ] }, "update": { "permissions": [ + "redshift:DescribeScheduledActions", "redshift:ModifyScheduledAction", "redshift:PauseCluster", "redshift:ResumeCluster", "redshift:ResizeCluster", + "redshift:DescribeTags", "iam:PassRole" ] }, "delete": { "permissions": [ + "redshift:DescribeTags", + "redshift:DescribeScheduledActions", "redshift:DeleteScheduledAction" ] }, "list": { "permissions": [ + "redshift:DescribeTags", "redshift:DescribeScheduledActions" ] } diff --git a/internal/service/cloudformation/schemas/AWS_RolesAnywhere_TrustAnchor.json b/internal/service/cloudformation/schemas/AWS_RolesAnywhere_TrustAnchor.json index 667225bed5..b6bb7850a3 100644 --- a/internal/service/cloudformation/schemas/AWS_RolesAnywhere_TrustAnchor.json +++ b/internal/service/cloudformation/schemas/AWS_RolesAnywhere_TrustAnchor.json @@ -2,6 +2,43 @@ "typeName": "AWS::RolesAnywhere::TrustAnchor", "description": "Definition of AWS::RolesAnywhere::TrustAnchor Resource Type.", "definitions": { + "NotificationChannel": { + "type": "string", + "enum": [ + "ALL" + ] + }, + "NotificationEvent": { + "type": "string", + "enum": [ + "CA_CERTIFICATE_EXPIRY", + "END_ENTITY_CERTIFICATE_EXPIRY" + ] + }, + "NotificationSetting": { + "type": "object", + "properties": { + "Enabled": { + "type": "boolean" + }, + "Event": { + "$ref": "#/definitions/NotificationEvent" + }, + "Threshold": { + "type": "number", + "maximum": 360, + "minimum": 1 + }, + "Channel": { + "$ref": "#/definitions/NotificationChannel" + } + }, + "required": [ + "Enabled", + "Event" + ], + "additionalProperties": false + }, "Source": { "type": "object", "properties": { @@ -80,6 +117,14 @@ "Name": { "type": "string" }, + "NotificationSettings": { + "type": "array", + "items": { + "$ref": "#/definitions/NotificationSetting" + }, + "maxItems": 50, + "minItems": 0 + }, "Source": { "$ref": "#/definitions/Source" }, @@ -141,7 +186,10 @@ "rolesanywhere:UntagResource", "rolesanywhere:EnableTrustAnchor", "rolesanywhere:DisableTrustAnchor", - "rolesanywhere:UpdateTrustAnchor" + "rolesanywhere:UpdateTrustAnchor", + "rolesanywhere:GetTrustAnchor", + "rolesanywhere:PutNotificationSettings", + "rolesanywhere:ResetNotificationSettings" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_SNS_TopicPolicy.json b/internal/service/cloudformation/schemas/AWS_SNS_TopicPolicy.json index d8181fbe5e..64cb3d845c 100644 --- a/internal/service/cloudformation/schemas/AWS_SNS_TopicPolicy.json +++ b/internal/service/cloudformation/schemas/AWS_SNS_TopicPolicy.json @@ -52,16 +52,10 @@ "sns:SetTopicAttributes" ] }, - "read": { - "permissions": [] - }, "delete": { "permissions": [ "sns:SetTopicAttributes" ] - }, - "list": { - "permissions": [] } } } diff --git a/internal/service/cloudformation/schemas/AWS_ServiceCatalogAppRegistry_Application.json b/internal/service/cloudformation/schemas/AWS_ServiceCatalogAppRegistry_Application.json index d07fbe59cd..18c0cdf339 100644 --- a/internal/service/cloudformation/schemas/AWS_ServiceCatalogAppRegistry_Application.json +++ b/internal/service/cloudformation/schemas/AWS_ServiceCatalogAppRegistry_Application.json @@ -67,7 +67,8 @@ "create": { "permissions": [ "servicecatalog:CreateApplication", - "servicecatalog:TagResource" + "servicecatalog:TagResource", + "iam:CreateServiceLinkedRole" ] }, "read": { @@ -81,7 +82,8 @@ "servicecatalog:ListTagsForResource", "servicecatalog:TagResource", "servicecatalog:UntagResource", - "servicecatalog:UpdateApplication" + "servicecatalog:UpdateApplication", + "iam:CreateServiceLinkedRole" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_VpcLattice_AccessLogSubscription.json b/internal/service/cloudformation/schemas/AWS_VpcLattice_AccessLogSubscription.json index 5ea7233bbb..a0459bbd76 100644 --- a/internal/service/cloudformation/schemas/AWS_VpcLattice_AccessLogSubscription.json +++ b/internal/service/cloudformation/schemas/AWS_VpcLattice_AccessLogSubscription.json @@ -126,17 +126,33 @@ "read": { "permissions": [ "vpc-lattice:GetAccessLogSubscription", - "vpc-lattice:ListTagsForResource" + "vpc-lattice:ListTagsForResource", + "logs:GetLogDelivery" ] }, "update": { "permissions": [ "vpc-lattice:GetAccessLogSubscription", "vpc-lattice:UpdateAccessLogSubscription", + "vpc-lattice:TagResource", + "vpc-lattice:UntagResource", "logs:UpdateLogDelivery", "firehose:UpdateDestination", - "vpc-lattice:TagResource", - "vpc-lattice:UntagResource" + "logs:CreateLogDelivery", + "logs:CreateLogStream", + "logs:PutDestination", + "logs:PutDestinationPolicy", + "logs:PutResourcePolicy", + "logs:DescribeResourcePolicies", + "logs:DescribeLogGroups", + "logs:GetLogDelivery", + "s3:PutBucketLogging", + "s3:GetBucketLogging", + "s3:GetBucketPolicy", + "s3:PutBucketPolicy", + "firehose:TagDeliveryStream", + "firehose:CreateDeliveryStream", + "firehose:DescribeDeliveryStream" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_VpcLattice_Rule.json b/internal/service/cloudformation/schemas/AWS_VpcLattice_Rule.json index e30507e303..69dd248fef 100644 --- a/internal/service/cloudformation/schemas/AWS_VpcLattice_Rule.json +++ b/internal/service/cloudformation/schemas/AWS_VpcLattice_Rule.json @@ -299,7 +299,8 @@ "permissions": [ "vpc-lattice:CreateRule", "vpc-lattice:GetRule", - "vpc-lattice:ListTagsForResource" + "vpc-lattice:ListTagsForResource", + "vpc-lattice:TagResource" ] }, "read": { @@ -311,6 +312,7 @@ "update": { "permissions": [ "vpc-lattice:UpdateRule", + "vpc-lattice:GetRule", "vpc-lattice:TagResource", "vpc-lattice:UntagResource" ] diff --git a/internal/service/cloudformation/schemas/AWS_VpcLattice_Service.json b/internal/service/cloudformation/schemas/AWS_VpcLattice_Service.json index 99bcc0fbce..a8f242fd5a 100644 --- a/internal/service/cloudformation/schemas/AWS_VpcLattice_Service.json +++ b/internal/service/cloudformation/schemas/AWS_VpcLattice_Service.json @@ -135,7 +135,8 @@ "vpc-lattice:ListTagsForResource", "vpc-lattice:TagResource", "acm:DescribeCertificate", - "acm:ListCertificates" + "acm:ListCertificates", + "iam:CreateServiceLinkedRole" ] }, "read": { @@ -148,7 +149,9 @@ "permissions": [ "vpc-lattice:UpdateService", "vpc-lattice:TagResource", - "vpc-lattice:UntagResource" + "vpc-lattice:UntagResource", + "vpc-lattice:GetService", + "vpc-lattice:ListTagsForResource" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_VpcLattice_ServiceNetwork.json b/internal/service/cloudformation/schemas/AWS_VpcLattice_ServiceNetwork.json index 8e23825ccc..5ea661356e 100644 --- a/internal/service/cloudformation/schemas/AWS_VpcLattice_ServiceNetwork.json +++ b/internal/service/cloudformation/schemas/AWS_VpcLattice_ServiceNetwork.json @@ -94,7 +94,8 @@ "vpc-lattice:GetServiceNetwork", "vpc-lattice:ListTagsForResource", "vpc-lattice:CreateServiceNetwork", - "vpc-lattice:TagResource" + "vpc-lattice:TagResource", + "iam:CreateServiceLinkedRole" ] }, "read": { diff --git a/internal/service/cloudformation/schemas/AWS_VpcLattice_ServiceNetworkVpcAssociation.json b/internal/service/cloudformation/schemas/AWS_VpcLattice_ServiceNetworkVpcAssociation.json index 95f4089211..85d9ff3f8b 100644 --- a/internal/service/cloudformation/schemas/AWS_VpcLattice_ServiceNetworkVpcAssociation.json +++ b/internal/service/cloudformation/schemas/AWS_VpcLattice_ServiceNetworkVpcAssociation.json @@ -147,7 +147,8 @@ "vpc-lattice:ListServiceNetworkVpcAssociations", "vpc-lattice:ListTagsForResource", "ec2:DescribeSecurityGroups", - "ec2:DescribeVpcs" + "ec2:DescribeVpcs", + "vpc-lattice:TagResource" ] }, "read": { diff --git a/internal/service/cloudformation/schemas/AWS_VpcLattice_TargetGroup.json b/internal/service/cloudformation/schemas/AWS_VpcLattice_TargetGroup.json index b1a0c57db0..17fb5cc0c6 100644 --- a/internal/service/cloudformation/schemas/AWS_VpcLattice_TargetGroup.json +++ b/internal/service/cloudformation/schemas/AWS_VpcLattice_TargetGroup.json @@ -21,7 +21,8 @@ "type": "string", "enum": [ "HTTP1", - "HTTP2" + "HTTP2", + "GRPC" ] }, "Port": { @@ -108,6 +109,13 @@ "IPV6" ] }, + "LambdaEventStructureVersion": { + "type": "string", + "enum": [ + "V1", + "V2" + ] + }, "VpcIdentifier": { "type": "string", "maxLength": 2048, @@ -118,11 +126,7 @@ "$ref": "#/definitions/HealthCheckConfig" } }, - "required": [ - "Port", - "Protocol", - "VpcIdentifier" - ] + "required": [] }, "Target": { "type": "object", @@ -247,7 +251,8 @@ "/properties/Config/IpAddressType", "/properties/Config/Protocol", "/properties/Config/ProtocolVersion", - "/properties/Config/VpcIdentifier" + "/properties/Config/VpcIdentifier", + "/properties/Config/LambdaEventStructureVersion" ], "primaryIdentifier": [ "/properties/Arn" @@ -276,7 +281,8 @@ "ec2:DescribeAvailabilityZoneMappings", "lambda:Invoke", "lambda:AddPermission", - "elasticloadbalancing:DescribeLoadBalancers" + "elasticloadbalancing:DescribeLoadBalancers", + "iam:CreateServiceLinkedRole" ] }, "read": { @@ -293,6 +299,7 @@ "vpc-lattice:ListTargets", "vpc-lattice:RegisterTargets", "vpc-lattice:DeregisterTargets", + "ec2:DescribeVpcs", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeAvailabilityZoneMappings", @@ -310,6 +317,7 @@ "vpc-lattice:DeleteTargetGroup", "vpc-lattice:GetTargetGroup", "vpc-lattice:DeregisterTargets", + "vpc-lattice:ListTargets", "lambda:RemovePermission" ] }, From 53a1ba3a3dbfde561cb3b61ad0e7754e6a4f9c9a Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 7 Sep 2023 11:44:11 -0400 Subject: [PATCH 2/6] 09/06/2023 CloudFormation schemas in us-east-1; New schemas. --- internal/aws/connect/view_resource_gen.go | 292 ++ .../aws/connect/view_resource_gen_test.go | 25 + .../aws/connect/view_version_resource_gen.go | 169 + .../connect/view_version_resource_gen_test.go | 25 + internal/provider/all_schemas.hcl | 70 +- .../available_schemas.2023-09-06.hcl | 3575 +++++++++++++++++ internal/provider/plural_data_sources.go | 10 + internal/provider/resources.go | 16 +- internal/provider/singular_data_sources.go | 16 +- .../AWS_CleanRooms_AnalysisTemplate.json | 267 ++ .../schemas/AWS_Connect_View.json | 162 + .../schemas/AWS_Connect_ViewVersion.json | 99 + .../schemas/AWS_EC2_EIPAssociation.json | 76 + .../schemas/AWS_GuardDuty_Detector.json | 226 ++ .../schemas/AWS_PCAConnectorAD_Connector.json | 132 + ..._PCAConnectorAD_DirectoryRegistration.json | 91 + ...S_PCAConnectorAD_ServicePrincipalName.json | 70 + .../schemas/AWS_PCAConnectorAD_Template.json | 1037 +++++ ...torAD_TemplateGroupAccessControlEntry.json | 110 + 19 files changed, 6450 insertions(+), 18 deletions(-) create mode 100644 internal/aws/connect/view_resource_gen.go create mode 100644 internal/aws/connect/view_resource_gen_test.go create mode 100644 internal/aws/connect/view_version_resource_gen.go create mode 100644 internal/aws/connect/view_version_resource_gen_test.go create mode 100644 internal/provider/generators/allschemas/available_schemas.2023-09-06.hcl create mode 100644 internal/service/cloudformation/schemas/AWS_CleanRooms_AnalysisTemplate.json create mode 100644 internal/service/cloudformation/schemas/AWS_Connect_View.json create mode 100644 internal/service/cloudformation/schemas/AWS_Connect_ViewVersion.json create mode 100644 internal/service/cloudformation/schemas/AWS_EC2_EIPAssociation.json create mode 100644 internal/service/cloudformation/schemas/AWS_GuardDuty_Detector.json create mode 100644 internal/service/cloudformation/schemas/AWS_PCAConnectorAD_Connector.json create mode 100644 internal/service/cloudformation/schemas/AWS_PCAConnectorAD_DirectoryRegistration.json create mode 100644 internal/service/cloudformation/schemas/AWS_PCAConnectorAD_ServicePrincipalName.json create mode 100644 internal/service/cloudformation/schemas/AWS_PCAConnectorAD_Template.json create mode 100644 internal/service/cloudformation/schemas/AWS_PCAConnectorAD_TemplateGroupAccessControlEntry.json diff --git a/internal/aws/connect/view_resource_gen.go b/internal/aws/connect/view_resource_gen.go new file mode 100644 index 0000000000..cf0db4f183 --- /dev/null +++ b/internal/aws/connect/view_resource_gen.go @@ -0,0 +1,292 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package connect + +import ( + "context" + "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" + "github.com/hashicorp/terraform-plugin-framework-validators/setvalidator" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/setplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" + "regexp" +) + +func init() { + registry.AddResourceFactory("awscc_connect_view", viewResource) +} + +// viewResource returns the Terraform awscc_connect_view resource. +// This Terraform resource corresponds to the CloudFormation AWS::Connect::View resource. +func viewResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Actions + // CloudFormation resource type schema: + // + // { + // "description": "The actions of the view in an array.", + // "insertionOrder": false, + // "items": { + // "maxLength": 255, + // "minLength": 1, + // "pattern": "^([\\p{L}\\p{N}_.:\\/=+\\-@]+[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@]*)$", + // "type": "string" + // }, + // "maxItems": 1000, + // "type": "array" + // } + "actions": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "The actions of the view in an array.", + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeAtMost(1000), + listvalidator.ValueStringsAre( + stringvalidator.LengthBetween(1, 255), + stringvalidator.RegexMatches(regexp.MustCompile("^([\\p{L}\\p{N}_.:\\/=+\\-@]+[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@]*)$"), ""), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "The description of the view.", + // "maxLength": 4096, + // "minLength": 0, + // "pattern": "^([\\p{L}\\p{N}_.:\\/=+\\-@,]+[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@,]*)$", + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The description of the view.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 4096), + stringvalidator.RegexMatches(regexp.MustCompile("^([\\p{L}\\p{N}_.:\\/=+\\-@,]+[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@,]*)$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InstanceArn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) of the instance.", + // "maxLength": 100, + // "minLength": 1, + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", + // "type": "string" + // } + "instance_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the instance.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 100), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "The name of the view.", + // "maxLength": 512, + // "minLength": 1, + // "pattern": "^([\\p{L}\\p{N}_.:\\/=+\\-@]+[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@]*)$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the view.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 512), + stringvalidator.RegexMatches(regexp.MustCompile("^([\\p{L}\\p{N}_.:\\/=+\\-@]+[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@]*)$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "One or more tags.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. . You can specify a value that is maximum of 256 Unicode characters", + // "maxLength": 256, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 50, + // "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", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The value for the tag. . You can specify a value that is maximum of 256 Unicode characters", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(256), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "One or more tags.", + Optional: true, + Computed: true, + Validators: []validator.Set{ /*START VALIDATORS*/ + setvalidator.SizeAtMost(50), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Template + // CloudFormation resource type schema: + // + // { + // "description": "The template of the view as JSON.", + // "type": "object" + // } + "template": schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "The template of the view as JSON.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: ViewArn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) of the view.", + // "maxLength": 255, + // "minLength": 1, + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/view/[-:$a-zA-Z0-9]*$", + // "type": "string" + // } + "view_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the view.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ViewContentSha256 + // CloudFormation resource type schema: + // + // { + // "description": "The view content hash.", + // "pattern": "^[a-zA-Z0-9]{64}$", + // "type": "string" + // } + "view_content_sha_256": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The view content hash.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ViewId + // CloudFormation resource type schema: + // + // { + // "description": "The view id of the view.", + // "maxLength": 500, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9\\_\\-:\\/$]+$", + // "type": "string" + // } + "view_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The view id of the view.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Resource Type definition for AWS::Connect::View", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Connect::View").WithTerraformTypeName("awscc_connect_view") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "actions": "Actions", + "description": "Description", + "instance_arn": "InstanceArn", + "key": "Key", + "name": "Name", + "tags": "Tags", + "template": "Template", + "value": "Value", + "view_arn": "ViewArn", + "view_content_sha_256": "ViewContentSha256", + "view_id": "ViewId", + }) + + 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/connect/view_resource_gen_test.go b/internal/aws/connect/view_resource_gen_test.go new file mode 100644 index 0000000000..ed70cb3448 --- /dev/null +++ b/internal/aws/connect/view_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 connect_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSConnectView_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Connect::View", "awscc_connect_view", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/connect/view_version_resource_gen.go b/internal/aws/connect/view_version_resource_gen.go new file mode 100644 index 0000000000..0f1e5f2cc9 --- /dev/null +++ b/internal/aws/connect/view_version_resource_gen.go @@ -0,0 +1,169 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package connect + +import ( + "context" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/int64planmodifier" + "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" + "regexp" + + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_connect_view_version", viewVersionResource) +} + +// viewVersionResource returns the Terraform awscc_connect_view_version resource. +// This Terraform resource corresponds to the CloudFormation AWS::Connect::ViewVersion resource. +func viewVersionResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Version + // CloudFormation resource type schema: + // + // { + // "description": "The version of the view.", + // "type": "integer" + // } + "version": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The version of the view.", + Computed: true, + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: VersionDescription + // CloudFormation resource type schema: + // + // { + // "description": "The description for the view version.", + // "maxLength": 4096, + // "minLength": 1, + // "pattern": "^([\\p{L}\\p{N}_.:\\/=+\\-@,]+[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@,]*)$", + // "type": "string" + // } + "version_description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The description for the view version.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 4096), + stringvalidator.RegexMatches(regexp.MustCompile("^([\\p{L}\\p{N}_.:\\/=+\\-@,]+[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@,]*)$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ViewArn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) of the view for which a version is being created.", + // "maxLength": 255, + // "minLength": 1, + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/view/[-:a-zA-Z0-9]*$", + // "type": "string" + // } + "view_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the view for which a version is being created.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 255), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/view/[-:a-zA-Z0-9]*$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ViewContentSha256 + // CloudFormation resource type schema: + // + // { + // "description": "The view content hash to be checked.", + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9]{64}$", + // "type": "string" + // } + "view_content_sha_256": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The view content hash to be checked.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 64), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9]{64}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ViewVersionArn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) of the created view version.", + // "maxLength": 255, + // "minLength": 1, + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/view/[-:a-zA-Z0-9]*$", + // "type": "string" + // } + "view_version_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the created view version.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Resource Type definition for AWS::Connect::ViewVersion", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Connect::ViewVersion").WithTerraformTypeName("awscc_connect_view_version") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "version": "Version", + "version_description": "VersionDescription", + "view_arn": "ViewArn", + "view_content_sha_256": "ViewContentSha256", + "view_version_arn": "ViewVersionArn", + }) + + opts = opts.IsImmutableType(true) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/connect/view_version_resource_gen_test.go b/internal/aws/connect/view_version_resource_gen_test.go new file mode 100644 index 0000000000..1738e50156 --- /dev/null +++ b/internal/aws/connect/view_version_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package connect_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSConnectViewVersion_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Connect::ViewVersion", "awscc_connect_view_version", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/provider/all_schemas.hcl b/internal/provider/all_schemas.hcl index e164c4c495..7c9e04ad55 100644 --- a/internal/provider/all_schemas.hcl +++ b/internal/provider/all_schemas.hcl @@ -10,7 +10,7 @@ meta_schema { path = "../service/cloudformation/meta-schemas/provider.definition.schema.v1.json" } -# 801 CloudFormation resource types schemas are available for use with the Cloud Control API. +# 826 CloudFormation resource types schemas are available for use with the Cloud Control API. resource_schema "aws_acmpca_certificate" { cloudformation_type_name = "AWS::ACMPCA::Certificate" @@ -479,14 +479,17 @@ resource_schema "aws_certificatemanager_account" { } resource_schema "aws_chatbot_microsoft_teams_channel_configuration" { - cloudformation_type_name = "AWS::Chatbot::MicrosoftTeamsChannelConfiguration" - suppress_plural_data_source_generation = true + cloudformation_type_name = "AWS::Chatbot::MicrosoftTeamsChannelConfiguration" } resource_schema "aws_chatbot_slack_channel_configuration" { cloudformation_type_name = "AWS::Chatbot::SlackChannelConfiguration" } +resource_schema "aws_cleanrooms_analysis_template" { + cloudformation_type_name = "AWS::CleanRooms::AnalysisTemplate" +} + resource_schema "aws_cleanrooms_collaboration" { cloudformation_type_name = "AWS::CleanRooms::Collaboration" } @@ -515,8 +518,7 @@ resource_schema "aws_cloudformation_hook_type_config" { } resource_schema "aws_cloudformation_hook_version" { - cloudformation_type_name = "AWS::CloudFormation::HookVersion" - suppress_plural_data_source_generation = true + cloudformation_type_name = "AWS::CloudFormation::HookVersion" } resource_schema "aws_cloudformation_module_default_version" { @@ -723,11 +725,6 @@ resource_schema "aws_connect_contact_flow_module" { suppress_plural_data_source_generation = true } -resource_schema "aws_connect_traffic_distribution_group" { - cloudformation_type_name = "AWS::Connect::TrafficDistributionGroup" - suppress_plural_data_source_generation = true -} - resource_schema "aws_connect_evaluation_form" { cloudformation_type_name = "AWS::Connect::EvaluationForm" @@ -795,13 +792,18 @@ resource_schema "aws_connect_rule" { suppress_plural_data_source_generation = true } +resource_schema "aws_connect_security_key" { + cloudformation_type_name = "AWS::Connect::SecurityKey" + suppress_plural_data_source_generation = true +} + resource_schema "aws_connect_task_template" { cloudformation_type_name = "AWS::Connect::TaskTemplate" suppress_plural_data_source_generation = true } -resource_schema "aws_connect_security_key" { - cloudformation_type_name = "AWS::Connect::SecurityKey" +resource_schema "aws_connect_traffic_distribution_group" { + cloudformation_type_name = "AWS::Connect::TrafficDistributionGroup" suppress_plural_data_source_generation = true } @@ -815,6 +817,16 @@ resource_schema "aws_connect_user_hierarchy_group" { suppress_plural_data_source_generation = true } +resource_schema "aws_connect_view" { + cloudformation_type_name = "AWS::Connect::View" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_view_version" { + cloudformation_type_name = "AWS::Connect::ViewVersion" + suppress_plural_data_source_generation = true +} + resource_schema "aws_connectcampaigns_campaign" { cloudformation_type_name = "AWS::ConnectCampaigns::Campaign" } @@ -1012,6 +1024,10 @@ resource_schema "aws_ec2_eip" { cloudformation_type_name = "AWS::EC2::EIP" } +resource_schema "aws_ec2_eip_association" { + cloudformation_type_name = "AWS::EC2::EIPAssociation" +} + resource_schema "aws_ec2_egress_only_internet_gateway" { cloudformation_type_name = "AWS::EC2::EgressOnlyInternetGateway" } @@ -1621,6 +1637,10 @@ resource_schema "aws_groundstation_mission_profile" { cloudformation_type_name = "AWS::GroundStation::MissionProfile" } +resource_schema "aws_guardduty_detector" { + cloudformation_type_name = "AWS::GuardDuty::Detector" +} + resource_schema "aws_healthlake_fhir_datastore" { cloudformation_type_name = "AWS::HealthLake::FHIRDatastore" } @@ -2052,8 +2072,7 @@ resource_schema "aws_iotwireless_service_profile" { } resource_schema "aws_iotwireless_task_definition" { - cloudformation_type_name = "AWS::IoTWireless::TaskDefinition" - suppress_plural_data_source_generation = true + cloudformation_type_name = "AWS::IoTWireless::TaskDefinition" } resource_schema "aws_iotwireless_wireless_device" { @@ -2700,6 +2719,29 @@ resource_schema "aws_organizations_resource_policy" { suppress_plural_data_source_generation = true } +resource_schema "aws_pcaconnectorad_connector" { + cloudformation_type_name = "AWS::PCAConnectorAD::Connector" +} + +resource_schema "aws_pcaconnectorad_directory_registration" { + cloudformation_type_name = "AWS::PCAConnectorAD::DirectoryRegistration" +} + +resource_schema "aws_pcaconnectorad_service_principal_name" { + cloudformation_type_name = "AWS::PCAConnectorAD::ServicePrincipalName" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorad_template" { + cloudformation_type_name = "AWS::PCAConnectorAD::Template" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorad_template_group_access_control_entry" { + cloudformation_type_name = "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry" + suppress_plural_data_source_generation = true +} + resource_schema "aws_panorama_application_instance" { cloudformation_type_name = "AWS::Panorama::ApplicationInstance" } diff --git a/internal/provider/generators/allschemas/available_schemas.2023-09-06.hcl b/internal/provider/generators/allschemas/available_schemas.2023-09-06.hcl new file mode 100644 index 0000000000..7a00d6db12 --- /dev/null +++ b/internal/provider/generators/allschemas/available_schemas.2023-09-06.hcl @@ -0,0 +1,3575 @@ +# 826 CloudFormation resource types schemas are available for use with the Cloud Control API. + +resource_schema "aws_acmpca_certificate" { + cloudformation_type_name = "AWS::ACMPCA::Certificate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_acmpca_certificate_authority" { + cloudformation_type_name = "AWS::ACMPCA::CertificateAuthority" +} + +resource_schema "aws_acmpca_certificate_authority_activation" { + cloudformation_type_name = "AWS::ACMPCA::CertificateAuthorityActivation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_acmpca_permission" { + cloudformation_type_name = "AWS::ACMPCA::Permission" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_aps_rule_groups_namespace" { + cloudformation_type_name = "AWS::APS::RuleGroupsNamespace" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_aps_workspace" { + cloudformation_type_name = "AWS::APS::Workspace" +} + +resource_schema "aws_accessanalyzer_analyzer" { + cloudformation_type_name = "AWS::AccessAnalyzer::Analyzer" +} + +resource_schema "aws_amplify_app" { + cloudformation_type_name = "AWS::Amplify::App" +} + +resource_schema "aws_amplify_branch" { + cloudformation_type_name = "AWS::Amplify::Branch" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplify_domain" { + cloudformation_type_name = "AWS::Amplify::Domain" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplifyuibuilder_component" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Component" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplifyuibuilder_form" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Form" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplifyuibuilder_theme" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Theme" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_account" { + cloudformation_type_name = "AWS::ApiGateway::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_api_key" { + cloudformation_type_name = "AWS::ApiGateway::ApiKey" +} + +resource_schema "aws_apigateway_authorizer" { + cloudformation_type_name = "AWS::ApiGateway::Authorizer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_base_path_mapping" { + cloudformation_type_name = "AWS::ApiGateway::BasePathMapping" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_client_certificate" { + cloudformation_type_name = "AWS::ApiGateway::ClientCertificate" +} + +resource_schema "aws_apigateway_deployment" { + cloudformation_type_name = "AWS::ApiGateway::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_documentation_part" { + cloudformation_type_name = "AWS::ApiGateway::DocumentationPart" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_documentation_version" { + cloudformation_type_name = "AWS::ApiGateway::DocumentationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_domain_name" { + cloudformation_type_name = "AWS::ApiGateway::DomainName" +} + +resource_schema "aws_apigateway_method" { + cloudformation_type_name = "AWS::ApiGateway::Method" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_model" { + cloudformation_type_name = "AWS::ApiGateway::Model" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_request_validator" { + cloudformation_type_name = "AWS::ApiGateway::RequestValidator" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_resource" { + cloudformation_type_name = "AWS::ApiGateway::Resource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_rest_api" { + cloudformation_type_name = "AWS::ApiGateway::RestApi" +} + +resource_schema "aws_apigateway_stage" { + cloudformation_type_name = "AWS::ApiGateway::Stage" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_usage_plan" { + cloudformation_type_name = "AWS::ApiGateway::UsagePlan" +} + +resource_schema "aws_apigateway_usage_plan_key" { + cloudformation_type_name = "AWS::ApiGateway::UsagePlanKey" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_vpc_link" { + cloudformation_type_name = "AWS::ApiGateway::VpcLink" +} + +resource_schema "aws_apigatewayv2_api" { + cloudformation_type_name = "AWS::ApiGatewayV2::Api" +} + +resource_schema "aws_apigatewayv2_api_mapping" { + cloudformation_type_name = "AWS::ApiGatewayV2::ApiMapping" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_authorizer" { + cloudformation_type_name = "AWS::ApiGatewayV2::Authorizer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_deployment" { + cloudformation_type_name = "AWS::ApiGatewayV2::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_integration_response" { + cloudformation_type_name = "AWS::ApiGatewayV2::IntegrationResponse" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_model" { + cloudformation_type_name = "AWS::ApiGatewayV2::Model" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_route" { + cloudformation_type_name = "AWS::ApiGatewayV2::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_route_response" { + cloudformation_type_name = "AWS::ApiGatewayV2::RouteResponse" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_vpc_link" { + cloudformation_type_name = "AWS::ApiGatewayV2::VpcLink" +} + +resource_schema "aws_appconfig_extension" { + cloudformation_type_name = "AWS::AppConfig::Extension" +} + +resource_schema "aws_appconfig_extension_association" { + cloudformation_type_name = "AWS::AppConfig::ExtensionAssociation" +} + +resource_schema "aws_appflow_connector" { + cloudformation_type_name = "AWS::AppFlow::Connector" +} + +resource_schema "aws_appflow_connector_profile" { + cloudformation_type_name = "AWS::AppFlow::ConnectorProfile" +} + +resource_schema "aws_appflow_flow" { + cloudformation_type_name = "AWS::AppFlow::Flow" +} + +resource_schema "aws_appintegrations_data_integration" { + cloudformation_type_name = "AWS::AppIntegrations::DataIntegration" +} + +resource_schema "aws_appintegrations_event_integration" { + cloudformation_type_name = "AWS::AppIntegrations::EventIntegration" +} + +resource_schema "aws_apprunner_auto_scaling_configuration" { + cloudformation_type_name = "AWS::AppRunner::AutoScalingConfiguration" +} + +resource_schema "aws_apprunner_observability_configuration" { + cloudformation_type_name = "AWS::AppRunner::ObservabilityConfiguration" +} + +resource_schema "aws_apprunner_service" { + cloudformation_type_name = "AWS::AppRunner::Service" +} + +resource_schema "aws_apprunner_vpc_connector" { + cloudformation_type_name = "AWS::AppRunner::VpcConnector" +} + +resource_schema "aws_apprunner_vpc_ingress_connection" { + cloudformation_type_name = "AWS::AppRunner::VpcIngressConnection" +} + +resource_schema "aws_appstream_app_block" { + cloudformation_type_name = "AWS::AppStream::AppBlock" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_app_block_builder" { + cloudformation_type_name = "AWS::AppStream::AppBlockBuilder" +} + +resource_schema "aws_appstream_application" { + cloudformation_type_name = "AWS::AppStream::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_application_entitlement_association" { + cloudformation_type_name = "AWS::AppStream::ApplicationEntitlementAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_application_fleet_association" { + cloudformation_type_name = "AWS::AppStream::ApplicationFleetAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_directory_config" { + cloudformation_type_name = "AWS::AppStream::DirectoryConfig" +} + +resource_schema "aws_appstream_entitlement" { + cloudformation_type_name = "AWS::AppStream::Entitlement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_image_builder" { + cloudformation_type_name = "AWS::AppStream::ImageBuilder" +} + +resource_schema "aws_appsync_domain_name" { + cloudformation_type_name = "AWS::AppSync::DomainName" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_domain_name_api_association" { + cloudformation_type_name = "AWS::AppSync::DomainNameApiAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_source_api_association" { + cloudformation_type_name = "AWS::AppSync::SourceApiAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_applicationautoscaling_scalable_target" { + cloudformation_type_name = "AWS::ApplicationAutoScaling::ScalableTarget" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_applicationinsights_application" { + cloudformation_type_name = "AWS::ApplicationInsights::Application" +} + +resource_schema "aws_athena_capacity_reservation" { + cloudformation_type_name = "AWS::Athena::CapacityReservation" +} + +resource_schema "aws_athena_data_catalog" { + cloudformation_type_name = "AWS::Athena::DataCatalog" +} + +resource_schema "aws_athena_named_query" { + cloudformation_type_name = "AWS::Athena::NamedQuery" +} + +resource_schema "aws_athena_prepared_statement" { + cloudformation_type_name = "AWS::Athena::PreparedStatement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_athena_work_group" { + cloudformation_type_name = "AWS::Athena::WorkGroup" +} + +resource_schema "aws_auditmanager_assessment" { + cloudformation_type_name = "AWS::AuditManager::Assessment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_autoscaling_launch_configuration" { + cloudformation_type_name = "AWS::AutoScaling::LaunchConfiguration" +} + +resource_schema "aws_autoscaling_lifecycle_hook" { + cloudformation_type_name = "AWS::AutoScaling::LifecycleHook" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_autoscaling_scaling_policy" { + cloudformation_type_name = "AWS::AutoScaling::ScalingPolicy" +} + +resource_schema "aws_autoscaling_scheduled_action" { + cloudformation_type_name = "AWS::AutoScaling::ScheduledAction" +} + +resource_schema "aws_autoscaling_warm_pool" { + cloudformation_type_name = "AWS::AutoScaling::WarmPool" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_backup_backup_plan" { + cloudformation_type_name = "AWS::Backup::BackupPlan" +} + +resource_schema "aws_backup_backup_selection" { + cloudformation_type_name = "AWS::Backup::BackupSelection" +} + +resource_schema "aws_backup_backup_vault" { + cloudformation_type_name = "AWS::Backup::BackupVault" +} + +resource_schema "aws_backup_framework" { + cloudformation_type_name = "AWS::Backup::Framework" +} + +resource_schema "aws_backup_report_plan" { + cloudformation_type_name = "AWS::Backup::ReportPlan" +} + +resource_schema "aws_backupgateway_hypervisor" { + cloudformation_type_name = "AWS::BackupGateway::Hypervisor" +} + +resource_schema "aws_batch_compute_environment" { + cloudformation_type_name = "AWS::Batch::ComputeEnvironment" +} + +resource_schema "aws_batch_job_queue" { + cloudformation_type_name = "AWS::Batch::JobQueue" +} + +resource_schema "aws_batch_scheduling_policy" { + cloudformation_type_name = "AWS::Batch::SchedulingPolicy" +} + +resource_schema "aws_billingconductor_billing_group" { + cloudformation_type_name = "AWS::BillingConductor::BillingGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_billingconductor_custom_line_item" { + cloudformation_type_name = "AWS::BillingConductor::CustomLineItem" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_billingconductor_pricing_plan" { + cloudformation_type_name = "AWS::BillingConductor::PricingPlan" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_billingconductor_pricing_rule" { + cloudformation_type_name = "AWS::BillingConductor::PricingRule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_budgets_budgets_action" { + cloudformation_type_name = "AWS::Budgets::BudgetsAction" +} + +resource_schema "aws_ce_anomaly_monitor" { + cloudformation_type_name = "AWS::CE::AnomalyMonitor" +} + +resource_schema "aws_ce_anomaly_subscription" { + cloudformation_type_name = "AWS::CE::AnomalySubscription" +} + +resource_schema "aws_ce_cost_category" { + cloudformation_type_name = "AWS::CE::CostCategory" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cur_report_definition" { + cloudformation_type_name = "AWS::CUR::ReportDefinition" +} + +resource_schema "aws_cassandra_keyspace" { + cloudformation_type_name = "AWS::Cassandra::Keyspace" +} + +resource_schema "aws_cassandra_table" { + cloudformation_type_name = "AWS::Cassandra::Table" +} + +resource_schema "aws_certificatemanager_account" { + cloudformation_type_name = "AWS::CertificateManager::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_chatbot_microsoft_teams_channel_configuration" { + cloudformation_type_name = "AWS::Chatbot::MicrosoftTeamsChannelConfiguration" +} + +resource_schema "aws_chatbot_slack_channel_configuration" { + cloudformation_type_name = "AWS::Chatbot::SlackChannelConfiguration" +} + +resource_schema "aws_cleanrooms_analysis_template" { + cloudformation_type_name = "AWS::CleanRooms::AnalysisTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_collaboration" { + cloudformation_type_name = "AWS::CleanRooms::Collaboration" +} + +resource_schema "aws_cleanrooms_configured_table" { + cloudformation_type_name = "AWS::CleanRooms::ConfiguredTable" +} + +resource_schema "aws_cleanrooms_configured_table_association" { + cloudformation_type_name = "AWS::CleanRooms::ConfiguredTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_membership" { + cloudformation_type_name = "AWS::CleanRooms::Membership" +} + +resource_schema "aws_cloudformation_hook_default_version" { + cloudformation_type_name = "AWS::CloudFormation::HookDefaultVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudformation_hook_type_config" { + cloudformation_type_name = "AWS::CloudFormation::HookTypeConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudformation_hook_version" { + cloudformation_type_name = "AWS::CloudFormation::HookVersion" +} + +resource_schema "aws_cloudformation_module_default_version" { + cloudformation_type_name = "AWS::CloudFormation::ModuleDefaultVersion" +} + +resource_schema "aws_cloudformation_module_version" { + cloudformation_type_name = "AWS::CloudFormation::ModuleVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudformation_public_type_version" { + cloudformation_type_name = "AWS::CloudFormation::PublicTypeVersion" +} + +resource_schema "aws_cloudformation_publisher" { + cloudformation_type_name = "AWS::CloudFormation::Publisher" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudformation_resource_default_version" { + cloudformation_type_name = "AWS::CloudFormation::ResourceDefaultVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudformation_resource_version" { + cloudformation_type_name = "AWS::CloudFormation::ResourceVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudformation_stack" { + cloudformation_type_name = "AWS::CloudFormation::Stack" +} + +resource_schema "aws_cloudformation_stack_set" { + cloudformation_type_name = "AWS::CloudFormation::StackSet" +} + +resource_schema "aws_cloudformation_type_activation" { + cloudformation_type_name = "AWS::CloudFormation::TypeActivation" +} + +resource_schema "aws_cloudfront_cache_policy" { + cloudformation_type_name = "AWS::CloudFront::CachePolicy" +} + +resource_schema "aws_cloudfront_cloudfront_origin_access_identity" { + cloudformation_type_name = "AWS::CloudFront::CloudFrontOriginAccessIdentity" +} + +resource_schema "aws_cloudfront_continuous_deployment_policy" { + cloudformation_type_name = "AWS::CloudFront::ContinuousDeploymentPolicy" +} + +resource_schema "aws_cloudfront_distribution" { + cloudformation_type_name = "AWS::CloudFront::Distribution" +} + +resource_schema "aws_cloudfront_function" { + cloudformation_type_name = "AWS::CloudFront::Function" +} + +resource_schema "aws_cloudfront_key_group" { + cloudformation_type_name = "AWS::CloudFront::KeyGroup" +} + +resource_schema "aws_cloudfront_monitoring_subscription" { + cloudformation_type_name = "AWS::CloudFront::MonitoringSubscription" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudfront_origin_access_control" { + cloudformation_type_name = "AWS::CloudFront::OriginAccessControl" +} + +resource_schema "aws_cloudfront_origin_request_policy" { + cloudformation_type_name = "AWS::CloudFront::OriginRequestPolicy" +} + +resource_schema "aws_cloudfront_public_key" { + cloudformation_type_name = "AWS::CloudFront::PublicKey" +} + +resource_schema "aws_cloudfront_realtime_log_config" { + cloudformation_type_name = "AWS::CloudFront::RealtimeLogConfig" +} + +resource_schema "aws_cloudfront_response_headers_policy" { + cloudformation_type_name = "AWS::CloudFront::ResponseHeadersPolicy" +} + +resource_schema "aws_cloudtrail_channel" { + cloudformation_type_name = "AWS::CloudTrail::Channel" +} + +resource_schema "aws_cloudtrail_event_data_store" { + cloudformation_type_name = "AWS::CloudTrail::EventDataStore" +} + +resource_schema "aws_cloudtrail_resource_policy" { + cloudformation_type_name = "AWS::CloudTrail::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudtrail_trail" { + cloudformation_type_name = "AWS::CloudTrail::Trail" +} + +resource_schema "aws_cloudwatch_alarm" { + cloudformation_type_name = "AWS::CloudWatch::Alarm" +} + +resource_schema "aws_cloudwatch_composite_alarm" { + cloudformation_type_name = "AWS::CloudWatch::CompositeAlarm" +} + +resource_schema "aws_cloudwatch_metric_stream" { + cloudformation_type_name = "AWS::CloudWatch::MetricStream" +} + +resource_schema "aws_codeartifact_domain" { + cloudformation_type_name = "AWS::CodeArtifact::Domain" +} + +resource_schema "aws_codeartifact_repository" { + cloudformation_type_name = "AWS::CodeArtifact::Repository" +} + +resource_schema "aws_codedeploy_application" { + cloudformation_type_name = "AWS::CodeDeploy::Application" +} + +resource_schema "aws_codedeploy_deployment_config" { + cloudformation_type_name = "AWS::CodeDeploy::DeploymentConfig" +} + +resource_schema "aws_codeguruprofiler_profiling_group" { + cloudformation_type_name = "AWS::CodeGuruProfiler::ProfilingGroup" +} + +resource_schema "aws_codegurureviewer_repository_association" { + cloudformation_type_name = "AWS::CodeGuruReviewer::RepositoryAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_codepipeline_custom_action_type" { + cloudformation_type_name = "AWS::CodePipeline::CustomActionType" +} + +resource_schema "aws_codestarconnections_connection" { + cloudformation_type_name = "AWS::CodeStarConnections::Connection" +} + +resource_schema "aws_codestarnotifications_notification_rule" { + cloudformation_type_name = "AWS::CodeStarNotifications::NotificationRule" +} + +resource_schema "aws_cognito_identity_pool_principal_tag" { + cloudformation_type_name = "AWS::Cognito::IdentityPoolPrincipalTag" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_comprehend_document_classifier" { + cloudformation_type_name = "AWS::Comprehend::DocumentClassifier" +} + +resource_schema "aws_comprehend_flywheel" { + cloudformation_type_name = "AWS::Comprehend::Flywheel" +} + +resource_schema "aws_config_aggregation_authorization" { + cloudformation_type_name = "AWS::Config::AggregationAuthorization" +} + +resource_schema "aws_config_config_rule" { + cloudformation_type_name = "AWS::Config::ConfigRule" +} + +resource_schema "aws_config_configuration_aggregator" { + cloudformation_type_name = "AWS::Config::ConfigurationAggregator" +} + +resource_schema "aws_config_conformance_pack" { + cloudformation_type_name = "AWS::Config::ConformancePack" +} + +resource_schema "aws_config_organization_conformance_pack" { + cloudformation_type_name = "AWS::Config::OrganizationConformancePack" +} + +resource_schema "aws_config_stored_query" { + cloudformation_type_name = "AWS::Config::StoredQuery" +} + +resource_schema "aws_connect_approved_origin" { + cloudformation_type_name = "AWS::Connect::ApprovedOrigin" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_contact_flow" { + cloudformation_type_name = "AWS::Connect::ContactFlow" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_contact_flow_module" { + cloudformation_type_name = "AWS::Connect::ContactFlowModule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_evaluation_form" { + cloudformation_type_name = "AWS::Connect::EvaluationForm" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_hours_of_operation" { + cloudformation_type_name = "AWS::Connect::HoursOfOperation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_instance" { + cloudformation_type_name = "AWS::Connect::Instance" +} + +resource_schema "aws_connect_instance_storage_config" { + cloudformation_type_name = "AWS::Connect::InstanceStorageConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_integration_association" { + cloudformation_type_name = "AWS::Connect::IntegrationAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_phone_number" { + cloudformation_type_name = "AWS::Connect::PhoneNumber" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_prompt" { + cloudformation_type_name = "AWS::Connect::Prompt" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_queue" { + cloudformation_type_name = "AWS::Connect::Queue" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_quick_connect" { + cloudformation_type_name = "AWS::Connect::QuickConnect" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_routing_profile" { + cloudformation_type_name = "AWS::Connect::RoutingProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_rule" { + cloudformation_type_name = "AWS::Connect::Rule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_security_key" { + cloudformation_type_name = "AWS::Connect::SecurityKey" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_task_template" { + cloudformation_type_name = "AWS::Connect::TaskTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_traffic_distribution_group" { + cloudformation_type_name = "AWS::Connect::TrafficDistributionGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_user" { + cloudformation_type_name = "AWS::Connect::User" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_user_hierarchy_group" { + cloudformation_type_name = "AWS::Connect::UserHierarchyGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_view" { + cloudformation_type_name = "AWS::Connect::View" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_view_version" { + cloudformation_type_name = "AWS::Connect::ViewVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connectcampaigns_campaign" { + cloudformation_type_name = "AWS::ConnectCampaigns::Campaign" +} + +resource_schema "aws_controltower_enabled_control" { + cloudformation_type_name = "AWS::ControlTower::EnabledControl" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_calculated_attribute_definition" { + cloudformation_type_name = "AWS::CustomerProfiles::CalculatedAttributeDefinition" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_domain" { + cloudformation_type_name = "AWS::CustomerProfiles::Domain" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_event_stream" { + cloudformation_type_name = "AWS::CustomerProfiles::EventStream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_integration" { + cloudformation_type_name = "AWS::CustomerProfiles::Integration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_object_type" { + cloudformation_type_name = "AWS::CustomerProfiles::ObjectType" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_dms_replication_config" { + cloudformation_type_name = "AWS::DMS::ReplicationConfig" +} + +resource_schema "aws_databrew_dataset" { + cloudformation_type_name = "AWS::DataBrew::Dataset" +} + +resource_schema "aws_databrew_job" { + cloudformation_type_name = "AWS::DataBrew::Job" +} + +resource_schema "aws_databrew_project" { + cloudformation_type_name = "AWS::DataBrew::Project" +} + +resource_schema "aws_databrew_recipe" { + cloudformation_type_name = "AWS::DataBrew::Recipe" +} + +resource_schema "aws_databrew_ruleset" { + cloudformation_type_name = "AWS::DataBrew::Ruleset" +} + +resource_schema "aws_databrew_schedule" { + cloudformation_type_name = "AWS::DataBrew::Schedule" +} + +resource_schema "aws_datapipeline_pipeline" { + cloudformation_type_name = "AWS::DataPipeline::Pipeline" +} + +resource_schema "aws_datasync_agent" { + cloudformation_type_name = "AWS::DataSync::Agent" +} + +resource_schema "aws_datasync_location_azure_blob" { + cloudformation_type_name = "AWS::DataSync::LocationAzureBlob" +} + +resource_schema "aws_datasync_location_efs" { + cloudformation_type_name = "AWS::DataSync::LocationEFS" +} + +resource_schema "aws_datasync_location_fsx_lustre" { + cloudformation_type_name = "AWS::DataSync::LocationFSxLustre" +} + +resource_schema "aws_datasync_location_fsx_ontap" { + cloudformation_type_name = "AWS::DataSync::LocationFSxONTAP" +} + +resource_schema "aws_datasync_location_fsx_open_zfs" { + cloudformation_type_name = "AWS::DataSync::LocationFSxOpenZFS" +} + +resource_schema "aws_datasync_location_fsx_windows" { + cloudformation_type_name = "AWS::DataSync::LocationFSxWindows" +} + +resource_schema "aws_datasync_location_hdfs" { + cloudformation_type_name = "AWS::DataSync::LocationHDFS" +} + +resource_schema "aws_datasync_location_nfs" { + cloudformation_type_name = "AWS::DataSync::LocationNFS" +} + +resource_schema "aws_datasync_location_object_storage" { + cloudformation_type_name = "AWS::DataSync::LocationObjectStorage" +} + +resource_schema "aws_datasync_location_s3" { + cloudformation_type_name = "AWS::DataSync::LocationS3" +} + +resource_schema "aws_datasync_location_smb" { + cloudformation_type_name = "AWS::DataSync::LocationSMB" +} + +resource_schema "aws_datasync_storage_system" { + cloudformation_type_name = "AWS::DataSync::StorageSystem" +} + +resource_schema "aws_datasync_task" { + cloudformation_type_name = "AWS::DataSync::Task" +} + +resource_schema "aws_detective_graph" { + cloudformation_type_name = "AWS::Detective::Graph" +} + +resource_schema "aws_detective_member_invitation" { + cloudformation_type_name = "AWS::Detective::MemberInvitation" +} + +resource_schema "aws_detective_organization_admin" { + cloudformation_type_name = "AWS::Detective::OrganizationAdmin" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_devopsguru_log_anomaly_detection_integration" { + cloudformation_type_name = "AWS::DevOpsGuru::LogAnomalyDetectionIntegration" +} + +resource_schema "aws_devopsguru_notification_channel" { + cloudformation_type_name = "AWS::DevOpsGuru::NotificationChannel" +} + +resource_schema "aws_devopsguru_resource_collection" { + cloudformation_type_name = "AWS::DevOpsGuru::ResourceCollection" +} + +resource_schema "aws_directoryservice_simple_ad" { + cloudformation_type_name = "AWS::DirectoryService::SimpleAD" +} + +resource_schema "aws_docdbelastic_cluster" { + cloudformation_type_name = "AWS::DocDBElastic::Cluster" +} + +resource_schema "aws_dynamodb_global_table" { + cloudformation_type_name = "AWS::DynamoDB::GlobalTable" +} + +resource_schema "aws_dynamodb_table" { + cloudformation_type_name = "AWS::DynamoDB::Table" +} + +resource_schema "aws_ec2_capacity_reservation" { + cloudformation_type_name = "AWS::EC2::CapacityReservation" +} + +resource_schema "aws_ec2_capacity_reservation_fleet" { + cloudformation_type_name = "AWS::EC2::CapacityReservationFleet" +} + +resource_schema "aws_ec2_carrier_gateway" { + cloudformation_type_name = "AWS::EC2::CarrierGateway" +} + +resource_schema "aws_ec2_customer_gateway" { + cloudformation_type_name = "AWS::EC2::CustomerGateway" +} + +resource_schema "aws_ec2_dhcp_options" { + cloudformation_type_name = "AWS::EC2::DHCPOptions" +} + +resource_schema "aws_ec2_ec2_fleet" { + cloudformation_type_name = "AWS::EC2::EC2Fleet" +} + +resource_schema "aws_ec2_eip" { + cloudformation_type_name = "AWS::EC2::EIP" +} + +resource_schema "aws_ec2_eip_association" { + cloudformation_type_name = "AWS::EC2::EIPAssociation" +} + +resource_schema "aws_ec2_egress_only_internet_gateway" { + cloudformation_type_name = "AWS::EC2::EgressOnlyInternetGateway" +} + +resource_schema "aws_ec2_enclave_certificate_iam_role_association" { + cloudformation_type_name = "AWS::EC2::EnclaveCertificateIamRoleAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_flow_log" { + cloudformation_type_name = "AWS::EC2::FlowLog" +} + +resource_schema "aws_ec2_gateway_route_table_association" { + cloudformation_type_name = "AWS::EC2::GatewayRouteTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_host" { + cloudformation_type_name = "AWS::EC2::Host" +} + +resource_schema "aws_ec2_ipam" { + cloudformation_type_name = "AWS::EC2::IPAM" +} + +resource_schema "aws_ec2_ipam_allocation" { + cloudformation_type_name = "AWS::EC2::IPAMAllocation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_ipam_pool" { + cloudformation_type_name = "AWS::EC2::IPAMPool" +} + +resource_schema "aws_ec2_ipam_pool_cidr" { + cloudformation_type_name = "AWS::EC2::IPAMPoolCidr" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_ipam_resource_discovery" { + cloudformation_type_name = "AWS::EC2::IPAMResourceDiscovery" +} + +resource_schema "aws_ec2_ipam_resource_discovery_association" { + cloudformation_type_name = "AWS::EC2::IPAMResourceDiscoveryAssociation" +} + +resource_schema "aws_ec2_ipam_scope" { + cloudformation_type_name = "AWS::EC2::IPAMScope" +} + +resource_schema "aws_ec2_instance_connect_endpoint" { + cloudformation_type_name = "AWS::EC2::InstanceConnectEndpoint" +} + +resource_schema "aws_ec2_internet_gateway" { + cloudformation_type_name = "AWS::EC2::InternetGateway" +} + +resource_schema "aws_ec2_key_pair" { + cloudformation_type_name = "AWS::EC2::KeyPair" +} + +resource_schema "aws_ec2_launch_template" { + cloudformation_type_name = "AWS::EC2::LaunchTemplate" +} + +resource_schema "aws_ec2_local_gateway_route" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRoute" +} + +resource_schema "aws_ec2_local_gateway_route_table" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTable" +} + +resource_schema "aws_ec2_local_gateway_route_table_vpc_association" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTableVPCAssociation" +} + +resource_schema "aws_ec2_local_gateway_route_table_virtual_interface_group_association" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTableVirtualInterfaceGroupAssociation" +} + +resource_schema "aws_ec2_nat_gateway" { + cloudformation_type_name = "AWS::EC2::NatGateway" +} + +resource_schema "aws_ec2_network_acl" { + cloudformation_type_name = "AWS::EC2::NetworkAcl" +} + +resource_schema "aws_ec2_network_insights_access_scope" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAccessScope" +} + +resource_schema "aws_ec2_network_insights_access_scope_analysis" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAccessScopeAnalysis" +} + +resource_schema "aws_ec2_network_insights_analysis" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAnalysis" +} + +resource_schema "aws_ec2_network_insights_path" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsPath" +} + +resource_schema "aws_ec2_network_interface" { + cloudformation_type_name = "AWS::EC2::NetworkInterface" +} + +resource_schema "aws_ec2_network_interface_attachment" { + cloudformation_type_name = "AWS::EC2::NetworkInterfaceAttachment" +} + +resource_schema "aws_ec2_network_performance_metric_subscription" { + cloudformation_type_name = "AWS::EC2::NetworkPerformanceMetricSubscription" +} + +resource_schema "aws_ec2_placement_group" { + cloudformation_type_name = "AWS::EC2::PlacementGroup" +} + +resource_schema "aws_ec2_prefix_list" { + cloudformation_type_name = "AWS::EC2::PrefixList" +} + +resource_schema "aws_ec2_route" { + cloudformation_type_name = "AWS::EC2::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_route_table" { + cloudformation_type_name = "AWS::EC2::RouteTable" +} + +resource_schema "aws_ec2_spot_fleet" { + cloudformation_type_name = "AWS::EC2::SpotFleet" +} + +resource_schema "aws_ec2_subnet" { + cloudformation_type_name = "AWS::EC2::Subnet" +} + +resource_schema "aws_ec2_subnet_cidr_block" { + cloudformation_type_name = "AWS::EC2::SubnetCidrBlock" +} + +resource_schema "aws_ec2_subnet_network_acl_association" { + cloudformation_type_name = "AWS::EC2::SubnetNetworkAclAssociation" +} + +resource_schema "aws_ec2_subnet_route_table_association" { + cloudformation_type_name = "AWS::EC2::SubnetRouteTableAssociation" +} + +resource_schema "aws_ec2_transit_gateway" { + cloudformation_type_name = "AWS::EC2::TransitGateway" +} + +resource_schema "aws_ec2_transit_gateway_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayAttachment" +} + +resource_schema "aws_ec2_transit_gateway_connect" { + cloudformation_type_name = "AWS::EC2::TransitGatewayConnect" +} + +resource_schema "aws_ec2_transit_gateway_multicast_domain" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastDomain" +} + +resource_schema "aws_ec2_transit_gateway_multicast_domain_association" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastDomainAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_multicast_group_member" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastGroupMember" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_multicast_group_source" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastGroupSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_peering_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayPeeringAttachment" +} + +resource_schema "aws_ec2_transit_gateway_vpc_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayVpcAttachment" +} + +resource_schema "aws_ec2_vpc" { + cloudformation_type_name = "AWS::EC2::VPC" +} + +resource_schema "aws_ec2_vpcdhcp_options_association" { + cloudformation_type_name = "AWS::EC2::VPCDHCPOptionsAssociation" +} + +resource_schema "aws_ec2_vpc_endpoint" { + cloudformation_type_name = "AWS::EC2::VPCEndpoint" +} + +resource_schema "aws_ec2_vpc_endpoint_service" { + cloudformation_type_name = "AWS::EC2::VPCEndpointService" +} + +resource_schema "aws_ec2_vpc_endpoint_service_permissions" { + cloudformation_type_name = "AWS::EC2::VPCEndpointServicePermissions" +} + +resource_schema "aws_ec2_vpc_peering_connection" { + cloudformation_type_name = "AWS::EC2::VPCPeeringConnection" +} + +resource_schema "aws_ec2_vpn_connection" { + cloudformation_type_name = "AWS::EC2::VPNConnection" +} + +resource_schema "aws_ec2_vpn_connection_route" { + cloudformation_type_name = "AWS::EC2::VPNConnectionRoute" +} + +resource_schema "aws_ec2_vpn_gateway" { + cloudformation_type_name = "AWS::EC2::VPNGateway" +} + +resource_schema "aws_ec2_verified_access_endpoint" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessEndpoint" +} + +resource_schema "aws_ec2_verified_access_group" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessGroup" +} + +resource_schema "aws_ec2_verified_access_instance" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessInstance" +} + +resource_schema "aws_ec2_verified_access_trust_provider" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessTrustProvider" +} + +resource_schema "aws_ec2_volume" { + cloudformation_type_name = "AWS::EC2::Volume" +} + +resource_schema "aws_ec2_volume_attachment" { + cloudformation_type_name = "AWS::EC2::VolumeAttachment" +} + +resource_schema "aws_ecr_public_repository" { + cloudformation_type_name = "AWS::ECR::PublicRepository" +} + +resource_schema "aws_ecr_pull_through_cache_rule" { + cloudformation_type_name = "AWS::ECR::PullThroughCacheRule" +} + +resource_schema "aws_ecr_registry_policy" { + cloudformation_type_name = "AWS::ECR::RegistryPolicy" +} + +resource_schema "aws_ecr_replication_configuration" { + cloudformation_type_name = "AWS::ECR::ReplicationConfiguration" +} + +resource_schema "aws_ecr_repository" { + cloudformation_type_name = "AWS::ECR::Repository" +} + +resource_schema "aws_ecs_capacity_provider" { + cloudformation_type_name = "AWS::ECS::CapacityProvider" +} + +resource_schema "aws_ecs_cluster" { + cloudformation_type_name = "AWS::ECS::Cluster" +} + +resource_schema "aws_ecs_cluster_capacity_provider_associations" { + cloudformation_type_name = "AWS::ECS::ClusterCapacityProviderAssociations" +} + +resource_schema "aws_ecs_primary_task_set" { + cloudformation_type_name = "AWS::ECS::PrimaryTaskSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ecs_service" { + cloudformation_type_name = "AWS::ECS::Service" +} + +resource_schema "aws_ecs_task_definition" { + cloudformation_type_name = "AWS::ECS::TaskDefinition" +} + +resource_schema "aws_ecs_task_set" { + cloudformation_type_name = "AWS::ECS::TaskSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_efs_access_point" { + cloudformation_type_name = "AWS::EFS::AccessPoint" +} + +resource_schema "aws_efs_file_system" { + cloudformation_type_name = "AWS::EFS::FileSystem" +} + +resource_schema "aws_efs_mount_target" { + cloudformation_type_name = "AWS::EFS::MountTarget" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_addon" { + cloudformation_type_name = "AWS::EKS::Addon" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_cluster" { + cloudformation_type_name = "AWS::EKS::Cluster" +} + +resource_schema "aws_eks_fargate_profile" { + cloudformation_type_name = "AWS::EKS::FargateProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_identity_provider_config" { + cloudformation_type_name = "AWS::EKS::IdentityProviderConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_nodegroup" { + cloudformation_type_name = "AWS::EKS::Nodegroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_emr_security_configuration" { + cloudformation_type_name = "AWS::EMR::SecurityConfiguration" +} + +resource_schema "aws_emr_studio" { + cloudformation_type_name = "AWS::EMR::Studio" +} + +resource_schema "aws_emr_studio_session_mapping" { + cloudformation_type_name = "AWS::EMR::StudioSessionMapping" +} + +resource_schema "aws_emr_wal_workspace" { + cloudformation_type_name = "AWS::EMR::WALWorkspace" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_emrcontainers_virtual_cluster" { + cloudformation_type_name = "AWS::EMRContainers::VirtualCluster" +} + +resource_schema "aws_emrserverless_application" { + cloudformation_type_name = "AWS::EMRServerless::Application" +} + +resource_schema "aws_elasticache_global_replication_group" { + cloudformation_type_name = "AWS::ElastiCache::GlobalReplicationGroup" +} + +resource_schema "aws_elasticache_subnet_group" { + cloudformation_type_name = "AWS::ElastiCache::SubnetGroup" +} + +resource_schema "aws_elasticache_user" { + cloudformation_type_name = "AWS::ElastiCache::User" +} + +resource_schema "aws_elasticache_user_group" { + cloudformation_type_name = "AWS::ElastiCache::UserGroup" +} + +resource_schema "aws_elasticbeanstalk_application" { + cloudformation_type_name = "AWS::ElasticBeanstalk::Application" +} + +resource_schema "aws_elasticbeanstalk_application_version" { + cloudformation_type_name = "AWS::ElasticBeanstalk::ApplicationVersion" +} + +resource_schema "aws_elasticbeanstalk_configuration_template" { + cloudformation_type_name = "AWS::ElasticBeanstalk::ConfigurationTemplate" +} + +resource_schema "aws_elasticbeanstalk_environment" { + cloudformation_type_name = "AWS::ElasticBeanstalk::Environment" +} + +resource_schema "aws_elasticloadbalancingv2_listener" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::Listener" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_elasticloadbalancingv2_listener_rule" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::ListenerRule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_elasticloadbalancingv2_target_group" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TargetGroup" +} + +resource_schema "aws_entityresolution_matching_workflow" { + cloudformation_type_name = "AWS::EntityResolution::MatchingWorkflow" +} + +resource_schema "aws_entityresolution_schema_mapping" { + cloudformation_type_name = "AWS::EntityResolution::SchemaMapping" +} + +resource_schema "aws_eventschemas_registry_policy" { + cloudformation_type_name = "AWS::EventSchemas::RegistryPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_events_api_destination" { + cloudformation_type_name = "AWS::Events::ApiDestination" +} + +resource_schema "aws_events_archive" { + cloudformation_type_name = "AWS::Events::Archive" +} + +resource_schema "aws_events_connection" { + cloudformation_type_name = "AWS::Events::Connection" +} + +resource_schema "aws_events_endpoint" { + cloudformation_type_name = "AWS::Events::Endpoint" +} + +resource_schema "aws_evidently_experiment" { + cloudformation_type_name = "AWS::Evidently::Experiment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_feature" { + cloudformation_type_name = "AWS::Evidently::Feature" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_launch" { + cloudformation_type_name = "AWS::Evidently::Launch" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_project" { + cloudformation_type_name = "AWS::Evidently::Project" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_segment" { + cloudformation_type_name = "AWS::Evidently::Segment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_fis_experiment_template" { + cloudformation_type_name = "AWS::FIS::ExperimentTemplate" +} + +resource_schema "aws_fms_notification_channel" { + cloudformation_type_name = "AWS::FMS::NotificationChannel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_fms_policy" { + cloudformation_type_name = "AWS::FMS::Policy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_fms_resource_set" { + cloudformation_type_name = "AWS::FMS::ResourceSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_fsx_data_repository_association" { + cloudformation_type_name = "AWS::FSx::DataRepositoryAssociation" +} + +resource_schema "aws_finspace_environment" { + cloudformation_type_name = "AWS::FinSpace::Environment" +} + +resource_schema "aws_forecast_dataset" { + cloudformation_type_name = "AWS::Forecast::Dataset" +} + +resource_schema "aws_forecast_dataset_group" { + cloudformation_type_name = "AWS::Forecast::DatasetGroup" +} + +resource_schema "aws_frauddetector_detector" { + cloudformation_type_name = "AWS::FraudDetector::Detector" +} + +resource_schema "aws_frauddetector_entity_type" { + cloudformation_type_name = "AWS::FraudDetector::EntityType" +} + +resource_schema "aws_frauddetector_event_type" { + cloudformation_type_name = "AWS::FraudDetector::EventType" +} + +resource_schema "aws_frauddetector_label" { + cloudformation_type_name = "AWS::FraudDetector::Label" +} + +resource_schema "aws_frauddetector_list" { + cloudformation_type_name = "AWS::FraudDetector::List" +} + +resource_schema "aws_frauddetector_outcome" { + cloudformation_type_name = "AWS::FraudDetector::Outcome" +} + +resource_schema "aws_frauddetector_variable" { + cloudformation_type_name = "AWS::FraudDetector::Variable" +} + +resource_schema "aws_gamelift_alias" { + cloudformation_type_name = "AWS::GameLift::Alias" +} + +resource_schema "aws_gamelift_build" { + cloudformation_type_name = "AWS::GameLift::Build" +} + +resource_schema "aws_gamelift_fleet" { + cloudformation_type_name = "AWS::GameLift::Fleet" +} + +resource_schema "aws_gamelift_game_server_group" { + cloudformation_type_name = "AWS::GameLift::GameServerGroup" +} + +resource_schema "aws_gamelift_location" { + cloudformation_type_name = "AWS::GameLift::Location" +} + +resource_schema "aws_globalaccelerator_accelerator" { + cloudformation_type_name = "AWS::GlobalAccelerator::Accelerator" +} + +resource_schema "aws_globalaccelerator_endpoint_group" { + cloudformation_type_name = "AWS::GlobalAccelerator::EndpointGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_globalaccelerator_listener" { + cloudformation_type_name = "AWS::GlobalAccelerator::Listener" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_glue_registry" { + cloudformation_type_name = "AWS::Glue::Registry" +} + +resource_schema "aws_glue_schema" { + cloudformation_type_name = "AWS::Glue::Schema" +} + +resource_schema "aws_glue_schema_version" { + cloudformation_type_name = "AWS::Glue::SchemaVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_glue_schema_version_metadata" { + cloudformation_type_name = "AWS::Glue::SchemaVersionMetadata" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_grafana_workspace" { + cloudformation_type_name = "AWS::Grafana::Workspace" +} + +resource_schema "aws_greengrassv2_component_version" { + cloudformation_type_name = "AWS::GreengrassV2::ComponentVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_greengrassv2_deployment" { + cloudformation_type_name = "AWS::GreengrassV2::Deployment" +} + +resource_schema "aws_groundstation_config" { + cloudformation_type_name = "AWS::GroundStation::Config" +} + +resource_schema "aws_groundstation_dataflow_endpoint_group" { + cloudformation_type_name = "AWS::GroundStation::DataflowEndpointGroup" +} + +resource_schema "aws_groundstation_mission_profile" { + cloudformation_type_name = "AWS::GroundStation::MissionProfile" +} + +resource_schema "aws_guardduty_detector" { + cloudformation_type_name = "AWS::GuardDuty::Detector" +} + +resource_schema "aws_healthlake_fhir_datastore" { + cloudformation_type_name = "AWS::HealthLake::FHIRDatastore" +} + +resource_schema "aws_iam_group_policy" { + cloudformation_type_name = "AWS::IAM::GroupPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_instance_profile" { + cloudformation_type_name = "AWS::IAM::InstanceProfile" +} + +resource_schema "aws_iam_managed_policy" { + cloudformation_type_name = "AWS::IAM::ManagedPolicy" +} + +resource_schema "aws_iam_oidc_provider" { + cloudformation_type_name = "AWS::IAM::OIDCProvider" +} + +resource_schema "aws_iam_role" { + cloudformation_type_name = "AWS::IAM::Role" +} + +resource_schema "aws_iam_role_policy" { + cloudformation_type_name = "AWS::IAM::RolePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_saml_provider" { + cloudformation_type_name = "AWS::IAM::SAMLProvider" +} + +resource_schema "aws_iam_server_certificate" { + cloudformation_type_name = "AWS::IAM::ServerCertificate" +} + +resource_schema "aws_iam_service_linked_role" { + cloudformation_type_name = "AWS::IAM::ServiceLinkedRole" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_user_policy" { + cloudformation_type_name = "AWS::IAM::UserPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_virtual_mfa_device" { + cloudformation_type_name = "AWS::IAM::VirtualMFADevice" +} + +resource_schema "aws_ivs_channel" { + cloudformation_type_name = "AWS::IVS::Channel" +} + +resource_schema "aws_ivs_playback_key_pair" { + cloudformation_type_name = "AWS::IVS::PlaybackKeyPair" +} + +resource_schema "aws_ivs_recording_configuration" { + cloudformation_type_name = "AWS::IVS::RecordingConfiguration" +} + +resource_schema "aws_ivs_stream_key" { + cloudformation_type_name = "AWS::IVS::StreamKey" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ivschat_logging_configuration" { + cloudformation_type_name = "AWS::IVSChat::LoggingConfiguration" +} + +resource_schema "aws_ivschat_room" { + cloudformation_type_name = "AWS::IVSChat::Room" +} + +resource_schema "aws_identitystore_group" { + cloudformation_type_name = "AWS::IdentityStore::Group" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_identitystore_group_membership" { + cloudformation_type_name = "AWS::IdentityStore::GroupMembership" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_component" { + cloudformation_type_name = "AWS::ImageBuilder::Component" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_container_recipe" { + cloudformation_type_name = "AWS::ImageBuilder::ContainerRecipe" +} + +resource_schema "aws_imagebuilder_distribution_configuration" { + cloudformation_type_name = "AWS::ImageBuilder::DistributionConfiguration" +} + +resource_schema "aws_imagebuilder_image" { + cloudformation_type_name = "AWS::ImageBuilder::Image" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_image_pipeline" { + cloudformation_type_name = "AWS::ImageBuilder::ImagePipeline" +} + +resource_schema "aws_imagebuilder_image_recipe" { + cloudformation_type_name = "AWS::ImageBuilder::ImageRecipe" +} + +resource_schema "aws_imagebuilder_infrastructure_configuration" { + cloudformation_type_name = "AWS::ImageBuilder::InfrastructureConfiguration" +} + +resource_schema "aws_inspector_assessment_target" { + cloudformation_type_name = "AWS::Inspector::AssessmentTarget" +} + +resource_schema "aws_inspector_assessment_template" { + cloudformation_type_name = "AWS::Inspector::AssessmentTemplate" +} + +resource_schema "aws_inspector_resource_group" { + cloudformation_type_name = "AWS::Inspector::ResourceGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_inspectorv2_filter" { + cloudformation_type_name = "AWS::InspectorV2::Filter" +} + +resource_schema "aws_internetmonitor_monitor" { + cloudformation_type_name = "AWS::InternetMonitor::Monitor" +} + +resource_schema "aws_iot_account_audit_configuration" { + cloudformation_type_name = "AWS::IoT::AccountAuditConfiguration" +} + +resource_schema "aws_iot_authorizer" { + cloudformation_type_name = "AWS::IoT::Authorizer" +} + +resource_schema "aws_iot_billing_group" { + cloudformation_type_name = "AWS::IoT::BillingGroup" +} + +resource_schema "aws_iot_ca_certificate" { + cloudformation_type_name = "AWS::IoT::CACertificate" +} + +resource_schema "aws_iot_certificate" { + cloudformation_type_name = "AWS::IoT::Certificate" +} + +resource_schema "aws_iot_custom_metric" { + cloudformation_type_name = "AWS::IoT::CustomMetric" +} + +resource_schema "aws_iot_dimension" { + cloudformation_type_name = "AWS::IoT::Dimension" +} + +resource_schema "aws_iot_domain_configuration" { + cloudformation_type_name = "AWS::IoT::DomainConfiguration" +} + +resource_schema "aws_iot_fleet_metric" { + cloudformation_type_name = "AWS::IoT::FleetMetric" +} + +resource_schema "aws_iot_job_template" { + cloudformation_type_name = "AWS::IoT::JobTemplate" +} + +resource_schema "aws_iot_logging" { + cloudformation_type_name = "AWS::IoT::Logging" +} + +resource_schema "aws_iot_mitigation_action" { + cloudformation_type_name = "AWS::IoT::MitigationAction" +} + +resource_schema "aws_iot_policy" { + cloudformation_type_name = "AWS::IoT::Policy" +} + +resource_schema "aws_iot_provisioning_template" { + cloudformation_type_name = "AWS::IoT::ProvisioningTemplate" +} + +resource_schema "aws_iot_resource_specific_logging" { + cloudformation_type_name = "AWS::IoT::ResourceSpecificLogging" +} + +resource_schema "aws_iot_role_alias" { + cloudformation_type_name = "AWS::IoT::RoleAlias" +} + +resource_schema "aws_iot_scheduled_audit" { + cloudformation_type_name = "AWS::IoT::ScheduledAudit" +} + +resource_schema "aws_iot_security_profile" { + cloudformation_type_name = "AWS::IoT::SecurityProfile" +} + +resource_schema "aws_iot_thing" { + cloudformation_type_name = "AWS::IoT::Thing" +} + +resource_schema "aws_iot_thing_group" { + cloudformation_type_name = "AWS::IoT::ThingGroup" +} + +resource_schema "aws_iot_thing_type" { + cloudformation_type_name = "AWS::IoT::ThingType" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iot_topic_rule" { + cloudformation_type_name = "AWS::IoT::TopicRule" +} + +resource_schema "aws_iot_topic_rule_destination" { + cloudformation_type_name = "AWS::IoT::TopicRuleDestination" +} + +resource_schema "aws_iotanalytics_channel" { + cloudformation_type_name = "AWS::IoTAnalytics::Channel" +} + +resource_schema "aws_iotanalytics_dataset" { + cloudformation_type_name = "AWS::IoTAnalytics::Dataset" +} + +resource_schema "aws_iotanalytics_datastore" { + cloudformation_type_name = "AWS::IoTAnalytics::Datastore" +} + +resource_schema "aws_iotanalytics_pipeline" { + cloudformation_type_name = "AWS::IoTAnalytics::Pipeline" +} + +resource_schema "aws_iotcoredeviceadvisor_suite_definition" { + cloudformation_type_name = "AWS::IoTCoreDeviceAdvisor::SuiteDefinition" +} + +resource_schema "aws_iotevents_alarm_model" { + cloudformation_type_name = "AWS::IoTEvents::AlarmModel" +} + +resource_schema "aws_iotevents_detector_model" { + cloudformation_type_name = "AWS::IoTEvents::DetectorModel" +} + +resource_schema "aws_iotevents_input" { + cloudformation_type_name = "AWS::IoTEvents::Input" +} + +resource_schema "aws_iotfleethub_application" { + cloudformation_type_name = "AWS::IoTFleetHub::Application" +} + +resource_schema "aws_iotfleetwise_campaign" { + cloudformation_type_name = "AWS::IoTFleetWise::Campaign" +} + +resource_schema "aws_iotfleetwise_decoder_manifest" { + cloudformation_type_name = "AWS::IoTFleetWise::DecoderManifest" +} + +resource_schema "aws_iotfleetwise_fleet" { + cloudformation_type_name = "AWS::IoTFleetWise::Fleet" +} + +resource_schema "aws_iotfleetwise_model_manifest" { + cloudformation_type_name = "AWS::IoTFleetWise::ModelManifest" +} + +resource_schema "aws_iotfleetwise_signal_catalog" { + cloudformation_type_name = "AWS::IoTFleetWise::SignalCatalog" +} + +resource_schema "aws_iotfleetwise_vehicle" { + cloudformation_type_name = "AWS::IoTFleetWise::Vehicle" +} + +resource_schema "aws_iotsitewise_access_policy" { + cloudformation_type_name = "AWS::IoTSiteWise::AccessPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iotsitewise_asset" { + cloudformation_type_name = "AWS::IoTSiteWise::Asset" +} + +resource_schema "aws_iotsitewise_asset_model" { + cloudformation_type_name = "AWS::IoTSiteWise::AssetModel" +} + +resource_schema "aws_iotsitewise_dashboard" { + cloudformation_type_name = "AWS::IoTSiteWise::Dashboard" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iotsitewise_gateway" { + cloudformation_type_name = "AWS::IoTSiteWise::Gateway" +} + +resource_schema "aws_iotsitewise_portal" { + cloudformation_type_name = "AWS::IoTSiteWise::Portal" +} + +resource_schema "aws_iotsitewise_project" { + cloudformation_type_name = "AWS::IoTSiteWise::Project" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_component_type" { + cloudformation_type_name = "AWS::IoTTwinMaker::ComponentType" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_entity" { + cloudformation_type_name = "AWS::IoTTwinMaker::Entity" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_scene" { + cloudformation_type_name = "AWS::IoTTwinMaker::Scene" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_sync_job" { + cloudformation_type_name = "AWS::IoTTwinMaker::SyncJob" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_workspace" { + cloudformation_type_name = "AWS::IoTTwinMaker::Workspace" +} + +resource_schema "aws_iotwireless_destination" { + cloudformation_type_name = "AWS::IoTWireless::Destination" +} + +resource_schema "aws_iotwireless_device_profile" { + cloudformation_type_name = "AWS::IoTWireless::DeviceProfile" +} + +resource_schema "aws_iotwireless_fuota_task" { + cloudformation_type_name = "AWS::IoTWireless::FuotaTask" +} + +resource_schema "aws_iotwireless_multicast_group" { + cloudformation_type_name = "AWS::IoTWireless::MulticastGroup" +} + +resource_schema "aws_iotwireless_network_analyzer_configuration" { + cloudformation_type_name = "AWS::IoTWireless::NetworkAnalyzerConfiguration" +} + +resource_schema "aws_iotwireless_partner_account" { + cloudformation_type_name = "AWS::IoTWireless::PartnerAccount" +} + +resource_schema "aws_iotwireless_service_profile" { + cloudformation_type_name = "AWS::IoTWireless::ServiceProfile" +} + +resource_schema "aws_iotwireless_task_definition" { + cloudformation_type_name = "AWS::IoTWireless::TaskDefinition" +} + +resource_schema "aws_iotwireless_wireless_device" { + cloudformation_type_name = "AWS::IoTWireless::WirelessDevice" +} + +resource_schema "aws_iotwireless_wireless_device_import_task" { + cloudformation_type_name = "AWS::IoTWireless::WirelessDeviceImportTask" +} + +resource_schema "aws_iotwireless_wireless_gateway" { + cloudformation_type_name = "AWS::IoTWireless::WirelessGateway" +} + +resource_schema "aws_kms_alias" { + cloudformation_type_name = "AWS::KMS::Alias" +} + +resource_schema "aws_kms_key" { + cloudformation_type_name = "AWS::KMS::Key" +} + +resource_schema "aws_kms_replica_key" { + cloudformation_type_name = "AWS::KMS::ReplicaKey" +} + +resource_schema "aws_kafkaconnect_connector" { + cloudformation_type_name = "AWS::KafkaConnect::Connector" +} + +resource_schema "aws_kendra_data_source" { + cloudformation_type_name = "AWS::Kendra::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_kendra_faq" { + cloudformation_type_name = "AWS::Kendra::Faq" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_kendra_index" { + cloudformation_type_name = "AWS::Kendra::Index" +} + +resource_schema "aws_kendraranking_execution_plan" { + cloudformation_type_name = "AWS::KendraRanking::ExecutionPlan" +} + +resource_schema "aws_kinesis_stream" { + cloudformation_type_name = "AWS::Kinesis::Stream" +} + +resource_schema "aws_kinesisanalyticsv2_application" { + cloudformation_type_name = "AWS::KinesisAnalyticsV2::Application" +} + +resource_schema "aws_kinesisfirehose_delivery_stream" { + cloudformation_type_name = "AWS::KinesisFirehose::DeliveryStream" +} + +resource_schema "aws_kinesisvideo_signaling_channel" { + cloudformation_type_name = "AWS::KinesisVideo::SignalingChannel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_kinesisvideo_stream" { + cloudformation_type_name = "AWS::KinesisVideo::Stream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lakeformation_data_cells_filter" { + cloudformation_type_name = "AWS::LakeFormation::DataCellsFilter" +} + +resource_schema "aws_lakeformation_principal_permissions" { + cloudformation_type_name = "AWS::LakeFormation::PrincipalPermissions" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lakeformation_tag" { + cloudformation_type_name = "AWS::LakeFormation::Tag" +} + +resource_schema "aws_lakeformation_tag_association" { + cloudformation_type_name = "AWS::LakeFormation::TagAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_code_signing_config" { + cloudformation_type_name = "AWS::Lambda::CodeSigningConfig" +} + +resource_schema "aws_lambda_event_source_mapping" { + cloudformation_type_name = "AWS::Lambda::EventSourceMapping" +} + +resource_schema "aws_lambda_function" { + cloudformation_type_name = "AWS::Lambda::Function" +} + +resource_schema "aws_lambda_layer_version" { + cloudformation_type_name = "AWS::Lambda::LayerVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_layer_version_permission" { + cloudformation_type_name = "AWS::Lambda::LayerVersionPermission" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_permission" { + cloudformation_type_name = "AWS::Lambda::Permission" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_url" { + cloudformation_type_name = "AWS::Lambda::Url" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lex_bot" { + cloudformation_type_name = "AWS::Lex::Bot" +} + +resource_schema "aws_lex_bot_alias" { + cloudformation_type_name = "AWS::Lex::BotAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lex_bot_version" { + cloudformation_type_name = "AWS::Lex::BotVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lex_resource_policy" { + cloudformation_type_name = "AWS::Lex::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_licensemanager_grant" { + cloudformation_type_name = "AWS::LicenseManager::Grant" +} + +resource_schema "aws_licensemanager_license" { + cloudformation_type_name = "AWS::LicenseManager::License" +} + +resource_schema "aws_lightsail_alarm" { + cloudformation_type_name = "AWS::Lightsail::Alarm" +} + +resource_schema "aws_lightsail_bucket" { + cloudformation_type_name = "AWS::Lightsail::Bucket" +} + +resource_schema "aws_lightsail_certificate" { + cloudformation_type_name = "AWS::Lightsail::Certificate" +} + +resource_schema "aws_lightsail_container" { + cloudformation_type_name = "AWS::Lightsail::Container" +} + +resource_schema "aws_lightsail_database" { + cloudformation_type_name = "AWS::Lightsail::Database" +} + +resource_schema "aws_lightsail_disk" { + cloudformation_type_name = "AWS::Lightsail::Disk" +} + +resource_schema "aws_lightsail_distribution" { + cloudformation_type_name = "AWS::Lightsail::Distribution" +} + +resource_schema "aws_lightsail_instance" { + cloudformation_type_name = "AWS::Lightsail::Instance" +} + +resource_schema "aws_lightsail_load_balancer" { + cloudformation_type_name = "AWS::Lightsail::LoadBalancer" +} + +resource_schema "aws_lightsail_load_balancer_tls_certificate" { + cloudformation_type_name = "AWS::Lightsail::LoadBalancerTlsCertificate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lightsail_static_ip" { + cloudformation_type_name = "AWS::Lightsail::StaticIp" +} + +resource_schema "aws_location_geofence_collection" { + cloudformation_type_name = "AWS::Location::GeofenceCollection" +} + +resource_schema "aws_location_map" { + cloudformation_type_name = "AWS::Location::Map" +} + +resource_schema "aws_location_place_index" { + cloudformation_type_name = "AWS::Location::PlaceIndex" +} + +resource_schema "aws_location_route_calculator" { + cloudformation_type_name = "AWS::Location::RouteCalculator" +} + +resource_schema "aws_location_tracker" { + cloudformation_type_name = "AWS::Location::Tracker" +} + +resource_schema "aws_location_tracker_consumer" { + cloudformation_type_name = "AWS::Location::TrackerConsumer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_account_policy" { + cloudformation_type_name = "AWS::Logs::AccountPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_destination" { + cloudformation_type_name = "AWS::Logs::Destination" +} + +resource_schema "aws_logs_log_group" { + cloudformation_type_name = "AWS::Logs::LogGroup" +} + +resource_schema "aws_logs_log_stream" { + cloudformation_type_name = "AWS::Logs::LogStream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_log_stream" { + cloudformation_type_name = "AWS::Logs::LogStream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_metric_filter" { + cloudformation_type_name = "AWS::Logs::MetricFilter" +} + +resource_schema "aws_logs_query_definition" { + cloudformation_type_name = "AWS::Logs::QueryDefinition" +} + +resource_schema "aws_logs_resource_policy" { + cloudformation_type_name = "AWS::Logs::ResourcePolicy" +} + +resource_schema "aws_logs_subscription_filter" { + cloudformation_type_name = "AWS::Logs::SubscriptionFilter" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lookoutequipment_inference_scheduler" { + cloudformation_type_name = "AWS::LookoutEquipment::InferenceScheduler" +} + +resource_schema "aws_lookoutmetrics_alert" { + cloudformation_type_name = "AWS::LookoutMetrics::Alert" +} + +resource_schema "aws_lookoutmetrics_anomaly_detector" { + cloudformation_type_name = "AWS::LookoutMetrics::AnomalyDetector" +} + +resource_schema "aws_lookoutvision_project" { + cloudformation_type_name = "AWS::LookoutVision::Project" +} + +resource_schema "aws_m2_application" { + cloudformation_type_name = "AWS::M2::Application" +} + +resource_schema "aws_m2_environment" { + cloudformation_type_name = "AWS::M2::Environment" +} + +resource_schema "aws_msk_batch_scram_secret" { + cloudformation_type_name = "AWS::MSK::BatchScramSecret" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_msk_cluster" { + cloudformation_type_name = "AWS::MSK::Cluster" +} + +resource_schema "aws_msk_cluster_policy" { + cloudformation_type_name = "AWS::MSK::ClusterPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_msk_configuration" { + cloudformation_type_name = "AWS::MSK::Configuration" +} + +resource_schema "aws_msk_serverless_cluster" { + cloudformation_type_name = "AWS::MSK::ServerlessCluster" +} + +resource_schema "aws_msk_vpc_connection" { + cloudformation_type_name = "AWS::MSK::VpcConnection" +} + +resource_schema "aws_mwaa_environment" { + cloudformation_type_name = "AWS::MWAA::Environment" +} + +resource_schema "aws_macie_allow_list" { + cloudformation_type_name = "AWS::Macie::AllowList" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_macie_custom_data_identifier" { + cloudformation_type_name = "AWS::Macie::CustomDataIdentifier" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_macie_findings_filter" { + cloudformation_type_name = "AWS::Macie::FindingsFilter" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_macie_session" { + cloudformation_type_name = "AWS::Macie::Session" +} + +resource_schema "aws_managedblockchain_accessor" { + cloudformation_type_name = "AWS::ManagedBlockchain::Accessor" +} + +resource_schema "aws_mediaconnect_bridge" { + cloudformation_type_name = "AWS::MediaConnect::Bridge" +} + +resource_schema "aws_mediaconnect_bridge_output" { + cloudformation_type_name = "AWS::MediaConnect::BridgeOutput" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_bridge_source" { + cloudformation_type_name = "AWS::MediaConnect::BridgeSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_flow" { + cloudformation_type_name = "AWS::MediaConnect::Flow" +} + +resource_schema "aws_mediaconnect_flow_entitlement" { + cloudformation_type_name = "AWS::MediaConnect::FlowEntitlement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_flow_output" { + cloudformation_type_name = "AWS::MediaConnect::FlowOutput" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_flow_source" { + cloudformation_type_name = "AWS::MediaConnect::FlowSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_flow_vpc_interface" { + cloudformation_type_name = "AWS::MediaConnect::FlowVpcInterface" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_gateway" { + cloudformation_type_name = "AWS::MediaConnect::Gateway" +} + +resource_schema "aws_mediapackage_asset" { + cloudformation_type_name = "AWS::MediaPackage::Asset" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackage_channel" { + cloudformation_type_name = "AWS::MediaPackage::Channel" +} + +resource_schema "aws_mediapackage_origin_endpoint" { + cloudformation_type_name = "AWS::MediaPackage::OriginEndpoint" +} + +resource_schema "aws_mediapackage_packaging_configuration" { + cloudformation_type_name = "AWS::MediaPackage::PackagingConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackage_packaging_group" { + cloudformation_type_name = "AWS::MediaPackage::PackagingGroup" +} + +resource_schema "aws_mediatailor_channel" { + cloudformation_type_name = "AWS::MediaTailor::Channel" +} + +resource_schema "aws_mediatailor_channel_policy" { + cloudformation_type_name = "AWS::MediaTailor::ChannelPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_live_source" { + cloudformation_type_name = "AWS::MediaTailor::LiveSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_playback_configuration" { + cloudformation_type_name = "AWS::MediaTailor::PlaybackConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_source_location" { + cloudformation_type_name = "AWS::MediaTailor::SourceLocation" +} + +resource_schema "aws_mediatailor_vod_source" { + cloudformation_type_name = "AWS::MediaTailor::VodSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_memorydb_acl" { + cloudformation_type_name = "AWS::MemoryDB::ACL" +} + +resource_schema "aws_memorydb_cluster" { + cloudformation_type_name = "AWS::MemoryDB::Cluster" +} + +resource_schema "aws_memorydb_parameter_group" { + cloudformation_type_name = "AWS::MemoryDB::ParameterGroup" +} + +resource_schema "aws_memorydb_subnet_group" { + cloudformation_type_name = "AWS::MemoryDB::SubnetGroup" +} + +resource_schema "aws_memorydb_user" { + cloudformation_type_name = "AWS::MemoryDB::User" +} + +resource_schema "aws_neptune_db_cluster" { + cloudformation_type_name = "AWS::Neptune::DBCluster" +} + +resource_schema "aws_networkfirewall_firewall" { + cloudformation_type_name = "AWS::NetworkFirewall::Firewall" +} + +resource_schema "aws_networkfirewall_firewall_policy" { + cloudformation_type_name = "AWS::NetworkFirewall::FirewallPolicy" +} + +resource_schema "aws_networkfirewall_logging_configuration" { + cloudformation_type_name = "AWS::NetworkFirewall::LoggingConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkfirewall_rule_group" { + cloudformation_type_name = "AWS::NetworkFirewall::RuleGroup" +} + +resource_schema "aws_networkmanager_connect_attachment" { + cloudformation_type_name = "AWS::NetworkManager::ConnectAttachment" +} + +resource_schema "aws_networkmanager_connect_peer" { + cloudformation_type_name = "AWS::NetworkManager::ConnectPeer" +} + +resource_schema "aws_networkmanager_core_network" { + cloudformation_type_name = "AWS::NetworkManager::CoreNetwork" +} + +resource_schema "aws_networkmanager_customer_gateway_association" { + cloudformation_type_name = "AWS::NetworkManager::CustomerGatewayAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_device" { + cloudformation_type_name = "AWS::NetworkManager::Device" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_global_network" { + cloudformation_type_name = "AWS::NetworkManager::GlobalNetwork" +} + +resource_schema "aws_networkmanager_link" { + cloudformation_type_name = "AWS::NetworkManager::Link" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_link_association" { + cloudformation_type_name = "AWS::NetworkManager::LinkAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_site" { + cloudformation_type_name = "AWS::NetworkManager::Site" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_site_to_site_vpn_attachment" { + cloudformation_type_name = "AWS::NetworkManager::SiteToSiteVpnAttachment" +} + +resource_schema "aws_networkmanager_transit_gateway_peering" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayPeering" +} + +resource_schema "aws_networkmanager_transit_gateway_registration" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayRegistration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_transit_gateway_route_table_attachment" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayRouteTableAttachment" +} + +resource_schema "aws_networkmanager_vpc_attachment" { + cloudformation_type_name = "AWS::NetworkManager::VpcAttachment" +} + +resource_schema "aws_nimblestudio_launch_profile" { + cloudformation_type_name = "AWS::NimbleStudio::LaunchProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_nimblestudio_streaming_image" { + cloudformation_type_name = "AWS::NimbleStudio::StreamingImage" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_nimblestudio_studio" { + cloudformation_type_name = "AWS::NimbleStudio::Studio" +} + +resource_schema "aws_nimblestudio_studio_component" { + cloudformation_type_name = "AWS::NimbleStudio::StudioComponent" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_osis_pipeline" { + cloudformation_type_name = "AWS::OSIS::Pipeline" +} + +resource_schema "aws_oam_link" { + cloudformation_type_name = "AWS::Oam::Link" +} + +resource_schema "aws_oam_sink" { + cloudformation_type_name = "AWS::Oam::Sink" +} + +resource_schema "aws_omics_annotation_store" { + cloudformation_type_name = "AWS::Omics::AnnotationStore" +} + +resource_schema "aws_omics_reference_store" { + cloudformation_type_name = "AWS::Omics::ReferenceStore" +} + +resource_schema "aws_omics_run_group" { + cloudformation_type_name = "AWS::Omics::RunGroup" +} + +resource_schema "aws_omics_sequence_store" { + cloudformation_type_name = "AWS::Omics::SequenceStore" +} + +resource_schema "aws_omics_variant_store" { + cloudformation_type_name = "AWS::Omics::VariantStore" +} + +resource_schema "aws_omics_workflow" { + cloudformation_type_name = "AWS::Omics::Workflow" +} + +resource_schema "aws_opensearchserverless_access_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::AccessPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_collection" { + cloudformation_type_name = "AWS::OpenSearchServerless::Collection" +} + +resource_schema "aws_opensearchserverless_security_config" { + cloudformation_type_name = "AWS::OpenSearchServerless::SecurityConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_security_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::SecurityPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_vpc_endpoint" { + cloudformation_type_name = "AWS::OpenSearchServerless::VpcEndpoint" +} + +resource_schema "aws_opensearchservice_domain" { + cloudformation_type_name = "AWS::OpenSearchService::Domain" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opsworkscm_server" { + cloudformation_type_name = "AWS::OpsWorksCM::Server" +} + +resource_schema "aws_organizations_account" { + cloudformation_type_name = "AWS::Organizations::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_organizations_organization" { + cloudformation_type_name = "AWS::Organizations::Organization" +} + +resource_schema "aws_organizations_organizational_unit" { + cloudformation_type_name = "AWS::Organizations::OrganizationalUnit" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_organizations_policy" { + cloudformation_type_name = "AWS::Organizations::Policy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_organizations_resource_policy" { + cloudformation_type_name = "AWS::Organizations::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorad_connector" { + cloudformation_type_name = "AWS::PCAConnectorAD::Connector" +} + +resource_schema "aws_pcaconnectorad_directory_registration" { + cloudformation_type_name = "AWS::PCAConnectorAD::DirectoryRegistration" +} + +resource_schema "aws_pcaconnectorad_service_principal_name" { + cloudformation_type_name = "AWS::PCAConnectorAD::ServicePrincipalName" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorad_template" { + cloudformation_type_name = "AWS::PCAConnectorAD::Template" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorad_template_group_access_control_entry" { + cloudformation_type_name = "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_panorama_application_instance" { + cloudformation_type_name = "AWS::Panorama::ApplicationInstance" +} + +resource_schema "aws_panorama_package" { + cloudformation_type_name = "AWS::Panorama::Package" +} + +resource_schema "aws_panorama_package_version" { + cloudformation_type_name = "AWS::Panorama::PackageVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_personalize_dataset" { + cloudformation_type_name = "AWS::Personalize::Dataset" +} + +resource_schema "aws_personalize_dataset_group" { + cloudformation_type_name = "AWS::Personalize::DatasetGroup" +} + +resource_schema "aws_personalize_schema" { + cloudformation_type_name = "AWS::Personalize::Schema" +} + +resource_schema "aws_personalize_solution" { + cloudformation_type_name = "AWS::Personalize::Solution" +} + +resource_schema "aws_pinpoint_in_app_template" { + cloudformation_type_name = "AWS::Pinpoint::InAppTemplate" +} + +resource_schema "aws_pipes_pipe" { + cloudformation_type_name = "AWS::Pipes::Pipe" +} + +resource_schema "aws_proton_environment_account_connection" { + cloudformation_type_name = "AWS::Proton::EnvironmentAccountConnection" +} + +resource_schema "aws_proton_environment_template" { + cloudformation_type_name = "AWS::Proton::EnvironmentTemplate" +} + +resource_schema "aws_proton_service_template" { + cloudformation_type_name = "AWS::Proton::ServiceTemplate" +} + +resource_schema "aws_qldb_stream" { + cloudformation_type_name = "AWS::QLDB::Stream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_analysis" { + cloudformation_type_name = "AWS::QuickSight::Analysis" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_dashboard" { + cloudformation_type_name = "AWS::QuickSight::Dashboard" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_data_set" { + cloudformation_type_name = "AWS::QuickSight::DataSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_data_source" { + cloudformation_type_name = "AWS::QuickSight::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_refresh_schedule" { + cloudformation_type_name = "AWS::QuickSight::RefreshSchedule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_template" { + cloudformation_type_name = "AWS::QuickSight::Template" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_theme" { + cloudformation_type_name = "AWS::QuickSight::Theme" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_topic" { + cloudformation_type_name = "AWS::QuickSight::Topic" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_vpc_connection" { + cloudformation_type_name = "AWS::QuickSight::VPCConnection" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ram_permission" { + cloudformation_type_name = "AWS::RAM::Permission" +} + +resource_schema "aws_rds_custom_db_engine_version" { + cloudformation_type_name = "AWS::RDS::CustomDBEngineVersion" +} + +resource_schema "aws_rds_db_cluster" { + cloudformation_type_name = "AWS::RDS::DBCluster" +} + +resource_schema "aws_rds_db_cluster_parameter_group" { + cloudformation_type_name = "AWS::RDS::DBClusterParameterGroup" +} + +resource_schema "aws_rds_db_instance" { + cloudformation_type_name = "AWS::RDS::DBInstance" +} + +resource_schema "aws_rds_db_parameter_group" { + cloudformation_type_name = "AWS::RDS::DBParameterGroup" +} + +resource_schema "aws_rds_db_proxy" { + cloudformation_type_name = "AWS::RDS::DBProxy" +} + +resource_schema "aws_rds_db_proxy_endpoint" { + cloudformation_type_name = "AWS::RDS::DBProxyEndpoint" +} + +resource_schema "aws_rds_db_proxy_target_group" { + cloudformation_type_name = "AWS::RDS::DBProxyTargetGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_rds_db_subnet_group" { + cloudformation_type_name = "AWS::RDS::DBSubnetGroup" +} + +resource_schema "aws_rds_event_subscription" { + cloudformation_type_name = "AWS::RDS::EventSubscription" +} + +resource_schema "aws_rds_global_cluster" { + cloudformation_type_name = "AWS::RDS::GlobalCluster" +} + +resource_schema "aws_rds_option_group" { + cloudformation_type_name = "AWS::RDS::OptionGroup" +} + +resource_schema "aws_rum_app_monitor" { + cloudformation_type_name = "AWS::RUM::AppMonitor" +} + +resource_schema "aws_redshift_cluster" { + cloudformation_type_name = "AWS::Redshift::Cluster" +} + +resource_schema "aws_redshift_cluster_parameter_group" { + cloudformation_type_name = "AWS::Redshift::ClusterParameterGroup" +} + +resource_schema "aws_redshift_cluster_subnet_group" { + cloudformation_type_name = "AWS::Redshift::ClusterSubnetGroup" +} + +resource_schema "aws_redshift_endpoint_access" { + cloudformation_type_name = "AWS::Redshift::EndpointAccess" +} + +resource_schema "aws_redshift_endpoint_authorization" { + cloudformation_type_name = "AWS::Redshift::EndpointAuthorization" +} + +resource_schema "aws_redshift_event_subscription" { + cloudformation_type_name = "AWS::Redshift::EventSubscription" +} + +resource_schema "aws_redshift_scheduled_action" { + cloudformation_type_name = "AWS::Redshift::ScheduledAction" +} + +resource_schema "aws_redshiftserverless_namespace" { + cloudformation_type_name = "AWS::RedshiftServerless::Namespace" +} + +resource_schema "aws_redshiftserverless_workgroup" { + cloudformation_type_name = "AWS::RedshiftServerless::Workgroup" +} + +resource_schema "aws_refactorspaces_application" { + cloudformation_type_name = "AWS::RefactorSpaces::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_refactorspaces_environment" { + cloudformation_type_name = "AWS::RefactorSpaces::Environment" +} + +resource_schema "aws_refactorspaces_route" { + cloudformation_type_name = "AWS::RefactorSpaces::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_refactorspaces_service" { + cloudformation_type_name = "AWS::RefactorSpaces::Service" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_rekognition_collection" { + cloudformation_type_name = "AWS::Rekognition::Collection" +} + +resource_schema "aws_rekognition_project" { + cloudformation_type_name = "AWS::Rekognition::Project" +} + +resource_schema "aws_rekognition_stream_processor" { + cloudformation_type_name = "AWS::Rekognition::StreamProcessor" +} + +resource_schema "aws_resiliencehub_app" { + cloudformation_type_name = "AWS::ResilienceHub::App" +} + +resource_schema "aws_resiliencehub_resiliency_policy" { + cloudformation_type_name = "AWS::ResilienceHub::ResiliencyPolicy" +} + +resource_schema "aws_resourceexplorer2_default_view_association" { + cloudformation_type_name = "AWS::ResourceExplorer2::DefaultViewAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_resourceexplorer2_index" { + cloudformation_type_name = "AWS::ResourceExplorer2::Index" +} + +resource_schema "aws_resourceexplorer2_view" { + cloudformation_type_name = "AWS::ResourceExplorer2::View" +} + +resource_schema "aws_resourcegroups_group" { + cloudformation_type_name = "AWS::ResourceGroups::Group" +} + +resource_schema "aws_robomaker_fleet" { + cloudformation_type_name = "AWS::RoboMaker::Fleet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_robomaker_robot" { + cloudformation_type_name = "AWS::RoboMaker::Robot" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_robomaker_robot_application" { + cloudformation_type_name = "AWS::RoboMaker::RobotApplication" +} + +resource_schema "aws_robomaker_robot_application_version" { + cloudformation_type_name = "AWS::RoboMaker::RobotApplicationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_robomaker_simulation_application" { + cloudformation_type_name = "AWS::RoboMaker::SimulationApplication" +} + +resource_schema "aws_robomaker_simulation_application_version" { + cloudformation_type_name = "AWS::RoboMaker::SimulationApplicationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_rolesanywhere_crl" { + cloudformation_type_name = "AWS::RolesAnywhere::CRL" +} + +resource_schema "aws_rolesanywhere_profile" { + cloudformation_type_name = "AWS::RolesAnywhere::Profile" +} + +resource_schema "aws_rolesanywhere_trust_anchor" { + cloudformation_type_name = "AWS::RolesAnywhere::TrustAnchor" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53_cidr_collection" { + cloudformation_type_name = "AWS::Route53::CidrCollection" +} + +resource_schema "aws_route53_dnssec" { + cloudformation_type_name = "AWS::Route53::DNSSEC" +} + +resource_schema "aws_route53_health_check" { + cloudformation_type_name = "AWS::Route53::HealthCheck" +} + +resource_schema "aws_route53_hosted_zone" { + cloudformation_type_name = "AWS::Route53::HostedZone" +} + +resource_schema "aws_route53_key_signing_key" { + cloudformation_type_name = "AWS::Route53::KeySigningKey" +} + +resource_schema "aws_route53recoverycontrol_cluster" { + cloudformation_type_name = "AWS::Route53RecoveryControl::Cluster" +} + +resource_schema "aws_route53recoverycontrol_control_panel" { + cloudformation_type_name = "AWS::Route53RecoveryControl::ControlPanel" +} + +resource_schema "aws_route53recoverycontrol_routing_control" { + cloudformation_type_name = "AWS::Route53RecoveryControl::RoutingControl" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoverycontrol_safety_rule" { + cloudformation_type_name = "AWS::Route53RecoveryControl::SafetyRule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoveryreadiness_cell" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::Cell" +} + +resource_schema "aws_route53recoveryreadiness_readiness_check" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::ReadinessCheck" +} + +resource_schema "aws_route53recoveryreadiness_recovery_group" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::RecoveryGroup" +} + +resource_schema "aws_route53recoveryreadiness_resource_set" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::ResourceSet" +} + +resource_schema "aws_route53resolver_firewall_domain_list" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallDomainList" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53resolver_firewall_rule_group" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallRuleGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53resolver_firewall_rule_group_association" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallRuleGroupAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53resolver_outpost_resolver" { + cloudformation_type_name = "AWS::Route53Resolver::OutpostResolver" +} + +resource_schema "aws_route53resolver_resolver_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverConfig" +} + +resource_schema "aws_route53resolver_resolver_dnssec_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverDNSSECConfig" +} + +resource_schema "aws_route53resolver_resolver_query_logging_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverQueryLoggingConfig" +} + +resource_schema "aws_route53resolver_resolver_query_logging_config_association" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation" +} + +resource_schema "aws_route53resolver_resolver_rule" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverRule" +} + +resource_schema "aws_route53resolver_resolver_rule_association" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverRuleAssociation" +} + +resource_schema "aws_s3_access_point" { + cloudformation_type_name = "AWS::S3::AccessPoint" +} + +resource_schema "aws_s3_bucket" { + cloudformation_type_name = "AWS::S3::Bucket" +} + +resource_schema "aws_s3_multi_region_access_point" { + cloudformation_type_name = "AWS::S3::MultiRegionAccessPoint" +} + +resource_schema "aws_s3_multi_region_access_point_policy" { + cloudformation_type_name = "AWS::S3::MultiRegionAccessPointPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3_storage_lens" { + cloudformation_type_name = "AWS::S3::StorageLens" +} + +resource_schema "aws_s3objectlambda_access_point" { + cloudformation_type_name = "AWS::S3ObjectLambda::AccessPoint" +} + +resource_schema "aws_s3objectlambda_access_point_policy" { + cloudformation_type_name = "AWS::S3ObjectLambda::AccessPointPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_access_point" { + cloudformation_type_name = "AWS::S3Outposts::AccessPoint" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_bucket" { + cloudformation_type_name = "AWS::S3Outposts::Bucket" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_bucket_policy" { + cloudformation_type_name = "AWS::S3Outposts::BucketPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_endpoint" { + cloudformation_type_name = "AWS::S3Outposts::Endpoint" +} + +resource_schema "aws_ses_configuration_set" { + cloudformation_type_name = "AWS::SES::ConfigurationSet" +} + +resource_schema "aws_ses_configuration_set_event_destination" { + cloudformation_type_name = "AWS::SES::ConfigurationSetEventDestination" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ses_contact_list" { + cloudformation_type_name = "AWS::SES::ContactList" +} + +resource_schema "aws_ses_dedicated_ip_pool" { + cloudformation_type_name = "AWS::SES::DedicatedIpPool" +} + +resource_schema "aws_ses_email_identity" { + cloudformation_type_name = "AWS::SES::EmailIdentity" +} + +resource_schema "aws_ses_template" { + cloudformation_type_name = "AWS::SES::Template" +} + +resource_schema "aws_ses_vdm_attributes" { + cloudformation_type_name = "AWS::SES::VdmAttributes" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sns_topic" { + cloudformation_type_name = "AWS::SNS::Topic" +} + +resource_schema "aws_sns_topic_inline_policy" { + cloudformation_type_name = "AWS::SNS::TopicInlinePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sqs_queue" { + cloudformation_type_name = "AWS::SQS::Queue" +} + +resource_schema "aws_sqs_queue_inline_policy" { + cloudformation_type_name = "AWS::SQS::QueueInlinePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssm_association" { + cloudformation_type_name = "AWS::SSM::Association" +} + +resource_schema "aws_ssm_document" { + cloudformation_type_name = "AWS::SSM::Document" +} + +resource_schema "aws_ssm_resource_data_sync" { + cloudformation_type_name = "AWS::SSM::ResourceDataSync" +} + +resource_schema "aws_ssm_resource_policy" { + cloudformation_type_name = "AWS::SSM::ResourcePolicy" +} + +resource_schema "aws_ssmcontacts_contact" { + cloudformation_type_name = "AWS::SSMContacts::Contact" +} + +resource_schema "aws_ssmcontacts_contact_channel" { + cloudformation_type_name = "AWS::SSMContacts::ContactChannel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssmcontacts_plan" { + cloudformation_type_name = "AWS::SSMContacts::Plan" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssmcontacts_rotation" { + cloudformation_type_name = "AWS::SSMContacts::Rotation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssmincidents_replication_set" { + cloudformation_type_name = "AWS::SSMIncidents::ReplicationSet" +} + +resource_schema "aws_ssmincidents_response_plan" { + cloudformation_type_name = "AWS::SSMIncidents::ResponsePlan" +} + +resource_schema "aws_sso_assignment" { + cloudformation_type_name = "AWS::SSO::Assignment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sso_instance_access_control_attribute_configuration" { + cloudformation_type_name = "AWS::SSO::InstanceAccessControlAttributeConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sso_permission_set" { + cloudformation_type_name = "AWS::SSO::PermissionSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_app" { + cloudformation_type_name = "AWS::SageMaker::App" +} + +resource_schema "aws_sagemaker_app_image_config" { + cloudformation_type_name = "AWS::SageMaker::AppImageConfig" +} + +resource_schema "aws_sagemaker_data_quality_job_definition" { + cloudformation_type_name = "AWS::SageMaker::DataQualityJobDefinition" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_device" { + cloudformation_type_name = "AWS::SageMaker::Device" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_device_fleet" { + cloudformation_type_name = "AWS::SageMaker::DeviceFleet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_domain" { + cloudformation_type_name = "AWS::SageMaker::Domain" +} + +resource_schema "aws_sagemaker_feature_group" { + cloudformation_type_name = "AWS::SageMaker::FeatureGroup" +} + +resource_schema "aws_sagemaker_image" { + cloudformation_type_name = "AWS::SageMaker::Image" +} + +resource_schema "aws_sagemaker_image_version" { + cloudformation_type_name = "AWS::SageMaker::ImageVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_inference_experiment" { + cloudformation_type_name = "AWS::SageMaker::InferenceExperiment" +} + +resource_schema "aws_sagemaker_model_bias_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelBiasJobDefinition" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_model_card" { + cloudformation_type_name = "AWS::SageMaker::ModelCard" +} + +resource_schema "aws_sagemaker_model_explainability_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelExplainabilityJobDefinition" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_model_package" { + cloudformation_type_name = "AWS::SageMaker::ModelPackage" +} + +resource_schema "aws_sagemaker_model_package_group" { + cloudformation_type_name = "AWS::SageMaker::ModelPackageGroup" +} + +resource_schema "aws_sagemaker_model_quality_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelQualityJobDefinition" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_monitoring_schedule" { + cloudformation_type_name = "AWS::SageMaker::MonitoringSchedule" +} + +resource_schema "aws_sagemaker_pipeline" { + cloudformation_type_name = "AWS::SageMaker::Pipeline" +} + +resource_schema "aws_sagemaker_project" { + cloudformation_type_name = "AWS::SageMaker::Project" +} + +resource_schema "aws_sagemaker_space" { + cloudformation_type_name = "AWS::SageMaker::Space" +} + +resource_schema "aws_sagemaker_user_profile" { + cloudformation_type_name = "AWS::SageMaker::UserProfile" +} + +resource_schema "aws_scheduler_schedule" { + cloudformation_type_name = "AWS::Scheduler::Schedule" +} + +resource_schema "aws_scheduler_schedule_group" { + cloudformation_type_name = "AWS::Scheduler::ScheduleGroup" +} + +resource_schema "aws_secretsmanager_secret" { + cloudformation_type_name = "AWS::SecretsManager::Secret" +} + +resource_schema "aws_securityhub_automation_rule" { + cloudformation_type_name = "AWS::SecurityHub::AutomationRule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_securityhub_standard" { + cloudformation_type_name = "AWS::SecurityHub::Standard" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalog_cloudformation_provisioned_product" { + cloudformation_type_name = "AWS::ServiceCatalog::CloudFormationProvisionedProduct" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalog_service_action" { + cloudformation_type_name = "AWS::ServiceCatalog::ServiceAction" +} + +resource_schema "aws_servicecatalog_service_action_association" { + cloudformation_type_name = "AWS::ServiceCatalog::ServiceActionAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalogappregistry_application" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::Application" +} + +resource_schema "aws_servicecatalogappregistry_attribute_group" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::AttributeGroup" +} + +resource_schema "aws_servicecatalogappregistry_attribute_group_association" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalogappregistry_resource_association" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::ResourceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_shield_drt_access" { + cloudformation_type_name = "AWS::Shield::DRTAccess" +} + +resource_schema "aws_shield_proactive_engagement" { + cloudformation_type_name = "AWS::Shield::ProactiveEngagement" +} + +resource_schema "aws_shield_protection" { + cloudformation_type_name = "AWS::Shield::Protection" +} + +resource_schema "aws_shield_protection_group" { + cloudformation_type_name = "AWS::Shield::ProtectionGroup" +} + +resource_schema "aws_signer_profile_permission" { + cloudformation_type_name = "AWS::Signer::ProfilePermission" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_signer_signing_profile" { + cloudformation_type_name = "AWS::Signer::SigningProfile" +} + +resource_schema "aws_simspaceweaver_simulation" { + cloudformation_type_name = "AWS::SimSpaceWeaver::Simulation" +} + +resource_schema "aws_stepfunctions_activity" { + cloudformation_type_name = "AWS::StepFunctions::Activity" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_stepfunctions_state_machine" { + cloudformation_type_name = "AWS::StepFunctions::StateMachine" +} + +resource_schema "aws_stepfunctions_state_machine_alias" { + cloudformation_type_name = "AWS::StepFunctions::StateMachineAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_stepfunctions_state_machine_version" { + cloudformation_type_name = "AWS::StepFunctions::StateMachineVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_supportapp_account_alias" { + cloudformation_type_name = "AWS::SupportApp::AccountAlias" +} + +resource_schema "aws_supportapp_slack_channel_configuration" { + cloudformation_type_name = "AWS::SupportApp::SlackChannelConfiguration" +} + +resource_schema "aws_supportapp_slack_workspace_configuration" { + cloudformation_type_name = "AWS::SupportApp::SlackWorkspaceConfiguration" +} + +resource_schema "aws_synthetics_canary" { + cloudformation_type_name = "AWS::Synthetics::Canary" +} + +resource_schema "aws_synthetics_group" { + cloudformation_type_name = "AWS::Synthetics::Group" +} + +resource_schema "aws_systemsmanagersap_application" { + cloudformation_type_name = "AWS::SystemsManagerSAP::Application" +} + +resource_schema "aws_timestream_database" { + cloudformation_type_name = "AWS::Timestream::Database" +} + +resource_schema "aws_timestream_scheduled_query" { + cloudformation_type_name = "AWS::Timestream::ScheduledQuery" +} + +resource_schema "aws_timestream_table" { + cloudformation_type_name = "AWS::Timestream::Table" +} + +resource_schema "aws_transfer_agreement" { + cloudformation_type_name = "AWS::Transfer::Agreement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_transfer_certificate" { + cloudformation_type_name = "AWS::Transfer::Certificate" +} + +resource_schema "aws_transfer_connector" { + cloudformation_type_name = "AWS::Transfer::Connector" +} + +resource_schema "aws_transfer_profile" { + cloudformation_type_name = "AWS::Transfer::Profile" +} + +resource_schema "aws_transfer_workflow" { + cloudformation_type_name = "AWS::Transfer::Workflow" +} + +resource_schema "aws_verifiedpermissions_identity_source" { + cloudformation_type_name = "AWS::VerifiedPermissions::IdentitySource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_verifiedpermissions_policy" { + cloudformation_type_name = "AWS::VerifiedPermissions::Policy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_verifiedpermissions_policy_store" { + cloudformation_type_name = "AWS::VerifiedPermissions::PolicyStore" +} + +resource_schema "aws_verifiedpermissions_policy_template" { + cloudformation_type_name = "AWS::VerifiedPermissions::PolicyTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_voiceid_domain" { + cloudformation_type_name = "AWS::VoiceID::Domain" +} + +resource_schema "aws_vpclattice_access_log_subscription" { + cloudformation_type_name = "AWS::VpcLattice::AccessLogSubscription" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_auth_policy" { + cloudformation_type_name = "AWS::VpcLattice::AuthPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_listener" { + cloudformation_type_name = "AWS::VpcLattice::Listener" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_resource_policy" { + cloudformation_type_name = "AWS::VpcLattice::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_rule" { + cloudformation_type_name = "AWS::VpcLattice::Rule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_service" { + cloudformation_type_name = "AWS::VpcLattice::Service" +} + +resource_schema "aws_vpclattice_service_network" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetwork" +} + +resource_schema "aws_vpclattice_service_network_service_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkServiceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_service_network_vpc_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkVpcAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_target_group" { + cloudformation_type_name = "AWS::VpcLattice::TargetGroup" +} + +resource_schema "aws_wafv2_ip_set" { + cloudformation_type_name = "AWS::WAFv2::IPSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_logging_configuration" { + cloudformation_type_name = "AWS::WAFv2::LoggingConfiguration" +} + +resource_schema "aws_wafv2_regex_pattern_set" { + cloudformation_type_name = "AWS::WAFv2::RegexPatternSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_rule_group" { + cloudformation_type_name = "AWS::WAFv2::RuleGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_web_acl" { + cloudformation_type_name = "AWS::WAFv2::WebACL" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_web_acl_association" { + cloudformation_type_name = "AWS::WAFv2::WebACLAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_assistant" { + cloudformation_type_name = "AWS::Wisdom::Assistant" +} + +resource_schema "aws_wisdom_assistant_association" { + cloudformation_type_name = "AWS::Wisdom::AssistantAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_knowledge_base" { + cloudformation_type_name = "AWS::Wisdom::KnowledgeBase" +} + +resource_schema "aws_workspaces_connection_alias" { + cloudformation_type_name = "AWS::WorkSpaces::ConnectionAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_workspacesweb_browser_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::BrowserSettings" +} + +resource_schema "aws_workspacesweb_identity_provider" { + cloudformation_type_name = "AWS::WorkSpacesWeb::IdentityProvider" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_workspacesweb_ip_access_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::IpAccessSettings" +} + +resource_schema "aws_workspacesweb_network_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::NetworkSettings" +} + +resource_schema "aws_workspacesweb_portal" { + cloudformation_type_name = "AWS::WorkSpacesWeb::Portal" +} + +resource_schema "aws_workspacesweb_trust_store" { + cloudformation_type_name = "AWS::WorkSpacesWeb::TrustStore" +} + +resource_schema "aws_workspacesweb_user_access_logging_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::UserAccessLoggingSettings" +} + +resource_schema "aws_workspacesweb_user_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::UserSettings" +} + +resource_schema "aws_xray_group" { + cloudformation_type_name = "AWS::XRay::Group" +} + +resource_schema "aws_xray_resource_policy" { + cloudformation_type_name = "AWS::XRay::ResourcePolicy" +} + +resource_schema "aws_xray_sampling_rule" { + cloudformation_type_name = "AWS::XRay::SamplingRule" +} diff --git a/internal/provider/plural_data_sources.go b/internal/provider/plural_data_sources.go index a5342c3731..227d8b10c1 100644 --- a/internal/provider/plural_data_sources.go +++ b/internal/provider/plural_data_sources.go @@ -48,10 +48,13 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_ce_anomaly_subscriptions -cftype AWS::CE::AnomalySubscription -package ce ../aws/ce/anomaly_subscription_plural_data_source_gen.go ../aws/ce/anomaly_subscription_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_cassandra_keyspaces -cftype AWS::Cassandra::Keyspace -package cassandra ../aws/cassandra/keyspace_plural_data_source_gen.go ../aws/cassandra/keyspace_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_cassandra_tables -cftype AWS::Cassandra::Table -package cassandra ../aws/cassandra/table_plural_data_source_gen.go ../aws/cassandra/table_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_chatbot_microsoft_teams_channel_configurations -cftype AWS::Chatbot::MicrosoftTeamsChannelConfiguration -package chatbot ../aws/chatbot/microsoft_teams_channel_configuration_plural_data_source_gen.go ../aws/chatbot/microsoft_teams_channel_configuration_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_chatbot_slack_channel_configurations -cftype AWS::Chatbot::SlackChannelConfiguration -package chatbot ../aws/chatbot/slack_channel_configuration_plural_data_source_gen.go ../aws/chatbot/slack_channel_configuration_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_cleanrooms_analysis_templates -cftype AWS::CleanRooms::AnalysisTemplate -package cleanrooms ../aws/cleanrooms/analysis_template_plural_data_source_gen.go ../aws/cleanrooms/analysis_template_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_cleanrooms_collaborations -cftype AWS::CleanRooms::Collaboration -package cleanrooms ../aws/cleanrooms/collaboration_plural_data_source_gen.go ../aws/cleanrooms/collaboration_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_cleanrooms_configured_tables -cftype AWS::CleanRooms::ConfiguredTable -package cleanrooms ../aws/cleanrooms/configured_table_plural_data_source_gen.go ../aws/cleanrooms/configured_table_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_cleanrooms_memberships -cftype AWS::CleanRooms::Membership -package cleanrooms ../aws/cleanrooms/membership_plural_data_source_gen.go ../aws/cleanrooms/membership_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_cloudformation_hook_versions -cftype AWS::CloudFormation::HookVersion -package cloudformation ../aws/cloudformation/hook_version_plural_data_source_gen.go ../aws/cloudformation/hook_version_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_cloudformation_module_default_versions -cftype AWS::CloudFormation::ModuleDefaultVersion -package cloudformation ../aws/cloudformation/module_default_version_plural_data_source_gen.go ../aws/cloudformation/module_default_version_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_cloudformation_module_versions -cftype AWS::CloudFormation::ModuleVersion -package cloudformation ../aws/cloudformation/module_version_plural_data_source_gen.go ../aws/cloudformation/module_version_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_cloudformation_public_type_versions -cftype AWS::CloudFormation::PublicTypeVersion -package cloudformation ../aws/cloudformation/public_type_version_plural_data_source_gen.go ../aws/cloudformation/public_type_version_plural_data_source_gen_test.go @@ -130,6 +133,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_dhcp_options_plural -cftype AWS::EC2::DHCPOptions -package ec2 ../aws/ec2/dhcp_options_plural_data_source_gen.go ../aws/ec2/dhcp_options_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_ec2_fleets -cftype AWS::EC2::EC2Fleet -package ec2 ../aws/ec2/ec2_fleet_plural_data_source_gen.go ../aws/ec2/ec2_fleet_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_eips -cftype AWS::EC2::EIP -package ec2 ../aws/ec2/eip_plural_data_source_gen.go ../aws/ec2/eip_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_eip_associations -cftype AWS::EC2::EIPAssociation -package ec2 ../aws/ec2/eip_association_plural_data_source_gen.go ../aws/ec2/eip_association_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_egress_only_internet_gateways -cftype AWS::EC2::EgressOnlyInternetGateway -package ec2 ../aws/ec2/egress_only_internet_gateway_plural_data_source_gen.go ../aws/ec2/egress_only_internet_gateway_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_flow_logs -cftype AWS::EC2::FlowLog -package ec2 ../aws/ec2/flow_log_plural_data_source_gen.go ../aws/ec2/flow_log_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_hosts -cftype AWS::EC2::Host -package ec2 ../aws/ec2/host_plural_data_source_gen.go ../aws/ec2/host_plural_data_source_gen_test.go @@ -236,6 +240,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_greengrassv2_deployments -cftype AWS::GreengrassV2::Deployment -package greengrassv2 ../aws/greengrassv2/deployment_plural_data_source_gen.go ../aws/greengrassv2/deployment_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_groundstation_dataflow_endpoint_groups -cftype AWS::GroundStation::DataflowEndpointGroup -package groundstation ../aws/groundstation/dataflow_endpoint_group_plural_data_source_gen.go ../aws/groundstation/dataflow_endpoint_group_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_groundstation_mission_profiles -cftype AWS::GroundStation::MissionProfile -package groundstation ../aws/groundstation/mission_profile_plural_data_source_gen.go ../aws/groundstation/mission_profile_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_guardduty_detectors -cftype AWS::GuardDuty::Detector -package guardduty ../aws/guardduty/detector_plural_data_source_gen.go ../aws/guardduty/detector_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_healthlake_fhir_datastores -cftype AWS::HealthLake::FHIRDatastore -package healthlake ../aws/healthlake/fhir_datastore_plural_data_source_gen.go ../aws/healthlake/fhir_datastore_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_iam_managed_policies -cftype AWS::IAM::ManagedPolicy -package iam ../aws/iam/managed_policy_plural_data_source_gen.go ../aws/iam/managed_policy_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_iam_oidc_providers -cftype AWS::IAM::OIDCProvider -package iam ../aws/iam/oidc_provider_plural_data_source_gen.go ../aws/iam/oidc_provider_plural_data_source_gen_test.go @@ -298,6 +303,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_iotwireless_network_analyzer_configurations -cftype AWS::IoTWireless::NetworkAnalyzerConfiguration -package iotwireless ../aws/iotwireless/network_analyzer_configuration_plural_data_source_gen.go ../aws/iotwireless/network_analyzer_configuration_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_iotwireless_partner_accounts -cftype AWS::IoTWireless::PartnerAccount -package iotwireless ../aws/iotwireless/partner_account_plural_data_source_gen.go ../aws/iotwireless/partner_account_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_iotwireless_service_profiles -cftype AWS::IoTWireless::ServiceProfile -package iotwireless ../aws/iotwireless/service_profile_plural_data_source_gen.go ../aws/iotwireless/service_profile_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_iotwireless_task_definitions -cftype AWS::IoTWireless::TaskDefinition -package iotwireless ../aws/iotwireless/task_definition_plural_data_source_gen.go ../aws/iotwireless/task_definition_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_iotwireless_wireless_devices -cftype AWS::IoTWireless::WirelessDevice -package iotwireless ../aws/iotwireless/wireless_device_plural_data_source_gen.go ../aws/iotwireless/wireless_device_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_iotwireless_wireless_device_import_tasks -cftype AWS::IoTWireless::WirelessDeviceImportTask -package iotwireless ../aws/iotwireless/wireless_device_import_task_plural_data_source_gen.go ../aws/iotwireless/wireless_device_import_task_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_iotwireless_wireless_gateways -cftype AWS::IoTWireless::WirelessGateway -package iotwireless ../aws/iotwireless/wireless_gateway_plural_data_source_gen.go ../aws/iotwireless/wireless_gateway_plural_data_source_gen_test.go @@ -389,6 +395,8 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_opensearchserverless_security_policies -cftype AWS::OpenSearchServerless::SecurityPolicy -package opensearchserverless ../aws/opensearchserverless/security_policy_plural_data_source_gen.go ../aws/opensearchserverless/security_policy_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_opensearchserverless_vpc_endpoints -cftype AWS::OpenSearchServerless::VpcEndpoint -package opensearchserverless ../aws/opensearchserverless/vpc_endpoint_plural_data_source_gen.go ../aws/opensearchserverless/vpc_endpoint_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_organizations_organizations -cftype AWS::Organizations::Organization -package organizations ../aws/organizations/organization_plural_data_source_gen.go ../aws/organizations/organization_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_pcaconnectorad_connectors -cftype AWS::PCAConnectorAD::Connector -package pcaconnectorad ../aws/pcaconnectorad/connector_plural_data_source_gen.go ../aws/pcaconnectorad/connector_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_pcaconnectorad_directory_registrations -cftype AWS::PCAConnectorAD::DirectoryRegistration -package pcaconnectorad ../aws/pcaconnectorad/directory_registration_plural_data_source_gen.go ../aws/pcaconnectorad/directory_registration_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_panorama_application_instances -cftype AWS::Panorama::ApplicationInstance -package panorama ../aws/panorama/application_instance_plural_data_source_gen.go ../aws/panorama/application_instance_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_panorama_packages -cftype AWS::Panorama::Package -package panorama ../aws/panorama/package_plural_data_source_gen.go ../aws/panorama/package_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_personalize_datasets -cftype AWS::Personalize::Dataset -package personalize ../aws/personalize/dataset_plural_data_source_gen.go ../aws/personalize/dataset_plural_data_source_gen_test.go @@ -583,6 +591,7 @@ import ( _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/grafana" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/greengrassv2" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/groundstation" + _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/guardduty" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/healthlake" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/iam" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/imagebuilder" @@ -634,6 +643,7 @@ import ( _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/organizations" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/osis" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/panorama" + _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/pcaconnectorad" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/personalize" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/pinpoint" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/pipes" diff --git a/internal/provider/resources.go b/internal/provider/resources.go index 3b5e3ba359..6a410796a9 100644 --- a/internal/provider/resources.go +++ b/internal/provider/resources.go @@ -92,6 +92,7 @@ //go:generate go run generators/resource/main.go -resource awscc_certificatemanager_account -cfschema ../service/cloudformation/schemas/AWS_CertificateManager_Account.json -package certificatemanager -- ../aws/certificatemanager/account_resource_gen.go ../aws/certificatemanager/account_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_chatbot_microsoft_teams_channel_configuration -cfschema ../service/cloudformation/schemas/AWS_Chatbot_MicrosoftTeamsChannelConfiguration.json -package chatbot -- ../aws/chatbot/microsoft_teams_channel_configuration_resource_gen.go ../aws/chatbot/microsoft_teams_channel_configuration_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_chatbot_slack_channel_configuration -cfschema ../service/cloudformation/schemas/AWS_Chatbot_SlackChannelConfiguration.json -package chatbot -- ../aws/chatbot/slack_channel_configuration_resource_gen.go ../aws/chatbot/slack_channel_configuration_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_cleanrooms_analysis_template -cfschema ../service/cloudformation/schemas/AWS_CleanRooms_AnalysisTemplate.json -package cleanrooms -- ../aws/cleanrooms/analysis_template_resource_gen.go ../aws/cleanrooms/analysis_template_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_cleanrooms_collaboration -cfschema ../service/cloudformation/schemas/AWS_CleanRooms_Collaboration.json -package cleanrooms -- ../aws/cleanrooms/collaboration_resource_gen.go ../aws/cleanrooms/collaboration_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_cleanrooms_configured_table -cfschema ../service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTable.json -package cleanrooms -- ../aws/cleanrooms/configured_table_resource_gen.go ../aws/cleanrooms/configured_table_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_cleanrooms_configured_table_association -cfschema ../service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTableAssociation.json -package cleanrooms -- ../aws/cleanrooms/configured_table_association_resource_gen.go ../aws/cleanrooms/configured_table_association_resource_gen_test.go @@ -145,7 +146,6 @@ //go:generate go run generators/resource/main.go -resource awscc_connect_approved_origin -cfschema ../service/cloudformation/schemas/AWS_Connect_ApprovedOrigin.json -package connect -- ../aws/connect/approved_origin_resource_gen.go ../aws/connect/approved_origin_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_connect_contact_flow -cfschema ../service/cloudformation/schemas/AWS_Connect_ContactFlow.json -package connect -- ../aws/connect/contact_flow_resource_gen.go ../aws/connect/contact_flow_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_connect_contact_flow_module -cfschema ../service/cloudformation/schemas/AWS_Connect_ContactFlowModule.json -package connect -- ../aws/connect/contact_flow_module_resource_gen.go ../aws/connect/contact_flow_module_resource_gen_test.go -//go:generate go run generators/resource/main.go -resource awscc_connect_traffic_distribution_group -cfschema ../service/cloudformation/schemas/AWS_Connect_TrafficDistributionGroup.json -package connect -- ../aws/connect/traffic_distribution_group_resource_gen.go ../aws/connect/traffic_distribution_group_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_connect_hours_of_operation -cfschema ../service/cloudformation/schemas/AWS_Connect_HoursOfOperation.json -package connect -- ../aws/connect/hours_of_operation_resource_gen.go ../aws/connect/hours_of_operation_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_connect_instance_storage_config -cfschema ../service/cloudformation/schemas/AWS_Connect_InstanceStorageConfig.json -package connect -- ../aws/connect/instance_storage_config_resource_gen.go ../aws/connect/instance_storage_config_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_connect_integration_association -cfschema ../service/cloudformation/schemas/AWS_Connect_IntegrationAssociation.json -package connect -- ../aws/connect/integration_association_resource_gen.go ../aws/connect/integration_association_resource_gen_test.go @@ -154,10 +154,13 @@ //go:generate go run generators/resource/main.go -resource awscc_connect_queue -cfschema ../service/cloudformation/schemas/AWS_Connect_Queue.json -package connect -- ../aws/connect/queue_resource_gen.go ../aws/connect/queue_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_connect_quick_connect -cfschema ../service/cloudformation/schemas/AWS_Connect_QuickConnect.json -package connect -- ../aws/connect/quick_connect_resource_gen.go ../aws/connect/quick_connect_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_connect_routing_profile -cfschema ../service/cloudformation/schemas/AWS_Connect_RoutingProfile.json -package connect -- ../aws/connect/routing_profile_resource_gen.go ../aws/connect/routing_profile_resource_gen_test.go -//go:generate go run generators/resource/main.go -resource awscc_connect_task_template -cfschema ../service/cloudformation/schemas/AWS_Connect_TaskTemplate.json -package connect -- ../aws/connect/task_template_resource_gen.go ../aws/connect/task_template_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_connect_security_key -cfschema ../service/cloudformation/schemas/AWS_Connect_SecurityKey.json -package connect -- ../aws/connect/security_key_resource_gen.go ../aws/connect/security_key_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_connect_task_template -cfschema ../service/cloudformation/schemas/AWS_Connect_TaskTemplate.json -package connect -- ../aws/connect/task_template_resource_gen.go ../aws/connect/task_template_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_connect_traffic_distribution_group -cfschema ../service/cloudformation/schemas/AWS_Connect_TrafficDistributionGroup.json -package connect -- ../aws/connect/traffic_distribution_group_resource_gen.go ../aws/connect/traffic_distribution_group_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_connect_user -cfschema ../service/cloudformation/schemas/AWS_Connect_User.json -package connect -- ../aws/connect/user_resource_gen.go ../aws/connect/user_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_connect_user_hierarchy_group -cfschema ../service/cloudformation/schemas/AWS_Connect_UserHierarchyGroup.json -package connect -- ../aws/connect/user_hierarchy_group_resource_gen.go ../aws/connect/user_hierarchy_group_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_connect_view -cfschema ../service/cloudformation/schemas/AWS_Connect_View.json -package connect -- ../aws/connect/view_resource_gen.go ../aws/connect/view_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_connect_view_version -cfschema ../service/cloudformation/schemas/AWS_Connect_ViewVersion.json -package connect -- ../aws/connect/view_version_resource_gen.go ../aws/connect/view_version_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_connectcampaigns_campaign -cfschema ../service/cloudformation/schemas/AWS_ConnectCampaigns_Campaign.json -package connectcampaigns -- ../aws/connectcampaigns/campaign_resource_gen.go ../aws/connectcampaigns/campaign_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_controltower_enabled_control -cfschema ../service/cloudformation/schemas/AWS_ControlTower_EnabledControl.json -package controltower -- ../aws/controltower/enabled_control_resource_gen.go ../aws/controltower/enabled_control_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_cur_report_definition -cfschema ../service/cloudformation/schemas/AWS_CUR_ReportDefinition.json -package cur -- ../aws/cur/report_definition_resource_gen.go ../aws/cur/report_definition_resource_gen_test.go @@ -204,6 +207,7 @@ //go:generate go run generators/resource/main.go -resource awscc_ec2_dhcp_options -cfschema ../service/cloudformation/schemas/AWS_EC2_DHCPOptions.json -package ec2 -- ../aws/ec2/dhcp_options_resource_gen.go ../aws/ec2/dhcp_options_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_ec2_fleet -cfschema ../service/cloudformation/schemas/AWS_EC2_EC2Fleet.json -package ec2 -- ../aws/ec2/ec2_fleet_resource_gen.go ../aws/ec2/ec2_fleet_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_eip -cfschema ../service/cloudformation/schemas/AWS_EC2_EIP.json -package ec2 -- ../aws/ec2/eip_resource_gen.go ../aws/ec2/eip_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_ec2_eip_association -cfschema ../service/cloudformation/schemas/AWS_EC2_EIPAssociation.json -package ec2 -- ../aws/ec2/eip_association_resource_gen.go ../aws/ec2/eip_association_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_egress_only_internet_gateway -cfschema ../service/cloudformation/schemas/AWS_EC2_EgressOnlyInternetGateway.json -package ec2 -- ../aws/ec2/egress_only_internet_gateway_resource_gen.go ../aws/ec2/egress_only_internet_gateway_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_enclave_certificate_iam_role_association -cfschema ../service/cloudformation/schemas/AWS_EC2_EnclaveCertificateIamRoleAssociation.json -package ec2 -- ../aws/ec2/enclave_certificate_iam_role_association_resource_gen.go ../aws/ec2/enclave_certificate_iam_role_association_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_flow_log -cfschema ../service/cloudformation/schemas/AWS_EC2_FlowLog.json -package ec2 -- ../aws/ec2/flow_log_resource_gen.go ../aws/ec2/flow_log_resource_gen_test.go @@ -338,6 +342,7 @@ //go:generate go run generators/resource/main.go -resource awscc_greengrassv2_deployment -cfschema ../service/cloudformation/schemas/AWS_GreengrassV2_Deployment.json -package greengrassv2 -- ../aws/greengrassv2/deployment_resource_gen.go ../aws/greengrassv2/deployment_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_groundstation_dataflow_endpoint_group -cfschema ../service/cloudformation/schemas/AWS_GroundStation_DataflowEndpointGroup.json -package groundstation -- ../aws/groundstation/dataflow_endpoint_group_resource_gen.go ../aws/groundstation/dataflow_endpoint_group_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_groundstation_mission_profile -cfschema ../service/cloudformation/schemas/AWS_GroundStation_MissionProfile.json -package groundstation -- ../aws/groundstation/mission_profile_resource_gen.go ../aws/groundstation/mission_profile_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_guardduty_detector -cfschema ../service/cloudformation/schemas/AWS_GuardDuty_Detector.json -package guardduty -- ../aws/guardduty/detector_resource_gen.go ../aws/guardduty/detector_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_healthlake_fhir_datastore -cfschema ../service/cloudformation/schemas/AWS_HealthLake_FHIRDatastore.json -package healthlake -- ../aws/healthlake/fhir_datastore_resource_gen.go ../aws/healthlake/fhir_datastore_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_iam_group_policy -cfschema ../service/cloudformation/schemas/AWS_IAM_GroupPolicy.json -package iam -- ../aws/iam/group_policy_resource_gen.go ../aws/iam/group_policy_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_iam_managed_policy -cfschema ../service/cloudformation/schemas/AWS_IAM_ManagedPolicy.json -package iam -- ../aws/iam/managed_policy_resource_gen.go ../aws/iam/managed_policy_resource_gen_test.go @@ -550,6 +555,11 @@ //go:generate go run generators/resource/main.go -resource awscc_organizations_organizational_unit -cfschema ../service/cloudformation/schemas/AWS_Organizations_OrganizationalUnit.json -package organizations -- ../aws/organizations/organizational_unit_resource_gen.go ../aws/organizations/organizational_unit_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_organizations_policy -cfschema ../service/cloudformation/schemas/AWS_Organizations_Policy.json -package organizations -- ../aws/organizations/policy_resource_gen.go ../aws/organizations/policy_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_organizations_resource_policy -cfschema ../service/cloudformation/schemas/AWS_Organizations_ResourcePolicy.json -package organizations -- ../aws/organizations/resource_policy_resource_gen.go ../aws/organizations/resource_policy_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_pcaconnectorad_connector -cfschema ../service/cloudformation/schemas/AWS_PCAConnectorAD_Connector.json -package pcaconnectorad -- ../aws/pcaconnectorad/connector_resource_gen.go ../aws/pcaconnectorad/connector_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_pcaconnectorad_directory_registration -cfschema ../service/cloudformation/schemas/AWS_PCAConnectorAD_DirectoryRegistration.json -package pcaconnectorad -- ../aws/pcaconnectorad/directory_registration_resource_gen.go ../aws/pcaconnectorad/directory_registration_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_pcaconnectorad_service_principal_name -cfschema ../service/cloudformation/schemas/AWS_PCAConnectorAD_ServicePrincipalName.json -package pcaconnectorad -- ../aws/pcaconnectorad/service_principal_name_resource_gen.go ../aws/pcaconnectorad/service_principal_name_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_pcaconnectorad_template -cfschema ../service/cloudformation/schemas/AWS_PCAConnectorAD_Template.json -package pcaconnectorad -- ../aws/pcaconnectorad/template_resource_gen.go ../aws/pcaconnectorad/template_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_pcaconnectorad_template_group_access_control_entry -cfschema ../service/cloudformation/schemas/AWS_PCAConnectorAD_TemplateGroupAccessControlEntry.json -package pcaconnectorad -- ../aws/pcaconnectorad/template_group_access_control_entry_resource_gen.go ../aws/pcaconnectorad/template_group_access_control_entry_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_panorama_application_instance -cfschema ../service/cloudformation/schemas/AWS_Panorama_ApplicationInstance.json -package panorama -- ../aws/panorama/application_instance_resource_gen.go ../aws/panorama/application_instance_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_panorama_package -cfschema ../service/cloudformation/schemas/AWS_Panorama_Package.json -package panorama -- ../aws/panorama/package_resource_gen.go ../aws/panorama/package_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_panorama_package_version -cfschema ../service/cloudformation/schemas/AWS_Panorama_PackageVersion.json -package panorama -- ../aws/panorama/package_version_resource_gen.go ../aws/panorama/package_version_resource_gen_test.go @@ -824,6 +834,7 @@ import ( _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/grafana" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/greengrassv2" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/groundstation" + _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/guardduty" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/healthlake" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/iam" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/identitystore" @@ -877,6 +888,7 @@ import ( _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/organizations" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/osis" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/panorama" + _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/pcaconnectorad" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/personalize" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/pinpoint" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/pipes" diff --git a/internal/provider/singular_data_sources.go b/internal/provider/singular_data_sources.go index 6b78fe7580..9108f2cffe 100644 --- a/internal/provider/singular_data_sources.go +++ b/internal/provider/singular_data_sources.go @@ -92,6 +92,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_certificatemanager_account -cfschema ../service/cloudformation/schemas/AWS_CertificateManager_Account.json -package certificatemanager ../aws/certificatemanager/account_singular_data_source_gen.go ../aws/certificatemanager/account_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_chatbot_microsoft_teams_channel_configuration -cfschema ../service/cloudformation/schemas/AWS_Chatbot_MicrosoftTeamsChannelConfiguration.json -package chatbot ../aws/chatbot/microsoft_teams_channel_configuration_singular_data_source_gen.go ../aws/chatbot/microsoft_teams_channel_configuration_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_chatbot_slack_channel_configuration -cfschema ../service/cloudformation/schemas/AWS_Chatbot_SlackChannelConfiguration.json -package chatbot ../aws/chatbot/slack_channel_configuration_singular_data_source_gen.go ../aws/chatbot/slack_channel_configuration_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_cleanrooms_analysis_template -cfschema ../service/cloudformation/schemas/AWS_CleanRooms_AnalysisTemplate.json -package cleanrooms ../aws/cleanrooms/analysis_template_singular_data_source_gen.go ../aws/cleanrooms/analysis_template_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_cleanrooms_collaboration -cfschema ../service/cloudformation/schemas/AWS_CleanRooms_Collaboration.json -package cleanrooms ../aws/cleanrooms/collaboration_singular_data_source_gen.go ../aws/cleanrooms/collaboration_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_cleanrooms_configured_table -cfschema ../service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTable.json -package cleanrooms ../aws/cleanrooms/configured_table_singular_data_source_gen.go ../aws/cleanrooms/configured_table_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_cleanrooms_configured_table_association -cfschema ../service/cloudformation/schemas/AWS_CleanRooms_ConfiguredTableAssociation.json -package cleanrooms ../aws/cleanrooms/configured_table_association_singular_data_source_gen.go ../aws/cleanrooms/configured_table_association_singular_data_source_gen_test.go @@ -145,7 +146,6 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_approved_origin -cfschema ../service/cloudformation/schemas/AWS_Connect_ApprovedOrigin.json -package connect ../aws/connect/approved_origin_singular_data_source_gen.go ../aws/connect/approved_origin_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_contact_flow -cfschema ../service/cloudformation/schemas/AWS_Connect_ContactFlow.json -package connect ../aws/connect/contact_flow_singular_data_source_gen.go ../aws/connect/contact_flow_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_contact_flow_module -cfschema ../service/cloudformation/schemas/AWS_Connect_ContactFlowModule.json -package connect ../aws/connect/contact_flow_module_singular_data_source_gen.go ../aws/connect/contact_flow_module_singular_data_source_gen_test.go -//go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_traffic_distribution_group -cfschema ../service/cloudformation/schemas/AWS_Connect_TrafficDistributionGroup.json -package connect ../aws/connect/traffic_distribution_group_singular_data_source_gen.go ../aws/connect/traffic_distribution_group_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_hours_of_operation -cfschema ../service/cloudformation/schemas/AWS_Connect_HoursOfOperation.json -package connect ../aws/connect/hours_of_operation_singular_data_source_gen.go ../aws/connect/hours_of_operation_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_instance_storage_config -cfschema ../service/cloudformation/schemas/AWS_Connect_InstanceStorageConfig.json -package connect ../aws/connect/instance_storage_config_singular_data_source_gen.go ../aws/connect/instance_storage_config_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_integration_association -cfschema ../service/cloudformation/schemas/AWS_Connect_IntegrationAssociation.json -package connect ../aws/connect/integration_association_singular_data_source_gen.go ../aws/connect/integration_association_singular_data_source_gen_test.go @@ -154,10 +154,13 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_queue -cfschema ../service/cloudformation/schemas/AWS_Connect_Queue.json -package connect ../aws/connect/queue_singular_data_source_gen.go ../aws/connect/queue_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_quick_connect -cfschema ../service/cloudformation/schemas/AWS_Connect_QuickConnect.json -package connect ../aws/connect/quick_connect_singular_data_source_gen.go ../aws/connect/quick_connect_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_routing_profile -cfschema ../service/cloudformation/schemas/AWS_Connect_RoutingProfile.json -package connect ../aws/connect/routing_profile_singular_data_source_gen.go ../aws/connect/routing_profile_singular_data_source_gen_test.go -//go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_task_template -cfschema ../service/cloudformation/schemas/AWS_Connect_TaskTemplate.json -package connect ../aws/connect/task_template_singular_data_source_gen.go ../aws/connect/task_template_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_security_key -cfschema ../service/cloudformation/schemas/AWS_Connect_SecurityKey.json -package connect ../aws/connect/security_key_singular_data_source_gen.go ../aws/connect/security_key_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_task_template -cfschema ../service/cloudformation/schemas/AWS_Connect_TaskTemplate.json -package connect ../aws/connect/task_template_singular_data_source_gen.go ../aws/connect/task_template_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_traffic_distribution_group -cfschema ../service/cloudformation/schemas/AWS_Connect_TrafficDistributionGroup.json -package connect ../aws/connect/traffic_distribution_group_singular_data_source_gen.go ../aws/connect/traffic_distribution_group_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_user -cfschema ../service/cloudformation/schemas/AWS_Connect_User.json -package connect ../aws/connect/user_singular_data_source_gen.go ../aws/connect/user_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_user_hierarchy_group -cfschema ../service/cloudformation/schemas/AWS_Connect_UserHierarchyGroup.json -package connect ../aws/connect/user_hierarchy_group_singular_data_source_gen.go ../aws/connect/user_hierarchy_group_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_view -cfschema ../service/cloudformation/schemas/AWS_Connect_View.json -package connect ../aws/connect/view_singular_data_source_gen.go ../aws/connect/view_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_view_version -cfschema ../service/cloudformation/schemas/AWS_Connect_ViewVersion.json -package connect ../aws/connect/view_version_singular_data_source_gen.go ../aws/connect/view_version_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_connectcampaigns_campaign -cfschema ../service/cloudformation/schemas/AWS_ConnectCampaigns_Campaign.json -package connectcampaigns ../aws/connectcampaigns/campaign_singular_data_source_gen.go ../aws/connectcampaigns/campaign_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_controltower_enabled_control -cfschema ../service/cloudformation/schemas/AWS_ControlTower_EnabledControl.json -package controltower ../aws/controltower/enabled_control_singular_data_source_gen.go ../aws/controltower/enabled_control_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_cur_report_definition -cfschema ../service/cloudformation/schemas/AWS_CUR_ReportDefinition.json -package cur ../aws/cur/report_definition_singular_data_source_gen.go ../aws/cur/report_definition_singular_data_source_gen_test.go @@ -204,6 +207,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_dhcp_options -cfschema ../service/cloudformation/schemas/AWS_EC2_DHCPOptions.json -package ec2 ../aws/ec2/dhcp_options_singular_data_source_gen.go ../aws/ec2/dhcp_options_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_ec2_fleet -cfschema ../service/cloudformation/schemas/AWS_EC2_EC2Fleet.json -package ec2 ../aws/ec2/ec2_fleet_singular_data_source_gen.go ../aws/ec2/ec2_fleet_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_eip -cfschema ../service/cloudformation/schemas/AWS_EC2_EIP.json -package ec2 ../aws/ec2/eip_singular_data_source_gen.go ../aws/ec2/eip_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_eip_association -cfschema ../service/cloudformation/schemas/AWS_EC2_EIPAssociation.json -package ec2 ../aws/ec2/eip_association_singular_data_source_gen.go ../aws/ec2/eip_association_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_egress_only_internet_gateway -cfschema ../service/cloudformation/schemas/AWS_EC2_EgressOnlyInternetGateway.json -package ec2 ../aws/ec2/egress_only_internet_gateway_singular_data_source_gen.go ../aws/ec2/egress_only_internet_gateway_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_enclave_certificate_iam_role_association -cfschema ../service/cloudformation/schemas/AWS_EC2_EnclaveCertificateIamRoleAssociation.json -package ec2 ../aws/ec2/enclave_certificate_iam_role_association_singular_data_source_gen.go ../aws/ec2/enclave_certificate_iam_role_association_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_flow_log -cfschema ../service/cloudformation/schemas/AWS_EC2_FlowLog.json -package ec2 ../aws/ec2/flow_log_singular_data_source_gen.go ../aws/ec2/flow_log_singular_data_source_gen_test.go @@ -338,6 +342,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_greengrassv2_deployment -cfschema ../service/cloudformation/schemas/AWS_GreengrassV2_Deployment.json -package greengrassv2 ../aws/greengrassv2/deployment_singular_data_source_gen.go ../aws/greengrassv2/deployment_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_groundstation_dataflow_endpoint_group -cfschema ../service/cloudformation/schemas/AWS_GroundStation_DataflowEndpointGroup.json -package groundstation ../aws/groundstation/dataflow_endpoint_group_singular_data_source_gen.go ../aws/groundstation/dataflow_endpoint_group_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_groundstation_mission_profile -cfschema ../service/cloudformation/schemas/AWS_GroundStation_MissionProfile.json -package groundstation ../aws/groundstation/mission_profile_singular_data_source_gen.go ../aws/groundstation/mission_profile_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_guardduty_detector -cfschema ../service/cloudformation/schemas/AWS_GuardDuty_Detector.json -package guardduty ../aws/guardduty/detector_singular_data_source_gen.go ../aws/guardduty/detector_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_healthlake_fhir_datastore -cfschema ../service/cloudformation/schemas/AWS_HealthLake_FHIRDatastore.json -package healthlake ../aws/healthlake/fhir_datastore_singular_data_source_gen.go ../aws/healthlake/fhir_datastore_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_iam_group_policy -cfschema ../service/cloudformation/schemas/AWS_IAM_GroupPolicy.json -package iam ../aws/iam/group_policy_singular_data_source_gen.go ../aws/iam/group_policy_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_iam_managed_policy -cfschema ../service/cloudformation/schemas/AWS_IAM_ManagedPolicy.json -package iam ../aws/iam/managed_policy_singular_data_source_gen.go ../aws/iam/managed_policy_singular_data_source_gen_test.go @@ -550,6 +555,11 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_organizations_organizational_unit -cfschema ../service/cloudformation/schemas/AWS_Organizations_OrganizationalUnit.json -package organizations ../aws/organizations/organizational_unit_singular_data_source_gen.go ../aws/organizations/organizational_unit_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_organizations_policy -cfschema ../service/cloudformation/schemas/AWS_Organizations_Policy.json -package organizations ../aws/organizations/policy_singular_data_source_gen.go ../aws/organizations/policy_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_organizations_resource_policy -cfschema ../service/cloudformation/schemas/AWS_Organizations_ResourcePolicy.json -package organizations ../aws/organizations/resource_policy_singular_data_source_gen.go ../aws/organizations/resource_policy_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_pcaconnectorad_connector -cfschema ../service/cloudformation/schemas/AWS_PCAConnectorAD_Connector.json -package pcaconnectorad ../aws/pcaconnectorad/connector_singular_data_source_gen.go ../aws/pcaconnectorad/connector_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_pcaconnectorad_directory_registration -cfschema ../service/cloudformation/schemas/AWS_PCAConnectorAD_DirectoryRegistration.json -package pcaconnectorad ../aws/pcaconnectorad/directory_registration_singular_data_source_gen.go ../aws/pcaconnectorad/directory_registration_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_pcaconnectorad_service_principal_name -cfschema ../service/cloudformation/schemas/AWS_PCAConnectorAD_ServicePrincipalName.json -package pcaconnectorad ../aws/pcaconnectorad/service_principal_name_singular_data_source_gen.go ../aws/pcaconnectorad/service_principal_name_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_pcaconnectorad_template -cfschema ../service/cloudformation/schemas/AWS_PCAConnectorAD_Template.json -package pcaconnectorad ../aws/pcaconnectorad/template_singular_data_source_gen.go ../aws/pcaconnectorad/template_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_pcaconnectorad_template_group_access_control_entry -cfschema ../service/cloudformation/schemas/AWS_PCAConnectorAD_TemplateGroupAccessControlEntry.json -package pcaconnectorad ../aws/pcaconnectorad/template_group_access_control_entry_singular_data_source_gen.go ../aws/pcaconnectorad/template_group_access_control_entry_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_panorama_application_instance -cfschema ../service/cloudformation/schemas/AWS_Panorama_ApplicationInstance.json -package panorama ../aws/panorama/application_instance_singular_data_source_gen.go ../aws/panorama/application_instance_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_panorama_package -cfschema ../service/cloudformation/schemas/AWS_Panorama_Package.json -package panorama ../aws/panorama/package_singular_data_source_gen.go ../aws/panorama/package_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_panorama_package_version -cfschema ../service/cloudformation/schemas/AWS_Panorama_PackageVersion.json -package panorama ../aws/panorama/package_version_singular_data_source_gen.go ../aws/panorama/package_version_singular_data_source_gen_test.go @@ -824,6 +834,7 @@ import ( _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/grafana" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/greengrassv2" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/groundstation" + _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/guardduty" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/healthlake" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/iam" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/identitystore" @@ -877,6 +888,7 @@ import ( _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/organizations" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/osis" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/panorama" + _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/pcaconnectorad" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/personalize" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/pinpoint" _ "github.com/hashicorp/terraform-provider-awscc/internal/aws/pipes" diff --git a/internal/service/cloudformation/schemas/AWS_CleanRooms_AnalysisTemplate.json b/internal/service/cloudformation/schemas/AWS_CleanRooms_AnalysisTemplate.json new file mode 100644 index 0000000000..0188c7b0c3 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_CleanRooms_AnalysisTemplate.json @@ -0,0 +1,267 @@ +{ + "typeName": "AWS::CleanRooms::AnalysisTemplate", + "description": "Represents a stored analysis within a collaboration", + "definitions": { + "AnalysisParameter": { + "type": "object", + "additionalProperties": false, + "properties": { + "DefaultValue": { + "type": "string", + "minLength": 0, + "maxLength": 250 + }, + "Name": { + "type": "string", + "minLength": 1, + "maxLength": 100, + "pattern": "[0-9a-zA-Z_]+" + }, + "Type": { + "type": "string", + "enum": [ + "SMALLINT", + "INTEGER", + "BIGINT", + "DECIMAL", + "REAL", + "DOUBLE_PRECISION", + "BOOLEAN", + "CHAR", + "VARCHAR", + "DATE", + "TIMESTAMP", + "TIMESTAMPTZ", + "TIME", + "TIMETZ", + "VARBYTE" + ] + } + }, + "required": [ + "Name", + "Type" + ] + }, + "TableName": { + "type": "string", + "maxLength": 128, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$" + }, + "ReferencedTables": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/TableName" + }, + "minItems": 0 + }, + "AnalysisSchema": { + "type": "object", + "additionalProperties": false, + "properties": { + "ReferencedTables": { + "$ref": "#/definitions/ReferencedTables" + } + }, + "required": [ + "ReferencedTables" + ] + }, + "AnalysisSource": { + "type": "object", + "additionalProperties": false, + "properties": { + "Text": { + "type": "string", + "minLength": 0, + "maxLength": 15000 + } + }, + "required": [ + "Text" + ] + }, + "Tag": { + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "Value": { + "type": "string", + "minLength": 1, + "maxLength": 256 + } + }, + "required": [ + "Value", + "Key" + ] + } + }, + "properties": { + "Arn": { + "type": "string", + "maxLength": 200 + }, + "CollaborationArn": { + "type": "string", + "maxLength": 100 + }, + "CollaborationIdentifier": { + "type": "string", + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + }, + "Tags": { + "description": "An arbitrary set of tags (key-value pairs) for this cleanrooms analysis template.", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "AnalysisParameters": { + "description": "The member who can query can provide this placeholder for a literal data value in an analysis template", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AnalysisParameter" + }, + "type": "array", + "minItems": 0, + "maxItems": 10 + }, + "AnalysisTemplateIdentifier": { + "type": "string", + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + }, + "Description": { + "type": "string", + "maxLength": 255, + "pattern": "" + }, + "MembershipArn": { + "type": "string", + "maxLength": 100 + }, + "MembershipIdentifier": { + "type": "string", + "maxLength": 36, + "minLength": 36, + "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + }, + "Name": { + "type": "string", + "maxLength": 128, + "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$" + }, + "Schema": { + "$ref": "#/definitions/AnalysisSchema" + }, + "Source": { + "$ref": "#/definitions/AnalysisSource" + }, + "Format": { + "type": "string", + "enum": [ + "SQL" + ] + } + }, + "required": [ + "Source", + "Format", + "Name", + "MembershipIdentifier" + ], + "readOnlyProperties": [ + "/properties/CollaborationArn", + "/properties/CollaborationIdentifier", + "/properties/AnalysisTemplateIdentifier", + "/properties/Schema", + "/properties/Arn", + "/properties/MembershipArn" + ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/MembershipIdentifier", + "/properties/Source", + "/properties/Source/Text", + "/properties/Format", + "/properties/AnalysisParameters", + "/properties/AnalysisParameters/Name", + "/properties/AnalysisParameters/Type", + "/properties/AnalysisParameters/DefaultValue" + ], + "primaryIdentifier": [ + "/properties/AnalysisTemplateIdentifier", + "/properties/MembershipIdentifier" + ], + "replacementStrategy": "delete_then_create", + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" + }, + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cleanrooms", + "handlers": { + "create": { + "permissions": [ + "cleanrooms:CreateAnalysisTemplate", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:GetAnalysisTemplate", + "cleanrooms:ListAnalysisTemplates" + ] + }, + "read": { + "permissions": [ + "cleanrooms:GetAnalysisTemplate", + "cleanrooms:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "cleanrooms:UpdateAnalysisTemplate", + "cleanrooms:GetAnalysisTemplate", + "cleanrooms:ListTagsForResource", + "cleanrooms:TagResource", + "cleanrooms:UntagResource" + ] + }, + "delete": { + "permissions": [ + "cleanrooms:DeleteAnalysisTemplate", + "cleanrooms:GetAnalysisTemplate", + "cleanrooms:ListAnalysisTemplates", + "cleanrooms:ListTagsForResource", + "cleanrooms:UntagResource" + ] + }, + "list": { + "permissions": [ + "cleanrooms:ListAnalysisTemplates" + ], + "handlerSchema": { + "properties": { + "MembershipIdentifier": { + "$ref": "resource-schema.json#/properties/MembershipIdentifier" + } + }, + "required": [ + "MembershipIdentifier" + ] + } + } + }, + "additionalProperties": false +} diff --git a/internal/service/cloudformation/schemas/AWS_Connect_View.json b/internal/service/cloudformation/schemas/AWS_Connect_View.json new file mode 100644 index 0000000000..65c2b2eae3 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Connect_View.json @@ -0,0 +1,162 @@ +{ + "typeName": "AWS::Connect::View", + "description": "Resource Type definition for AWS::Connect::View", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters", + "pattern": "", + "minLength": 1, + "maxLength": 128 + }, + "Value": { + "type": "string", + "description": "The value for the tag. . You can specify a value that is maximum of 256 Unicode characters", + "maxLength": 256 + } + }, + "required": [ + "Key", + "Value" + ] + } + }, + "properties": { + "InstanceArn": { + "description": "The Amazon Resource Name (ARN) of the instance.", + "type": "string", + "minLength": 1, + "maxLength": 100, + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$" + }, + "ViewArn": { + "description": "The Amazon Resource Name (ARN) of the view.", + "type": "string", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/view/[-:$a-zA-Z0-9]*$", + "minLength": 1, + "maxLength": 255 + }, + "ViewId": { + "description": "The view id of the view.", + "type": "string", + "minLength": 1, + "maxLength": 500, + "pattern": "^[a-zA-Z0-9\\_\\-:\\/$]+$" + }, + "Name": { + "description": "The name of the view.", + "type": "string", + "minLength": 1, + "maxLength": 512, + "pattern": "^([\\p{L}\\p{N}_.:\\/=+\\-@]+[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@]*)$" + }, + "Description": { + "description": "The description of the view.", + "type": "string", + "minLength": 0, + "maxLength": 4096, + "pattern": "^([\\p{L}\\p{N}_.:\\/=+\\-@,]+[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@,]*)$" + }, + "Template": { + "description": "The template of the view as JSON.", + "type": "object" + }, + "Actions": { + "description": "The actions of the view in an array.", + "type": "array", + "insertionOrder": false, + "maxItems": 1000, + "items": { + "type": "string", + "minLength": 1, + "maxLength": 255, + "pattern": "^([\\p{L}\\p{N}_.:\\/=+\\-@]+[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@]*)$" + } + }, + "ViewContentSha256": { + "description": "The view content hash.", + "type": "string", + "pattern": "^[a-zA-Z0-9]{64}$" + }, + "Tags": { + "description": "One or more tags.", + "type": "array", + "maxItems": 50, + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + } + } + }, + "required": [ + "InstanceArn", + "Template", + "Actions", + "Name" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" + }, + "handlers": { + "create": { + "permissions": [ + "connect:CreateView", + "connect:TagResource" + ] + }, + "read": { + "permissions": [ + "connect:DescribeView" + ] + }, + "delete": { + "permissions": [ + "connect:DeleteView", + "connect:UntagResource" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "InstanceArn": { + "$ref": "resource-schema.json#/properties/InstanceArn" + } + }, + "required": [ + "InstanceArn" + ] + }, + "permissions": [ + "connect:ListViews" + ] + }, + "update": { + "permissions": [ + "connect:UpdateViewMetadata", + "connect:UpdateViewContent", + "connect:TagResource", + "connect:UntagResource" + ] + } + }, + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/ViewArn" + ], + "readOnlyProperties": [ + "/properties/ViewArn", + "/properties/ViewId", + "/properties/ViewContentSha256" + ] +} diff --git a/internal/service/cloudformation/schemas/AWS_Connect_ViewVersion.json b/internal/service/cloudformation/schemas/AWS_Connect_ViewVersion.json new file mode 100644 index 0000000000..c3253c7af1 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Connect_ViewVersion.json @@ -0,0 +1,99 @@ +{ + "typeName": "AWS::Connect::ViewVersion", + "description": "Resource Type definition for AWS::Connect::ViewVersion", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, + "properties": { + "ViewArn": { + "description": "The Amazon Resource Name (ARN) of the view for which a version is being created.", + "type": "string", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/view/[-:a-zA-Z0-9]*$", + "minLength": 1, + "maxLength": 255 + }, + "ViewVersionArn": { + "description": "The Amazon Resource Name (ARN) of the created view version.", + "type": "string", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/view/[-:a-zA-Z0-9]*$", + "minLength": 1, + "maxLength": 255 + }, + "VersionDescription": { + "description": "The description for the view version.", + "type": "string", + "minLength": 1, + "maxLength": 4096, + "pattern": "^([\\p{L}\\p{N}_.:\\/=+\\-@,]+[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@,]*)$" + }, + "ViewContentSha256": { + "description": "The view content hash to be checked.", + "type": "string", + "minLength": 1, + "maxLength": 64, + "pattern": "^[a-zA-Z0-9]{64}$" + }, + "Version": { + "description": "The version of the view.", + "type": "integer" + } + }, + "required": [ + "ViewArn" + ], + "propertyTransform": { + "/properties/ViewArn": "$join([\"^\", ViewArn, \":[0-9]*$\"])" + }, + "handlers": { + "create": { + "permissions": [ + "connect:CreateViewVersion" + ] + }, + "read": { + "permissions": [ + "connect:DescribeView" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ViewArn": { + "$ref": "resource-schema.json#/properties/ViewArn" + } + }, + "required": [ + "ViewArn" + ] + }, + "permissions": [ + "connect:ListViewVersions" + ] + }, + "update": { + "permissions": [] + }, + "delete": { + "permissions": [ + "connect:DeleteViewVersion" + ] + } + }, + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/ViewVersionArn" + ], + "readOnlyProperties": [ + "/properties/ViewVersionArn", + "/properties/Version" + ], + "createOnlyProperties": [ + "/properties/ViewArn", + "/properties/VersionDescription", + "/properties/ViewContentSha256" + ] +} diff --git a/internal/service/cloudformation/schemas/AWS_EC2_EIPAssociation.json b/internal/service/cloudformation/schemas/AWS_EC2_EIPAssociation.json new file mode 100644 index 0000000000..2f3d719b52 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_EC2_EIPAssociation.json @@ -0,0 +1,76 @@ +{ + "typeName": "AWS::EC2::EIPAssociation", + "description": "Resource schema for EC2 EIP association.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2/tree/master/aws-ec2-eipassociation", + "properties": { + "Id": { + "description": "Composite ID of non-empty properties, to determine the identification.", + "type": "string" + }, + "AllocationId": { + "description": "The allocation ID. This is required for EC2-VPC.", + "type": "string" + }, + "NetworkInterfaceId": { + "description": "The ID of the network interface.", + "type": "string" + }, + "InstanceId": { + "description": "The ID of the instance.", + "type": "string" + }, + "PrivateIpAddress": { + "description": "The primary or secondary private IP address to associate with the Elastic IP address.", + "type": "string" + }, + "EIP": { + "description": "The Elastic IP address to associate with the instance.", + "type": "string" + } + }, + "additionalProperties": false, + "tagging": { + "taggable": false + }, + "readOnlyProperties": [ + "/properties/Id" + ], + "createOnlyProperties": [ + "/properties/AllocationId", + "/properties/NetworkInterfaceId", + "/properties/InstanceId", + "/properties/PrivateIpAddress", + "/properties/EIP" + ], + "replacementStrategy": "delete_then_create", + "primaryIdentifier": [ + "/properties/Id" + ], + "deprecatedProperties": [ + "/properties/EIP" + ], + "handlers": { + "create": { + "permissions": [ + "ec2:DescribeAddresses", + "ec2:AssociateAddress" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeAddresses" + ] + }, + "delete": { + "permissions": [ + "ec2:DisassociateAddress", + "ec2:DescribeAddresses" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeAddresses" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_GuardDuty_Detector.json b/internal/service/cloudformation/schemas/AWS_GuardDuty_Detector.json new file mode 100644 index 0000000000..2d7aefb082 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_GuardDuty_Detector.json @@ -0,0 +1,226 @@ +{ + "typeName": "AWS::GuardDuty::Detector", + "description": "Resource Type definition for AWS::GuardDuty::Detector", + "additionalProperties": false, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, + "properties": { + "FindingPublishingFrequency": { + "type": "string" + }, + "Enable": { + "type": "boolean" + }, + "DataSources": { + "$ref": "#/definitions/CFNDataSourceConfigurations" + }, + "Features": { + "type": "array", + "items": { + "$ref": "#/definitions/CFNFeatureConfiguration" + } + }, + "Id": { + "type": "string" + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/definitions/TagItem" + } + } + }, + "definitions": { + "TagItem": { + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "minLength": 1, + "maxLength": 128 + }, + "Value": { + "type": "string", + "minLength": 0, + "maxLength": 256 + } + }, + "required": [ + "Key", + "Value" + ] + }, + "CFNS3LogsConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ] + }, + "CFNKubernetesAuditLogsConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "required": [ + "Enable" + ] + }, + "CFNKubernetesConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "AuditLogs": { + "$ref": "#/definitions/CFNKubernetesAuditLogsConfiguration" + } + }, + "required": [ + "AuditLogs" + ] + }, + "CFNDataSourceConfigurations": { + "type": "object", + "additionalProperties": false, + "properties": { + "S3Logs": { + "$ref": "#/definitions/CFNS3LogsConfiguration" + }, + "Kubernetes": { + "$ref": "#/definitions/CFNKubernetesConfiguration" + }, + "MalwareProtection": { + "$ref": "#/definitions/CFNMalwareProtectionConfiguration" + } + } + }, + "CFNMalwareProtectionConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "ScanEc2InstanceWithFindings": { + "$ref": "#/definitions/CFNScanEc2InstanceWithFindingsConfiguration" + } + } + }, + "CFNScanEc2InstanceWithFindingsConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "EbsVolumes": { + "type": "boolean" + } + } + }, + "CFNFeatureConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "Name": { + "type": "string", + "enum": [ + "FLOW_LOGS", + "CLOUD_TRAIL", + "DNS_LOGS", + "S3_DATA_EVENTS", + "EKS_AUDIT_LOGS", + "EBS_MALWARE_PROTECTION", + "RDS_LOGIN_EVENTS", + "LAMBDA_NETWORK_LOGS", + "EKS_RUNTIME_MONITORING" + ] + }, + "Status": { + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, + "AdditionalConfiguration": { + "type": "array", + "items": { + "$ref": "#/definitions/CFNFeatureAdditionalConfiguration" + } + } + }, + "required": [ + "Name", + "Status" + ] + }, + "CFNFeatureAdditionalConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "Name": { + "type": "string", + "minLength": 1, + "maxLength": 256 + }, + "Status": { + "type": "string", + "minLength": 1, + "maxLength": 128 + } + } + } + }, + "required": [ + "Enable" + ], + "handlers": { + "create": { + "permissions": [ + "guardduty:CreateDetector", + "guardduty:GetDetector", + "guardduty:TagResource", + "iam:CreateServiceLinkedRole", + "iam:GetRole" + ] + }, + "read": { + "permissions": [ + "guardduty:GetDetector" + ] + }, + "delete": { + "permissions": [ + "guardduty:ListDetectors", + "guardduty:DeleteDetector" + ] + }, + "update": { + "permissions": [ + "guardduty:UpdateDetector", + "guardduty:GetDetector", + "guardduty:ListDetectors", + "iam:CreateServiceLinkedRole", + "iam:GetRole" + ] + }, + "list": { + "permissions": [ + "guardduty:ListDetectors" + ] + } + }, + "primaryIdentifier": [ + "/properties/Id" + ], + "readOnlyProperties": [ + "/properties/Id" + ] +} diff --git a/internal/service/cloudformation/schemas/AWS_PCAConnectorAD_Connector.json b/internal/service/cloudformation/schemas/AWS_PCAConnectorAD_Connector.json new file mode 100644 index 0000000000..9c7769010d --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_PCAConnectorAD_Connector.json @@ -0,0 +1,132 @@ +{ + "typeName": "AWS::PCAConnectorAD::Connector", + "description": "Definition of AWS::PCAConnectorAD::Connector Resource Type", + "definitions": { + "Tags": { + "type": "object", + "patternProperties": { + "": { + "type": "string" + } + }, + "additionalProperties": false + }, + "VpcInformation": { + "type": "object", + "properties": { + "SecurityGroupIds": { + "type": "array", + "items": { + "type": "string", + "maxLength": 20, + "minLength": 11, + "pattern": "^(?:sg-[0-9a-f]{8}|sg-[0-9a-f]{17})$" + }, + "maxItems": 5, + "minItems": 1, + "uniqueItems": true + } + }, + "required": [ + "SecurityGroupIds" + ], + "additionalProperties": false + } + }, + "properties": { + "CertificateAuthorityArn": { + "type": "string", + "maxLength": 200, + "minLength": 5, + "pattern": "^arn:[\\w-]+:acm-pca:[\\w-]+:[0-9]+:certificate-authority(\\/[\\w-]+)$" + }, + "ConnectorArn": { + "type": "string", + "maxLength": 200, + "minLength": 5, + "pattern": "^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:connector(\\/[\\w-]+)$" + }, + "DirectoryId": { + "type": "string", + "pattern": "^d-[0-9a-f]{10}$" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "VpcInformation": { + "$ref": "#/definitions/VpcInformation" + } + }, + "required": [ + "CertificateAuthorityArn", + "DirectoryId", + "VpcInformation" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" + }, + "readOnlyProperties": [ + "/properties/ConnectorArn" + ], + "writeOnlyProperties": [ + "/properties/CertificateAuthorityArn", + "/properties/DirectoryId", + "/properties/Tags", + "/properties/VpcInformation" + ], + "createOnlyProperties": [ + "/properties/CertificateAuthorityArn", + "/properties/DirectoryId", + "/properties/VpcInformation" + ], + "primaryIdentifier": [ + "/properties/ConnectorArn" + ], + "handlers": { + "create": { + "permissions": [ + "acm-pca:DescribeCertificateAuthority", + "acm-pca:GetCertificateAuthorityCertificate", + "acm-pca:GetCertificate", + "acm-pca:IssueCertificate", + "ds:DescribeDirectories", + "ec2:CreateTags", + "ec2:CreateVpcEndpoint", + "ec2:DescribeVpcEndpoints", + "pca-connector-ad:CreateConnector", + "pca-connector-ad:GetConnector" + ] + }, + "read": { + "permissions": [ + "pca-connector-ad:ListTagsForResource", + "pca-connector-ad:GetConnector" + ] + }, + "delete": { + "permissions": [ + "pca-connector-ad:GetConnector", + "pca-connector-ad:DeleteConnector", + "ec2:DeleteVpcEndpoints", + "ec2:DescribeVpcEndpoints" + ] + }, + "list": { + "permissions": [ + "pca-connector-ad:ListConnectors" + ] + }, + "update": { + "permissions": [ + "pca-connector-ad:ListTagsForResource", + "pca-connector-ad:TagResource", + "pca-connector-ad:UntagResource" + ] + } + }, + "additionalProperties": false +} diff --git a/internal/service/cloudformation/schemas/AWS_PCAConnectorAD_DirectoryRegistration.json b/internal/service/cloudformation/schemas/AWS_PCAConnectorAD_DirectoryRegistration.json new file mode 100644 index 0000000000..5ecf35b4d9 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_PCAConnectorAD_DirectoryRegistration.json @@ -0,0 +1,91 @@ +{ + "typeName": "AWS::PCAConnectorAD::DirectoryRegistration", + "description": "Definition of AWS::PCAConnectorAD::DirectoryRegistration Resource Type", + "definitions": { + "Tags": { + "type": "object", + "patternProperties": { + "": { + "type": "string" + } + }, + "additionalProperties": false + } + }, + "properties": { + "DirectoryId": { + "type": "string", + "pattern": "^d-[0-9a-f]{10}$" + }, + "DirectoryRegistrationArn": { + "type": "string", + "maxLength": 200, + "minLength": 5, + "pattern": "^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:directory-registration(\\/[\\w-]+)$" + }, + "Tags": { + "$ref": "#/definitions/Tags" + } + }, + "required": [ + "DirectoryId" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" + }, + "readOnlyProperties": [ + "/properties/DirectoryRegistrationArn" + ], + "writeOnlyProperties": [ + "/properties/DirectoryId", + "/properties/Tags" + ], + "createOnlyProperties": [ + "/properties/DirectoryId" + ], + "primaryIdentifier": [ + "/properties/DirectoryRegistrationArn" + ], + "handlers": { + "create": { + "permissions": [ + "pca-connector-ad:GetDirectoryRegistration", + "pca-connector-ad:CreateDirectoryRegistration", + "ds:AuthorizeApplication", + "ds:DescribeDirectories" + ] + }, + "read": { + "permissions": [ + "pca-connector-ad:ListTagsForResource", + "pca-connector-ad:GetDirectoryRegistration" + ] + }, + "delete": { + "permissions": [ + "pca-connector-ad:GetDirectoryRegistration", + "pca-connector-ad:DeleteDirectoryRegistration", + "ds:DescribeDirectories", + "ds:UnauthorizeApplication", + "ds:UpdateAuthorizedApplication" + ] + }, + "list": { + "permissions": [ + "pca-connector-ad:ListDirectoryRegistrations" + ] + }, + "update": { + "permissions": [ + "pca-connector-ad:ListTagsForResource", + "pca-connector-ad:TagResource", + "pca-connector-ad:UntagResource" + ] + } + }, + "additionalProperties": false +} diff --git a/internal/service/cloudformation/schemas/AWS_PCAConnectorAD_ServicePrincipalName.json b/internal/service/cloudformation/schemas/AWS_PCAConnectorAD_ServicePrincipalName.json new file mode 100644 index 0000000000..2794391570 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_PCAConnectorAD_ServicePrincipalName.json @@ -0,0 +1,70 @@ +{ + "typeName": "AWS::PCAConnectorAD::ServicePrincipalName", + "description": "Definition of AWS::PCAConnectorAD::ServicePrincipalName Resource Type", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-pcaconnectorad", + "properties": { + "ConnectorArn": { + "type": "string", + "maxLength": 200, + "minLength": 5, + "pattern": "^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:connector(\\/[\\w-]+)$" + }, + "DirectoryRegistrationArn": { + "type": "string", + "maxLength": 200, + "minLength": 5, + "pattern": "^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:directory-registration(\\/[\\w-]+)$" + } + }, + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, + "createOnlyProperties": [ + "/properties/ConnectorArn", + "/properties/DirectoryRegistrationArn" + ], + "primaryIdentifier": [ + "/properties/ConnectorArn", + "/properties/DirectoryRegistrationArn" + ], + "handlers": { + "create": { + "permissions": [ + "ds:UpdateAuthorizedApplication", + "pca-connector-ad:GetServicePrincipalName", + "pca-connector-ad:CreateServicePrincipalName" + ] + }, + "read": { + "permissions": [ + "pca-connector-ad:GetServicePrincipalName" + ] + }, + "delete": { + "permissions": [ + "ds:UpdateAuthorizedApplication", + "pca-connector-ad:GetServicePrincipalName", + "pca-connector-ad:DeleteServicePrincipalName" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "DirectoryRegistrationArn": { + "$ref": "resource-schema.json#/properties/DirectoryRegistrationArn" + } + }, + "required": [ + "DirectoryRegistrationArn" + ] + }, + "permissions": [ + "pca-connector-ad:ListServicePrincipalNames" + ] + } + }, + "additionalProperties": false +} diff --git a/internal/service/cloudformation/schemas/AWS_PCAConnectorAD_Template.json b/internal/service/cloudformation/schemas/AWS_PCAConnectorAD_Template.json new file mode 100644 index 0000000000..e7109ffd07 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_PCAConnectorAD_Template.json @@ -0,0 +1,1037 @@ +{ + "typeName": "AWS::PCAConnectorAD::Template", + "description": "Represents a template that defines certificate configurations, both for issuance and client handling", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-pcaconnectorad", + "definitions": { + "ApplicationPolicies": { + "type": "object", + "properties": { + "Critical": { + "type": "boolean" + }, + "Policies": { + "type": "array", + "items": { + "$ref": "#/definitions/ApplicationPolicy" + }, + "maxItems": 100, + "minItems": 1, + "uniqueItems": true + } + }, + "required": [ + "Policies" + ], + "additionalProperties": false + }, + "ApplicationPolicy": { + "oneOf": [ + { + "type": "object", + "title": "PolicyType", + "properties": { + "PolicyType": { + "$ref": "#/definitions/ApplicationPolicyType" + } + }, + "required": [ + "PolicyType" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "PolicyObjectIdentifier", + "properties": { + "PolicyObjectIdentifier": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "pattern": "^([0-2])\\.([0-9]|([0-3][0-9]))(\\.([0-9]+)){0,126}$" + } + }, + "required": [ + "PolicyObjectIdentifier" + ], + "additionalProperties": false + } + ] + }, + "ApplicationPolicyType": { + "type": "string", + "enum": [ + "ALL_APPLICATION_POLICIES", + "ANY_PURPOSE", + "ATTESTATION_IDENTITY_KEY_CERTIFICATE", + "CERTIFICATE_REQUEST_AGENT", + "CLIENT_AUTHENTICATION", + "CODE_SIGNING", + "CTL_USAGE", + "DIGITAL_RIGHTS", + "DIRECTORY_SERVICE_EMAIL_REPLICATION", + "DISALLOWED_LIST", + "DNS_SERVER_TRUST", + "DOCUMENT_ENCRYPTION", + "DOCUMENT_SIGNING", + "DYNAMIC_CODE_GENERATOR", + "EARLY_LAUNCH_ANTIMALWARE_DRIVER", + "EMBEDDED_WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + "ENCLAVE", + "ENCRYPTING_FILE_SYSTEM", + "ENDORSEMENT_KEY_CERTIFICATE", + "FILE_RECOVERY", + "HAL_EXTENSION", + "IP_SECURITY_END_SYSTEM", + "IP_SECURITY_IKE_INTERMEDIATE", + "IP_SECURITY_TUNNEL_TERMINATION", + "IP_SECURITY_USER", + "ISOLATED_USER_MODE", + "KDC_AUTHENTICATION", + "KERNEL_MODE_CODE_SIGNING", + "KEY_PACK_LICENSES", + "KEY_RECOVERY", + "KEY_RECOVERY_AGENT", + "LICENSE_SERVER_VERIFICATION", + "LIFETIME_SIGNING", + "MICROSOFT_PUBLISHER", + "MICROSOFT_TIME_STAMPING", + "MICROSOFT_TRUST_LIST_SIGNING", + "OCSP_SIGNING", + "OEM_WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + "PLATFORM_CERTIFICATE", + "PREVIEW_BUILD_SIGNING", + "PRIVATE_KEY_ARCHIVAL", + "PROTECTED_PROCESS_LIGHT_VERIFICATION", + "PROTECTED_PROCESS_VERIFICATION", + "QUALIFIED_SUBORDINATION", + "REVOKED_LIST_SIGNER", + "ROOT_PROGRAM_AUTO_UPDATE_CA_REVOCATION", + "ROOT_PROGRAM_AUTO_UPDATE_END_REVOCATION", + "ROOT_PROGRAM_NO_OSCP_FAILOVER_TO_CRL", + "ROOT_LIST_SIGNER", + "SECURE_EMAIL", + "SERVER_AUTHENTICATION", + "SMART_CARD_LOGIN", + "SPC_ENCRYPTED_DIGEST_RETRY_COUNT", + "SPC_RELAXED_PE_MARKER_CHECK", + "TIME_STAMPING", + "WINDOWS_HARDWARE_DRIVER_ATTESTED_VERIFICATION", + "WINDOWS_HARDWARE_DRIVER_EXTENDED_VERIFICATION", + "WINDOWS_HARDWARE_DRIVER_VERIFICATION", + "WINDOWS_HELLO_RECOVERY_KEY_ENCRYPTION", + "WINDOWS_KITS_COMPONENT", + "WINDOWS_RT_VERIFICATION", + "WINDOWS_SOFTWARE_EXTENSION_VERIFICATION", + "WINDOWS_STORE", + "WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + "WINDOWS_TCB_COMPONENT", + "WINDOWS_THIRD_PARTY_APPLICATION_COMPONENT", + "WINDOWS_UPDATE" + ] + }, + "CertificateValidity": { + "type": "object", + "properties": { + "ValidityPeriod": { + "$ref": "#/definitions/ValidityPeriod" + }, + "RenewalPeriod": { + "$ref": "#/definitions/ValidityPeriod" + } + }, + "required": [ + "RenewalPeriod", + "ValidityPeriod" + ], + "additionalProperties": false + }, + "ClientCompatibilityV2": { + "type": "string", + "enum": [ + "WINDOWS_SERVER_2003", + "WINDOWS_SERVER_2008", + "WINDOWS_SERVER_2008_R2", + "WINDOWS_SERVER_2012", + "WINDOWS_SERVER_2012_R2", + "WINDOWS_SERVER_2016" + ] + }, + "ClientCompatibilityV3": { + "type": "string", + "enum": [ + "WINDOWS_SERVER_2008", + "WINDOWS_SERVER_2008_R2", + "WINDOWS_SERVER_2012", + "WINDOWS_SERVER_2012_R2", + "WINDOWS_SERVER_2016" + ] + }, + "ClientCompatibilityV4": { + "type": "string", + "enum": [ + "WINDOWS_SERVER_2012", + "WINDOWS_SERVER_2012_R2", + "WINDOWS_SERVER_2016" + ] + }, + "EnrollmentFlagsV2": { + "type": "object", + "properties": { + "IncludeSymmetricAlgorithms": { + "type": "boolean" + }, + "UserInteractionRequired": { + "type": "boolean" + }, + "RemoveInvalidCertificateFromPersonalStore": { + "type": "boolean" + }, + "NoSecurityExtension": { + "type": "boolean" + }, + "EnableKeyReuseOnNtTokenKeysetStorageFull": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "EnrollmentFlagsV3": { + "type": "object", + "properties": { + "IncludeSymmetricAlgorithms": { + "type": "boolean" + }, + "UserInteractionRequired": { + "type": "boolean" + }, + "RemoveInvalidCertificateFromPersonalStore": { + "type": "boolean" + }, + "NoSecurityExtension": { + "type": "boolean" + }, + "EnableKeyReuseOnNtTokenKeysetStorageFull": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "EnrollmentFlagsV4": { + "type": "object", + "properties": { + "IncludeSymmetricAlgorithms": { + "type": "boolean" + }, + "UserInteractionRequired": { + "type": "boolean" + }, + "RemoveInvalidCertificateFromPersonalStore": { + "type": "boolean" + }, + "NoSecurityExtension": { + "type": "boolean" + }, + "EnableKeyReuseOnNtTokenKeysetStorageFull": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "ExtensionsV2": { + "type": "object", + "properties": { + "KeyUsage": { + "$ref": "#/definitions/KeyUsage" + }, + "ApplicationPolicies": { + "$ref": "#/definitions/ApplicationPolicies" + } + }, + "required": [ + "KeyUsage" + ], + "additionalProperties": false + }, + "ExtensionsV3": { + "type": "object", + "properties": { + "KeyUsage": { + "$ref": "#/definitions/KeyUsage" + }, + "ApplicationPolicies": { + "$ref": "#/definitions/ApplicationPolicies" + } + }, + "required": [ + "KeyUsage" + ], + "additionalProperties": false + }, + "ExtensionsV4": { + "type": "object", + "properties": { + "KeyUsage": { + "$ref": "#/definitions/KeyUsage" + }, + "ApplicationPolicies": { + "$ref": "#/definitions/ApplicationPolicies" + } + }, + "required": [ + "KeyUsage" + ], + "additionalProperties": false + }, + "GeneralFlagsV2": { + "type": "object", + "properties": { + "AutoEnrollment": { + "type": "boolean" + }, + "MachineType": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "GeneralFlagsV3": { + "type": "object", + "properties": { + "AutoEnrollment": { + "type": "boolean" + }, + "MachineType": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "GeneralFlagsV4": { + "type": "object", + "properties": { + "AutoEnrollment": { + "type": "boolean" + }, + "MachineType": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "HashAlgorithm": { + "type": "string", + "enum": [ + "SHA256", + "SHA384", + "SHA512" + ] + }, + "KeySpec": { + "type": "string", + "enum": [ + "KEY_EXCHANGE", + "SIGNATURE" + ] + }, + "KeyUsage": { + "type": "object", + "properties": { + "Critical": { + "type": "boolean" + }, + "UsageFlags": { + "$ref": "#/definitions/KeyUsageFlags" + } + }, + "required": [ + "UsageFlags" + ], + "additionalProperties": false + }, + "KeyUsageFlags": { + "type": "object", + "properties": { + "DigitalSignature": { + "type": "boolean" + }, + "NonRepudiation": { + "type": "boolean" + }, + "KeyEncipherment": { + "type": "boolean" + }, + "DataEncipherment": { + "type": "boolean" + }, + "KeyAgreement": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "KeyUsageProperty": { + "oneOf": [ + { + "type": "object", + "title": "PropertyType", + "properties": { + "PropertyType": { + "$ref": "#/definitions/KeyUsagePropertyType" + } + }, + "required": [ + "PropertyType" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "PropertyFlags", + "properties": { + "PropertyFlags": { + "$ref": "#/definitions/KeyUsagePropertyFlags" + } + }, + "required": [ + "PropertyFlags" + ], + "additionalProperties": false + } + ] + }, + "KeyUsagePropertyFlags": { + "type": "object", + "properties": { + "Decrypt": { + "type": "boolean" + }, + "KeyAgreement": { + "type": "boolean" + }, + "Sign": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "KeyUsagePropertyType": { + "type": "string", + "enum": [ + "ALL" + ] + }, + "PrivateKeyAlgorithm": { + "type": "string", + "enum": [ + "RSA", + "ECDH_P256", + "ECDH_P384", + "ECDH_P521" + ] + }, + "PrivateKeyAttributesV2": { + "type": "object", + "properties": { + "MinimalKeyLength": { + "type": "number", + "minimum": 1 + }, + "KeySpec": { + "$ref": "#/definitions/KeySpec" + }, + "CryptoProviders": { + "type": "array", + "items": { + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "maxItems": 100, + "minItems": 1, + "uniqueItems": true + } + }, + "required": [ + "KeySpec", + "MinimalKeyLength" + ], + "additionalProperties": false + }, + "PrivateKeyAttributesV3": { + "type": "object", + "properties": { + "MinimalKeyLength": { + "type": "number", + "minimum": 1 + }, + "KeySpec": { + "$ref": "#/definitions/KeySpec" + }, + "CryptoProviders": { + "type": "array", + "items": { + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "maxItems": 100, + "minItems": 1, + "uniqueItems": true + }, + "KeyUsageProperty": { + "$ref": "#/definitions/KeyUsageProperty" + }, + "Algorithm": { + "$ref": "#/definitions/PrivateKeyAlgorithm" + } + }, + "required": [ + "Algorithm", + "KeySpec", + "KeyUsageProperty", + "MinimalKeyLength" + ], + "additionalProperties": false + }, + "PrivateKeyAttributesV4": { + "type": "object", + "properties": { + "MinimalKeyLength": { + "type": "number", + "minimum": 1 + }, + "KeySpec": { + "$ref": "#/definitions/KeySpec" + }, + "CryptoProviders": { + "type": "array", + "items": { + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "maxItems": 100, + "minItems": 1, + "uniqueItems": true + }, + "KeyUsageProperty": { + "$ref": "#/definitions/KeyUsageProperty" + }, + "Algorithm": { + "$ref": "#/definitions/PrivateKeyAlgorithm" + } + }, + "required": [ + "KeySpec", + "MinimalKeyLength" + ], + "additionalProperties": false + }, + "PrivateKeyFlagsV2": { + "type": "object", + "properties": { + "ExportableKey": { + "type": "boolean" + }, + "StrongKeyProtectionRequired": { + "type": "boolean" + }, + "ClientVersion": { + "$ref": "#/definitions/ClientCompatibilityV2" + } + }, + "required": [ + "ClientVersion" + ], + "additionalProperties": false + }, + "PrivateKeyFlagsV3": { + "type": "object", + "properties": { + "ExportableKey": { + "type": "boolean" + }, + "StrongKeyProtectionRequired": { + "type": "boolean" + }, + "RequireAlternateSignatureAlgorithm": { + "type": "boolean" + }, + "ClientVersion": { + "$ref": "#/definitions/ClientCompatibilityV3" + } + }, + "required": [ + "ClientVersion" + ], + "additionalProperties": false + }, + "PrivateKeyFlagsV4": { + "type": "object", + "properties": { + "ExportableKey": { + "type": "boolean" + }, + "StrongKeyProtectionRequired": { + "type": "boolean" + }, + "RequireAlternateSignatureAlgorithm": { + "type": "boolean" + }, + "RequireSameKeyRenewal": { + "type": "boolean" + }, + "UseLegacyProvider": { + "type": "boolean" + }, + "ClientVersion": { + "$ref": "#/definitions/ClientCompatibilityV4" + } + }, + "required": [ + "ClientVersion" + ], + "additionalProperties": false + }, + "SubjectNameFlagsV2": { + "type": "object", + "properties": { + "SanRequireDomainDns": { + "type": "boolean" + }, + "SanRequireSpn": { + "type": "boolean" + }, + "SanRequireDirectoryGuid": { + "type": "boolean" + }, + "SanRequireUpn": { + "type": "boolean" + }, + "SanRequireEmail": { + "type": "boolean" + }, + "SanRequireDns": { + "type": "boolean" + }, + "RequireDnsAsCn": { + "type": "boolean" + }, + "RequireEmail": { + "type": "boolean" + }, + "RequireCommonName": { + "type": "boolean" + }, + "RequireDirectoryPath": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "SubjectNameFlagsV3": { + "type": "object", + "properties": { + "SanRequireDomainDns": { + "type": "boolean" + }, + "SanRequireSpn": { + "type": "boolean" + }, + "SanRequireDirectoryGuid": { + "type": "boolean" + }, + "SanRequireUpn": { + "type": "boolean" + }, + "SanRequireEmail": { + "type": "boolean" + }, + "SanRequireDns": { + "type": "boolean" + }, + "RequireDnsAsCn": { + "type": "boolean" + }, + "RequireEmail": { + "type": "boolean" + }, + "RequireCommonName": { + "type": "boolean" + }, + "RequireDirectoryPath": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "SubjectNameFlagsV4": { + "type": "object", + "properties": { + "SanRequireDomainDns": { + "type": "boolean" + }, + "SanRequireSpn": { + "type": "boolean" + }, + "SanRequireDirectoryGuid": { + "type": "boolean" + }, + "SanRequireUpn": { + "type": "boolean" + }, + "SanRequireEmail": { + "type": "boolean" + }, + "SanRequireDns": { + "type": "boolean" + }, + "RequireDnsAsCn": { + "type": "boolean" + }, + "RequireEmail": { + "type": "boolean" + }, + "RequireCommonName": { + "type": "boolean" + }, + "RequireDirectoryPath": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "Tags": { + "type": "object", + "patternProperties": { + "": { + "type": "string" + } + }, + "additionalProperties": false + }, + "TemplateDefinition": { + "oneOf": [ + { + "type": "object", + "title": "TemplateV2", + "properties": { + "TemplateV2": { + "$ref": "#/definitions/TemplateV2" + } + }, + "required": [ + "TemplateV2" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "TemplateV3", + "properties": { + "TemplateV3": { + "$ref": "#/definitions/TemplateV3" + } + }, + "required": [ + "TemplateV3" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "TemplateV4", + "properties": { + "TemplateV4": { + "$ref": "#/definitions/TemplateV4" + } + }, + "required": [ + "TemplateV4" + ], + "additionalProperties": false + } + ] + }, + "TemplateV2": { + "type": "object", + "properties": { + "CertificateValidity": { + "$ref": "#/definitions/CertificateValidity" + }, + "SupersededTemplates": { + "type": "array", + "items": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "pattern": "" + }, + "maxItems": 100, + "minItems": 1, + "uniqueItems": true + }, + "PrivateKeyAttributes": { + "$ref": "#/definitions/PrivateKeyAttributesV2" + }, + "PrivateKeyFlags": { + "$ref": "#/definitions/PrivateKeyFlagsV2" + }, + "EnrollmentFlags": { + "$ref": "#/definitions/EnrollmentFlagsV2" + }, + "SubjectNameFlags": { + "$ref": "#/definitions/SubjectNameFlagsV2" + }, + "GeneralFlags": { + "$ref": "#/definitions/GeneralFlagsV2" + }, + "Extensions": { + "$ref": "#/definitions/ExtensionsV2" + } + }, + "required": [ + "CertificateValidity", + "EnrollmentFlags", + "Extensions", + "GeneralFlags", + "PrivateKeyAttributes", + "PrivateKeyFlags", + "SubjectNameFlags" + ], + "additionalProperties": false + }, + "TemplateV3": { + "type": "object", + "properties": { + "CertificateValidity": { + "$ref": "#/definitions/CertificateValidity" + }, + "SupersededTemplates": { + "type": "array", + "items": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "pattern": "" + }, + "maxItems": 100, + "minItems": 1, + "uniqueItems": true + }, + "PrivateKeyAttributes": { + "$ref": "#/definitions/PrivateKeyAttributesV3" + }, + "PrivateKeyFlags": { + "$ref": "#/definitions/PrivateKeyFlagsV3" + }, + "EnrollmentFlags": { + "$ref": "#/definitions/EnrollmentFlagsV3" + }, + "SubjectNameFlags": { + "$ref": "#/definitions/SubjectNameFlagsV3" + }, + "GeneralFlags": { + "$ref": "#/definitions/GeneralFlagsV3" + }, + "HashAlgorithm": { + "$ref": "#/definitions/HashAlgorithm" + }, + "Extensions": { + "$ref": "#/definitions/ExtensionsV3" + } + }, + "required": [ + "CertificateValidity", + "EnrollmentFlags", + "Extensions", + "GeneralFlags", + "HashAlgorithm", + "PrivateKeyAttributes", + "PrivateKeyFlags", + "SubjectNameFlags" + ], + "additionalProperties": false + }, + "TemplateV4": { + "type": "object", + "properties": { + "CertificateValidity": { + "$ref": "#/definitions/CertificateValidity" + }, + "SupersededTemplates": { + "type": "array", + "items": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "pattern": "" + }, + "maxItems": 100, + "minItems": 1, + "uniqueItems": true + }, + "PrivateKeyAttributes": { + "$ref": "#/definitions/PrivateKeyAttributesV4" + }, + "PrivateKeyFlags": { + "$ref": "#/definitions/PrivateKeyFlagsV4" + }, + "EnrollmentFlags": { + "$ref": "#/definitions/EnrollmentFlagsV4" + }, + "SubjectNameFlags": { + "$ref": "#/definitions/SubjectNameFlagsV4" + }, + "GeneralFlags": { + "$ref": "#/definitions/GeneralFlagsV4" + }, + "HashAlgorithm": { + "$ref": "#/definitions/HashAlgorithm" + }, + "Extensions": { + "$ref": "#/definitions/ExtensionsV4" + } + }, + "required": [ + "CertificateValidity", + "EnrollmentFlags", + "Extensions", + "GeneralFlags", + "PrivateKeyAttributes", + "PrivateKeyFlags", + "SubjectNameFlags" + ], + "additionalProperties": false + }, + "ValidityPeriod": { + "type": "object", + "properties": { + "PeriodType": { + "$ref": "#/definitions/ValidityPeriodType" + }, + "Period": { + "type": "number", + "maximum": 8766000, + "minimum": 1 + } + }, + "required": [ + "Period", + "PeriodType" + ], + "additionalProperties": false + }, + "ValidityPeriodType": { + "type": "string", + "enum": [ + "HOURS", + "DAYS", + "WEEKS", + "MONTHS", + "YEARS" + ] + } + }, + "properties": { + "ConnectorArn": { + "type": "string", + "maxLength": 200, + "minLength": 5, + "pattern": "^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:connector\\/[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$" + }, + "Definition": { + "$ref": "#/definitions/TemplateDefinition" + }, + "Name": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "pattern": "" + }, + "ReenrollAllCertificateHolders": { + "type": "boolean" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "TemplateArn": { + "type": "string", + "maxLength": 200, + "minLength": 5, + "pattern": "^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:connector\\/[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}\\/template\\/[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$" + } + }, + "required": [ + "ConnectorArn", + "Definition", + "Name" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" + }, + "readOnlyProperties": [ + "/properties/TemplateArn" + ], + "writeOnlyProperties": [ + "/properties/ConnectorArn", + "/properties/Definition", + "/properties/Name", + "/properties/ReenrollAllCertificateHolders", + "/properties/Tags" + ], + "createOnlyProperties": [ + "/properties/ConnectorArn", + "/properties/Name" + ], + "primaryIdentifier": [ + "/properties/TemplateArn" + ], + "handlers": { + "create": { + "permissions": [ + "pca-connector-ad:CreateTemplate" + ] + }, + "read": { + "permissions": [ + "pca-connector-ad:GetTemplate", + "pca-connector-ad:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "pca-connector-ad:ListTagsForResource", + "pca-connector-ad:TagResource", + "pca-connector-ad:UntagResource", + "pca-connector-ad:UpdateTemplate" + ] + }, + "delete": { + "permissions": [ + "pca-connector-ad:GetTemplate", + "pca-connector-ad:DeleteTemplate" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ConnectorArn": { + "$ref": "resource-schema.json#/properties/ConnectorArn" + } + }, + "required": [ + "ConnectorArn" + ] + }, + "permissions": [ + "pca-connector-ad:ListTemplates" + ] + } + }, + "additionalProperties": false +} diff --git a/internal/service/cloudformation/schemas/AWS_PCAConnectorAD_TemplateGroupAccessControlEntry.json b/internal/service/cloudformation/schemas/AWS_PCAConnectorAD_TemplateGroupAccessControlEntry.json new file mode 100644 index 0000000000..ae80b41046 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_PCAConnectorAD_TemplateGroupAccessControlEntry.json @@ -0,0 +1,110 @@ +{ + "typeName": "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry", + "description": "Definition of AWS::PCAConnectorAD::TemplateGroupAccessControlEntry Resource Type", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-pcaconnectorad", + "definitions": { + "AccessRight": { + "type": "string", + "enum": [ + "ALLOW", + "DENY" + ] + }, + "AccessRights": { + "type": "object", + "properties": { + "Enroll": { + "$ref": "#/definitions/AccessRight" + }, + "AutoEnroll": { + "$ref": "#/definitions/AccessRight" + } + }, + "additionalProperties": false + } + }, + "properties": { + "AccessRights": { + "$ref": "#/definitions/AccessRights" + }, + "GroupDisplayName": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "pattern": "^[\\x20-\\x7E]+$" + }, + "GroupSecurityIdentifier": { + "type": "string", + "maxLength": 256, + "minLength": 7, + "pattern": "^S-[0-9]-([0-9]+-){1,14}[0-9]+$" + }, + "TemplateArn": { + "type": "string", + "maxLength": 200, + "minLength": 5, + "pattern": "^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:connector(\\/[\\w-]+)\\/template(\\/[\\w-]+)$" + } + }, + "required": [ + "AccessRights", + "GroupDisplayName" + ], + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, + "writeOnlyProperties": [ + "/properties/AccessRights", + "/properties/GroupDisplayName" + ], + "createOnlyProperties": [ + "/properties/GroupSecurityIdentifier", + "/properties/TemplateArn" + ], + "primaryIdentifier": [ + "/properties/GroupSecurityIdentifier", + "/properties/TemplateArn" + ], + "handlers": { + "create": { + "permissions": [ + "pca-connector-ad:CreateTemplateGroupAccessControlEntry" + ] + }, + "read": { + "permissions": [ + "pca-connector-ad:GetTemplateGroupAccessControlEntry" + ] + }, + "update": { + "permissions": [ + "pca-connector-ad:UpdateTemplateGroupAccessControlEntry" + ] + }, + "delete": { + "permissions": [ + "pca-connector-ad:DeleteTemplateGroupAccessControlEntry", + "pca-connector-ad:GetTemplateGroupAccessControlEntry" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "TemplateArn": { + "$ref": "resource-schema.json#/properties/TemplateArn" + } + }, + "required": [ + "TemplateArn" + ] + }, + "permissions": [ + "pca-connector-ad:ListTemplateGroupAccessControlEntries" + ] + } + }, + "additionalProperties": false +} From b6c8bbb89b0618bc22fc38de42b8cf91669325df Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 7 Sep 2023 12:00:19 -0400 Subject: [PATCH 3/6] 09/06/2023 CloudFormation schemas in us-east-1; Generate Terraform resource schemas. --- internal/aws/appflow/flow_resource_gen.go | 71 +- .../custom_line_item_resource_gen.go | 85 + .../analysis_template_resource_gen.go | 476 +++ .../analysis_template_resource_gen_test.go | 25 + .../aws/cleanrooms/membership_resource_gen.go | 116 + .../aws/connect/quick_connect_resource_gen.go | 19 + internal/aws/datasync/task_resource_gen.go | 374 ++ .../aws/ec2/eip_association_resource_gen.go | 155 + .../ec2/eip_association_resource_gen_test.go | 46 + internal/aws/ec2/flow_log_resource_gen.go | 17 + .../aws/ec2/placement_group_resource_gen.go | 1 + .../emrserverless/application_resource_gen.go | 6 +- .../aws/guardduty/detector_resource_gen.go | 418 +++ .../guardduty/detector_resource_gen_test.go | 25 + .../iotwireless/destination_resource_gen.go | 10 +- .../service_profile_resource_gen.go | 2 + .../aws/macie/findings_filter_resource_gen.go | 53 + .../pcaconnectorad/connector_resource_gen.go | 200 ++ .../connector_resource_gen_test.go | 25 + .../directory_registration_resource_gen.go | 127 + ...irectory_registration_resource_gen_test.go | 25 + .../service_principal_name_resource_gen.go | 109 + ...ervice_principal_name_resource_gen_test.go | 46 + ...group_access_control_entry_resource_gen.go | 191 + ..._access_control_entry_resource_gen_test.go | 25 + .../pcaconnectorad/template_resource_gen.go | 3108 +++++++++++++++++ .../template_resource_gen_test.go | 25 + internal/aws/rds/option_group_resource_gen.go | 1 + .../trust_anchor_resource_gen.go | 97 + 29 files changed, 5873 insertions(+), 5 deletions(-) create mode 100644 internal/aws/cleanrooms/analysis_template_resource_gen.go create mode 100644 internal/aws/cleanrooms/analysis_template_resource_gen_test.go create mode 100644 internal/aws/ec2/eip_association_resource_gen.go create mode 100644 internal/aws/ec2/eip_association_resource_gen_test.go create mode 100644 internal/aws/guardduty/detector_resource_gen.go create mode 100644 internal/aws/guardduty/detector_resource_gen_test.go create mode 100644 internal/aws/pcaconnectorad/connector_resource_gen.go create mode 100644 internal/aws/pcaconnectorad/connector_resource_gen_test.go create mode 100644 internal/aws/pcaconnectorad/directory_registration_resource_gen.go create mode 100644 internal/aws/pcaconnectorad/directory_registration_resource_gen_test.go create mode 100644 internal/aws/pcaconnectorad/service_principal_name_resource_gen.go create mode 100644 internal/aws/pcaconnectorad/service_principal_name_resource_gen_test.go create mode 100644 internal/aws/pcaconnectorad/template_group_access_control_entry_resource_gen.go create mode 100644 internal/aws/pcaconnectorad/template_group_access_control_entry_resource_gen_test.go create mode 100644 internal/aws/pcaconnectorad/template_resource_gen.go create mode 100644 internal/aws/pcaconnectorad/template_resource_gen_test.go diff --git a/internal/aws/appflow/flow_resource_gen.go b/internal/aws/appflow/flow_resource_gen.go index d0c4370a39..62f8c83334 100644 --- a/internal/aws/appflow/flow_resource_gen.go +++ b/internal/aws/appflow/flow_resource_gen.go @@ -2173,6 +2173,36 @@ func flowResource(ctx context.Context) (resource.Resource, error) { // "maxLength": 512, // "pattern": "\\S+", // "type": "string" + // }, + // "paginationConfig": { + // "additionalProperties": false, + // "description": "SAP Source connector page size", + // "properties": { + // "maxPageSize": { + // "maximum": 10000, + // "minimum": 1, + // "type": "integer" + // } + // }, + // "required": [ + // "maxPageSize" + // ], + // "type": "object" + // }, + // "parallelismConfig": { + // "additionalProperties": false, + // "description": "SAP Source connector parallelism factor", + // "properties": { + // "maxParallelism": { + // "maximum": 10, + // "minimum": 1, + // "type": "integer" + // } + // }, + // "required": [ + // "maxParallelism" + // ], + // "type": "object" // } // }, // "required": [ @@ -2645,6 +2675,42 @@ func flowResource(ctx context.Context) (resource.Resource, error) { stringvalidator.RegexMatches(regexp.MustCompile("\\S+"), ""), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ + // Property: paginationConfig + "pagination_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: maxPageSize + "max_page_size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(1, 10000), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "SAP Source connector page size", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: parallelismConfig + "parallelism_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: maxParallelism + "max_parallelism": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(1, 10), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "SAP Source connector parallelism factor", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Optional: true, Computed: true, @@ -3282,7 +3348,6 @@ func flowResource(ctx context.Context) (resource.Resource, error) { // "type": "array" // }, // "TaskProperties": { - // "additionalProperties": false, // "description": "A Map used to store task related info", // "items": { // "additionalProperties": false, @@ -4157,10 +4222,14 @@ func flowResource(ctx context.Context) (resource.Resource, error) { "kms_arn": "KMSArn", "lookout_metrics": "LookoutMetrics", "marketo": "Marketo", + "max_page_size": "maxPageSize", + "max_parallelism": "maxParallelism", "metadata_catalog_config": "MetadataCatalogConfig", "name": "Name", "object": "Object", "object_path": "ObjectPath", + "pagination_config": "paginationConfig", + "parallelism_config": "parallelismConfig", "pardot": "Pardot", "path_prefix_hierarchy": "PathPrefixHierarchy", "prefix_config": "PrefixConfig", diff --git a/internal/aws/billingconductor/custom_line_item_resource_gen.go b/internal/aws/billingconductor/custom_line_item_resource_gen.go index 13fd33791c..a7f69f4c82 100644 --- a/internal/aws/billingconductor/custom_line_item_resource_gen.go +++ b/internal/aws/billingconductor/custom_line_item_resource_gen.go @@ -179,6 +179,45 @@ func customLineItemResource(ctx context.Context) (resource.Resource, error) { // ], // "type": "object" // }, + // "LineItemFilters": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Attribute": { + // "enum": [ + // "LINE_ITEM_TYPE" + // ], + // "type": "string" + // }, + // "MatchOption": { + // "enum": [ + // "NOT_EQUAL" + // ], + // "type": "string" + // }, + // "Values": { + // "insertionOrder": false, + // "items": { + // "enum": [ + // "SAVINGS_PLAN_NEGATION" + // ], + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "Attribute", + // "MatchOption", + // "Values" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // }, // "Percentage": { // "additionalProperties": false, // "properties": { @@ -234,6 +273,48 @@ func customLineItemResource(ctx context.Context) (resource.Resource, error) { objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: LineItemFilters + "line_item_filters": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Attribute + "attribute": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "LINE_ITEM_TYPE", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: MatchOption + "match_option": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "NOT_EQUAL", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Values + "values": schema.SetAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Required: true, + Validators: []validator.Set{ /*START VALIDATORS*/ + setvalidator.ValueStringsAre( + stringvalidator.OneOf( + "SAVINGS_PLAN_NEGATION", + ), + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Percentage "percentage": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -423,6 +504,7 @@ func customLineItemResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithAttributeNameMap(map[string]string{ "arn": "Arn", "association_size": "AssociationSize", + "attribute": "Attribute", "billing_group_arn": "BillingGroupArn", "billing_period_range": "BillingPeriodRange", "charge_value": "ChargeValue", @@ -436,6 +518,8 @@ func customLineItemResource(ctx context.Context) (resource.Resource, error) { "inclusive_start_billing_period": "InclusiveStartBillingPeriod", "key": "Key", "last_modified_time": "LastModifiedTime", + "line_item_filters": "LineItemFilters", + "match_option": "MatchOption", "name": "Name", "percentage": "Percentage", "percentage_value": "PercentageValue", @@ -443,6 +527,7 @@ func customLineItemResource(ctx context.Context) (resource.Resource, error) { "tags": "Tags", "type": "Type", "value": "Value", + "values": "Values", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/cleanrooms/analysis_template_resource_gen.go b/internal/aws/cleanrooms/analysis_template_resource_gen.go new file mode 100644 index 0000000000..100b7ad2fd --- /dev/null +++ b/internal/aws/cleanrooms/analysis_template_resource_gen.go @@ -0,0 +1,476 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package cleanrooms + +import ( + "context" + "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/objectplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" + "regexp" +) + +func init() { + registry.AddResourceFactory("awscc_cleanrooms_analysis_template", analysisTemplateResource) +} + +// analysisTemplateResource returns the Terraform awscc_cleanrooms_analysis_template resource. +// This Terraform resource corresponds to the CloudFormation AWS::CleanRooms::AnalysisTemplate resource. +func analysisTemplateResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AnalysisParameters + // CloudFormation resource type schema: + // + // { + // "description": "The member who can query can provide this placeholder for a literal data value in an analysis template", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "DefaultValue": { + // "maxLength": 250, + // "minLength": 0, + // "type": "string" + // }, + // "Name": { + // "maxLength": 100, + // "minLength": 1, + // "pattern": "[0-9a-zA-Z_]+", + // "type": "string" + // }, + // "Type": { + // "enum": [ + // "SMALLINT", + // "INTEGER", + // "BIGINT", + // "DECIMAL", + // "REAL", + // "DOUBLE_PRECISION", + // "BOOLEAN", + // "CHAR", + // "VARCHAR", + // "DATE", + // "TIMESTAMP", + // "TIMESTAMPTZ", + // "TIME", + // "TIMETZ", + // "VARBYTE" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "Type" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 0, + // "type": "array" + // } + "analysis_parameters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DefaultValue + "default_value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 250), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 100), + stringvalidator.RegexMatches(regexp.MustCompile("[0-9a-zA-Z_]+"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "SMALLINT", + "INTEGER", + "BIGINT", + "DECIMAL", + "REAL", + "DOUBLE_PRECISION", + "BOOLEAN", + "CHAR", + "VARCHAR", + "DATE", + "TIMESTAMP", + "TIMESTAMPTZ", + "TIME", + "TIMETZ", + "VARBYTE", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The member who can query can provide this placeholder for a literal data value in an analysis template", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(0, 10), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + listplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AnalysisTemplateIdentifier + // CloudFormation resource type schema: + // + // { + // "maxLength": 36, + // "minLength": 36, + // "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + // "type": "string" + // } + "analysis_template_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "maxLength": 200, + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CollaborationArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 100, + // "type": "string" + // } + "collaboration_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CollaborationIdentifier + // CloudFormation resource type schema: + // + // { + // "maxLength": 36, + // "minLength": 36, + // "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + // "type": "string" + // } + "collaboration_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "maxLength": 255, + // "pattern": "", + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(255), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Format + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "SQL" + // ], + // "type": "string" + // } + "format": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "SQL", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MembershipArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 100, + // "type": "string" + // } + "membership_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MembershipIdentifier + // CloudFormation resource type schema: + // + // { + // "maxLength": 36, + // "minLength": 36, + // "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + // "type": "string" + // } + "membership_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(36, 36), + stringvalidator.RegexMatches(regexp.MustCompile("[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "maxLength": 128, + // "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(128), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Schema + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "ReferencedTables": { + // "insertionOrder": false, + // "items": { + // "maxLength": 128, + // "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + // "type": "string" + // }, + // "minItems": 0, + // "type": "array" + // } + // }, + // "required": [ + // "ReferencedTables" + // ], + // "type": "object" + // } + "schema": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ReferencedTables + "referenced_tables": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Source + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "Text": { + // "maxLength": 15000, + // "minLength": 0, + // "type": "string" + // } + // }, + // "required": [ + // "Text" + // ], + // "type": "object" + // } + "source": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 15000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "An arbitrary set of tags (key-value pairs) for this cleanrooms analysis template.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Value", + // "Key" + // ], + // "type": "object" + // }, + // "type": "array" + // } + "tags": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "An arbitrary set of tags (key-value pairs) for this cleanrooms analysis template.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Represents a stored analysis within a collaboration", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::CleanRooms::AnalysisTemplate").WithTerraformTypeName("awscc_cleanrooms_analysis_template") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "analysis_parameters": "AnalysisParameters", + "analysis_template_identifier": "AnalysisTemplateIdentifier", + "arn": "Arn", + "collaboration_arn": "CollaborationArn", + "collaboration_identifier": "CollaborationIdentifier", + "default_value": "DefaultValue", + "description": "Description", + "format": "Format", + "key": "Key", + "membership_arn": "MembershipArn", + "membership_identifier": "MembershipIdentifier", + "name": "Name", + "referenced_tables": "ReferencedTables", + "schema": "Schema", + "source": "Source", + "tags": "Tags", + "text": "Text", + "type": "Type", + "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/cleanrooms/analysis_template_resource_gen_test.go b/internal/aws/cleanrooms/analysis_template_resource_gen_test.go new file mode 100644 index 0000000000..b6aa759d0f --- /dev/null +++ b/internal/aws/cleanrooms/analysis_template_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 cleanrooms_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSCleanRoomsAnalysisTemplate_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::CleanRooms::AnalysisTemplate", "awscc_cleanrooms_analysis_template", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/cleanrooms/membership_resource_gen.go b/internal/aws/cleanrooms/membership_resource_gen.go index 9a87227aaa..a7b03ac3b0 100644 --- a/internal/aws/cleanrooms/membership_resource_gen.go +++ b/internal/aws/cleanrooms/membership_resource_gen.go @@ -10,6 +10,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" "github.com/hashicorp/terraform-plugin-framework/resource" "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/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" @@ -88,6 +89,114 @@ func membershipResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: DefaultResultConfiguration + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "OutputConfiguration": { + // "additionalProperties": false, + // "properties": { + // "S3": { + // "additionalProperties": false, + // "properties": { + // "Bucket": { + // "maxLength": 63, + // "minLength": 3, + // "type": "string" + // }, + // "KeyPrefix": { + // "type": "string" + // }, + // "ResultFormat": { + // "enum": [ + // "CSV", + // "PARQUET" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "ResultFormat", + // "Bucket" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "S3" + // ], + // "type": "object" + // }, + // "RoleArn": { + // "maxLength": 512, + // "minLength": 32, + // "type": "string" + // } + // }, + // "required": [ + // "OutputConfiguration" + // ], + // "type": "object" + // } + "default_result_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: OutputConfiguration + "output_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: S3 + "s3": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Bucket + "bucket": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(3, 63), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: KeyPrefix + "key_prefix": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ResultFormat + "result_format": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "CSV", + "PARQUET", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: RoleArn + "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(32, 512), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: MembershipIdentifier // CloudFormation resource type schema: // @@ -200,12 +309,19 @@ func membershipResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithSyntheticIDAttribute(true) opts = opts.WithAttributeNameMap(map[string]string{ "arn": "Arn", + "bucket": "Bucket", "collaboration_arn": "CollaborationArn", "collaboration_creator_account_id": "CollaborationCreatorAccountId", "collaboration_identifier": "CollaborationIdentifier", + "default_result_configuration": "DefaultResultConfiguration", "key": "Key", + "key_prefix": "KeyPrefix", "membership_identifier": "MembershipIdentifier", + "output_configuration": "OutputConfiguration", "query_log_status": "QueryLogStatus", + "result_format": "ResultFormat", + "role_arn": "RoleArn", + "s3": "S3", "tags": "Tags", "value": "Value", }) diff --git a/internal/aws/connect/quick_connect_resource_gen.go b/internal/aws/connect/quick_connect_resource_gen.go index 8745734665..46f7ec6b1a 100644 --- a/internal/aws/connect/quick_connect_resource_gen.go +++ b/internal/aws/connect/quick_connect_resource_gen.go @@ -266,6 +266,25 @@ func quickConnectResource(ctx context.Context) (resource.Resource, error) { Description: "Configuration settings for the quick connect.", Required: true, }, /*END ATTRIBUTE*/ + // Property: QuickConnectType + // CloudFormation resource type schema: + // + // { + // "description": "The type of quick connect. In the Amazon Connect console, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE).", + // "enum": [ + // "PHONE_NUMBER", + // "QUEUE", + // "USER" + // ], + // "type": "string" + // } + "quick_connect_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The type of quick connect. In the Amazon Connect console, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE).", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // diff --git a/internal/aws/datasync/task_resource_gen.go b/internal/aws/datasync/task_resource_gen.go index 3cd38f3bef..c0b26fd660 100644 --- a/internal/aws/datasync/task_resource_gen.go +++ b/internal/aws/datasync/task_resource_gen.go @@ -828,6 +828,366 @@ func taskResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: TaskReportConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Specifies how you want to configure a task report, which provides detailed information about for your Datasync transfer.", + // "properties": { + // "Destination": { + // "additionalProperties": false, + // "description": "Specifies where DataSync uploads your task report.", + // "properties": { + // "S3": { + // "additionalProperties": false, + // "description": "Specifies the Amazon S3 bucket where DataSync uploads your task report.", + // "properties": { + // "BucketAccessRoleArn": { + // "description": "Specifies the Amazon Resource Name (ARN) of the IAM policy that allows Datasync to upload a task report to your S3 bucket.", + // "maxLength": 2048, + // "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$", + // "type": "string" + // }, + // "S3BucketArn": { + // "description": "Specifies the ARN of the S3 bucket where Datasync uploads your report.", + // "maxLength": 156, + // "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):(s3|s3-outposts):[a-z\\-0-9]*:[0-9]*:.*$", + // "type": "string" + // }, + // "Subdirectory": { + // "description": "Specifies a bucket prefix for your report.", + // "maxLength": 4096, + // "pattern": "^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\p{Zs}]*$", + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "ObjectVersionIds": { + // "description": "Specifies whether your task report includes the new version of each object transferred into an S3 bucket, this only applies if you enable versioning on your bucket.", + // "enum": [ + // "INCLUDE", + // "NONE" + // ], + // "type": "string" + // }, + // "OutputType": { + // "description": "Specifies the type of task report that you want.", + // "enum": [ + // "SUMMARY_ONLY", + // "STANDARD" + // ], + // "type": "string" + // }, + // "Overrides": { + // "additionalProperties": false, + // "description": "Customizes the reporting level for aspects of your task report. For example, your report might generally only include errors, but you could specify that you want a list of successes and errors just for the files that Datasync attempted to delete in your destination location.", + // "properties": { + // "Deleted": { + // "additionalProperties": false, + // "description": "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to delete in your destination location. This only applies if you configure your task to delete data in the destination that isn't in the source.", + // "properties": { + // "ReportLevel": { + // "description": "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + // "enum": [ + // "ERRORS_ONLY", + // "SUCCESSES_AND_ERRORS" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Skipped": { + // "additionalProperties": false, + // "description": "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to skip during your transfer.", + // "properties": { + // "ReportLevel": { + // "description": "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + // "enum": [ + // "ERRORS_ONLY", + // "SUCCESSES_AND_ERRORS" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Transferred": { + // "additionalProperties": false, + // "description": "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to transfer.", + // "properties": { + // "ReportLevel": { + // "description": "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + // "enum": [ + // "ERRORS_ONLY", + // "SUCCESSES_AND_ERRORS" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Verified": { + // "additionalProperties": false, + // "description": "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to verify at the end of your transfer. This only applies if you configure your task to verify data during and after the transfer (which Datasync does by default)", + // "properties": { + // "ReportLevel": { + // "description": "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + // "enum": [ + // "ERRORS_ONLY", + // "SUCCESSES_AND_ERRORS" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "ReportLevel": { + // "description": "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + // "enum": [ + // "ERRORS_ONLY", + // "SUCCESSES_AND_ERRORS" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Destination", + // "OutputType" + // ], + // "type": "object" + // } + "task_report_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Destination + "destination": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: S3 + "s3": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BucketAccessRoleArn + "bucket_access_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies the Amazon Resource Name (ARN) of the IAM policy that allows Datasync to upload a task report to your S3 bucket.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(2048), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: S3BucketArn + "s3_bucket_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies the ARN of the S3 bucket where Datasync uploads your report.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(156), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):(s3|s3-outposts):[a-z\\-0-9]*:[0-9]*:.*$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Subdirectory + "subdirectory": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies a bucket prefix for your report.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(4096), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\p{Zs}]*$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the Amazon S3 bucket where DataSync uploads your task report.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies where DataSync uploads your task report.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: ObjectVersionIds + "object_version_ids": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether your task report includes the new version of each object transferred into an S3 bucket, this only applies if you enable versioning on your bucket.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "INCLUDE", + "NONE", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: OutputType + "output_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies the type of task report that you want.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "SUMMARY_ONLY", + "STANDARD", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Overrides + "overrides": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Deleted + "deleted": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ReportLevel + "report_level": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ERRORS_ONLY", + "SUCCESSES_AND_ERRORS", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to delete in your destination location. This only applies if you configure your task to delete data in the destination that isn't in the source.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Skipped + "skipped": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ReportLevel + "report_level": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ERRORS_ONLY", + "SUCCESSES_AND_ERRORS", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to skip during your transfer.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Transferred + "transferred": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ReportLevel + "report_level": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ERRORS_ONLY", + "SUCCESSES_AND_ERRORS", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to transfer.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Verified + "verified": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ReportLevel + "report_level": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ERRORS_ONLY", + "SUCCESSES_AND_ERRORS", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to verify at the end of your transfer. This only applies if you configure your task to verify data during and after the transfer (which Datasync does by default)", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Customizes the reporting level for aspects of your task report. For example, your report might generally only include errors, but you could specify that you want a list of successes and errors just for the files that Datasync attempted to delete in your destination location.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ReportLevel + "report_level": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ERRORS_ONLY", + "SUCCESSES_AND_ERRORS", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies how you want to configure a task report, which provides detailed information about for your Datasync transfer.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ attributes["id"] = schema.StringAttribute{ @@ -851,8 +1211,11 @@ func taskResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithSyntheticIDAttribute(true) opts = opts.WithAttributeNameMap(map[string]string{ "atime": "Atime", + "bucket_access_role_arn": "BucketAccessRoleArn", "bytes_per_second": "BytesPerSecond", "cloudwatch_log_group_arn": "CloudWatchLogGroupArn", + "deleted": "Deleted", + "destination": "Destination", "destination_location_arn": "DestinationLocationArn", "destination_network_interface_arns": "DestinationNetworkInterfaceArns", "excludes": "Excludes", @@ -864,23 +1227,34 @@ func taskResource(ctx context.Context) (resource.Resource, error) { "mtime": "Mtime", "name": "Name", "object_tags": "ObjectTags", + "object_version_ids": "ObjectVersionIds", "options": "Options", + "output_type": "OutputType", + "overrides": "Overrides", "overwrite_mode": "OverwriteMode", "posix_permissions": "PosixPermissions", "preserve_deleted_files": "PreserveDeletedFiles", "preserve_devices": "PreserveDevices", + "report_level": "ReportLevel", + "s3": "S3", + "s3_bucket_arn": "S3BucketArn", "schedule": "Schedule", "schedule_expression": "ScheduleExpression", "security_descriptor_copy_flags": "SecurityDescriptorCopyFlags", + "skipped": "Skipped", "source_location_arn": "SourceLocationArn", "source_network_interface_arns": "SourceNetworkInterfaceArns", "status": "Status", + "subdirectory": "Subdirectory", "tags": "Tags", "task_arn": "TaskArn", "task_queueing": "TaskQueueing", + "task_report_config": "TaskReportConfig", "transfer_mode": "TransferMode", + "transferred": "Transferred", "uid": "Uid", "value": "Value", + "verified": "Verified", "verify_mode": "VerifyMode", }) diff --git a/internal/aws/ec2/eip_association_resource_gen.go b/internal/aws/ec2/eip_association_resource_gen.go new file mode 100644 index 0000000000..d7d02998ee --- /dev/null +++ b/internal/aws/ec2/eip_association_resource_gen.go @@ -0,0 +1,155 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_ec2_eip_association", eIPAssociationResource) +} + +// eIPAssociationResource returns the Terraform awscc_ec2_eip_association resource. +// This Terraform resource corresponds to the CloudFormation AWS::EC2::EIPAssociation resource. +func eIPAssociationResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AllocationId + // CloudFormation resource type schema: + // + // { + // "description": "The allocation ID. This is required for EC2-VPC.", + // "type": "string" + // } + "allocation_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The allocation ID. This is required for EC2-VPC.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EIP + // CloudFormation resource type schema: + // + // { + // "description": "The Elastic IP address to associate with the instance.", + // "type": "string" + // } + "eip": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Elastic IP address to associate with the instance.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "description": "Composite ID of non-empty properties, to determine the identification.", + // "type": "string" + // } + "id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Composite ID of non-empty properties, to determine the identification.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InstanceId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the instance.", + // "type": "string" + // } + "instance_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the instance.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: NetworkInterfaceId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the network interface.", + // "type": "string" + // } + "network_interface_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the network interface.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PrivateIpAddress + // CloudFormation resource type schema: + // + // { + // "description": "The primary or secondary private IP address to associate with the Elastic IP address.", + // "type": "string" + // } + "private_ip_address": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The primary or secondary private IP address to associate with the Elastic IP address.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + schema := schema.Schema{ + Description: "Resource schema for EC2 EIP association.", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::EC2::EIPAssociation").WithTerraformTypeName("awscc_ec2_eip_association") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(false) + opts = opts.WithAttributeNameMap(map[string]string{ + "allocation_id": "AllocationId", + "eip": "EIP", + "id": "Id", + "instance_id": "InstanceId", + "network_interface_id": "NetworkInterfaceId", + "private_ip_address": "PrivateIpAddress", + }) + + opts = opts.IsImmutableType(true) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/ec2/eip_association_resource_gen_test.go b/internal/aws/ec2/eip_association_resource_gen_test.go new file mode 100644 index 0000000000..4be0f44e31 --- /dev/null +++ b/internal/aws/ec2/eip_association_resource_gen_test.go @@ -0,0 +1,46 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package ec2_test + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSEC2EIPAssociation_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::EIPAssociation", "awscc_ec2_eip_association", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + ), + }, + { + ResourceName: td.ResourceName, + ImportState: true, + ImportStateVerify: true, + }, + }) +} + +func TestAccAWSEC2EIPAssociation_disappears(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::EIPAssociation", "awscc_ec2_eip_association", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + td.DeleteResource(), + ), + ExpectNonEmptyPlan: true, + }, + }) +} diff --git a/internal/aws/ec2/flow_log_resource_gen.go b/internal/aws/ec2/flow_log_resource_gen.go index fc95e0a190..b2cfa6bfea 100644 --- a/internal/aws/ec2/flow_log_resource_gen.go +++ b/internal/aws/ec2/flow_log_resource_gen.go @@ -30,6 +30,22 @@ func init() { // This Terraform resource corresponds to the CloudFormation AWS::EC2::FlowLog resource. func flowLogResource(ctx context.Context) (resource.Resource, error) { attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DeliverCrossAccountRole + // CloudFormation resource type schema: + // + // { + // "description": "The ARN of the IAM role that allows Amazon EC2 to publish flow logs across accounts.", + // "type": "string" + // } + "deliver_cross_account_role": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the IAM role that allows Amazon EC2 to publish flow logs across accounts.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: DeliverLogsPermissionArn // CloudFormation resource type schema: // @@ -337,6 +353,7 @@ func flowLogResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithTerraformSchema(schema) opts = opts.WithSyntheticIDAttribute(false) opts = opts.WithAttributeNameMap(map[string]string{ + "deliver_cross_account_role": "DeliverCrossAccountRole", "deliver_logs_permission_arn": "DeliverLogsPermissionArn", "destination_options": "DestinationOptions", "file_format": "FileFormat", diff --git a/internal/aws/ec2/placement_group_resource_gen.go b/internal/aws/ec2/placement_group_resource_gen.go index d572dd2c52..931a45253b 100644 --- a/internal/aws/ec2/placement_group_resource_gen.go +++ b/internal/aws/ec2/placement_group_resource_gen.go @@ -149,6 +149,7 @@ func placementGroupResource(ctx context.Context) (resource.Resource, error) { Computed: true, PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ setplanmodifier.UseStateForUnknown(), + setplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/emrserverless/application_resource_gen.go b/internal/aws/emrserverless/application_resource_gen.go index 8139c69b02..1cb8650a0b 100644 --- a/internal/aws/emrserverless/application_resource_gen.go +++ b/internal/aws/emrserverless/application_resource_gen.go @@ -642,6 +642,7 @@ func applicationResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, + // "description": "The key-value pairs that specify worker type to WorkerTypeSpecificationInput. This parameter must contain all valid worker types for a Spark or Hive application. Valid worker types include Driver and Executor for Spark applications and HiveDriver and TezTask for Hive applications. You can either set image details in this parameter for each worker type, or in imageConfiguration for all worker types.", // "patternProperties": { // "": { // "additionalProperties": false, @@ -697,8 +698,9 @@ func applicationResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Optional: true, - Computed: true, + Description: "The key-value pairs that specify worker type to WorkerTypeSpecificationInput. This parameter must contain all valid worker types for a Spark or Hive application. Valid worker types include Driver and Executor for Spark applications and HiveDriver and TezTask for Hive applications. You can either set image details in this parameter for each worker type, or in imageConfiguration for all worker types.", + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ mapplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ diff --git a/internal/aws/guardduty/detector_resource_gen.go b/internal/aws/guardduty/detector_resource_gen.go new file mode 100644 index 0000000000..49b2bfb1e8 --- /dev/null +++ b/internal/aws/guardduty/detector_resource_gen.go @@ -0,0 +1,418 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package guardduty + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/boolplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_guardduty_detector", detectorResource) +} + +// detectorResource returns the Terraform awscc_guardduty_detector resource. +// This Terraform resource corresponds to the CloudFormation AWS::GuardDuty::Detector resource. +func detectorResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DataSources + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "Kubernetes": { + // "additionalProperties": false, + // "properties": { + // "AuditLogs": { + // "additionalProperties": false, + // "properties": { + // "Enable": { + // "type": "boolean" + // } + // }, + // "required": [ + // "Enable" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "AuditLogs" + // ], + // "type": "object" + // }, + // "MalwareProtection": { + // "additionalProperties": false, + // "properties": { + // "ScanEc2InstanceWithFindings": { + // "additionalProperties": false, + // "properties": { + // "EbsVolumes": { + // "type": "boolean" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "S3Logs": { + // "additionalProperties": false, + // "properties": { + // "Enable": { + // "type": "boolean" + // } + // }, + // "required": [ + // "Enable" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // } + "data_sources": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Kubernetes + "kubernetes": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuditLogs + "audit_logs": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Enable + "enable": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MalwareProtection + "malware_protection": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ScanEc2InstanceWithFindings + "scan_ec_2_instance_with_findings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EbsVolumes + "ebs_volumes": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: S3Logs + "s3_logs": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Enable + "enable": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Enable + // CloudFormation resource type schema: + // + // { + // "type": "boolean" + // } + "enable": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Features + // CloudFormation resource type schema: + // + // { + // "items": { + // "additionalProperties": false, + // "properties": { + // "AdditionalConfiguration": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // }, + // "Status": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // }, + // "Name": { + // "enum": [ + // "FLOW_LOGS", + // "CLOUD_TRAIL", + // "DNS_LOGS", + // "S3_DATA_EVENTS", + // "EKS_AUDIT_LOGS", + // "EBS_MALWARE_PROTECTION", + // "RDS_LOGIN_EVENTS", + // "LAMBDA_NETWORK_LOGS", + // "EKS_RUNTIME_MONITORING" + // ], + // "type": "string" + // }, + // "Status": { + // "enum": [ + // "ENABLED", + // "DISABLED" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "Status" + // ], + // "type": "object" + // }, + // "type": "array" + // } + "features": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AdditionalConfiguration + "additional_configuration": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Status + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "FLOW_LOGS", + "CLOUD_TRAIL", + "DNS_LOGS", + "S3_DATA_EVENTS", + "EKS_AUDIT_LOGS", + "EBS_MALWARE_PROTECTION", + "RDS_LOGIN_EVENTS", + "LAMBDA_NETWORK_LOGS", + "EKS_RUNTIME_MONITORING", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Status + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ENABLED", + "DISABLED", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: FindingPublishingFrequency + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "finding_publishing_frequency": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array" + // } + "tags": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 256), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + schema := schema.Schema{ + Description: "Resource Type definition for AWS::GuardDuty::Detector", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::GuardDuty::Detector").WithTerraformTypeName("awscc_guardduty_detector") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(false) + opts = opts.WithAttributeNameMap(map[string]string{ + "additional_configuration": "AdditionalConfiguration", + "audit_logs": "AuditLogs", + "data_sources": "DataSources", + "ebs_volumes": "EbsVolumes", + "enable": "Enable", + "features": "Features", + "finding_publishing_frequency": "FindingPublishingFrequency", + "id": "Id", + "key": "Key", + "kubernetes": "Kubernetes", + "malware_protection": "MalwareProtection", + "name": "Name", + "s3_logs": "S3Logs", + "scan_ec_2_instance_with_findings": "ScanEc2InstanceWithFindings", + "status": "Status", + "tags": "Tags", + "value": "Value", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/guardduty/detector_resource_gen_test.go b/internal/aws/guardduty/detector_resource_gen_test.go new file mode 100644 index 0000000000..ebd1ce1d0d --- /dev/null +++ b/internal/aws/guardduty/detector_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 guardduty_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSGuardDutyDetector_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::GuardDuty::Detector", "awscc_guardduty_detector", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/iotwireless/destination_resource_gen.go b/internal/aws/iotwireless/destination_resource_gen.go index f0e411d3b1..8f6446a68d 100644 --- a/internal/aws/iotwireless/destination_resource_gen.go +++ b/internal/aws/iotwireless/destination_resource_gen.go @@ -80,7 +80,8 @@ func destinationResource(ctx context.Context) (resource.Resource, error) { // "description": "Must be RuleName", // "enum": [ // "RuleName", - // "MqttTopic" + // "MqttTopic", + // "SnsTopic" // ], // "type": "string" // } @@ -91,6 +92,7 @@ func destinationResource(ctx context.Context) (resource.Resource, error) { stringvalidator.OneOf( "RuleName", "MqttTopic", + "SnsTopic", ), }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ @@ -125,10 +127,14 @@ func destinationResource(ctx context.Context) (resource.Resource, error) { // } "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "AWS role ARN that grants access", - Required: true, + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(20, 2048), }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: diff --git a/internal/aws/iotwireless/service_profile_resource_gen.go b/internal/aws/iotwireless/service_profile_resource_gen.go index 8b127e2d85..02dae3b834 100644 --- a/internal/aws/iotwireless/service_profile_resource_gen.go +++ b/internal/aws/iotwireless/service_profile_resource_gen.go @@ -210,6 +210,7 @@ func serviceProfileResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: PrAllowed "pr_allowed": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ boolplanmodifier.UseStateForUnknown(), @@ -217,6 +218,7 @@ func serviceProfileResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: RaAllowed "ra_allowed": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ boolplanmodifier.UseStateForUnknown(), diff --git a/internal/aws/macie/findings_filter_resource_gen.go b/internal/aws/macie/findings_filter_resource_gen.go index a54f34ef14..d741c47745 100644 --- a/internal/aws/macie/findings_filter_resource_gen.go +++ b/internal/aws/macie/findings_filter_resource_gen.go @@ -245,6 +245,56 @@ func findingsFilterResource(ctx context.Context) (resource.Resource, error) { int64planmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "A collection of tags associated with a resource", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The tag's key.", + // "type": "string" + // }, + // "Value": { + // "description": "The tag's value.", + // "type": "string" + // } + // }, + // "required": [ + // "Value", + // "Key" + // ], + // "type": "object" + // }, + // "type": "array" + // } + "tags": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The tag's key.", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The tag's value.", + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A collection of tags associated with a resource", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ schema := schema.Schema{ @@ -268,11 +318,14 @@ func findingsFilterResource(ctx context.Context) (resource.Resource, error) { "gt": "gt", "gte": "gte", "id": "Id", + "key": "Key", "lt": "lt", "lte": "lte", "name": "Name", "neq": "neq", "position": "Position", + "tags": "Tags", + "value": "Value", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/pcaconnectorad/connector_resource_gen.go b/internal/aws/pcaconnectorad/connector_resource_gen.go new file mode 100644 index 0000000000..2aafb1f1ee --- /dev/null +++ b/internal/aws/pcaconnectorad/connector_resource_gen.go @@ -0,0 +1,200 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package pcaconnectorad + +import ( + "context" + "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/mapplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" + "regexp" +) + +func init() { + registry.AddResourceFactory("awscc_pcaconnectorad_connector", connectorResource) +} + +// connectorResource returns the Terraform awscc_pcaconnectorad_connector resource. +// This Terraform resource corresponds to the CloudFormation AWS::PCAConnectorAD::Connector resource. +func connectorResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CertificateAuthorityArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 200, + // "minLength": 5, + // "pattern": "^arn:[\\w-]+:acm-pca:[\\w-]+:[0-9]+:certificate-authority(\\/[\\w-]+)$", + // "type": "string" + // } + "certificate_authority_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(5, 200), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:[\\w-]+:acm-pca:[\\w-]+:[0-9]+:certificate-authority(\\/[\\w-]+)$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + // CertificateAuthorityArn is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: ConnectorArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 200, + // "minLength": 5, + // "pattern": "^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:connector(\\/[\\w-]+)$", + // "type": "string" + // } + "connector_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DirectoryId + // CloudFormation resource type schema: + // + // { + // "pattern": "^d-[0-9a-f]{10}$", + // "type": "string" + // } + "directory_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^d-[0-9a-f]{10}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + // DirectoryId is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // } + "tags": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // Tags is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: VpcInformation + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "SecurityGroupIds": { + // "items": { + // "maxLength": 20, + // "minLength": 11, + // "pattern": "^(?:sg-[0-9a-f]{8}|sg-[0-9a-f]{17})$", + // "type": "string" + // }, + // "maxItems": 5, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "SecurityGroupIds" + // ], + // "type": "object" + // } + "vpc_information": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SecurityGroupIds + "security_group_ids": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 5), + listvalidator.UniqueValues(), + listvalidator.ValueStringsAre( + stringvalidator.LengthBetween(11, 20), + stringvalidator.RegexMatches(regexp.MustCompile("^(?:sg-[0-9a-f]{8}|sg-[0-9a-f]{17})$"), ""), + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + // VpcInformation is a write-only property. + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Definition of AWS::PCAConnectorAD::Connector Resource Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::PCAConnectorAD::Connector").WithTerraformTypeName("awscc_pcaconnectorad_connector") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "certificate_authority_arn": "CertificateAuthorityArn", + "connector_arn": "ConnectorArn", + "directory_id": "DirectoryId", + "security_group_ids": "SecurityGroupIds", + "tags": "Tags", + "vpc_information": "VpcInformation", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/CertificateAuthorityArn", + "/properties/DirectoryId", + "/properties/Tags", + "/properties/VpcInformation", + }) + 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/pcaconnectorad/connector_resource_gen_test.go b/internal/aws/pcaconnectorad/connector_resource_gen_test.go new file mode 100644 index 0000000000..1d1a471a90 --- /dev/null +++ b/internal/aws/pcaconnectorad/connector_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 pcaconnectorad_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSPCAConnectorADConnector_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::PCAConnectorAD::Connector", "awscc_pcaconnectorad_connector", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/pcaconnectorad/directory_registration_resource_gen.go b/internal/aws/pcaconnectorad/directory_registration_resource_gen.go new file mode 100644 index 0000000000..2d3ee6cb4f --- /dev/null +++ b/internal/aws/pcaconnectorad/directory_registration_resource_gen.go @@ -0,0 +1,127 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package pcaconnectorad + +import ( + "context" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/mapplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" + "regexp" +) + +func init() { + registry.AddResourceFactory("awscc_pcaconnectorad_directory_registration", directoryRegistrationResource) +} + +// directoryRegistrationResource returns the Terraform awscc_pcaconnectorad_directory_registration resource. +// This Terraform resource corresponds to the CloudFormation AWS::PCAConnectorAD::DirectoryRegistration resource. +func directoryRegistrationResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DirectoryId + // CloudFormation resource type schema: + // + // { + // "pattern": "^d-[0-9a-f]{10}$", + // "type": "string" + // } + "directory_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^d-[0-9a-f]{10}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + // DirectoryId is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: DirectoryRegistrationArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 200, + // "minLength": 5, + // "pattern": "^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:directory-registration(\\/[\\w-]+)$", + // "type": "string" + // } + "directory_registration_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // } + "tags": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // Tags is a write-only property. + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Definition of AWS::PCAConnectorAD::DirectoryRegistration Resource Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::PCAConnectorAD::DirectoryRegistration").WithTerraformTypeName("awscc_pcaconnectorad_directory_registration") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "directory_id": "DirectoryId", + "directory_registration_arn": "DirectoryRegistrationArn", + "tags": "Tags", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/DirectoryId", + "/properties/Tags", + }) + 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/pcaconnectorad/directory_registration_resource_gen_test.go b/internal/aws/pcaconnectorad/directory_registration_resource_gen_test.go new file mode 100644 index 0000000000..a33ec849e6 --- /dev/null +++ b/internal/aws/pcaconnectorad/directory_registration_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 pcaconnectorad_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSPCAConnectorADDirectoryRegistration_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::PCAConnectorAD::DirectoryRegistration", "awscc_pcaconnectorad_directory_registration", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/pcaconnectorad/service_principal_name_resource_gen.go b/internal/aws/pcaconnectorad/service_principal_name_resource_gen.go new file mode 100644 index 0000000000..e800265066 --- /dev/null +++ b/internal/aws/pcaconnectorad/service_principal_name_resource_gen.go @@ -0,0 +1,109 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package pcaconnectorad + +import ( + "context" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "regexp" + + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_pcaconnectorad_service_principal_name", servicePrincipalNameResource) +} + +// servicePrincipalNameResource returns the Terraform awscc_pcaconnectorad_service_principal_name resource. +// This Terraform resource corresponds to the CloudFormation AWS::PCAConnectorAD::ServicePrincipalName resource. +func servicePrincipalNameResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ConnectorArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 200, + // "minLength": 5, + // "pattern": "^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:connector(\\/[\\w-]+)$", + // "type": "string" + // } + "connector_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(5, 200), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:connector(\\/[\\w-]+)$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DirectoryRegistrationArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 200, + // "minLength": 5, + // "pattern": "^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:directory-registration(\\/[\\w-]+)$", + // "type": "string" + // } + "directory_registration_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(5, 200), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:directory-registration(\\/[\\w-]+)$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Definition of AWS::PCAConnectorAD::ServicePrincipalName Resource Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::PCAConnectorAD::ServicePrincipalName").WithTerraformTypeName("awscc_pcaconnectorad_service_principal_name") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "connector_arn": "ConnectorArn", + "directory_registration_arn": "DirectoryRegistrationArn", + }) + + opts = opts.IsImmutableType(true) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/pcaconnectorad/service_principal_name_resource_gen_test.go b/internal/aws/pcaconnectorad/service_principal_name_resource_gen_test.go new file mode 100644 index 0000000000..5c4951ec65 --- /dev/null +++ b/internal/aws/pcaconnectorad/service_principal_name_resource_gen_test.go @@ -0,0 +1,46 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package pcaconnectorad_test + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSPCAConnectorADServicePrincipalName_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::PCAConnectorAD::ServicePrincipalName", "awscc_pcaconnectorad_service_principal_name", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + ), + }, + { + ResourceName: td.ResourceName, + ImportState: true, + ImportStateVerify: true, + }, + }) +} + +func TestAccAWSPCAConnectorADServicePrincipalName_disappears(t *testing.T) { + td := acctest.NewTestData(t, "AWS::PCAConnectorAD::ServicePrincipalName", "awscc_pcaconnectorad_service_principal_name", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + td.DeleteResource(), + ), + ExpectNonEmptyPlan: true, + }, + }) +} diff --git a/internal/aws/pcaconnectorad/template_group_access_control_entry_resource_gen.go b/internal/aws/pcaconnectorad/template_group_access_control_entry_resource_gen.go new file mode 100644 index 0000000000..01ce7db93d --- /dev/null +++ b/internal/aws/pcaconnectorad/template_group_access_control_entry_resource_gen.go @@ -0,0 +1,191 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package pcaconnectorad + +import ( + "context" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "regexp" + + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_pcaconnectorad_template_group_access_control_entry", templateGroupAccessControlEntryResource) +} + +// templateGroupAccessControlEntryResource returns the Terraform awscc_pcaconnectorad_template_group_access_control_entry resource. +// This Terraform resource corresponds to the CloudFormation AWS::PCAConnectorAD::TemplateGroupAccessControlEntry resource. +func templateGroupAccessControlEntryResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AccessRights + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "AutoEnroll": { + // "enum": [ + // "ALLOW", + // "DENY" + // ], + // "type": "string" + // }, + // "Enroll": { + // "enum": [ + // "ALLOW", + // "DENY" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // } + "access_rights": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AutoEnroll + "auto_enroll": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ALLOW", + "DENY", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Enroll + "enroll": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ALLOW", + "DENY", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + // AccessRights is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: GroupDisplayName + // CloudFormation resource type schema: + // + // { + // "maxLength": 256, + // "minLength": 0, + // "pattern": "^[\\x20-\\x7E]+$", + // "type": "string" + // } + "group_display_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 256), + stringvalidator.RegexMatches(regexp.MustCompile("^[\\x20-\\x7E]+$"), ""), + }, /*END VALIDATORS*/ + // GroupDisplayName is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: GroupSecurityIdentifier + // CloudFormation resource type schema: + // + // { + // "maxLength": 256, + // "minLength": 7, + // "pattern": "^S-[0-9]-([0-9]+-){1,14}[0-9]+$", + // "type": "string" + // } + "group_security_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(7, 256), + stringvalidator.RegexMatches(regexp.MustCompile("^S-[0-9]-([0-9]+-){1,14}[0-9]+$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TemplateArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 200, + // "minLength": 5, + // "pattern": "^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:connector(\\/[\\w-]+)\\/template(\\/[\\w-]+)$", + // "type": "string" + // } + "template_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(5, 200), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:connector(\\/[\\w-]+)\\/template(\\/[\\w-]+)$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Definition of AWS::PCAConnectorAD::TemplateGroupAccessControlEntry Resource Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::PCAConnectorAD::TemplateGroupAccessControlEntry").WithTerraformTypeName("awscc_pcaconnectorad_template_group_access_control_entry") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "access_rights": "AccessRights", + "auto_enroll": "AutoEnroll", + "enroll": "Enroll", + "group_display_name": "GroupDisplayName", + "group_security_identifier": "GroupSecurityIdentifier", + "template_arn": "TemplateArn", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/AccessRights", + "/properties/GroupDisplayName", + }) + 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/pcaconnectorad/template_group_access_control_entry_resource_gen_test.go b/internal/aws/pcaconnectorad/template_group_access_control_entry_resource_gen_test.go new file mode 100644 index 0000000000..9d37592fa6 --- /dev/null +++ b/internal/aws/pcaconnectorad/template_group_access_control_entry_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 pcaconnectorad_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSPCAConnectorADTemplateGroupAccessControlEntry_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry", "awscc_pcaconnectorad_template_group_access_control_entry", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/pcaconnectorad/template_resource_gen.go b/internal/aws/pcaconnectorad/template_resource_gen.go new file mode 100644 index 0000000000..d57896e94f --- /dev/null +++ b/internal/aws/pcaconnectorad/template_resource_gen.go @@ -0,0 +1,3108 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package pcaconnectorad + +import ( + "context" + "github.com/hashicorp/terraform-plugin-framework-validators/float64validator" + "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/boolplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/mapplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" + "regexp" +) + +func init() { + registry.AddResourceFactory("awscc_pcaconnectorad_template", templateResource) +} + +// templateResource returns the Terraform awscc_pcaconnectorad_template resource. +// This Terraform resource corresponds to the CloudFormation AWS::PCAConnectorAD::Template resource. +func templateResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ConnectorArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 200, + // "minLength": 5, + // "pattern": "^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:connector\\/[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$", + // "type": "string" + // } + "connector_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(5, 200), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:connector\\/[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + // ConnectorArn is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: Definition + // CloudFormation resource type schema: + // + // { + // "properties": { + // "TemplateV2": { + // "additionalProperties": false, + // "properties": { + // "CertificateValidity": { + // "additionalProperties": false, + // "properties": { + // "RenewalPeriod": { + // "additionalProperties": false, + // "properties": { + // "Period": { + // "maximum": 8766000, + // "minimum": 1, + // "type": "number" + // }, + // "PeriodType": { + // "enum": [ + // "HOURS", + // "DAYS", + // "WEEKS", + // "MONTHS", + // "YEARS" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Period", + // "PeriodType" + // ], + // "type": "object" + // }, + // "ValidityPeriod": { + // "additionalProperties": false, + // "properties": { + // "Period": { + // "maximum": 8766000, + // "minimum": 1, + // "type": "number" + // }, + // "PeriodType": { + // "enum": [ + // "HOURS", + // "DAYS", + // "WEEKS", + // "MONTHS", + // "YEARS" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Period", + // "PeriodType" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "RenewalPeriod", + // "ValidityPeriod" + // ], + // "type": "object" + // }, + // "EnrollmentFlags": { + // "additionalProperties": false, + // "properties": { + // "EnableKeyReuseOnNtTokenKeysetStorageFull": { + // "type": "boolean" + // }, + // "IncludeSymmetricAlgorithms": { + // "type": "boolean" + // }, + // "NoSecurityExtension": { + // "type": "boolean" + // }, + // "RemoveInvalidCertificateFromPersonalStore": { + // "type": "boolean" + // }, + // "UserInteractionRequired": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "Extensions": { + // "additionalProperties": false, + // "properties": { + // "ApplicationPolicies": { + // "additionalProperties": false, + // "properties": { + // "Critical": { + // "type": "boolean" + // }, + // "Policies": { + // "items": { + // "properties": { + // "PolicyObjectIdentifier": { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^([0-2])\\.([0-9]|([0-3][0-9]))(\\.([0-9]+)){0,126}$", + // "type": "string" + // }, + // "PolicyType": { + // "enum": [ + // "ALL_APPLICATION_POLICIES", + // "ANY_PURPOSE", + // "ATTESTATION_IDENTITY_KEY_CERTIFICATE", + // "CERTIFICATE_REQUEST_AGENT", + // "CLIENT_AUTHENTICATION", + // "CODE_SIGNING", + // "CTL_USAGE", + // "DIGITAL_RIGHTS", + // "DIRECTORY_SERVICE_EMAIL_REPLICATION", + // "DISALLOWED_LIST", + // "DNS_SERVER_TRUST", + // "DOCUMENT_ENCRYPTION", + // "DOCUMENT_SIGNING", + // "DYNAMIC_CODE_GENERATOR", + // "EARLY_LAUNCH_ANTIMALWARE_DRIVER", + // "EMBEDDED_WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + // "ENCLAVE", + // "ENCRYPTING_FILE_SYSTEM", + // "ENDORSEMENT_KEY_CERTIFICATE", + // "FILE_RECOVERY", + // "HAL_EXTENSION", + // "IP_SECURITY_END_SYSTEM", + // "IP_SECURITY_IKE_INTERMEDIATE", + // "IP_SECURITY_TUNNEL_TERMINATION", + // "IP_SECURITY_USER", + // "ISOLATED_USER_MODE", + // "KDC_AUTHENTICATION", + // "KERNEL_MODE_CODE_SIGNING", + // "KEY_PACK_LICENSES", + // "KEY_RECOVERY", + // "KEY_RECOVERY_AGENT", + // "LICENSE_SERVER_VERIFICATION", + // "LIFETIME_SIGNING", + // "MICROSOFT_PUBLISHER", + // "MICROSOFT_TIME_STAMPING", + // "MICROSOFT_TRUST_LIST_SIGNING", + // "OCSP_SIGNING", + // "OEM_WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + // "PLATFORM_CERTIFICATE", + // "PREVIEW_BUILD_SIGNING", + // "PRIVATE_KEY_ARCHIVAL", + // "PROTECTED_PROCESS_LIGHT_VERIFICATION", + // "PROTECTED_PROCESS_VERIFICATION", + // "QUALIFIED_SUBORDINATION", + // "REVOKED_LIST_SIGNER", + // "ROOT_PROGRAM_AUTO_UPDATE_CA_REVOCATION", + // "ROOT_PROGRAM_AUTO_UPDATE_END_REVOCATION", + // "ROOT_PROGRAM_NO_OSCP_FAILOVER_TO_CRL", + // "ROOT_LIST_SIGNER", + // "SECURE_EMAIL", + // "SERVER_AUTHENTICATION", + // "SMART_CARD_LOGIN", + // "SPC_ENCRYPTED_DIGEST_RETRY_COUNT", + // "SPC_RELAXED_PE_MARKER_CHECK", + // "TIME_STAMPING", + // "WINDOWS_HARDWARE_DRIVER_ATTESTED_VERIFICATION", + // "WINDOWS_HARDWARE_DRIVER_EXTENDED_VERIFICATION", + // "WINDOWS_HARDWARE_DRIVER_VERIFICATION", + // "WINDOWS_HELLO_RECOVERY_KEY_ENCRYPTION", + // "WINDOWS_KITS_COMPONENT", + // "WINDOWS_RT_VERIFICATION", + // "WINDOWS_SOFTWARE_EXTENSION_VERIFICATION", + // "WINDOWS_STORE", + // "WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + // "WINDOWS_TCB_COMPONENT", + // "WINDOWS_THIRD_PARTY_APPLICATION_COMPONENT", + // "WINDOWS_UPDATE" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 100, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "Policies" + // ], + // "type": "object" + // }, + // "KeyUsage": { + // "additionalProperties": false, + // "properties": { + // "Critical": { + // "type": "boolean" + // }, + // "UsageFlags": { + // "additionalProperties": false, + // "properties": { + // "DataEncipherment": { + // "type": "boolean" + // }, + // "DigitalSignature": { + // "type": "boolean" + // }, + // "KeyAgreement": { + // "type": "boolean" + // }, + // "KeyEncipherment": { + // "type": "boolean" + // }, + // "NonRepudiation": { + // "type": "boolean" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "UsageFlags" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "KeyUsage" + // ], + // "type": "object" + // }, + // "GeneralFlags": { + // "additionalProperties": false, + // "properties": { + // "AutoEnrollment": { + // "type": "boolean" + // }, + // "MachineType": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "PrivateKeyAttributes": { + // "additionalProperties": false, + // "properties": { + // "CryptoProviders": { + // "items": { + // "maxLength": 100, + // "minLength": 1, + // "type": "string" + // }, + // "maxItems": 100, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // }, + // "KeySpec": { + // "enum": [ + // "KEY_EXCHANGE", + // "SIGNATURE" + // ], + // "type": "string" + // }, + // "MinimalKeyLength": { + // "minimum": 1, + // "type": "number" + // } + // }, + // "required": [ + // "KeySpec", + // "MinimalKeyLength" + // ], + // "type": "object" + // }, + // "PrivateKeyFlags": { + // "additionalProperties": false, + // "properties": { + // "ClientVersion": { + // "enum": [ + // "WINDOWS_SERVER_2003", + // "WINDOWS_SERVER_2008", + // "WINDOWS_SERVER_2008_R2", + // "WINDOWS_SERVER_2012", + // "WINDOWS_SERVER_2012_R2", + // "WINDOWS_SERVER_2016" + // ], + // "type": "string" + // }, + // "ExportableKey": { + // "type": "boolean" + // }, + // "StrongKeyProtectionRequired": { + // "type": "boolean" + // } + // }, + // "required": [ + // "ClientVersion" + // ], + // "type": "object" + // }, + // "SubjectNameFlags": { + // "additionalProperties": false, + // "properties": { + // "RequireCommonName": { + // "type": "boolean" + // }, + // "RequireDirectoryPath": { + // "type": "boolean" + // }, + // "RequireDnsAsCn": { + // "type": "boolean" + // }, + // "RequireEmail": { + // "type": "boolean" + // }, + // "SanRequireDirectoryGuid": { + // "type": "boolean" + // }, + // "SanRequireDns": { + // "type": "boolean" + // }, + // "SanRequireDomainDns": { + // "type": "boolean" + // }, + // "SanRequireEmail": { + // "type": "boolean" + // }, + // "SanRequireSpn": { + // "type": "boolean" + // }, + // "SanRequireUpn": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "SupersededTemplates": { + // "items": { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "maxItems": 100, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "CertificateValidity", + // "EnrollmentFlags", + // "Extensions", + // "GeneralFlags", + // "PrivateKeyAttributes", + // "PrivateKeyFlags", + // "SubjectNameFlags" + // ], + // "type": "object" + // }, + // "TemplateV3": { + // "additionalProperties": false, + // "properties": { + // "CertificateValidity": { + // "additionalProperties": false, + // "properties": { + // "RenewalPeriod": { + // "additionalProperties": false, + // "properties": { + // "Period": { + // "maximum": 8766000, + // "minimum": 1, + // "type": "number" + // }, + // "PeriodType": { + // "enum": [ + // "HOURS", + // "DAYS", + // "WEEKS", + // "MONTHS", + // "YEARS" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Period", + // "PeriodType" + // ], + // "type": "object" + // }, + // "ValidityPeriod": { + // "additionalProperties": false, + // "properties": { + // "Period": { + // "maximum": 8766000, + // "minimum": 1, + // "type": "number" + // }, + // "PeriodType": { + // "enum": [ + // "HOURS", + // "DAYS", + // "WEEKS", + // "MONTHS", + // "YEARS" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Period", + // "PeriodType" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "RenewalPeriod", + // "ValidityPeriod" + // ], + // "type": "object" + // }, + // "EnrollmentFlags": { + // "additionalProperties": false, + // "properties": { + // "EnableKeyReuseOnNtTokenKeysetStorageFull": { + // "type": "boolean" + // }, + // "IncludeSymmetricAlgorithms": { + // "type": "boolean" + // }, + // "NoSecurityExtension": { + // "type": "boolean" + // }, + // "RemoveInvalidCertificateFromPersonalStore": { + // "type": "boolean" + // }, + // "UserInteractionRequired": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "Extensions": { + // "additionalProperties": false, + // "properties": { + // "ApplicationPolicies": { + // "additionalProperties": false, + // "properties": { + // "Critical": { + // "type": "boolean" + // }, + // "Policies": { + // "items": { + // "properties": { + // "PolicyObjectIdentifier": { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^([0-2])\\.([0-9]|([0-3][0-9]))(\\.([0-9]+)){0,126}$", + // "type": "string" + // }, + // "PolicyType": { + // "enum": [ + // "ALL_APPLICATION_POLICIES", + // "ANY_PURPOSE", + // "ATTESTATION_IDENTITY_KEY_CERTIFICATE", + // "CERTIFICATE_REQUEST_AGENT", + // "CLIENT_AUTHENTICATION", + // "CODE_SIGNING", + // "CTL_USAGE", + // "DIGITAL_RIGHTS", + // "DIRECTORY_SERVICE_EMAIL_REPLICATION", + // "DISALLOWED_LIST", + // "DNS_SERVER_TRUST", + // "DOCUMENT_ENCRYPTION", + // "DOCUMENT_SIGNING", + // "DYNAMIC_CODE_GENERATOR", + // "EARLY_LAUNCH_ANTIMALWARE_DRIVER", + // "EMBEDDED_WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + // "ENCLAVE", + // "ENCRYPTING_FILE_SYSTEM", + // "ENDORSEMENT_KEY_CERTIFICATE", + // "FILE_RECOVERY", + // "HAL_EXTENSION", + // "IP_SECURITY_END_SYSTEM", + // "IP_SECURITY_IKE_INTERMEDIATE", + // "IP_SECURITY_TUNNEL_TERMINATION", + // "IP_SECURITY_USER", + // "ISOLATED_USER_MODE", + // "KDC_AUTHENTICATION", + // "KERNEL_MODE_CODE_SIGNING", + // "KEY_PACK_LICENSES", + // "KEY_RECOVERY", + // "KEY_RECOVERY_AGENT", + // "LICENSE_SERVER_VERIFICATION", + // "LIFETIME_SIGNING", + // "MICROSOFT_PUBLISHER", + // "MICROSOFT_TIME_STAMPING", + // "MICROSOFT_TRUST_LIST_SIGNING", + // "OCSP_SIGNING", + // "OEM_WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + // "PLATFORM_CERTIFICATE", + // "PREVIEW_BUILD_SIGNING", + // "PRIVATE_KEY_ARCHIVAL", + // "PROTECTED_PROCESS_LIGHT_VERIFICATION", + // "PROTECTED_PROCESS_VERIFICATION", + // "QUALIFIED_SUBORDINATION", + // "REVOKED_LIST_SIGNER", + // "ROOT_PROGRAM_AUTO_UPDATE_CA_REVOCATION", + // "ROOT_PROGRAM_AUTO_UPDATE_END_REVOCATION", + // "ROOT_PROGRAM_NO_OSCP_FAILOVER_TO_CRL", + // "ROOT_LIST_SIGNER", + // "SECURE_EMAIL", + // "SERVER_AUTHENTICATION", + // "SMART_CARD_LOGIN", + // "SPC_ENCRYPTED_DIGEST_RETRY_COUNT", + // "SPC_RELAXED_PE_MARKER_CHECK", + // "TIME_STAMPING", + // "WINDOWS_HARDWARE_DRIVER_ATTESTED_VERIFICATION", + // "WINDOWS_HARDWARE_DRIVER_EXTENDED_VERIFICATION", + // "WINDOWS_HARDWARE_DRIVER_VERIFICATION", + // "WINDOWS_HELLO_RECOVERY_KEY_ENCRYPTION", + // "WINDOWS_KITS_COMPONENT", + // "WINDOWS_RT_VERIFICATION", + // "WINDOWS_SOFTWARE_EXTENSION_VERIFICATION", + // "WINDOWS_STORE", + // "WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + // "WINDOWS_TCB_COMPONENT", + // "WINDOWS_THIRD_PARTY_APPLICATION_COMPONENT", + // "WINDOWS_UPDATE" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 100, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "Policies" + // ], + // "type": "object" + // }, + // "KeyUsage": { + // "additionalProperties": false, + // "properties": { + // "Critical": { + // "type": "boolean" + // }, + // "UsageFlags": { + // "additionalProperties": false, + // "properties": { + // "DataEncipherment": { + // "type": "boolean" + // }, + // "DigitalSignature": { + // "type": "boolean" + // }, + // "KeyAgreement": { + // "type": "boolean" + // }, + // "KeyEncipherment": { + // "type": "boolean" + // }, + // "NonRepudiation": { + // "type": "boolean" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "UsageFlags" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "KeyUsage" + // ], + // "type": "object" + // }, + // "GeneralFlags": { + // "additionalProperties": false, + // "properties": { + // "AutoEnrollment": { + // "type": "boolean" + // }, + // "MachineType": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "HashAlgorithm": { + // "enum": [ + // "SHA256", + // "SHA384", + // "SHA512" + // ], + // "type": "string" + // }, + // "PrivateKeyAttributes": { + // "additionalProperties": false, + // "properties": { + // "Algorithm": { + // "enum": [ + // "RSA", + // "ECDH_P256", + // "ECDH_P384", + // "ECDH_P521" + // ], + // "type": "string" + // }, + // "CryptoProviders": { + // "items": { + // "maxLength": 100, + // "minLength": 1, + // "type": "string" + // }, + // "maxItems": 100, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // }, + // "KeySpec": { + // "enum": [ + // "KEY_EXCHANGE", + // "SIGNATURE" + // ], + // "type": "string" + // }, + // "KeyUsageProperty": { + // "properties": { + // "PropertyFlags": { + // "additionalProperties": false, + // "properties": { + // "Decrypt": { + // "type": "boolean" + // }, + // "KeyAgreement": { + // "type": "boolean" + // }, + // "Sign": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "PropertyType": { + // "enum": [ + // "ALL" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "MinimalKeyLength": { + // "minimum": 1, + // "type": "number" + // } + // }, + // "required": [ + // "Algorithm", + // "KeySpec", + // "KeyUsageProperty", + // "MinimalKeyLength" + // ], + // "type": "object" + // }, + // "PrivateKeyFlags": { + // "additionalProperties": false, + // "properties": { + // "ClientVersion": { + // "enum": [ + // "WINDOWS_SERVER_2008", + // "WINDOWS_SERVER_2008_R2", + // "WINDOWS_SERVER_2012", + // "WINDOWS_SERVER_2012_R2", + // "WINDOWS_SERVER_2016" + // ], + // "type": "string" + // }, + // "ExportableKey": { + // "type": "boolean" + // }, + // "RequireAlternateSignatureAlgorithm": { + // "type": "boolean" + // }, + // "StrongKeyProtectionRequired": { + // "type": "boolean" + // } + // }, + // "required": [ + // "ClientVersion" + // ], + // "type": "object" + // }, + // "SubjectNameFlags": { + // "additionalProperties": false, + // "properties": { + // "RequireCommonName": { + // "type": "boolean" + // }, + // "RequireDirectoryPath": { + // "type": "boolean" + // }, + // "RequireDnsAsCn": { + // "type": "boolean" + // }, + // "RequireEmail": { + // "type": "boolean" + // }, + // "SanRequireDirectoryGuid": { + // "type": "boolean" + // }, + // "SanRequireDns": { + // "type": "boolean" + // }, + // "SanRequireDomainDns": { + // "type": "boolean" + // }, + // "SanRequireEmail": { + // "type": "boolean" + // }, + // "SanRequireSpn": { + // "type": "boolean" + // }, + // "SanRequireUpn": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "SupersededTemplates": { + // "items": { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "maxItems": 100, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "CertificateValidity", + // "EnrollmentFlags", + // "Extensions", + // "GeneralFlags", + // "HashAlgorithm", + // "PrivateKeyAttributes", + // "PrivateKeyFlags", + // "SubjectNameFlags" + // ], + // "type": "object" + // }, + // "TemplateV4": { + // "additionalProperties": false, + // "properties": { + // "CertificateValidity": { + // "additionalProperties": false, + // "properties": { + // "RenewalPeriod": { + // "additionalProperties": false, + // "properties": { + // "Period": { + // "maximum": 8766000, + // "minimum": 1, + // "type": "number" + // }, + // "PeriodType": { + // "enum": [ + // "HOURS", + // "DAYS", + // "WEEKS", + // "MONTHS", + // "YEARS" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Period", + // "PeriodType" + // ], + // "type": "object" + // }, + // "ValidityPeriod": { + // "additionalProperties": false, + // "properties": { + // "Period": { + // "maximum": 8766000, + // "minimum": 1, + // "type": "number" + // }, + // "PeriodType": { + // "enum": [ + // "HOURS", + // "DAYS", + // "WEEKS", + // "MONTHS", + // "YEARS" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Period", + // "PeriodType" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "RenewalPeriod", + // "ValidityPeriod" + // ], + // "type": "object" + // }, + // "EnrollmentFlags": { + // "additionalProperties": false, + // "properties": { + // "EnableKeyReuseOnNtTokenKeysetStorageFull": { + // "type": "boolean" + // }, + // "IncludeSymmetricAlgorithms": { + // "type": "boolean" + // }, + // "NoSecurityExtension": { + // "type": "boolean" + // }, + // "RemoveInvalidCertificateFromPersonalStore": { + // "type": "boolean" + // }, + // "UserInteractionRequired": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "Extensions": { + // "additionalProperties": false, + // "properties": { + // "ApplicationPolicies": { + // "additionalProperties": false, + // "properties": { + // "Critical": { + // "type": "boolean" + // }, + // "Policies": { + // "items": { + // "properties": { + // "PolicyObjectIdentifier": { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^([0-2])\\.([0-9]|([0-3][0-9]))(\\.([0-9]+)){0,126}$", + // "type": "string" + // }, + // "PolicyType": { + // "enum": [ + // "ALL_APPLICATION_POLICIES", + // "ANY_PURPOSE", + // "ATTESTATION_IDENTITY_KEY_CERTIFICATE", + // "CERTIFICATE_REQUEST_AGENT", + // "CLIENT_AUTHENTICATION", + // "CODE_SIGNING", + // "CTL_USAGE", + // "DIGITAL_RIGHTS", + // "DIRECTORY_SERVICE_EMAIL_REPLICATION", + // "DISALLOWED_LIST", + // "DNS_SERVER_TRUST", + // "DOCUMENT_ENCRYPTION", + // "DOCUMENT_SIGNING", + // "DYNAMIC_CODE_GENERATOR", + // "EARLY_LAUNCH_ANTIMALWARE_DRIVER", + // "EMBEDDED_WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + // "ENCLAVE", + // "ENCRYPTING_FILE_SYSTEM", + // "ENDORSEMENT_KEY_CERTIFICATE", + // "FILE_RECOVERY", + // "HAL_EXTENSION", + // "IP_SECURITY_END_SYSTEM", + // "IP_SECURITY_IKE_INTERMEDIATE", + // "IP_SECURITY_TUNNEL_TERMINATION", + // "IP_SECURITY_USER", + // "ISOLATED_USER_MODE", + // "KDC_AUTHENTICATION", + // "KERNEL_MODE_CODE_SIGNING", + // "KEY_PACK_LICENSES", + // "KEY_RECOVERY", + // "KEY_RECOVERY_AGENT", + // "LICENSE_SERVER_VERIFICATION", + // "LIFETIME_SIGNING", + // "MICROSOFT_PUBLISHER", + // "MICROSOFT_TIME_STAMPING", + // "MICROSOFT_TRUST_LIST_SIGNING", + // "OCSP_SIGNING", + // "OEM_WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + // "PLATFORM_CERTIFICATE", + // "PREVIEW_BUILD_SIGNING", + // "PRIVATE_KEY_ARCHIVAL", + // "PROTECTED_PROCESS_LIGHT_VERIFICATION", + // "PROTECTED_PROCESS_VERIFICATION", + // "QUALIFIED_SUBORDINATION", + // "REVOKED_LIST_SIGNER", + // "ROOT_PROGRAM_AUTO_UPDATE_CA_REVOCATION", + // "ROOT_PROGRAM_AUTO_UPDATE_END_REVOCATION", + // "ROOT_PROGRAM_NO_OSCP_FAILOVER_TO_CRL", + // "ROOT_LIST_SIGNER", + // "SECURE_EMAIL", + // "SERVER_AUTHENTICATION", + // "SMART_CARD_LOGIN", + // "SPC_ENCRYPTED_DIGEST_RETRY_COUNT", + // "SPC_RELAXED_PE_MARKER_CHECK", + // "TIME_STAMPING", + // "WINDOWS_HARDWARE_DRIVER_ATTESTED_VERIFICATION", + // "WINDOWS_HARDWARE_DRIVER_EXTENDED_VERIFICATION", + // "WINDOWS_HARDWARE_DRIVER_VERIFICATION", + // "WINDOWS_HELLO_RECOVERY_KEY_ENCRYPTION", + // "WINDOWS_KITS_COMPONENT", + // "WINDOWS_RT_VERIFICATION", + // "WINDOWS_SOFTWARE_EXTENSION_VERIFICATION", + // "WINDOWS_STORE", + // "WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + // "WINDOWS_TCB_COMPONENT", + // "WINDOWS_THIRD_PARTY_APPLICATION_COMPONENT", + // "WINDOWS_UPDATE" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 100, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "Policies" + // ], + // "type": "object" + // }, + // "KeyUsage": { + // "additionalProperties": false, + // "properties": { + // "Critical": { + // "type": "boolean" + // }, + // "UsageFlags": { + // "additionalProperties": false, + // "properties": { + // "DataEncipherment": { + // "type": "boolean" + // }, + // "DigitalSignature": { + // "type": "boolean" + // }, + // "KeyAgreement": { + // "type": "boolean" + // }, + // "KeyEncipherment": { + // "type": "boolean" + // }, + // "NonRepudiation": { + // "type": "boolean" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "UsageFlags" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "KeyUsage" + // ], + // "type": "object" + // }, + // "GeneralFlags": { + // "additionalProperties": false, + // "properties": { + // "AutoEnrollment": { + // "type": "boolean" + // }, + // "MachineType": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "HashAlgorithm": { + // "enum": [ + // "SHA256", + // "SHA384", + // "SHA512" + // ], + // "type": "string" + // }, + // "PrivateKeyAttributes": { + // "additionalProperties": false, + // "properties": { + // "Algorithm": { + // "enum": [ + // "RSA", + // "ECDH_P256", + // "ECDH_P384", + // "ECDH_P521" + // ], + // "type": "string" + // }, + // "CryptoProviders": { + // "items": { + // "maxLength": 100, + // "minLength": 1, + // "type": "string" + // }, + // "maxItems": 100, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // }, + // "KeySpec": { + // "enum": [ + // "KEY_EXCHANGE", + // "SIGNATURE" + // ], + // "type": "string" + // }, + // "KeyUsageProperty": { + // "properties": { + // "PropertyFlags": { + // "additionalProperties": false, + // "properties": { + // "Decrypt": { + // "type": "boolean" + // }, + // "KeyAgreement": { + // "type": "boolean" + // }, + // "Sign": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "PropertyType": { + // "enum": [ + // "ALL" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "MinimalKeyLength": { + // "minimum": 1, + // "type": "number" + // } + // }, + // "required": [ + // "KeySpec", + // "MinimalKeyLength" + // ], + // "type": "object" + // }, + // "PrivateKeyFlags": { + // "additionalProperties": false, + // "properties": { + // "ClientVersion": { + // "enum": [ + // "WINDOWS_SERVER_2012", + // "WINDOWS_SERVER_2012_R2", + // "WINDOWS_SERVER_2016" + // ], + // "type": "string" + // }, + // "ExportableKey": { + // "type": "boolean" + // }, + // "RequireAlternateSignatureAlgorithm": { + // "type": "boolean" + // }, + // "RequireSameKeyRenewal": { + // "type": "boolean" + // }, + // "StrongKeyProtectionRequired": { + // "type": "boolean" + // }, + // "UseLegacyProvider": { + // "type": "boolean" + // } + // }, + // "required": [ + // "ClientVersion" + // ], + // "type": "object" + // }, + // "SubjectNameFlags": { + // "additionalProperties": false, + // "properties": { + // "RequireCommonName": { + // "type": "boolean" + // }, + // "RequireDirectoryPath": { + // "type": "boolean" + // }, + // "RequireDnsAsCn": { + // "type": "boolean" + // }, + // "RequireEmail": { + // "type": "boolean" + // }, + // "SanRequireDirectoryGuid": { + // "type": "boolean" + // }, + // "SanRequireDns": { + // "type": "boolean" + // }, + // "SanRequireDomainDns": { + // "type": "boolean" + // }, + // "SanRequireEmail": { + // "type": "boolean" + // }, + // "SanRequireSpn": { + // "type": "boolean" + // }, + // "SanRequireUpn": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "SupersededTemplates": { + // "items": { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "maxItems": 100, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "CertificateValidity", + // "EnrollmentFlags", + // "Extensions", + // "GeneralFlags", + // "PrivateKeyAttributes", + // "PrivateKeyFlags", + // "SubjectNameFlags" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // } + "definition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: TemplateV2 + "template_v2": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CertificateValidity + "certificate_validity": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: RenewalPeriod + "renewal_period": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Period + "period": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(1.000000, 8766000.000000), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: PeriodType + "period_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "HOURS", + "DAYS", + "WEEKS", + "MONTHS", + "YEARS", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: ValidityPeriod + "validity_period": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Period + "period": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(1.000000, 8766000.000000), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: PeriodType + "period_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "HOURS", + "DAYS", + "WEEKS", + "MONTHS", + "YEARS", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: EnrollmentFlags + "enrollment_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EnableKeyReuseOnNtTokenKeysetStorageFull + "enable_key_reuse_on_nt_token_keyset_storage_full": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: IncludeSymmetricAlgorithms + "include_symmetric_algorithms": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: NoSecurityExtension + "no_security_extension": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RemoveInvalidCertificateFromPersonalStore + "remove_invalid_certificate_from_personal_store": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UserInteractionRequired + "user_interaction_required": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Extensions + "extensions": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ApplicationPolicies + "application_policies": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Critical + "critical": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Policies + "policies": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PolicyObjectIdentifier + "policy_object_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 64), + stringvalidator.RegexMatches(regexp.MustCompile("^([0-2])\\.([0-9]|([0-3][0-9]))(\\.([0-9]+)){0,126}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PolicyType + "policy_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ALL_APPLICATION_POLICIES", + "ANY_PURPOSE", + "ATTESTATION_IDENTITY_KEY_CERTIFICATE", + "CERTIFICATE_REQUEST_AGENT", + "CLIENT_AUTHENTICATION", + "CODE_SIGNING", + "CTL_USAGE", + "DIGITAL_RIGHTS", + "DIRECTORY_SERVICE_EMAIL_REPLICATION", + "DISALLOWED_LIST", + "DNS_SERVER_TRUST", + "DOCUMENT_ENCRYPTION", + "DOCUMENT_SIGNING", + "DYNAMIC_CODE_GENERATOR", + "EARLY_LAUNCH_ANTIMALWARE_DRIVER", + "EMBEDDED_WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + "ENCLAVE", + "ENCRYPTING_FILE_SYSTEM", + "ENDORSEMENT_KEY_CERTIFICATE", + "FILE_RECOVERY", + "HAL_EXTENSION", + "IP_SECURITY_END_SYSTEM", + "IP_SECURITY_IKE_INTERMEDIATE", + "IP_SECURITY_TUNNEL_TERMINATION", + "IP_SECURITY_USER", + "ISOLATED_USER_MODE", + "KDC_AUTHENTICATION", + "KERNEL_MODE_CODE_SIGNING", + "KEY_PACK_LICENSES", + "KEY_RECOVERY", + "KEY_RECOVERY_AGENT", + "LICENSE_SERVER_VERIFICATION", + "LIFETIME_SIGNING", + "MICROSOFT_PUBLISHER", + "MICROSOFT_TIME_STAMPING", + "MICROSOFT_TRUST_LIST_SIGNING", + "OCSP_SIGNING", + "OEM_WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + "PLATFORM_CERTIFICATE", + "PREVIEW_BUILD_SIGNING", + "PRIVATE_KEY_ARCHIVAL", + "PROTECTED_PROCESS_LIGHT_VERIFICATION", + "PROTECTED_PROCESS_VERIFICATION", + "QUALIFIED_SUBORDINATION", + "REVOKED_LIST_SIGNER", + "ROOT_PROGRAM_AUTO_UPDATE_CA_REVOCATION", + "ROOT_PROGRAM_AUTO_UPDATE_END_REVOCATION", + "ROOT_PROGRAM_NO_OSCP_FAILOVER_TO_CRL", + "ROOT_LIST_SIGNER", + "SECURE_EMAIL", + "SERVER_AUTHENTICATION", + "SMART_CARD_LOGIN", + "SPC_ENCRYPTED_DIGEST_RETRY_COUNT", + "SPC_RELAXED_PE_MARKER_CHECK", + "TIME_STAMPING", + "WINDOWS_HARDWARE_DRIVER_ATTESTED_VERIFICATION", + "WINDOWS_HARDWARE_DRIVER_EXTENDED_VERIFICATION", + "WINDOWS_HARDWARE_DRIVER_VERIFICATION", + "WINDOWS_HELLO_RECOVERY_KEY_ENCRYPTION", + "WINDOWS_KITS_COMPONENT", + "WINDOWS_RT_VERIFICATION", + "WINDOWS_SOFTWARE_EXTENSION_VERIFICATION", + "WINDOWS_STORE", + "WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + "WINDOWS_TCB_COMPONENT", + "WINDOWS_THIRD_PARTY_APPLICATION_COMPONENT", + "WINDOWS_UPDATE", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 100), + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: KeyUsage + "key_usage": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Critical + "critical": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UsageFlags + "usage_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DataEncipherment + "data_encipherment": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DigitalSignature + "digital_signature": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: KeyAgreement + "key_agreement": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: KeyEncipherment + "key_encipherment": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: NonRepudiation + "non_repudiation": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: GeneralFlags + "general_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AutoEnrollment + "auto_enrollment": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MachineType + "machine_type": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: PrivateKeyAttributes + "private_key_attributes": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CryptoProviders + "crypto_providers": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 100), + listvalidator.UniqueValues(), + listvalidator.ValueStringsAre( + stringvalidator.LengthBetween(1, 100), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: KeySpec + "key_spec": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "KEY_EXCHANGE", + "SIGNATURE", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: MinimalKeyLength + "minimal_key_length": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.AtLeast(1.000000), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: PrivateKeyFlags + "private_key_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ClientVersion + "client_version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "WINDOWS_SERVER_2003", + "WINDOWS_SERVER_2008", + "WINDOWS_SERVER_2008_R2", + "WINDOWS_SERVER_2012", + "WINDOWS_SERVER_2012_R2", + "WINDOWS_SERVER_2016", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: ExportableKey + "exportable_key": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: StrongKeyProtectionRequired + "strong_key_protection_required": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: SubjectNameFlags + "subject_name_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: RequireCommonName + "require_common_name": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RequireDirectoryPath + "require_directory_path": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RequireDnsAsCn + "require_dns_as_cn": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RequireEmail + "require_email": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SanRequireDirectoryGuid + "san_require_directory_guid": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SanRequireDns + "san_require_dns": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SanRequireDomainDns + "san_require_domain_dns": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SanRequireEmail + "san_require_email": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SanRequireSpn + "san_require_spn": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SanRequireUpn + "san_require_upn": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: SupersededTemplates + "superseded_templates": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 100), + listvalidator.UniqueValues(), + listvalidator.ValueStringsAre( + stringvalidator.LengthBetween(1, 64), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TemplateV3 + "template_v3": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CertificateValidity + "certificate_validity": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: RenewalPeriod + "renewal_period": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Period + "period": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(1.000000, 8766000.000000), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: PeriodType + "period_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "HOURS", + "DAYS", + "WEEKS", + "MONTHS", + "YEARS", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: ValidityPeriod + "validity_period": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Period + "period": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(1.000000, 8766000.000000), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: PeriodType + "period_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "HOURS", + "DAYS", + "WEEKS", + "MONTHS", + "YEARS", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: EnrollmentFlags + "enrollment_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EnableKeyReuseOnNtTokenKeysetStorageFull + "enable_key_reuse_on_nt_token_keyset_storage_full": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: IncludeSymmetricAlgorithms + "include_symmetric_algorithms": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: NoSecurityExtension + "no_security_extension": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RemoveInvalidCertificateFromPersonalStore + "remove_invalid_certificate_from_personal_store": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UserInteractionRequired + "user_interaction_required": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Extensions + "extensions": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ApplicationPolicies + "application_policies": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Critical + "critical": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Policies + "policies": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PolicyObjectIdentifier + "policy_object_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 64), + stringvalidator.RegexMatches(regexp.MustCompile("^([0-2])\\.([0-9]|([0-3][0-9]))(\\.([0-9]+)){0,126}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PolicyType + "policy_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ALL_APPLICATION_POLICIES", + "ANY_PURPOSE", + "ATTESTATION_IDENTITY_KEY_CERTIFICATE", + "CERTIFICATE_REQUEST_AGENT", + "CLIENT_AUTHENTICATION", + "CODE_SIGNING", + "CTL_USAGE", + "DIGITAL_RIGHTS", + "DIRECTORY_SERVICE_EMAIL_REPLICATION", + "DISALLOWED_LIST", + "DNS_SERVER_TRUST", + "DOCUMENT_ENCRYPTION", + "DOCUMENT_SIGNING", + "DYNAMIC_CODE_GENERATOR", + "EARLY_LAUNCH_ANTIMALWARE_DRIVER", + "EMBEDDED_WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + "ENCLAVE", + "ENCRYPTING_FILE_SYSTEM", + "ENDORSEMENT_KEY_CERTIFICATE", + "FILE_RECOVERY", + "HAL_EXTENSION", + "IP_SECURITY_END_SYSTEM", + "IP_SECURITY_IKE_INTERMEDIATE", + "IP_SECURITY_TUNNEL_TERMINATION", + "IP_SECURITY_USER", + "ISOLATED_USER_MODE", + "KDC_AUTHENTICATION", + "KERNEL_MODE_CODE_SIGNING", + "KEY_PACK_LICENSES", + "KEY_RECOVERY", + "KEY_RECOVERY_AGENT", + "LICENSE_SERVER_VERIFICATION", + "LIFETIME_SIGNING", + "MICROSOFT_PUBLISHER", + "MICROSOFT_TIME_STAMPING", + "MICROSOFT_TRUST_LIST_SIGNING", + "OCSP_SIGNING", + "OEM_WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + "PLATFORM_CERTIFICATE", + "PREVIEW_BUILD_SIGNING", + "PRIVATE_KEY_ARCHIVAL", + "PROTECTED_PROCESS_LIGHT_VERIFICATION", + "PROTECTED_PROCESS_VERIFICATION", + "QUALIFIED_SUBORDINATION", + "REVOKED_LIST_SIGNER", + "ROOT_PROGRAM_AUTO_UPDATE_CA_REVOCATION", + "ROOT_PROGRAM_AUTO_UPDATE_END_REVOCATION", + "ROOT_PROGRAM_NO_OSCP_FAILOVER_TO_CRL", + "ROOT_LIST_SIGNER", + "SECURE_EMAIL", + "SERVER_AUTHENTICATION", + "SMART_CARD_LOGIN", + "SPC_ENCRYPTED_DIGEST_RETRY_COUNT", + "SPC_RELAXED_PE_MARKER_CHECK", + "TIME_STAMPING", + "WINDOWS_HARDWARE_DRIVER_ATTESTED_VERIFICATION", + "WINDOWS_HARDWARE_DRIVER_EXTENDED_VERIFICATION", + "WINDOWS_HARDWARE_DRIVER_VERIFICATION", + "WINDOWS_HELLO_RECOVERY_KEY_ENCRYPTION", + "WINDOWS_KITS_COMPONENT", + "WINDOWS_RT_VERIFICATION", + "WINDOWS_SOFTWARE_EXTENSION_VERIFICATION", + "WINDOWS_STORE", + "WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + "WINDOWS_TCB_COMPONENT", + "WINDOWS_THIRD_PARTY_APPLICATION_COMPONENT", + "WINDOWS_UPDATE", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 100), + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: KeyUsage + "key_usage": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Critical + "critical": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UsageFlags + "usage_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DataEncipherment + "data_encipherment": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DigitalSignature + "digital_signature": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: KeyAgreement + "key_agreement": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: KeyEncipherment + "key_encipherment": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: NonRepudiation + "non_repudiation": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: GeneralFlags + "general_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AutoEnrollment + "auto_enrollment": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MachineType + "machine_type": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: HashAlgorithm + "hash_algorithm": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "SHA256", + "SHA384", + "SHA512", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: PrivateKeyAttributes + "private_key_attributes": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Algorithm + "algorithm": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "RSA", + "ECDH_P256", + "ECDH_P384", + "ECDH_P521", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: CryptoProviders + "crypto_providers": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 100), + listvalidator.UniqueValues(), + listvalidator.ValueStringsAre( + stringvalidator.LengthBetween(1, 100), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: KeySpec + "key_spec": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "KEY_EXCHANGE", + "SIGNATURE", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: KeyUsageProperty + "key_usage_property": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PropertyFlags + "property_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Decrypt + "decrypt": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: KeyAgreement + "key_agreement": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Sign + "sign": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PropertyType + "property_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ALL", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: MinimalKeyLength + "minimal_key_length": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.AtLeast(1.000000), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: PrivateKeyFlags + "private_key_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ClientVersion + "client_version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "WINDOWS_SERVER_2008", + "WINDOWS_SERVER_2008_R2", + "WINDOWS_SERVER_2012", + "WINDOWS_SERVER_2012_R2", + "WINDOWS_SERVER_2016", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: ExportableKey + "exportable_key": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RequireAlternateSignatureAlgorithm + "require_alternate_signature_algorithm": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: StrongKeyProtectionRequired + "strong_key_protection_required": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: SubjectNameFlags + "subject_name_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: RequireCommonName + "require_common_name": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RequireDirectoryPath + "require_directory_path": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RequireDnsAsCn + "require_dns_as_cn": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RequireEmail + "require_email": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SanRequireDirectoryGuid + "san_require_directory_guid": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SanRequireDns + "san_require_dns": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SanRequireDomainDns + "san_require_domain_dns": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SanRequireEmail + "san_require_email": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SanRequireSpn + "san_require_spn": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SanRequireUpn + "san_require_upn": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: SupersededTemplates + "superseded_templates": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 100), + listvalidator.UniqueValues(), + listvalidator.ValueStringsAre( + stringvalidator.LengthBetween(1, 64), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TemplateV4 + "template_v4": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CertificateValidity + "certificate_validity": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: RenewalPeriod + "renewal_period": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Period + "period": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(1.000000, 8766000.000000), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: PeriodType + "period_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "HOURS", + "DAYS", + "WEEKS", + "MONTHS", + "YEARS", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: ValidityPeriod + "validity_period": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Period + "period": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(1.000000, 8766000.000000), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: PeriodType + "period_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "HOURS", + "DAYS", + "WEEKS", + "MONTHS", + "YEARS", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: EnrollmentFlags + "enrollment_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EnableKeyReuseOnNtTokenKeysetStorageFull + "enable_key_reuse_on_nt_token_keyset_storage_full": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: IncludeSymmetricAlgorithms + "include_symmetric_algorithms": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: NoSecurityExtension + "no_security_extension": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RemoveInvalidCertificateFromPersonalStore + "remove_invalid_certificate_from_personal_store": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UserInteractionRequired + "user_interaction_required": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Extensions + "extensions": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ApplicationPolicies + "application_policies": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Critical + "critical": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Policies + "policies": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PolicyObjectIdentifier + "policy_object_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 64), + stringvalidator.RegexMatches(regexp.MustCompile("^([0-2])\\.([0-9]|([0-3][0-9]))(\\.([0-9]+)){0,126}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PolicyType + "policy_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ALL_APPLICATION_POLICIES", + "ANY_PURPOSE", + "ATTESTATION_IDENTITY_KEY_CERTIFICATE", + "CERTIFICATE_REQUEST_AGENT", + "CLIENT_AUTHENTICATION", + "CODE_SIGNING", + "CTL_USAGE", + "DIGITAL_RIGHTS", + "DIRECTORY_SERVICE_EMAIL_REPLICATION", + "DISALLOWED_LIST", + "DNS_SERVER_TRUST", + "DOCUMENT_ENCRYPTION", + "DOCUMENT_SIGNING", + "DYNAMIC_CODE_GENERATOR", + "EARLY_LAUNCH_ANTIMALWARE_DRIVER", + "EMBEDDED_WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + "ENCLAVE", + "ENCRYPTING_FILE_SYSTEM", + "ENDORSEMENT_KEY_CERTIFICATE", + "FILE_RECOVERY", + "HAL_EXTENSION", + "IP_SECURITY_END_SYSTEM", + "IP_SECURITY_IKE_INTERMEDIATE", + "IP_SECURITY_TUNNEL_TERMINATION", + "IP_SECURITY_USER", + "ISOLATED_USER_MODE", + "KDC_AUTHENTICATION", + "KERNEL_MODE_CODE_SIGNING", + "KEY_PACK_LICENSES", + "KEY_RECOVERY", + "KEY_RECOVERY_AGENT", + "LICENSE_SERVER_VERIFICATION", + "LIFETIME_SIGNING", + "MICROSOFT_PUBLISHER", + "MICROSOFT_TIME_STAMPING", + "MICROSOFT_TRUST_LIST_SIGNING", + "OCSP_SIGNING", + "OEM_WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + "PLATFORM_CERTIFICATE", + "PREVIEW_BUILD_SIGNING", + "PRIVATE_KEY_ARCHIVAL", + "PROTECTED_PROCESS_LIGHT_VERIFICATION", + "PROTECTED_PROCESS_VERIFICATION", + "QUALIFIED_SUBORDINATION", + "REVOKED_LIST_SIGNER", + "ROOT_PROGRAM_AUTO_UPDATE_CA_REVOCATION", + "ROOT_PROGRAM_AUTO_UPDATE_END_REVOCATION", + "ROOT_PROGRAM_NO_OSCP_FAILOVER_TO_CRL", + "ROOT_LIST_SIGNER", + "SECURE_EMAIL", + "SERVER_AUTHENTICATION", + "SMART_CARD_LOGIN", + "SPC_ENCRYPTED_DIGEST_RETRY_COUNT", + "SPC_RELAXED_PE_MARKER_CHECK", + "TIME_STAMPING", + "WINDOWS_HARDWARE_DRIVER_ATTESTED_VERIFICATION", + "WINDOWS_HARDWARE_DRIVER_EXTENDED_VERIFICATION", + "WINDOWS_HARDWARE_DRIVER_VERIFICATION", + "WINDOWS_HELLO_RECOVERY_KEY_ENCRYPTION", + "WINDOWS_KITS_COMPONENT", + "WINDOWS_RT_VERIFICATION", + "WINDOWS_SOFTWARE_EXTENSION_VERIFICATION", + "WINDOWS_STORE", + "WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + "WINDOWS_TCB_COMPONENT", + "WINDOWS_THIRD_PARTY_APPLICATION_COMPONENT", + "WINDOWS_UPDATE", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Required: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 100), + listvalidator.UniqueValues(), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: KeyUsage + "key_usage": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Critical + "critical": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UsageFlags + "usage_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DataEncipherment + "data_encipherment": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DigitalSignature + "digital_signature": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: KeyAgreement + "key_agreement": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: KeyEncipherment + "key_encipherment": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: NonRepudiation + "non_repudiation": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: GeneralFlags + "general_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AutoEnrollment + "auto_enrollment": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MachineType + "machine_type": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: HashAlgorithm + "hash_algorithm": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "SHA256", + "SHA384", + "SHA512", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PrivateKeyAttributes + "private_key_attributes": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Algorithm + "algorithm": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "RSA", + "ECDH_P256", + "ECDH_P384", + "ECDH_P521", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CryptoProviders + "crypto_providers": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 100), + listvalidator.UniqueValues(), + listvalidator.ValueStringsAre( + stringvalidator.LengthBetween(1, 100), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: KeySpec + "key_spec": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "KEY_EXCHANGE", + "SIGNATURE", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: KeyUsageProperty + "key_usage_property": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PropertyFlags + "property_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Decrypt + "decrypt": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: KeyAgreement + "key_agreement": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Sign + "sign": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PropertyType + "property_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ALL", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MinimalKeyLength + "minimal_key_length": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.AtLeast(1.000000), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: PrivateKeyFlags + "private_key_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ClientVersion + "client_version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "WINDOWS_SERVER_2012", + "WINDOWS_SERVER_2012_R2", + "WINDOWS_SERVER_2016", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: ExportableKey + "exportable_key": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RequireAlternateSignatureAlgorithm + "require_alternate_signature_algorithm": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RequireSameKeyRenewal + "require_same_key_renewal": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: StrongKeyProtectionRequired + "strong_key_protection_required": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UseLegacyProvider + "use_legacy_provider": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: SubjectNameFlags + "subject_name_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: RequireCommonName + "require_common_name": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RequireDirectoryPath + "require_directory_path": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RequireDnsAsCn + "require_dns_as_cn": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RequireEmail + "require_email": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SanRequireDirectoryGuid + "san_require_directory_guid": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SanRequireDns + "san_require_dns": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SanRequireDomainDns + "san_require_domain_dns": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SanRequireEmail + "san_require_email": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SanRequireSpn + "san_require_spn": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SanRequireUpn + "san_require_upn": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: SupersededTemplates + "superseded_templates": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 100), + listvalidator.UniqueValues(), + listvalidator.ValueStringsAre( + stringvalidator.LengthBetween(1, 64), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + // Definition is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 64), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + // Name is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: ReenrollAllCertificateHolders + // CloudFormation resource type schema: + // + // { + // "type": "boolean" + // } + "reenroll_all_certificate_holders": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // ReenrollAllCertificateHolders is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // } + "tags": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // Tags is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: TemplateArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 200, + // "minLength": 5, + // "pattern": "^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:connector\\/[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}\\/template\\/[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$", + // "type": "string" + // } + "template_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Represents a template that defines certificate configurations, both for issuance and client handling", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::PCAConnectorAD::Template").WithTerraformTypeName("awscc_pcaconnectorad_template") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithSyntheticIDAttribute(true) + opts = opts.WithAttributeNameMap(map[string]string{ + "algorithm": "Algorithm", + "application_policies": "ApplicationPolicies", + "auto_enrollment": "AutoEnrollment", + "certificate_validity": "CertificateValidity", + "client_version": "ClientVersion", + "connector_arn": "ConnectorArn", + "critical": "Critical", + "crypto_providers": "CryptoProviders", + "data_encipherment": "DataEncipherment", + "decrypt": "Decrypt", + "definition": "Definition", + "digital_signature": "DigitalSignature", + "enable_key_reuse_on_nt_token_keyset_storage_full": "EnableKeyReuseOnNtTokenKeysetStorageFull", + "enrollment_flags": "EnrollmentFlags", + "exportable_key": "ExportableKey", + "extensions": "Extensions", + "general_flags": "GeneralFlags", + "hash_algorithm": "HashAlgorithm", + "include_symmetric_algorithms": "IncludeSymmetricAlgorithms", + "key_agreement": "KeyAgreement", + "key_encipherment": "KeyEncipherment", + "key_spec": "KeySpec", + "key_usage": "KeyUsage", + "key_usage_property": "KeyUsageProperty", + "machine_type": "MachineType", + "minimal_key_length": "MinimalKeyLength", + "name": "Name", + "no_security_extension": "NoSecurityExtension", + "non_repudiation": "NonRepudiation", + "period": "Period", + "period_type": "PeriodType", + "policies": "Policies", + "policy_object_identifier": "PolicyObjectIdentifier", + "policy_type": "PolicyType", + "private_key_attributes": "PrivateKeyAttributes", + "private_key_flags": "PrivateKeyFlags", + "property_flags": "PropertyFlags", + "property_type": "PropertyType", + "reenroll_all_certificate_holders": "ReenrollAllCertificateHolders", + "remove_invalid_certificate_from_personal_store": "RemoveInvalidCertificateFromPersonalStore", + "renewal_period": "RenewalPeriod", + "require_alternate_signature_algorithm": "RequireAlternateSignatureAlgorithm", + "require_common_name": "RequireCommonName", + "require_directory_path": "RequireDirectoryPath", + "require_dns_as_cn": "RequireDnsAsCn", + "require_email": "RequireEmail", + "require_same_key_renewal": "RequireSameKeyRenewal", + "san_require_directory_guid": "SanRequireDirectoryGuid", + "san_require_dns": "SanRequireDns", + "san_require_domain_dns": "SanRequireDomainDns", + "san_require_email": "SanRequireEmail", + "san_require_spn": "SanRequireSpn", + "san_require_upn": "SanRequireUpn", + "sign": "Sign", + "strong_key_protection_required": "StrongKeyProtectionRequired", + "subject_name_flags": "SubjectNameFlags", + "superseded_templates": "SupersededTemplates", + "tags": "Tags", + "template_arn": "TemplateArn", + "template_v2": "TemplateV2", + "template_v3": "TemplateV3", + "template_v4": "TemplateV4", + "usage_flags": "UsageFlags", + "use_legacy_provider": "UseLegacyProvider", + "user_interaction_required": "UserInteractionRequired", + "validity_period": "ValidityPeriod", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/ConnectorArn", + "/properties/Definition", + "/properties/Name", + "/properties/ReenrollAllCertificateHolders", + "/properties/Tags", + }) + 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/pcaconnectorad/template_resource_gen_test.go b/internal/aws/pcaconnectorad/template_resource_gen_test.go new file mode 100644 index 0000000000..9fe1d86aae --- /dev/null +++ b/internal/aws/pcaconnectorad/template_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 pcaconnectorad_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSPCAConnectorADTemplate_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::PCAConnectorAD::Template", "awscc_pcaconnectorad_template", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/rds/option_group_resource_gen.go b/internal/aws/rds/option_group_resource_gen.go index 97dfdf17c7..7c0ce5c021 100644 --- a/internal/aws/rds/option_group_resource_gen.go +++ b/internal/aws/rds/option_group_resource_gen.go @@ -62,6 +62,7 @@ func optionGroupResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { + // "arrayType": "AttributeList", // "description": "Indicates what options are available in the option group.", // "insertionOrder": false, // "items": { diff --git a/internal/aws/rolesanywhere/trust_anchor_resource_gen.go b/internal/aws/rolesanywhere/trust_anchor_resource_gen.go index 2a5dd97a37..52cd8c6bbc 100644 --- a/internal/aws/rolesanywhere/trust_anchor_resource_gen.go +++ b/internal/aws/rolesanywhere/trust_anchor_resource_gen.go @@ -8,11 +8,13 @@ package rolesanywhere import ( "context" + "github.com/hashicorp/terraform-plugin-framework-validators/float64validator" "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" "github.com/hashicorp/terraform-plugin-framework/resource" "github.com/hashicorp/terraform-plugin-framework/resource/schema" "github.com/hashicorp/terraform-plugin-framework/resource/schema/boolplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/float64planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" @@ -53,6 +55,97 @@ func trustAnchorResource(ctx context.Context) (resource.Resource, error) { "name": schema.StringAttribute{ /*START ATTRIBUTE*/ Required: true, }, /*END ATTRIBUTE*/ + // Property: NotificationSettings + // CloudFormation resource type schema: + // + // { + // "items": { + // "additionalProperties": false, + // "properties": { + // "Channel": { + // "enum": [ + // "ALL" + // ], + // "type": "string" + // }, + // "Enabled": { + // "type": "boolean" + // }, + // "Event": { + // "enum": [ + // "CA_CERTIFICATE_EXPIRY", + // "END_ENTITY_CERTIFICATE_EXPIRY" + // ], + // "type": "string" + // }, + // "Threshold": { + // "maximum": 360, + // "minimum": 1, + // "type": "number" + // } + // }, + // "required": [ + // "Enabled", + // "Event" + // ], + // "type": "object" + // }, + // "maxItems": 50, + // "minItems": 0, + // "type": "array" + // } + "notification_settings": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Channel + "channel": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ALL", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Enabled + "enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Event + "event": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "CA_CERTIFICATE_EXPIRY", + "END_ENTITY_CERTIFICATE_EXPIRY", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Threshold + "threshold": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(1.000000, 360.000000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(0, 50), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Source // CloudFormation resource type schema: // @@ -232,13 +325,17 @@ func trustAnchorResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithSyntheticIDAttribute(true) opts = opts.WithAttributeNameMap(map[string]string{ "acm_pca_arn": "AcmPcaArn", + "channel": "Channel", "enabled": "Enabled", + "event": "Event", "key": "Key", "name": "Name", + "notification_settings": "NotificationSettings", "source": "Source", "source_data": "SourceData", "source_type": "SourceType", "tags": "Tags", + "threshold": "Threshold", "trust_anchor_arn": "TrustAnchorArn", "trust_anchor_id": "TrustAnchorId", "value": "Value", From 6a3b285bbbeab908908e723d40e06e8fbdc198ce Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 7 Sep 2023 12:24:27 -0400 Subject: [PATCH 4/6] 09/06/2023 CloudFormation schemas in us-east-1; Generate Terraform data source schemas. --- .../appflow/flow_singular_data_source_gen.go | 57 +- ...stom_line_item_singular_data_source_gen.go | 64 + ...el_configuration_plural_data_source_gen.go | 54 + ...nfiguration_plural_data_source_gen_test.go | 27 + ...nalysis_template_plural_data_source_gen.go | 54 + ...is_template_plural_data_source_gen_test.go | 27 + ...lysis_template_singular_data_source_gen.go | 344 +++ ..._template_singular_data_source_gen_test.go | 36 + .../membership_singular_data_source_gen.go | 91 + .../hook_version_plural_data_source_gen.go | 54 + ...ook_version_plural_data_source_gen_test.go | 27 + .../quick_connect_singular_data_source_gen.go | 16 + .../connect/view_singular_data_source_gen.go | 228 ++ .../view_singular_data_source_gen_test.go | 36 + .../view_version_singular_data_source_gen.go | 124 + ...w_version_singular_data_source_gen_test.go | 36 + .../datasync/task_singular_data_source_gen.go | 256 ++ .../eip_association_plural_data_source_gen.go | 54 + ...association_plural_data_source_gen_test.go | 27 + ...ip_association_singular_data_source_gen.go | 124 + ...sociation_singular_data_source_gen_test.go | 40 + .../ec2/flow_log_singular_data_source_gen.go | 12 + .../application_singular_data_source_gen.go | 4 +- .../detector_plural_data_source_gen.go | 54 + .../detector_plural_data_source_gen_test.go | 27 + .../detector_singular_data_source_gen.go | 328 +++ .../detector_singular_data_source_gen_test.go | 36 + .../destination_singular_data_source_gen.go | 3 +- .../task_definition_plural_data_source_gen.go | 54 + ..._definition_plural_data_source_gen_test.go | 27 + ...indings_filter_singular_data_source_gen.go | 48 + .../connector_plural_data_source_gen.go | 54 + .../connector_plural_data_source_gen_test.go | 27 + .../connector_singular_data_source_gen.go | 143 ++ ...connector_singular_data_source_gen_test.go | 36 + ...ory_registration_plural_data_source_gen.go | 54 + ...egistration_plural_data_source_gen_test.go | 27 + ...y_registration_singular_data_source_gen.go | 94 + ...istration_singular_data_source_gen_test.go | 36 + ...principal_name_singular_data_source_gen.go | 78 + ...ipal_name_singular_data_source_gen_test.go | 40 + ..._control_entry_singular_data_source_gen.go | 130 + ...rol_entry_singular_data_source_gen_test.go | 36 + .../template_singular_data_source_gen.go | 2157 +++++++++++++++++ .../template_singular_data_source_gen_test.go | 36 + .../option_group_singular_data_source_gen.go | 1 + .../trust_anchor_singular_data_source_gen.go | 66 + 47 files changed, 5381 insertions(+), 3 deletions(-) create mode 100644 internal/aws/chatbot/microsoft_teams_channel_configuration_plural_data_source_gen.go create mode 100644 internal/aws/chatbot/microsoft_teams_channel_configuration_plural_data_source_gen_test.go create mode 100644 internal/aws/cleanrooms/analysis_template_plural_data_source_gen.go create mode 100644 internal/aws/cleanrooms/analysis_template_plural_data_source_gen_test.go create mode 100644 internal/aws/cleanrooms/analysis_template_singular_data_source_gen.go create mode 100644 internal/aws/cleanrooms/analysis_template_singular_data_source_gen_test.go create mode 100644 internal/aws/cloudformation/hook_version_plural_data_source_gen.go create mode 100644 internal/aws/cloudformation/hook_version_plural_data_source_gen_test.go create mode 100644 internal/aws/connect/view_singular_data_source_gen.go create mode 100644 internal/aws/connect/view_singular_data_source_gen_test.go create mode 100644 internal/aws/connect/view_version_singular_data_source_gen.go create mode 100644 internal/aws/connect/view_version_singular_data_source_gen_test.go create mode 100644 internal/aws/ec2/eip_association_plural_data_source_gen.go create mode 100644 internal/aws/ec2/eip_association_plural_data_source_gen_test.go create mode 100644 internal/aws/ec2/eip_association_singular_data_source_gen.go create mode 100644 internal/aws/ec2/eip_association_singular_data_source_gen_test.go create mode 100644 internal/aws/guardduty/detector_plural_data_source_gen.go create mode 100644 internal/aws/guardduty/detector_plural_data_source_gen_test.go create mode 100644 internal/aws/guardduty/detector_singular_data_source_gen.go create mode 100644 internal/aws/guardduty/detector_singular_data_source_gen_test.go create mode 100644 internal/aws/iotwireless/task_definition_plural_data_source_gen.go create mode 100644 internal/aws/iotwireless/task_definition_plural_data_source_gen_test.go create mode 100644 internal/aws/pcaconnectorad/connector_plural_data_source_gen.go create mode 100644 internal/aws/pcaconnectorad/connector_plural_data_source_gen_test.go create mode 100644 internal/aws/pcaconnectorad/connector_singular_data_source_gen.go create mode 100644 internal/aws/pcaconnectorad/connector_singular_data_source_gen_test.go create mode 100644 internal/aws/pcaconnectorad/directory_registration_plural_data_source_gen.go create mode 100644 internal/aws/pcaconnectorad/directory_registration_plural_data_source_gen_test.go create mode 100644 internal/aws/pcaconnectorad/directory_registration_singular_data_source_gen.go create mode 100644 internal/aws/pcaconnectorad/directory_registration_singular_data_source_gen_test.go create mode 100644 internal/aws/pcaconnectorad/service_principal_name_singular_data_source_gen.go create mode 100644 internal/aws/pcaconnectorad/service_principal_name_singular_data_source_gen_test.go create mode 100644 internal/aws/pcaconnectorad/template_group_access_control_entry_singular_data_source_gen.go create mode 100644 internal/aws/pcaconnectorad/template_group_access_control_entry_singular_data_source_gen_test.go create mode 100644 internal/aws/pcaconnectorad/template_singular_data_source_gen.go create mode 100644 internal/aws/pcaconnectorad/template_singular_data_source_gen_test.go diff --git a/internal/aws/appflow/flow_singular_data_source_gen.go b/internal/aws/appflow/flow_singular_data_source_gen.go index 54c4f35202..6e4e7915d1 100644 --- a/internal/aws/appflow/flow_singular_data_source_gen.go +++ b/internal/aws/appflow/flow_singular_data_source_gen.go @@ -1510,6 +1510,36 @@ func flowDataSource(ctx context.Context) (datasource.DataSource, error) { // "maxLength": 512, // "pattern": "\\S+", // "type": "string" + // }, + // "paginationConfig": { + // "additionalProperties": false, + // "description": "SAP Source connector page size", + // "properties": { + // "maxPageSize": { + // "maximum": 10000, + // "minimum": 1, + // "type": "integer" + // } + // }, + // "required": [ + // "maxPageSize" + // ], + // "type": "object" + // }, + // "parallelismConfig": { + // "additionalProperties": false, + // "description": "SAP Source connector parallelism factor", + // "properties": { + // "maxParallelism": { + // "maximum": 10, + // "minimum": 1, + // "type": "integer" + // } + // }, + // "required": [ + // "maxParallelism" + // ], + // "type": "object" // } // }, // "required": [ @@ -1817,6 +1847,28 @@ func flowDataSource(ctx context.Context) (datasource.DataSource, error) { "object_path": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: paginationConfig + "pagination_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: maxPageSize + "max_page_size": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "SAP Source connector page size", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: parallelismConfig + "parallelism_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: maxParallelism + "max_parallelism": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "SAP Source connector parallelism factor", + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Computed: true, }, /*END ATTRIBUTE*/ @@ -2345,7 +2397,6 @@ func flowDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "array" // }, // "TaskProperties": { - // "additionalProperties": false, // "description": "A Map used to store task related info", // "items": { // "additionalProperties": false, @@ -2709,10 +2760,14 @@ func flowDataSource(ctx context.Context) (datasource.DataSource, error) { "kms_arn": "KMSArn", "lookout_metrics": "LookoutMetrics", "marketo": "Marketo", + "max_page_size": "maxPageSize", + "max_parallelism": "maxParallelism", "metadata_catalog_config": "MetadataCatalogConfig", "name": "Name", "object": "Object", "object_path": "ObjectPath", + "pagination_config": "paginationConfig", + "parallelism_config": "parallelismConfig", "pardot": "Pardot", "path_prefix_hierarchy": "PathPrefixHierarchy", "prefix_config": "PrefixConfig", diff --git a/internal/aws/billingconductor/custom_line_item_singular_data_source_gen.go b/internal/aws/billingconductor/custom_line_item_singular_data_source_gen.go index 8400cf9a8a..db479e0566 100644 --- a/internal/aws/billingconductor/custom_line_item_singular_data_source_gen.go +++ b/internal/aws/billingconductor/custom_line_item_singular_data_source_gen.go @@ -132,6 +132,45 @@ func customLineItemDataSource(ctx context.Context) (datasource.DataSource, error // ], // "type": "object" // }, + // "LineItemFilters": { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Attribute": { + // "enum": [ + // "LINE_ITEM_TYPE" + // ], + // "type": "string" + // }, + // "MatchOption": { + // "enum": [ + // "NOT_EQUAL" + // ], + // "type": "string" + // }, + // "Values": { + // "insertionOrder": false, + // "items": { + // "enum": [ + // "SAVINGS_PLAN_NEGATION" + // ], + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "Attribute", + // "MatchOption", + // "Values" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // }, // "Percentage": { // "additionalProperties": false, // "properties": { @@ -180,6 +219,27 @@ func customLineItemDataSource(ctx context.Context) (datasource.DataSource, error }, /*END SCHEMA*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: LineItemFilters + "line_item_filters": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Attribute + "attribute": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MatchOption + "match_option": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Values + "values": schema.SetAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Percentage "percentage": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ @@ -308,6 +368,7 @@ func customLineItemDataSource(ctx context.Context) (datasource.DataSource, error opts = opts.WithAttributeNameMap(map[string]string{ "arn": "Arn", "association_size": "AssociationSize", + "attribute": "Attribute", "billing_group_arn": "BillingGroupArn", "billing_period_range": "BillingPeriodRange", "charge_value": "ChargeValue", @@ -321,6 +382,8 @@ func customLineItemDataSource(ctx context.Context) (datasource.DataSource, error "inclusive_start_billing_period": "InclusiveStartBillingPeriod", "key": "Key", "last_modified_time": "LastModifiedTime", + "line_item_filters": "LineItemFilters", + "match_option": "MatchOption", "name": "Name", "percentage": "Percentage", "percentage_value": "PercentageValue", @@ -328,6 +391,7 @@ func customLineItemDataSource(ctx context.Context) (datasource.DataSource, error "tags": "Tags", "type": "Type", "value": "Value", + "values": "Values", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/chatbot/microsoft_teams_channel_configuration_plural_data_source_gen.go b/internal/aws/chatbot/microsoft_teams_channel_configuration_plural_data_source_gen.go new file mode 100644 index 0000000000..f31c4b4b7c --- /dev/null +++ b/internal/aws/chatbot/microsoft_teams_channel_configuration_plural_data_source_gen.go @@ -0,0 +1,54 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package chatbot + +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_chatbot_microsoft_teams_channel_configurations", microsoftTeamsChannelConfigurationsDataSource) +} + +// microsoftTeamsChannelConfigurationsDataSource returns the Terraform awscc_chatbot_microsoft_teams_channel_configurations data source. +// This Terraform data source corresponds to the CloudFormation AWS::Chatbot::MicrosoftTeamsChannelConfiguration resource. +func microsoftTeamsChannelConfigurationsDataSource(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::Chatbot::MicrosoftTeamsChannelConfiguration", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Chatbot::MicrosoftTeamsChannelConfiguration").WithTerraformTypeName("awscc_chatbot_microsoft_teams_channel_configurations") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/chatbot/microsoft_teams_channel_configuration_plural_data_source_gen_test.go b/internal/aws/chatbot/microsoft_teams_channel_configuration_plural_data_source_gen_test.go new file mode 100644 index 0000000000..98eb5436b8 --- /dev/null +++ b/internal/aws/chatbot/microsoft_teams_channel_configuration_plural_data_source_gen_test.go @@ -0,0 +1,27 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package chatbot_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSChatbotMicrosoftTeamsChannelConfigurationsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Chatbot::MicrosoftTeamsChannelConfiguration", "awscc_chatbot_microsoft_teams_channel_configurations", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet(fmt.Sprintf("data.%s", td.ResourceName), "ids.#"), + ), + }, + }) +} diff --git a/internal/aws/cleanrooms/analysis_template_plural_data_source_gen.go b/internal/aws/cleanrooms/analysis_template_plural_data_source_gen.go new file mode 100644 index 0000000000..ca88e62379 --- /dev/null +++ b/internal/aws/cleanrooms/analysis_template_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 cleanrooms + +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_cleanrooms_analysis_templates", analysisTemplatesDataSource) +} + +// analysisTemplatesDataSource returns the Terraform awscc_cleanrooms_analysis_templates data source. +// This Terraform data source corresponds to the CloudFormation AWS::CleanRooms::AnalysisTemplate resource. +func analysisTemplatesDataSource(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::CleanRooms::AnalysisTemplate", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::CleanRooms::AnalysisTemplate").WithTerraformTypeName("awscc_cleanrooms_analysis_templates") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/cleanrooms/analysis_template_plural_data_source_gen_test.go b/internal/aws/cleanrooms/analysis_template_plural_data_source_gen_test.go new file mode 100644 index 0000000000..4917d91319 --- /dev/null +++ b/internal/aws/cleanrooms/analysis_template_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 cleanrooms_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSCleanRoomsAnalysisTemplatesDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::CleanRooms::AnalysisTemplate", "awscc_cleanrooms_analysis_templates", "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/cleanrooms/analysis_template_singular_data_source_gen.go b/internal/aws/cleanrooms/analysis_template_singular_data_source_gen.go new file mode 100644 index 0000000000..36d478be07 --- /dev/null +++ b/internal/aws/cleanrooms/analysis_template_singular_data_source_gen.go @@ -0,0 +1,344 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package cleanrooms + +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_cleanrooms_analysis_template", analysisTemplateDataSource) +} + +// analysisTemplateDataSource returns the Terraform awscc_cleanrooms_analysis_template data source. +// This Terraform data source corresponds to the CloudFormation AWS::CleanRooms::AnalysisTemplate resource. +func analysisTemplateDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AnalysisParameters + // CloudFormation resource type schema: + // + // { + // "description": "The member who can query can provide this placeholder for a literal data value in an analysis template", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "DefaultValue": { + // "maxLength": 250, + // "minLength": 0, + // "type": "string" + // }, + // "Name": { + // "maxLength": 100, + // "minLength": 1, + // "pattern": "[0-9a-zA-Z_]+", + // "type": "string" + // }, + // "Type": { + // "enum": [ + // "SMALLINT", + // "INTEGER", + // "BIGINT", + // "DECIMAL", + // "REAL", + // "DOUBLE_PRECISION", + // "BOOLEAN", + // "CHAR", + // "VARCHAR", + // "DATE", + // "TIMESTAMP", + // "TIMESTAMPTZ", + // "TIME", + // "TIMETZ", + // "VARBYTE" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "Type" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 0, + // "type": "array" + // } + "analysis_parameters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DefaultValue + "default_value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "The member who can query can provide this placeholder for a literal data value in an analysis template", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AnalysisTemplateIdentifier + // CloudFormation resource type schema: + // + // { + // "maxLength": 36, + // "minLength": 36, + // "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + // "type": "string" + // } + "analysis_template_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "maxLength": 200, + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CollaborationArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 100, + // "type": "string" + // } + "collaboration_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CollaborationIdentifier + // CloudFormation resource type schema: + // + // { + // "maxLength": 36, + // "minLength": 36, + // "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + // "type": "string" + // } + "collaboration_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "maxLength": 255, + // "pattern": "", + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Format + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "SQL" + // ], + // "type": "string" + // } + "format": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MembershipArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 100, + // "type": "string" + // } + "membership_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MembershipIdentifier + // CloudFormation resource type schema: + // + // { + // "maxLength": 36, + // "minLength": 36, + // "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}", + // "type": "string" + // } + "membership_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "maxLength": 128, + // "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Schema + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "ReferencedTables": { + // "insertionOrder": false, + // "items": { + // "maxLength": 128, + // "pattern": "^[a-zA-Z0-9_](([a-zA-Z0-9_ ]+-)*([a-zA-Z0-9_ ]+))?$", + // "type": "string" + // }, + // "minItems": 0, + // "type": "array" + // } + // }, + // "required": [ + // "ReferencedTables" + // ], + // "type": "object" + // } + "schema": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ReferencedTables + "referenced_tables": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Source + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "Text": { + // "maxLength": 15000, + // "minLength": 0, + // "type": "string" + // } + // }, + // "required": [ + // "Text" + // ], + // "type": "object" + // } + "source": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Text + "text": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "An arbitrary set of tags (key-value pairs) for this cleanrooms analysis template.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Value", + // "Key" + // ], + // "type": "object" + // }, + // "type": "array" + // } + "tags": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "An arbitrary set of tags (key-value pairs) for this cleanrooms analysis template.", + 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::CleanRooms::AnalysisTemplate", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::CleanRooms::AnalysisTemplate").WithTerraformTypeName("awscc_cleanrooms_analysis_template") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "analysis_parameters": "AnalysisParameters", + "analysis_template_identifier": "AnalysisTemplateIdentifier", + "arn": "Arn", + "collaboration_arn": "CollaborationArn", + "collaboration_identifier": "CollaborationIdentifier", + "default_value": "DefaultValue", + "description": "Description", + "format": "Format", + "key": "Key", + "membership_arn": "MembershipArn", + "membership_identifier": "MembershipIdentifier", + "name": "Name", + "referenced_tables": "ReferencedTables", + "schema": "Schema", + "source": "Source", + "tags": "Tags", + "text": "Text", + "type": "Type", + "value": "Value", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/cleanrooms/analysis_template_singular_data_source_gen_test.go b/internal/aws/cleanrooms/analysis_template_singular_data_source_gen_test.go new file mode 100644 index 0000000000..568c10e5d2 --- /dev/null +++ b/internal/aws/cleanrooms/analysis_template_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 cleanrooms_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSCleanRoomsAnalysisTemplateDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::CleanRooms::AnalysisTemplate", "awscc_cleanrooms_analysis_template", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSCleanRoomsAnalysisTemplateDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::CleanRooms::AnalysisTemplate", "awscc_cleanrooms_analysis_template", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/cleanrooms/membership_singular_data_source_gen.go b/internal/aws/cleanrooms/membership_singular_data_source_gen.go index 88de377882..998a86f495 100644 --- a/internal/aws/cleanrooms/membership_singular_data_source_gen.go +++ b/internal/aws/cleanrooms/membership_singular_data_source_gen.go @@ -67,6 +67,90 @@ func membershipDataSource(ctx context.Context) (datasource.DataSource, error) { "collaboration_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: DefaultResultConfiguration + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "OutputConfiguration": { + // "additionalProperties": false, + // "properties": { + // "S3": { + // "additionalProperties": false, + // "properties": { + // "Bucket": { + // "maxLength": 63, + // "minLength": 3, + // "type": "string" + // }, + // "KeyPrefix": { + // "type": "string" + // }, + // "ResultFormat": { + // "enum": [ + // "CSV", + // "PARQUET" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "ResultFormat", + // "Bucket" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "S3" + // ], + // "type": "object" + // }, + // "RoleArn": { + // "maxLength": 512, + // "minLength": 32, + // "type": "string" + // } + // }, + // "required": [ + // "OutputConfiguration" + // ], + // "type": "object" + // } + "default_result_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: OutputConfiguration + "output_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: S3 + "s3": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Bucket + "bucket": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KeyPrefix + "key_prefix": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ResultFormat + "result_format": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RoleArn + "role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: MembershipIdentifier // CloudFormation resource type schema: // @@ -155,12 +239,19 @@ func membershipDataSource(ctx context.Context) (datasource.DataSource, error) { opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ "arn": "Arn", + "bucket": "Bucket", "collaboration_arn": "CollaborationArn", "collaboration_creator_account_id": "CollaborationCreatorAccountId", "collaboration_identifier": "CollaborationIdentifier", + "default_result_configuration": "DefaultResultConfiguration", "key": "Key", + "key_prefix": "KeyPrefix", "membership_identifier": "MembershipIdentifier", + "output_configuration": "OutputConfiguration", "query_log_status": "QueryLogStatus", + "result_format": "ResultFormat", + "role_arn": "RoleArn", + "s3": "S3", "tags": "Tags", "value": "Value", }) diff --git a/internal/aws/cloudformation/hook_version_plural_data_source_gen.go b/internal/aws/cloudformation/hook_version_plural_data_source_gen.go new file mode 100644 index 0000000000..6346d5730e --- /dev/null +++ b/internal/aws/cloudformation/hook_version_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 cloudformation + +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_cloudformation_hook_versions", hookVersionsDataSource) +} + +// hookVersionsDataSource returns the Terraform awscc_cloudformation_hook_versions data source. +// This Terraform data source corresponds to the CloudFormation AWS::CloudFormation::HookVersion resource. +func hookVersionsDataSource(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::CloudFormation::HookVersion", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::CloudFormation::HookVersion").WithTerraformTypeName("awscc_cloudformation_hook_versions") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/cloudformation/hook_version_plural_data_source_gen_test.go b/internal/aws/cloudformation/hook_version_plural_data_source_gen_test.go new file mode 100644 index 0000000000..d6e3218e42 --- /dev/null +++ b/internal/aws/cloudformation/hook_version_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 cloudformation_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSCloudFormationHookVersionsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::CloudFormation::HookVersion", "awscc_cloudformation_hook_versions", "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/connect/quick_connect_singular_data_source_gen.go b/internal/aws/connect/quick_connect_singular_data_source_gen.go index 536d358ba6..7a73b15900 100644 --- a/internal/aws/connect/quick_connect_singular_data_source_gen.go +++ b/internal/aws/connect/quick_connect_singular_data_source_gen.go @@ -209,6 +209,22 @@ func quickConnectDataSource(ctx context.Context) (datasource.DataSource, error) Description: "Configuration settings for the quick connect.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: QuickConnectType + // CloudFormation resource type schema: + // + // { + // "description": "The type of quick connect. In the Amazon Connect console, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE).", + // "enum": [ + // "PHONE_NUMBER", + // "QUEUE", + // "USER" + // ], + // "type": "string" + // } + "quick_connect_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The type of quick connect. In the Amazon Connect console, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE).", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // diff --git a/internal/aws/connect/view_singular_data_source_gen.go b/internal/aws/connect/view_singular_data_source_gen.go new file mode 100644 index 0000000000..43f5520f4f --- /dev/null +++ b/internal/aws/connect/view_singular_data_source_gen.go @@ -0,0 +1,228 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package connect + +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_connect_view", viewDataSource) +} + +// viewDataSource returns the Terraform awscc_connect_view data source. +// This Terraform data source corresponds to the CloudFormation AWS::Connect::View resource. +func viewDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Actions + // CloudFormation resource type schema: + // + // { + // "description": "The actions of the view in an array.", + // "insertionOrder": false, + // "items": { + // "maxLength": 255, + // "minLength": 1, + // "pattern": "^([\\p{L}\\p{N}_.:\\/=+\\-@]+[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@]*)$", + // "type": "string" + // }, + // "maxItems": 1000, + // "type": "array" + // } + "actions": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "The actions of the view in an array.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "The description of the view.", + // "maxLength": 4096, + // "minLength": 0, + // "pattern": "^([\\p{L}\\p{N}_.:\\/=+\\-@,]+[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@,]*)$", + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The description of the view.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InstanceArn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) of the instance.", + // "maxLength": 100, + // "minLength": 1, + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", + // "type": "string" + // } + "instance_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "The name of the view.", + // "maxLength": 512, + // "minLength": 1, + // "pattern": "^([\\p{L}\\p{N}_.:\\/=+\\-@]+[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@]*)$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the view.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "One or more tags.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "description": "The value for the tag. . You can specify a value that is maximum of 256 Unicode characters", + // "maxLength": 256, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 50, + // "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", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The value for the tag. . You can specify a value that is maximum of 256 Unicode characters", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "One or more tags.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Template + // CloudFormation resource type schema: + // + // { + // "description": "The template of the view as JSON.", + // "type": "object" + // } + "template": schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "The template of the view as JSON.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ViewArn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) of the view.", + // "maxLength": 255, + // "minLength": 1, + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/view/[-:$a-zA-Z0-9]*$", + // "type": "string" + // } + "view_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the view.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ViewContentSha256 + // CloudFormation resource type schema: + // + // { + // "description": "The view content hash.", + // "pattern": "^[a-zA-Z0-9]{64}$", + // "type": "string" + // } + "view_content_sha_256": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The view content hash.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ViewId + // CloudFormation resource type schema: + // + // { + // "description": "The view id of the view.", + // "maxLength": 500, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9\\_\\-:\\/$]+$", + // "type": "string" + // } + "view_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The view id of the view.", + 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::Connect::View", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Connect::View").WithTerraformTypeName("awscc_connect_view") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "actions": "Actions", + "description": "Description", + "instance_arn": "InstanceArn", + "key": "Key", + "name": "Name", + "tags": "Tags", + "template": "Template", + "value": "Value", + "view_arn": "ViewArn", + "view_content_sha_256": "ViewContentSha256", + "view_id": "ViewId", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/connect/view_singular_data_source_gen_test.go b/internal/aws/connect/view_singular_data_source_gen_test.go new file mode 100644 index 0000000000..fa2d5954f9 --- /dev/null +++ b/internal/aws/connect/view_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 connect_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSConnectViewDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Connect::View", "awscc_connect_view", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSConnectViewDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Connect::View", "awscc_connect_view", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/connect/view_version_singular_data_source_gen.go b/internal/aws/connect/view_version_singular_data_source_gen.go new file mode 100644 index 0000000000..b0df744823 --- /dev/null +++ b/internal/aws/connect/view_version_singular_data_source_gen.go @@ -0,0 +1,124 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package connect + +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_connect_view_version", viewVersionDataSource) +} + +// viewVersionDataSource returns the Terraform awscc_connect_view_version data source. +// This Terraform data source corresponds to the CloudFormation AWS::Connect::ViewVersion resource. +func viewVersionDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Version + // CloudFormation resource type schema: + // + // { + // "description": "The version of the view.", + // "type": "integer" + // } + "version": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The version of the view.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: VersionDescription + // CloudFormation resource type schema: + // + // { + // "description": "The description for the view version.", + // "maxLength": 4096, + // "minLength": 1, + // "pattern": "^([\\p{L}\\p{N}_.:\\/=+\\-@,]+[\\p{L}\\p{Z}\\p{N}_.:\\/=+\\-@,]*)$", + // "type": "string" + // } + "version_description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The description for the view version.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ViewArn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) of the view for which a version is being created.", + // "maxLength": 255, + // "minLength": 1, + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/view/[-:a-zA-Z0-9]*$", + // "type": "string" + // } + "view_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the view for which a version is being created.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ViewContentSha256 + // CloudFormation resource type schema: + // + // { + // "description": "The view content hash to be checked.", + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9]{64}$", + // "type": "string" + // } + "view_content_sha_256": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The view content hash to be checked.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ViewVersionArn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) of the created view version.", + // "maxLength": 255, + // "minLength": 1, + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/view/[-:a-zA-Z0-9]*$", + // "type": "string" + // } + "view_version_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the created view version.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::Connect::ViewVersion", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Connect::ViewVersion").WithTerraformTypeName("awscc_connect_view_version") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "version": "Version", + "version_description": "VersionDescription", + "view_arn": "ViewArn", + "view_content_sha_256": "ViewContentSha256", + "view_version_arn": "ViewVersionArn", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/connect/view_version_singular_data_source_gen_test.go b/internal/aws/connect/view_version_singular_data_source_gen_test.go new file mode 100644 index 0000000000..ba6bf65feb --- /dev/null +++ b/internal/aws/connect/view_version_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package connect_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSConnectViewVersionDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Connect::ViewVersion", "awscc_connect_view_version", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSConnectViewVersionDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Connect::ViewVersion", "awscc_connect_view_version", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/datasync/task_singular_data_source_gen.go b/internal/aws/datasync/task_singular_data_source_gen.go index 3676f17044..fe32289b13 100644 --- a/internal/aws/datasync/task_singular_data_source_gen.go +++ b/internal/aws/datasync/task_singular_data_source_gen.go @@ -538,6 +538,248 @@ func taskDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The ARN of the task.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: TaskReportConfig + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Specifies how you want to configure a task report, which provides detailed information about for your Datasync transfer.", + // "properties": { + // "Destination": { + // "additionalProperties": false, + // "description": "Specifies where DataSync uploads your task report.", + // "properties": { + // "S3": { + // "additionalProperties": false, + // "description": "Specifies the Amazon S3 bucket where DataSync uploads your task report.", + // "properties": { + // "BucketAccessRoleArn": { + // "description": "Specifies the Amazon Resource Name (ARN) of the IAM policy that allows Datasync to upload a task report to your S3 bucket.", + // "maxLength": 2048, + // "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$", + // "type": "string" + // }, + // "S3BucketArn": { + // "description": "Specifies the ARN of the S3 bucket where Datasync uploads your report.", + // "maxLength": 156, + // "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):(s3|s3-outposts):[a-z\\-0-9]*:[0-9]*:.*$", + // "type": "string" + // }, + // "Subdirectory": { + // "description": "Specifies a bucket prefix for your report.", + // "maxLength": 4096, + // "pattern": "^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\p{Zs}]*$", + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "ObjectVersionIds": { + // "description": "Specifies whether your task report includes the new version of each object transferred into an S3 bucket, this only applies if you enable versioning on your bucket.", + // "enum": [ + // "INCLUDE", + // "NONE" + // ], + // "type": "string" + // }, + // "OutputType": { + // "description": "Specifies the type of task report that you want.", + // "enum": [ + // "SUMMARY_ONLY", + // "STANDARD" + // ], + // "type": "string" + // }, + // "Overrides": { + // "additionalProperties": false, + // "description": "Customizes the reporting level for aspects of your task report. For example, your report might generally only include errors, but you could specify that you want a list of successes and errors just for the files that Datasync attempted to delete in your destination location.", + // "properties": { + // "Deleted": { + // "additionalProperties": false, + // "description": "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to delete in your destination location. This only applies if you configure your task to delete data in the destination that isn't in the source.", + // "properties": { + // "ReportLevel": { + // "description": "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + // "enum": [ + // "ERRORS_ONLY", + // "SUCCESSES_AND_ERRORS" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Skipped": { + // "additionalProperties": false, + // "description": "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to skip during your transfer.", + // "properties": { + // "ReportLevel": { + // "description": "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + // "enum": [ + // "ERRORS_ONLY", + // "SUCCESSES_AND_ERRORS" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Transferred": { + // "additionalProperties": false, + // "description": "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to transfer.", + // "properties": { + // "ReportLevel": { + // "description": "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + // "enum": [ + // "ERRORS_ONLY", + // "SUCCESSES_AND_ERRORS" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "Verified": { + // "additionalProperties": false, + // "description": "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to verify at the end of your transfer. This only applies if you configure your task to verify data during and after the transfer (which Datasync does by default)", + // "properties": { + // "ReportLevel": { + // "description": "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + // "enum": [ + // "ERRORS_ONLY", + // "SUCCESSES_AND_ERRORS" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "ReportLevel": { + // "description": "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + // "enum": [ + // "ERRORS_ONLY", + // "SUCCESSES_AND_ERRORS" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Destination", + // "OutputType" + // ], + // "type": "object" + // } + "task_report_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Destination + "destination": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: S3 + "s3": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BucketAccessRoleArn + "bucket_access_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies the Amazon Resource Name (ARN) of the IAM policy that allows Datasync to upload a task report to your S3 bucket.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: S3BucketArn + "s3_bucket_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies the ARN of the S3 bucket where Datasync uploads your report.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Subdirectory + "subdirectory": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies a bucket prefix for your report.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the Amazon S3 bucket where DataSync uploads your task report.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies where DataSync uploads your task report.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ObjectVersionIds + "object_version_ids": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether your task report includes the new version of each object transferred into an S3 bucket, this only applies if you enable versioning on your bucket.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: OutputType + "output_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies the type of task report that you want.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Overrides + "overrides": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Deleted + "deleted": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ReportLevel + "report_level": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to delete in your destination location. This only applies if you configure your task to delete data in the destination that isn't in the source.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Skipped + "skipped": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ReportLevel + "report_level": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to skip during your transfer.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Transferred + "transferred": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ReportLevel + "report_level": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to transfer.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Verified + "verified": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ReportLevel + "report_level": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to verify at the end of your transfer. This only applies if you configure your task to verify data during and after the transfer (which Datasync does by default)", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Customizes the reporting level for aspects of your task report. For example, your report might generally only include errors, but you could specify that you want a list of successes and errors just for the files that Datasync attempted to delete in your destination location.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ReportLevel + "report_level": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Specifies how you want to configure a task report, which provides detailed information about for your Datasync transfer.", + Computed: true, + }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ attributes["id"] = schema.StringAttribute{ @@ -556,8 +798,11 @@ func taskDataSource(ctx context.Context) (datasource.DataSource, error) { opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ "atime": "Atime", + "bucket_access_role_arn": "BucketAccessRoleArn", "bytes_per_second": "BytesPerSecond", "cloudwatch_log_group_arn": "CloudWatchLogGroupArn", + "deleted": "Deleted", + "destination": "Destination", "destination_location_arn": "DestinationLocationArn", "destination_network_interface_arns": "DestinationNetworkInterfaceArns", "excludes": "Excludes", @@ -569,23 +814,34 @@ func taskDataSource(ctx context.Context) (datasource.DataSource, error) { "mtime": "Mtime", "name": "Name", "object_tags": "ObjectTags", + "object_version_ids": "ObjectVersionIds", "options": "Options", + "output_type": "OutputType", + "overrides": "Overrides", "overwrite_mode": "OverwriteMode", "posix_permissions": "PosixPermissions", "preserve_deleted_files": "PreserveDeletedFiles", "preserve_devices": "PreserveDevices", + "report_level": "ReportLevel", + "s3": "S3", + "s3_bucket_arn": "S3BucketArn", "schedule": "Schedule", "schedule_expression": "ScheduleExpression", "security_descriptor_copy_flags": "SecurityDescriptorCopyFlags", + "skipped": "Skipped", "source_location_arn": "SourceLocationArn", "source_network_interface_arns": "SourceNetworkInterfaceArns", "status": "Status", + "subdirectory": "Subdirectory", "tags": "Tags", "task_arn": "TaskArn", "task_queueing": "TaskQueueing", + "task_report_config": "TaskReportConfig", "transfer_mode": "TransferMode", + "transferred": "Transferred", "uid": "Uid", "value": "Value", + "verified": "Verified", "verify_mode": "VerifyMode", }) diff --git a/internal/aws/ec2/eip_association_plural_data_source_gen.go b/internal/aws/ec2/eip_association_plural_data_source_gen.go new file mode 100644 index 0000000000..dd3d143493 --- /dev/null +++ b/internal/aws/ec2/eip_association_plural_data_source_gen.go @@ -0,0 +1,54 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package ec2 + +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_ec2_eip_associations", eIPAssociationsDataSource) +} + +// eIPAssociationsDataSource returns the Terraform awscc_ec2_eip_associations data source. +// This Terraform data source corresponds to the CloudFormation AWS::EC2::EIPAssociation resource. +func eIPAssociationsDataSource(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::EC2::EIPAssociation", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::EC2::EIPAssociation").WithTerraformTypeName("awscc_ec2_eip_associations") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/ec2/eip_association_plural_data_source_gen_test.go b/internal/aws/ec2/eip_association_plural_data_source_gen_test.go new file mode 100644 index 0000000000..05adc849f9 --- /dev/null +++ b/internal/aws/ec2/eip_association_plural_data_source_gen_test.go @@ -0,0 +1,27 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package ec2_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSEC2EIPAssociationsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::EIPAssociation", "awscc_ec2_eip_associations", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet(fmt.Sprintf("data.%s", td.ResourceName), "ids.#"), + ), + }, + }) +} diff --git a/internal/aws/ec2/eip_association_singular_data_source_gen.go b/internal/aws/ec2/eip_association_singular_data_source_gen.go new file mode 100644 index 0000000000..c556fafdc4 --- /dev/null +++ b/internal/aws/ec2/eip_association_singular_data_source_gen.go @@ -0,0 +1,124 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package ec2 + +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_ec2_eip_association", eIPAssociationDataSource) +} + +// eIPAssociationDataSource returns the Terraform awscc_ec2_eip_association data source. +// This Terraform data source corresponds to the CloudFormation AWS::EC2::EIPAssociation resource. +func eIPAssociationDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AllocationId + // CloudFormation resource type schema: + // + // { + // "description": "The allocation ID. This is required for EC2-VPC.", + // "type": "string" + // } + "allocation_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The allocation ID. This is required for EC2-VPC.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EIP + // CloudFormation resource type schema: + // + // { + // "description": "The Elastic IP address to associate with the instance.", + // "type": "string" + // } + "eip": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Elastic IP address to associate with the instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "description": "Composite ID of non-empty properties, to determine the identification.", + // "type": "string" + // } + "id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Composite ID of non-empty properties, to determine the identification.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InstanceId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the instance.", + // "type": "string" + // } + "instance_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: NetworkInterfaceId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the network interface.", + // "type": "string" + // } + "network_interface_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the network interface.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PrivateIpAddress + // CloudFormation resource type schema: + // + // { + // "description": "The primary or secondary private IP address to associate with the Elastic IP address.", + // "type": "string" + // } + "private_ip_address": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The primary or secondary private IP address to associate with the Elastic IP address.", + 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::EC2::EIPAssociation", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::EC2::EIPAssociation").WithTerraformTypeName("awscc_ec2_eip_association") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "allocation_id": "AllocationId", + "eip": "EIP", + "id": "Id", + "instance_id": "InstanceId", + "network_interface_id": "NetworkInterfaceId", + "private_ip_address": "PrivateIpAddress", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/ec2/eip_association_singular_data_source_gen_test.go b/internal/aws/ec2/eip_association_singular_data_source_gen_test.go new file mode 100644 index 0000000000..29a98d5e59 --- /dev/null +++ b/internal/aws/ec2/eip_association_singular_data_source_gen_test.go @@ -0,0 +1,40 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package ec2_test + +import ( + "fmt" + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSEC2EIPAssociationDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::EIPAssociation", "awscc_ec2_eip_association", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithEmptyResourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrPair(fmt.Sprintf("data.%s", td.ResourceName), "id", td.ResourceName, "id"), + resource.TestCheckResourceAttrPair(fmt.Sprintf("data.%s", td.ResourceName), "arn", td.ResourceName, "arn"), + ), + }, + }) +} + +func TestAccAWSEC2EIPAssociationDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::EIPAssociation", "awscc_ec2_eip_association", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/ec2/flow_log_singular_data_source_gen.go b/internal/aws/ec2/flow_log_singular_data_source_gen.go index 38f9da2da1..ea908c57d9 100644 --- a/internal/aws/ec2/flow_log_singular_data_source_gen.go +++ b/internal/aws/ec2/flow_log_singular_data_source_gen.go @@ -23,6 +23,17 @@ func init() { // This Terraform data source corresponds to the CloudFormation AWS::EC2::FlowLog resource. func flowLogDataSource(ctx context.Context) (datasource.DataSource, error) { attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DeliverCrossAccountRole + // CloudFormation resource type schema: + // + // { + // "description": "The ARN of the IAM role that allows Amazon EC2 to publish flow logs across accounts.", + // "type": "string" + // } + "deliver_cross_account_role": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ARN of the IAM role that allows Amazon EC2 to publish flow logs across accounts.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: DeliverLogsPermissionArn // CloudFormation resource type schema: // @@ -251,6 +262,7 @@ func flowLogDataSource(ctx context.Context) (datasource.DataSource, error) { opts = opts.WithCloudFormationTypeName("AWS::EC2::FlowLog").WithTerraformTypeName("awscc_ec2_flow_log") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ + "deliver_cross_account_role": "DeliverCrossAccountRole", "deliver_logs_permission_arn": "DeliverLogsPermissionArn", "destination_options": "DestinationOptions", "file_format": "FileFormat", diff --git a/internal/aws/emrserverless/application_singular_data_source_gen.go b/internal/aws/emrserverless/application_singular_data_source_gen.go index d3c1c3cd95..f65c0cbaea 100644 --- a/internal/aws/emrserverless/application_singular_data_source_gen.go +++ b/internal/aws/emrserverless/application_singular_data_source_gen.go @@ -480,6 +480,7 @@ func applicationDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "additionalProperties": false, + // "description": "The key-value pairs that specify worker type to WorkerTypeSpecificationInput. This parameter must contain all valid worker types for a Spark or Hive application. Valid worker types include Driver and Executor for Spark applications and HiveDriver and TezTask for Hive applications. You can either set image details in this parameter for each worker type, or in imageConfiguration for all worker types.", // "patternProperties": { // "": { // "additionalProperties": false, @@ -523,7 +524,8 @@ func applicationDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Computed: true, + Description: "The key-value pairs that specify worker type to WorkerTypeSpecificationInput. This parameter must contain all valid worker types for a Spark or Hive application. Valid worker types include Driver and Executor for Spark applications and HiveDriver and TezTask for Hive applications. You can either set image details in this parameter for each worker type, or in imageConfiguration for all worker types.", + Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/guardduty/detector_plural_data_source_gen.go b/internal/aws/guardduty/detector_plural_data_source_gen.go new file mode 100644 index 0000000000..44ba1223d5 --- /dev/null +++ b/internal/aws/guardduty/detector_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 guardduty + +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_guardduty_detectors", detectorsDataSource) +} + +// detectorsDataSource returns the Terraform awscc_guardduty_detectors data source. +// This Terraform data source corresponds to the CloudFormation AWS::GuardDuty::Detector resource. +func detectorsDataSource(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::GuardDuty::Detector", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::GuardDuty::Detector").WithTerraformTypeName("awscc_guardduty_detectors") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/guardduty/detector_plural_data_source_gen_test.go b/internal/aws/guardduty/detector_plural_data_source_gen_test.go new file mode 100644 index 0000000000..0ff812cf07 --- /dev/null +++ b/internal/aws/guardduty/detector_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 guardduty_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSGuardDutyDetectorsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::GuardDuty::Detector", "awscc_guardduty_detectors", "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/guardduty/detector_singular_data_source_gen.go b/internal/aws/guardduty/detector_singular_data_source_gen.go new file mode 100644 index 0000000000..ee7cab3c12 --- /dev/null +++ b/internal/aws/guardduty/detector_singular_data_source_gen.go @@ -0,0 +1,328 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package guardduty + +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_guardduty_detector", detectorDataSource) +} + +// detectorDataSource returns the Terraform awscc_guardduty_detector data source. +// This Terraform data source corresponds to the CloudFormation AWS::GuardDuty::Detector resource. +func detectorDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DataSources + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "Kubernetes": { + // "additionalProperties": false, + // "properties": { + // "AuditLogs": { + // "additionalProperties": false, + // "properties": { + // "Enable": { + // "type": "boolean" + // } + // }, + // "required": [ + // "Enable" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "AuditLogs" + // ], + // "type": "object" + // }, + // "MalwareProtection": { + // "additionalProperties": false, + // "properties": { + // "ScanEc2InstanceWithFindings": { + // "additionalProperties": false, + // "properties": { + // "EbsVolumes": { + // "type": "boolean" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "S3Logs": { + // "additionalProperties": false, + // "properties": { + // "Enable": { + // "type": "boolean" + // } + // }, + // "required": [ + // "Enable" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // } + "data_sources": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Kubernetes + "kubernetes": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuditLogs + "audit_logs": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Enable + "enable": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MalwareProtection + "malware_protection": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ScanEc2InstanceWithFindings + "scan_ec_2_instance_with_findings": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EbsVolumes + "ebs_volumes": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: S3Logs + "s3_logs": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Enable + "enable": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Enable + // CloudFormation resource type schema: + // + // { + // "type": "boolean" + // } + "enable": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Features + // CloudFormation resource type schema: + // + // { + // "items": { + // "additionalProperties": false, + // "properties": { + // "AdditionalConfiguration": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "Name": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // }, + // "Status": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // }, + // "Name": { + // "enum": [ + // "FLOW_LOGS", + // "CLOUD_TRAIL", + // "DNS_LOGS", + // "S3_DATA_EVENTS", + // "EKS_AUDIT_LOGS", + // "EBS_MALWARE_PROTECTION", + // "RDS_LOGIN_EVENTS", + // "LAMBDA_NETWORK_LOGS", + // "EKS_RUNTIME_MONITORING" + // ], + // "type": "string" + // }, + // "Status": { + // "enum": [ + // "ENABLED", + // "DISABLED" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Name", + // "Status" + // ], + // "type": "object" + // }, + // "type": "array" + // } + "features": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AdditionalConfiguration + "additional_configuration": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Status + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Status + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FindingPublishingFrequency + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "finding_publishing_frequency": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array" + // } + "tags": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::GuardDuty::Detector", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::GuardDuty::Detector").WithTerraformTypeName("awscc_guardduty_detector") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "additional_configuration": "AdditionalConfiguration", + "audit_logs": "AuditLogs", + "data_sources": "DataSources", + "ebs_volumes": "EbsVolumes", + "enable": "Enable", + "features": "Features", + "finding_publishing_frequency": "FindingPublishingFrequency", + "id": "Id", + "key": "Key", + "kubernetes": "Kubernetes", + "malware_protection": "MalwareProtection", + "name": "Name", + "s3_logs": "S3Logs", + "scan_ec_2_instance_with_findings": "ScanEc2InstanceWithFindings", + "status": "Status", + "tags": "Tags", + "value": "Value", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/guardduty/detector_singular_data_source_gen_test.go b/internal/aws/guardduty/detector_singular_data_source_gen_test.go new file mode 100644 index 0000000000..a0ff512978 --- /dev/null +++ b/internal/aws/guardduty/detector_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 guardduty_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSGuardDutyDetectorDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::GuardDuty::Detector", "awscc_guardduty_detector", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSGuardDutyDetectorDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::GuardDuty::Detector", "awscc_guardduty_detector", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/iotwireless/destination_singular_data_source_gen.go b/internal/aws/iotwireless/destination_singular_data_source_gen.go index bb7fb94bd2..08f7917d5d 100644 --- a/internal/aws/iotwireless/destination_singular_data_source_gen.go +++ b/internal/aws/iotwireless/destination_singular_data_source_gen.go @@ -64,7 +64,8 @@ func destinationDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "Must be RuleName", // "enum": [ // "RuleName", - // "MqttTopic" + // "MqttTopic", + // "SnsTopic" // ], // "type": "string" // } diff --git a/internal/aws/iotwireless/task_definition_plural_data_source_gen.go b/internal/aws/iotwireless/task_definition_plural_data_source_gen.go new file mode 100644 index 0000000000..d5259fab47 --- /dev/null +++ b/internal/aws/iotwireless/task_definition_plural_data_source_gen.go @@ -0,0 +1,54 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package iotwireless + +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_iotwireless_task_definitions", taskDefinitionsDataSource) +} + +// taskDefinitionsDataSource returns the Terraform awscc_iotwireless_task_definitions data source. +// This Terraform data source corresponds to the CloudFormation AWS::IoTWireless::TaskDefinition resource. +func taskDefinitionsDataSource(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::IoTWireless::TaskDefinition", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::IoTWireless::TaskDefinition").WithTerraformTypeName("awscc_iotwireless_task_definitions") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/iotwireless/task_definition_plural_data_source_gen_test.go b/internal/aws/iotwireless/task_definition_plural_data_source_gen_test.go new file mode 100644 index 0000000000..bfea8e35d7 --- /dev/null +++ b/internal/aws/iotwireless/task_definition_plural_data_source_gen_test.go @@ -0,0 +1,27 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package iotwireless_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSIoTWirelessTaskDefinitionsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::IoTWireless::TaskDefinition", "awscc_iotwireless_task_definitions", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet(fmt.Sprintf("data.%s", td.ResourceName), "ids.#"), + ), + }, + }) +} diff --git a/internal/aws/macie/findings_filter_singular_data_source_gen.go b/internal/aws/macie/findings_filter_singular_data_source_gen.go index 8ec46b928a..62cba572af 100644 --- a/internal/aws/macie/findings_filter_singular_data_source_gen.go +++ b/internal/aws/macie/findings_filter_singular_data_source_gen.go @@ -186,6 +186,51 @@ func findingsFilterDataSource(ctx context.Context) (datasource.DataSource, error Description: "Findings filter position.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "A collection of tags associated with a resource", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "The tag's key.", + // "type": "string" + // }, + // "Value": { + // "description": "The tag's value.", + // "type": "string" + // } + // }, + // "required": [ + // "Value", + // "Key" + // ], + // "type": "object" + // }, + // "type": "array" + // } + "tags": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The tag's key.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The tag's value.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "A collection of tags associated with a resource", + Computed: true, + }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ attributes["id"] = schema.StringAttribute{ @@ -212,11 +257,14 @@ func findingsFilterDataSource(ctx context.Context) (datasource.DataSource, error "gt": "gt", "gte": "gte", "id": "Id", + "key": "Key", "lt": "lt", "lte": "lte", "name": "Name", "neq": "neq", "position": "Position", + "tags": "Tags", + "value": "Value", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/pcaconnectorad/connector_plural_data_source_gen.go b/internal/aws/pcaconnectorad/connector_plural_data_source_gen.go new file mode 100644 index 0000000000..55cd6cdb2a --- /dev/null +++ b/internal/aws/pcaconnectorad/connector_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 pcaconnectorad + +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_pcaconnectorad_connectors", connectorsDataSource) +} + +// connectorsDataSource returns the Terraform awscc_pcaconnectorad_connectors data source. +// This Terraform data source corresponds to the CloudFormation AWS::PCAConnectorAD::Connector resource. +func connectorsDataSource(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::PCAConnectorAD::Connector", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::PCAConnectorAD::Connector").WithTerraformTypeName("awscc_pcaconnectorad_connectors") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/pcaconnectorad/connector_plural_data_source_gen_test.go b/internal/aws/pcaconnectorad/connector_plural_data_source_gen_test.go new file mode 100644 index 0000000000..1e1c8411ab --- /dev/null +++ b/internal/aws/pcaconnectorad/connector_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 pcaconnectorad_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSPCAConnectorADConnectorsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::PCAConnectorAD::Connector", "awscc_pcaconnectorad_connectors", "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/pcaconnectorad/connector_singular_data_source_gen.go b/internal/aws/pcaconnectorad/connector_singular_data_source_gen.go new file mode 100644 index 0000000000..43fea57aa5 --- /dev/null +++ b/internal/aws/pcaconnectorad/connector_singular_data_source_gen.go @@ -0,0 +1,143 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package pcaconnectorad + +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_pcaconnectorad_connector", connectorDataSource) +} + +// connectorDataSource returns the Terraform awscc_pcaconnectorad_connector data source. +// This Terraform data source corresponds to the CloudFormation AWS::PCAConnectorAD::Connector resource. +func connectorDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CertificateAuthorityArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 200, + // "minLength": 5, + // "pattern": "^arn:[\\w-]+:acm-pca:[\\w-]+:[0-9]+:certificate-authority(\\/[\\w-]+)$", + // "type": "string" + // } + "certificate_authority_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ConnectorArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 200, + // "minLength": 5, + // "pattern": "^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:connector(\\/[\\w-]+)$", + // "type": "string" + // } + "connector_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DirectoryId + // CloudFormation resource type schema: + // + // { + // "pattern": "^d-[0-9a-f]{10}$", + // "type": "string" + // } + "directory_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // } + "tags": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: VpcInformation + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "SecurityGroupIds": { + // "items": { + // "maxLength": 20, + // "minLength": 11, + // "pattern": "^(?:sg-[0-9a-f]{8}|sg-[0-9a-f]{17})$", + // "type": "string" + // }, + // "maxItems": 5, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "SecurityGroupIds" + // ], + // "type": "object" + // } + "vpc_information": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: SecurityGroupIds + "security_group_ids": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + 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::PCAConnectorAD::Connector", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::PCAConnectorAD::Connector").WithTerraformTypeName("awscc_pcaconnectorad_connector") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "certificate_authority_arn": "CertificateAuthorityArn", + "connector_arn": "ConnectorArn", + "directory_id": "DirectoryId", + "security_group_ids": "SecurityGroupIds", + "tags": "Tags", + "vpc_information": "VpcInformation", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/pcaconnectorad/connector_singular_data_source_gen_test.go b/internal/aws/pcaconnectorad/connector_singular_data_source_gen_test.go new file mode 100644 index 0000000000..100f9d4a44 --- /dev/null +++ b/internal/aws/pcaconnectorad/connector_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 pcaconnectorad_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSPCAConnectorADConnectorDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::PCAConnectorAD::Connector", "awscc_pcaconnectorad_connector", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSPCAConnectorADConnectorDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::PCAConnectorAD::Connector", "awscc_pcaconnectorad_connector", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/pcaconnectorad/directory_registration_plural_data_source_gen.go b/internal/aws/pcaconnectorad/directory_registration_plural_data_source_gen.go new file mode 100644 index 0000000000..87f625e455 --- /dev/null +++ b/internal/aws/pcaconnectorad/directory_registration_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 pcaconnectorad + +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_pcaconnectorad_directory_registrations", directoryRegistrationsDataSource) +} + +// directoryRegistrationsDataSource returns the Terraform awscc_pcaconnectorad_directory_registrations data source. +// This Terraform data source corresponds to the CloudFormation AWS::PCAConnectorAD::DirectoryRegistration resource. +func directoryRegistrationsDataSource(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::PCAConnectorAD::DirectoryRegistration", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::PCAConnectorAD::DirectoryRegistration").WithTerraformTypeName("awscc_pcaconnectorad_directory_registrations") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/pcaconnectorad/directory_registration_plural_data_source_gen_test.go b/internal/aws/pcaconnectorad/directory_registration_plural_data_source_gen_test.go new file mode 100644 index 0000000000..040ac0ca2c --- /dev/null +++ b/internal/aws/pcaconnectorad/directory_registration_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 pcaconnectorad_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSPCAConnectorADDirectoryRegistrationsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::PCAConnectorAD::DirectoryRegistration", "awscc_pcaconnectorad_directory_registrations", "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/pcaconnectorad/directory_registration_singular_data_source_gen.go b/internal/aws/pcaconnectorad/directory_registration_singular_data_source_gen.go new file mode 100644 index 0000000000..0dd6817de8 --- /dev/null +++ b/internal/aws/pcaconnectorad/directory_registration_singular_data_source_gen.go @@ -0,0 +1,94 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package pcaconnectorad + +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_pcaconnectorad_directory_registration", directoryRegistrationDataSource) +} + +// directoryRegistrationDataSource returns the Terraform awscc_pcaconnectorad_directory_registration data source. +// This Terraform data source corresponds to the CloudFormation AWS::PCAConnectorAD::DirectoryRegistration resource. +func directoryRegistrationDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DirectoryId + // CloudFormation resource type schema: + // + // { + // "pattern": "^d-[0-9a-f]{10}$", + // "type": "string" + // } + "directory_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DirectoryRegistrationArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 200, + // "minLength": 5, + // "pattern": "^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:directory-registration(\\/[\\w-]+)$", + // "type": "string" + // } + "directory_registration_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // } + "tags": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + 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::PCAConnectorAD::DirectoryRegistration", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::PCAConnectorAD::DirectoryRegistration").WithTerraformTypeName("awscc_pcaconnectorad_directory_registration") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "directory_id": "DirectoryId", + "directory_registration_arn": "DirectoryRegistrationArn", + "tags": "Tags", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/pcaconnectorad/directory_registration_singular_data_source_gen_test.go b/internal/aws/pcaconnectorad/directory_registration_singular_data_source_gen_test.go new file mode 100644 index 0000000000..b1d4f0a0a6 --- /dev/null +++ b/internal/aws/pcaconnectorad/directory_registration_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 pcaconnectorad_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSPCAConnectorADDirectoryRegistrationDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::PCAConnectorAD::DirectoryRegistration", "awscc_pcaconnectorad_directory_registration", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSPCAConnectorADDirectoryRegistrationDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::PCAConnectorAD::DirectoryRegistration", "awscc_pcaconnectorad_directory_registration", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/pcaconnectorad/service_principal_name_singular_data_source_gen.go b/internal/aws/pcaconnectorad/service_principal_name_singular_data_source_gen.go new file mode 100644 index 0000000000..a838d461c9 --- /dev/null +++ b/internal/aws/pcaconnectorad/service_principal_name_singular_data_source_gen.go @@ -0,0 +1,78 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package pcaconnectorad + +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_pcaconnectorad_service_principal_name", servicePrincipalNameDataSource) +} + +// servicePrincipalNameDataSource returns the Terraform awscc_pcaconnectorad_service_principal_name data source. +// This Terraform data source corresponds to the CloudFormation AWS::PCAConnectorAD::ServicePrincipalName resource. +func servicePrincipalNameDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ConnectorArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 200, + // "minLength": 5, + // "pattern": "^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:connector(\\/[\\w-]+)$", + // "type": "string" + // } + "connector_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DirectoryRegistrationArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 200, + // "minLength": 5, + // "pattern": "^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:directory-registration(\\/[\\w-]+)$", + // "type": "string" + // } + "directory_registration_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::PCAConnectorAD::ServicePrincipalName", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::PCAConnectorAD::ServicePrincipalName").WithTerraformTypeName("awscc_pcaconnectorad_service_principal_name") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "connector_arn": "ConnectorArn", + "directory_registration_arn": "DirectoryRegistrationArn", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/pcaconnectorad/service_principal_name_singular_data_source_gen_test.go b/internal/aws/pcaconnectorad/service_principal_name_singular_data_source_gen_test.go new file mode 100644 index 0000000000..5dcd12a6b3 --- /dev/null +++ b/internal/aws/pcaconnectorad/service_principal_name_singular_data_source_gen_test.go @@ -0,0 +1,40 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package pcaconnectorad_test + +import ( + "fmt" + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSPCAConnectorADServicePrincipalNameDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::PCAConnectorAD::ServicePrincipalName", "awscc_pcaconnectorad_service_principal_name", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithEmptyResourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrPair(fmt.Sprintf("data.%s", td.ResourceName), "id", td.ResourceName, "id"), + resource.TestCheckResourceAttrPair(fmt.Sprintf("data.%s", td.ResourceName), "arn", td.ResourceName, "arn"), + ), + }, + }) +} + +func TestAccAWSPCAConnectorADServicePrincipalNameDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::PCAConnectorAD::ServicePrincipalName", "awscc_pcaconnectorad_service_principal_name", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/pcaconnectorad/template_group_access_control_entry_singular_data_source_gen.go b/internal/aws/pcaconnectorad/template_group_access_control_entry_singular_data_source_gen.go new file mode 100644 index 0000000000..0b06b4da2a --- /dev/null +++ b/internal/aws/pcaconnectorad/template_group_access_control_entry_singular_data_source_gen.go @@ -0,0 +1,130 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package pcaconnectorad + +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_pcaconnectorad_template_group_access_control_entry", templateGroupAccessControlEntryDataSource) +} + +// templateGroupAccessControlEntryDataSource returns the Terraform awscc_pcaconnectorad_template_group_access_control_entry data source. +// This Terraform data source corresponds to the CloudFormation AWS::PCAConnectorAD::TemplateGroupAccessControlEntry resource. +func templateGroupAccessControlEntryDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AccessRights + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "properties": { + // "AutoEnroll": { + // "enum": [ + // "ALLOW", + // "DENY" + // ], + // "type": "string" + // }, + // "Enroll": { + // "enum": [ + // "ALLOW", + // "DENY" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // } + "access_rights": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AutoEnroll + "auto_enroll": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Enroll + "enroll": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: GroupDisplayName + // CloudFormation resource type schema: + // + // { + // "maxLength": 256, + // "minLength": 0, + // "pattern": "^[\\x20-\\x7E]+$", + // "type": "string" + // } + "group_display_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: GroupSecurityIdentifier + // CloudFormation resource type schema: + // + // { + // "maxLength": 256, + // "minLength": 7, + // "pattern": "^S-[0-9]-([0-9]+-){1,14}[0-9]+$", + // "type": "string" + // } + "group_security_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TemplateArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 200, + // "minLength": 5, + // "pattern": "^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:connector(\\/[\\w-]+)\\/template(\\/[\\w-]+)$", + // "type": "string" + // } + "template_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::PCAConnectorAD::TemplateGroupAccessControlEntry", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::PCAConnectorAD::TemplateGroupAccessControlEntry").WithTerraformTypeName("awscc_pcaconnectorad_template_group_access_control_entry") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "access_rights": "AccessRights", + "auto_enroll": "AutoEnroll", + "enroll": "Enroll", + "group_display_name": "GroupDisplayName", + "group_security_identifier": "GroupSecurityIdentifier", + "template_arn": "TemplateArn", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/pcaconnectorad/template_group_access_control_entry_singular_data_source_gen_test.go b/internal/aws/pcaconnectorad/template_group_access_control_entry_singular_data_source_gen_test.go new file mode 100644 index 0000000000..5a9e1e217f --- /dev/null +++ b/internal/aws/pcaconnectorad/template_group_access_control_entry_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 pcaconnectorad_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSPCAConnectorADTemplateGroupAccessControlEntryDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry", "awscc_pcaconnectorad_template_group_access_control_entry", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSPCAConnectorADTemplateGroupAccessControlEntryDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry", "awscc_pcaconnectorad_template_group_access_control_entry", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/pcaconnectorad/template_singular_data_source_gen.go b/internal/aws/pcaconnectorad/template_singular_data_source_gen.go new file mode 100644 index 0000000000..6f24062525 --- /dev/null +++ b/internal/aws/pcaconnectorad/template_singular_data_source_gen.go @@ -0,0 +1,2157 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package pcaconnectorad + +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_pcaconnectorad_template", templateDataSource) +} + +// templateDataSource returns the Terraform awscc_pcaconnectorad_template data source. +// This Terraform data source corresponds to the CloudFormation AWS::PCAConnectorAD::Template resource. +func templateDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ConnectorArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 200, + // "minLength": 5, + // "pattern": "^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:connector\\/[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$", + // "type": "string" + // } + "connector_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Definition + // CloudFormation resource type schema: + // + // { + // "properties": { + // "TemplateV2": { + // "additionalProperties": false, + // "properties": { + // "CertificateValidity": { + // "additionalProperties": false, + // "properties": { + // "RenewalPeriod": { + // "additionalProperties": false, + // "properties": { + // "Period": { + // "maximum": 8766000, + // "minimum": 1, + // "type": "number" + // }, + // "PeriodType": { + // "enum": [ + // "HOURS", + // "DAYS", + // "WEEKS", + // "MONTHS", + // "YEARS" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Period", + // "PeriodType" + // ], + // "type": "object" + // }, + // "ValidityPeriod": { + // "additionalProperties": false, + // "properties": { + // "Period": { + // "maximum": 8766000, + // "minimum": 1, + // "type": "number" + // }, + // "PeriodType": { + // "enum": [ + // "HOURS", + // "DAYS", + // "WEEKS", + // "MONTHS", + // "YEARS" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Period", + // "PeriodType" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "RenewalPeriod", + // "ValidityPeriod" + // ], + // "type": "object" + // }, + // "EnrollmentFlags": { + // "additionalProperties": false, + // "properties": { + // "EnableKeyReuseOnNtTokenKeysetStorageFull": { + // "type": "boolean" + // }, + // "IncludeSymmetricAlgorithms": { + // "type": "boolean" + // }, + // "NoSecurityExtension": { + // "type": "boolean" + // }, + // "RemoveInvalidCertificateFromPersonalStore": { + // "type": "boolean" + // }, + // "UserInteractionRequired": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "Extensions": { + // "additionalProperties": false, + // "properties": { + // "ApplicationPolicies": { + // "additionalProperties": false, + // "properties": { + // "Critical": { + // "type": "boolean" + // }, + // "Policies": { + // "items": { + // "properties": { + // "PolicyObjectIdentifier": { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^([0-2])\\.([0-9]|([0-3][0-9]))(\\.([0-9]+)){0,126}$", + // "type": "string" + // }, + // "PolicyType": { + // "enum": [ + // "ALL_APPLICATION_POLICIES", + // "ANY_PURPOSE", + // "ATTESTATION_IDENTITY_KEY_CERTIFICATE", + // "CERTIFICATE_REQUEST_AGENT", + // "CLIENT_AUTHENTICATION", + // "CODE_SIGNING", + // "CTL_USAGE", + // "DIGITAL_RIGHTS", + // "DIRECTORY_SERVICE_EMAIL_REPLICATION", + // "DISALLOWED_LIST", + // "DNS_SERVER_TRUST", + // "DOCUMENT_ENCRYPTION", + // "DOCUMENT_SIGNING", + // "DYNAMIC_CODE_GENERATOR", + // "EARLY_LAUNCH_ANTIMALWARE_DRIVER", + // "EMBEDDED_WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + // "ENCLAVE", + // "ENCRYPTING_FILE_SYSTEM", + // "ENDORSEMENT_KEY_CERTIFICATE", + // "FILE_RECOVERY", + // "HAL_EXTENSION", + // "IP_SECURITY_END_SYSTEM", + // "IP_SECURITY_IKE_INTERMEDIATE", + // "IP_SECURITY_TUNNEL_TERMINATION", + // "IP_SECURITY_USER", + // "ISOLATED_USER_MODE", + // "KDC_AUTHENTICATION", + // "KERNEL_MODE_CODE_SIGNING", + // "KEY_PACK_LICENSES", + // "KEY_RECOVERY", + // "KEY_RECOVERY_AGENT", + // "LICENSE_SERVER_VERIFICATION", + // "LIFETIME_SIGNING", + // "MICROSOFT_PUBLISHER", + // "MICROSOFT_TIME_STAMPING", + // "MICROSOFT_TRUST_LIST_SIGNING", + // "OCSP_SIGNING", + // "OEM_WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + // "PLATFORM_CERTIFICATE", + // "PREVIEW_BUILD_SIGNING", + // "PRIVATE_KEY_ARCHIVAL", + // "PROTECTED_PROCESS_LIGHT_VERIFICATION", + // "PROTECTED_PROCESS_VERIFICATION", + // "QUALIFIED_SUBORDINATION", + // "REVOKED_LIST_SIGNER", + // "ROOT_PROGRAM_AUTO_UPDATE_CA_REVOCATION", + // "ROOT_PROGRAM_AUTO_UPDATE_END_REVOCATION", + // "ROOT_PROGRAM_NO_OSCP_FAILOVER_TO_CRL", + // "ROOT_LIST_SIGNER", + // "SECURE_EMAIL", + // "SERVER_AUTHENTICATION", + // "SMART_CARD_LOGIN", + // "SPC_ENCRYPTED_DIGEST_RETRY_COUNT", + // "SPC_RELAXED_PE_MARKER_CHECK", + // "TIME_STAMPING", + // "WINDOWS_HARDWARE_DRIVER_ATTESTED_VERIFICATION", + // "WINDOWS_HARDWARE_DRIVER_EXTENDED_VERIFICATION", + // "WINDOWS_HARDWARE_DRIVER_VERIFICATION", + // "WINDOWS_HELLO_RECOVERY_KEY_ENCRYPTION", + // "WINDOWS_KITS_COMPONENT", + // "WINDOWS_RT_VERIFICATION", + // "WINDOWS_SOFTWARE_EXTENSION_VERIFICATION", + // "WINDOWS_STORE", + // "WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + // "WINDOWS_TCB_COMPONENT", + // "WINDOWS_THIRD_PARTY_APPLICATION_COMPONENT", + // "WINDOWS_UPDATE" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 100, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "Policies" + // ], + // "type": "object" + // }, + // "KeyUsage": { + // "additionalProperties": false, + // "properties": { + // "Critical": { + // "type": "boolean" + // }, + // "UsageFlags": { + // "additionalProperties": false, + // "properties": { + // "DataEncipherment": { + // "type": "boolean" + // }, + // "DigitalSignature": { + // "type": "boolean" + // }, + // "KeyAgreement": { + // "type": "boolean" + // }, + // "KeyEncipherment": { + // "type": "boolean" + // }, + // "NonRepudiation": { + // "type": "boolean" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "UsageFlags" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "KeyUsage" + // ], + // "type": "object" + // }, + // "GeneralFlags": { + // "additionalProperties": false, + // "properties": { + // "AutoEnrollment": { + // "type": "boolean" + // }, + // "MachineType": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "PrivateKeyAttributes": { + // "additionalProperties": false, + // "properties": { + // "CryptoProviders": { + // "items": { + // "maxLength": 100, + // "minLength": 1, + // "type": "string" + // }, + // "maxItems": 100, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // }, + // "KeySpec": { + // "enum": [ + // "KEY_EXCHANGE", + // "SIGNATURE" + // ], + // "type": "string" + // }, + // "MinimalKeyLength": { + // "minimum": 1, + // "type": "number" + // } + // }, + // "required": [ + // "KeySpec", + // "MinimalKeyLength" + // ], + // "type": "object" + // }, + // "PrivateKeyFlags": { + // "additionalProperties": false, + // "properties": { + // "ClientVersion": { + // "enum": [ + // "WINDOWS_SERVER_2003", + // "WINDOWS_SERVER_2008", + // "WINDOWS_SERVER_2008_R2", + // "WINDOWS_SERVER_2012", + // "WINDOWS_SERVER_2012_R2", + // "WINDOWS_SERVER_2016" + // ], + // "type": "string" + // }, + // "ExportableKey": { + // "type": "boolean" + // }, + // "StrongKeyProtectionRequired": { + // "type": "boolean" + // } + // }, + // "required": [ + // "ClientVersion" + // ], + // "type": "object" + // }, + // "SubjectNameFlags": { + // "additionalProperties": false, + // "properties": { + // "RequireCommonName": { + // "type": "boolean" + // }, + // "RequireDirectoryPath": { + // "type": "boolean" + // }, + // "RequireDnsAsCn": { + // "type": "boolean" + // }, + // "RequireEmail": { + // "type": "boolean" + // }, + // "SanRequireDirectoryGuid": { + // "type": "boolean" + // }, + // "SanRequireDns": { + // "type": "boolean" + // }, + // "SanRequireDomainDns": { + // "type": "boolean" + // }, + // "SanRequireEmail": { + // "type": "boolean" + // }, + // "SanRequireSpn": { + // "type": "boolean" + // }, + // "SanRequireUpn": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "SupersededTemplates": { + // "items": { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "maxItems": 100, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "CertificateValidity", + // "EnrollmentFlags", + // "Extensions", + // "GeneralFlags", + // "PrivateKeyAttributes", + // "PrivateKeyFlags", + // "SubjectNameFlags" + // ], + // "type": "object" + // }, + // "TemplateV3": { + // "additionalProperties": false, + // "properties": { + // "CertificateValidity": { + // "additionalProperties": false, + // "properties": { + // "RenewalPeriod": { + // "additionalProperties": false, + // "properties": { + // "Period": { + // "maximum": 8766000, + // "minimum": 1, + // "type": "number" + // }, + // "PeriodType": { + // "enum": [ + // "HOURS", + // "DAYS", + // "WEEKS", + // "MONTHS", + // "YEARS" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Period", + // "PeriodType" + // ], + // "type": "object" + // }, + // "ValidityPeriod": { + // "additionalProperties": false, + // "properties": { + // "Period": { + // "maximum": 8766000, + // "minimum": 1, + // "type": "number" + // }, + // "PeriodType": { + // "enum": [ + // "HOURS", + // "DAYS", + // "WEEKS", + // "MONTHS", + // "YEARS" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Period", + // "PeriodType" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "RenewalPeriod", + // "ValidityPeriod" + // ], + // "type": "object" + // }, + // "EnrollmentFlags": { + // "additionalProperties": false, + // "properties": { + // "EnableKeyReuseOnNtTokenKeysetStorageFull": { + // "type": "boolean" + // }, + // "IncludeSymmetricAlgorithms": { + // "type": "boolean" + // }, + // "NoSecurityExtension": { + // "type": "boolean" + // }, + // "RemoveInvalidCertificateFromPersonalStore": { + // "type": "boolean" + // }, + // "UserInteractionRequired": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "Extensions": { + // "additionalProperties": false, + // "properties": { + // "ApplicationPolicies": { + // "additionalProperties": false, + // "properties": { + // "Critical": { + // "type": "boolean" + // }, + // "Policies": { + // "items": { + // "properties": { + // "PolicyObjectIdentifier": { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^([0-2])\\.([0-9]|([0-3][0-9]))(\\.([0-9]+)){0,126}$", + // "type": "string" + // }, + // "PolicyType": { + // "enum": [ + // "ALL_APPLICATION_POLICIES", + // "ANY_PURPOSE", + // "ATTESTATION_IDENTITY_KEY_CERTIFICATE", + // "CERTIFICATE_REQUEST_AGENT", + // "CLIENT_AUTHENTICATION", + // "CODE_SIGNING", + // "CTL_USAGE", + // "DIGITAL_RIGHTS", + // "DIRECTORY_SERVICE_EMAIL_REPLICATION", + // "DISALLOWED_LIST", + // "DNS_SERVER_TRUST", + // "DOCUMENT_ENCRYPTION", + // "DOCUMENT_SIGNING", + // "DYNAMIC_CODE_GENERATOR", + // "EARLY_LAUNCH_ANTIMALWARE_DRIVER", + // "EMBEDDED_WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + // "ENCLAVE", + // "ENCRYPTING_FILE_SYSTEM", + // "ENDORSEMENT_KEY_CERTIFICATE", + // "FILE_RECOVERY", + // "HAL_EXTENSION", + // "IP_SECURITY_END_SYSTEM", + // "IP_SECURITY_IKE_INTERMEDIATE", + // "IP_SECURITY_TUNNEL_TERMINATION", + // "IP_SECURITY_USER", + // "ISOLATED_USER_MODE", + // "KDC_AUTHENTICATION", + // "KERNEL_MODE_CODE_SIGNING", + // "KEY_PACK_LICENSES", + // "KEY_RECOVERY", + // "KEY_RECOVERY_AGENT", + // "LICENSE_SERVER_VERIFICATION", + // "LIFETIME_SIGNING", + // "MICROSOFT_PUBLISHER", + // "MICROSOFT_TIME_STAMPING", + // "MICROSOFT_TRUST_LIST_SIGNING", + // "OCSP_SIGNING", + // "OEM_WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + // "PLATFORM_CERTIFICATE", + // "PREVIEW_BUILD_SIGNING", + // "PRIVATE_KEY_ARCHIVAL", + // "PROTECTED_PROCESS_LIGHT_VERIFICATION", + // "PROTECTED_PROCESS_VERIFICATION", + // "QUALIFIED_SUBORDINATION", + // "REVOKED_LIST_SIGNER", + // "ROOT_PROGRAM_AUTO_UPDATE_CA_REVOCATION", + // "ROOT_PROGRAM_AUTO_UPDATE_END_REVOCATION", + // "ROOT_PROGRAM_NO_OSCP_FAILOVER_TO_CRL", + // "ROOT_LIST_SIGNER", + // "SECURE_EMAIL", + // "SERVER_AUTHENTICATION", + // "SMART_CARD_LOGIN", + // "SPC_ENCRYPTED_DIGEST_RETRY_COUNT", + // "SPC_RELAXED_PE_MARKER_CHECK", + // "TIME_STAMPING", + // "WINDOWS_HARDWARE_DRIVER_ATTESTED_VERIFICATION", + // "WINDOWS_HARDWARE_DRIVER_EXTENDED_VERIFICATION", + // "WINDOWS_HARDWARE_DRIVER_VERIFICATION", + // "WINDOWS_HELLO_RECOVERY_KEY_ENCRYPTION", + // "WINDOWS_KITS_COMPONENT", + // "WINDOWS_RT_VERIFICATION", + // "WINDOWS_SOFTWARE_EXTENSION_VERIFICATION", + // "WINDOWS_STORE", + // "WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + // "WINDOWS_TCB_COMPONENT", + // "WINDOWS_THIRD_PARTY_APPLICATION_COMPONENT", + // "WINDOWS_UPDATE" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 100, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "Policies" + // ], + // "type": "object" + // }, + // "KeyUsage": { + // "additionalProperties": false, + // "properties": { + // "Critical": { + // "type": "boolean" + // }, + // "UsageFlags": { + // "additionalProperties": false, + // "properties": { + // "DataEncipherment": { + // "type": "boolean" + // }, + // "DigitalSignature": { + // "type": "boolean" + // }, + // "KeyAgreement": { + // "type": "boolean" + // }, + // "KeyEncipherment": { + // "type": "boolean" + // }, + // "NonRepudiation": { + // "type": "boolean" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "UsageFlags" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "KeyUsage" + // ], + // "type": "object" + // }, + // "GeneralFlags": { + // "additionalProperties": false, + // "properties": { + // "AutoEnrollment": { + // "type": "boolean" + // }, + // "MachineType": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "HashAlgorithm": { + // "enum": [ + // "SHA256", + // "SHA384", + // "SHA512" + // ], + // "type": "string" + // }, + // "PrivateKeyAttributes": { + // "additionalProperties": false, + // "properties": { + // "Algorithm": { + // "enum": [ + // "RSA", + // "ECDH_P256", + // "ECDH_P384", + // "ECDH_P521" + // ], + // "type": "string" + // }, + // "CryptoProviders": { + // "items": { + // "maxLength": 100, + // "minLength": 1, + // "type": "string" + // }, + // "maxItems": 100, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // }, + // "KeySpec": { + // "enum": [ + // "KEY_EXCHANGE", + // "SIGNATURE" + // ], + // "type": "string" + // }, + // "KeyUsageProperty": { + // "properties": { + // "PropertyFlags": { + // "additionalProperties": false, + // "properties": { + // "Decrypt": { + // "type": "boolean" + // }, + // "KeyAgreement": { + // "type": "boolean" + // }, + // "Sign": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "PropertyType": { + // "enum": [ + // "ALL" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "MinimalKeyLength": { + // "minimum": 1, + // "type": "number" + // } + // }, + // "required": [ + // "Algorithm", + // "KeySpec", + // "KeyUsageProperty", + // "MinimalKeyLength" + // ], + // "type": "object" + // }, + // "PrivateKeyFlags": { + // "additionalProperties": false, + // "properties": { + // "ClientVersion": { + // "enum": [ + // "WINDOWS_SERVER_2008", + // "WINDOWS_SERVER_2008_R2", + // "WINDOWS_SERVER_2012", + // "WINDOWS_SERVER_2012_R2", + // "WINDOWS_SERVER_2016" + // ], + // "type": "string" + // }, + // "ExportableKey": { + // "type": "boolean" + // }, + // "RequireAlternateSignatureAlgorithm": { + // "type": "boolean" + // }, + // "StrongKeyProtectionRequired": { + // "type": "boolean" + // } + // }, + // "required": [ + // "ClientVersion" + // ], + // "type": "object" + // }, + // "SubjectNameFlags": { + // "additionalProperties": false, + // "properties": { + // "RequireCommonName": { + // "type": "boolean" + // }, + // "RequireDirectoryPath": { + // "type": "boolean" + // }, + // "RequireDnsAsCn": { + // "type": "boolean" + // }, + // "RequireEmail": { + // "type": "boolean" + // }, + // "SanRequireDirectoryGuid": { + // "type": "boolean" + // }, + // "SanRequireDns": { + // "type": "boolean" + // }, + // "SanRequireDomainDns": { + // "type": "boolean" + // }, + // "SanRequireEmail": { + // "type": "boolean" + // }, + // "SanRequireSpn": { + // "type": "boolean" + // }, + // "SanRequireUpn": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "SupersededTemplates": { + // "items": { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "maxItems": 100, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "CertificateValidity", + // "EnrollmentFlags", + // "Extensions", + // "GeneralFlags", + // "HashAlgorithm", + // "PrivateKeyAttributes", + // "PrivateKeyFlags", + // "SubjectNameFlags" + // ], + // "type": "object" + // }, + // "TemplateV4": { + // "additionalProperties": false, + // "properties": { + // "CertificateValidity": { + // "additionalProperties": false, + // "properties": { + // "RenewalPeriod": { + // "additionalProperties": false, + // "properties": { + // "Period": { + // "maximum": 8766000, + // "minimum": 1, + // "type": "number" + // }, + // "PeriodType": { + // "enum": [ + // "HOURS", + // "DAYS", + // "WEEKS", + // "MONTHS", + // "YEARS" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Period", + // "PeriodType" + // ], + // "type": "object" + // }, + // "ValidityPeriod": { + // "additionalProperties": false, + // "properties": { + // "Period": { + // "maximum": 8766000, + // "minimum": 1, + // "type": "number" + // }, + // "PeriodType": { + // "enum": [ + // "HOURS", + // "DAYS", + // "WEEKS", + // "MONTHS", + // "YEARS" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "Period", + // "PeriodType" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "RenewalPeriod", + // "ValidityPeriod" + // ], + // "type": "object" + // }, + // "EnrollmentFlags": { + // "additionalProperties": false, + // "properties": { + // "EnableKeyReuseOnNtTokenKeysetStorageFull": { + // "type": "boolean" + // }, + // "IncludeSymmetricAlgorithms": { + // "type": "boolean" + // }, + // "NoSecurityExtension": { + // "type": "boolean" + // }, + // "RemoveInvalidCertificateFromPersonalStore": { + // "type": "boolean" + // }, + // "UserInteractionRequired": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "Extensions": { + // "additionalProperties": false, + // "properties": { + // "ApplicationPolicies": { + // "additionalProperties": false, + // "properties": { + // "Critical": { + // "type": "boolean" + // }, + // "Policies": { + // "items": { + // "properties": { + // "PolicyObjectIdentifier": { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^([0-2])\\.([0-9]|([0-3][0-9]))(\\.([0-9]+)){0,126}$", + // "type": "string" + // }, + // "PolicyType": { + // "enum": [ + // "ALL_APPLICATION_POLICIES", + // "ANY_PURPOSE", + // "ATTESTATION_IDENTITY_KEY_CERTIFICATE", + // "CERTIFICATE_REQUEST_AGENT", + // "CLIENT_AUTHENTICATION", + // "CODE_SIGNING", + // "CTL_USAGE", + // "DIGITAL_RIGHTS", + // "DIRECTORY_SERVICE_EMAIL_REPLICATION", + // "DISALLOWED_LIST", + // "DNS_SERVER_TRUST", + // "DOCUMENT_ENCRYPTION", + // "DOCUMENT_SIGNING", + // "DYNAMIC_CODE_GENERATOR", + // "EARLY_LAUNCH_ANTIMALWARE_DRIVER", + // "EMBEDDED_WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + // "ENCLAVE", + // "ENCRYPTING_FILE_SYSTEM", + // "ENDORSEMENT_KEY_CERTIFICATE", + // "FILE_RECOVERY", + // "HAL_EXTENSION", + // "IP_SECURITY_END_SYSTEM", + // "IP_SECURITY_IKE_INTERMEDIATE", + // "IP_SECURITY_TUNNEL_TERMINATION", + // "IP_SECURITY_USER", + // "ISOLATED_USER_MODE", + // "KDC_AUTHENTICATION", + // "KERNEL_MODE_CODE_SIGNING", + // "KEY_PACK_LICENSES", + // "KEY_RECOVERY", + // "KEY_RECOVERY_AGENT", + // "LICENSE_SERVER_VERIFICATION", + // "LIFETIME_SIGNING", + // "MICROSOFT_PUBLISHER", + // "MICROSOFT_TIME_STAMPING", + // "MICROSOFT_TRUST_LIST_SIGNING", + // "OCSP_SIGNING", + // "OEM_WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + // "PLATFORM_CERTIFICATE", + // "PREVIEW_BUILD_SIGNING", + // "PRIVATE_KEY_ARCHIVAL", + // "PROTECTED_PROCESS_LIGHT_VERIFICATION", + // "PROTECTED_PROCESS_VERIFICATION", + // "QUALIFIED_SUBORDINATION", + // "REVOKED_LIST_SIGNER", + // "ROOT_PROGRAM_AUTO_UPDATE_CA_REVOCATION", + // "ROOT_PROGRAM_AUTO_UPDATE_END_REVOCATION", + // "ROOT_PROGRAM_NO_OSCP_FAILOVER_TO_CRL", + // "ROOT_LIST_SIGNER", + // "SECURE_EMAIL", + // "SERVER_AUTHENTICATION", + // "SMART_CARD_LOGIN", + // "SPC_ENCRYPTED_DIGEST_RETRY_COUNT", + // "SPC_RELAXED_PE_MARKER_CHECK", + // "TIME_STAMPING", + // "WINDOWS_HARDWARE_DRIVER_ATTESTED_VERIFICATION", + // "WINDOWS_HARDWARE_DRIVER_EXTENDED_VERIFICATION", + // "WINDOWS_HARDWARE_DRIVER_VERIFICATION", + // "WINDOWS_HELLO_RECOVERY_KEY_ENCRYPTION", + // "WINDOWS_KITS_COMPONENT", + // "WINDOWS_RT_VERIFICATION", + // "WINDOWS_SOFTWARE_EXTENSION_VERIFICATION", + // "WINDOWS_STORE", + // "WINDOWS_SYSTEM_COMPONENT_VERIFICATION", + // "WINDOWS_TCB_COMPONENT", + // "WINDOWS_THIRD_PARTY_APPLICATION_COMPONENT", + // "WINDOWS_UPDATE" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 100, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "Policies" + // ], + // "type": "object" + // }, + // "KeyUsage": { + // "additionalProperties": false, + // "properties": { + // "Critical": { + // "type": "boolean" + // }, + // "UsageFlags": { + // "additionalProperties": false, + // "properties": { + // "DataEncipherment": { + // "type": "boolean" + // }, + // "DigitalSignature": { + // "type": "boolean" + // }, + // "KeyAgreement": { + // "type": "boolean" + // }, + // "KeyEncipherment": { + // "type": "boolean" + // }, + // "NonRepudiation": { + // "type": "boolean" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "UsageFlags" + // ], + // "type": "object" + // } + // }, + // "required": [ + // "KeyUsage" + // ], + // "type": "object" + // }, + // "GeneralFlags": { + // "additionalProperties": false, + // "properties": { + // "AutoEnrollment": { + // "type": "boolean" + // }, + // "MachineType": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "HashAlgorithm": { + // "enum": [ + // "SHA256", + // "SHA384", + // "SHA512" + // ], + // "type": "string" + // }, + // "PrivateKeyAttributes": { + // "additionalProperties": false, + // "properties": { + // "Algorithm": { + // "enum": [ + // "RSA", + // "ECDH_P256", + // "ECDH_P384", + // "ECDH_P521" + // ], + // "type": "string" + // }, + // "CryptoProviders": { + // "items": { + // "maxLength": 100, + // "minLength": 1, + // "type": "string" + // }, + // "maxItems": 100, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // }, + // "KeySpec": { + // "enum": [ + // "KEY_EXCHANGE", + // "SIGNATURE" + // ], + // "type": "string" + // }, + // "KeyUsageProperty": { + // "properties": { + // "PropertyFlags": { + // "additionalProperties": false, + // "properties": { + // "Decrypt": { + // "type": "boolean" + // }, + // "KeyAgreement": { + // "type": "boolean" + // }, + // "Sign": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "PropertyType": { + // "enum": [ + // "ALL" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "MinimalKeyLength": { + // "minimum": 1, + // "type": "number" + // } + // }, + // "required": [ + // "KeySpec", + // "MinimalKeyLength" + // ], + // "type": "object" + // }, + // "PrivateKeyFlags": { + // "additionalProperties": false, + // "properties": { + // "ClientVersion": { + // "enum": [ + // "WINDOWS_SERVER_2012", + // "WINDOWS_SERVER_2012_R2", + // "WINDOWS_SERVER_2016" + // ], + // "type": "string" + // }, + // "ExportableKey": { + // "type": "boolean" + // }, + // "RequireAlternateSignatureAlgorithm": { + // "type": "boolean" + // }, + // "RequireSameKeyRenewal": { + // "type": "boolean" + // }, + // "StrongKeyProtectionRequired": { + // "type": "boolean" + // }, + // "UseLegacyProvider": { + // "type": "boolean" + // } + // }, + // "required": [ + // "ClientVersion" + // ], + // "type": "object" + // }, + // "SubjectNameFlags": { + // "additionalProperties": false, + // "properties": { + // "RequireCommonName": { + // "type": "boolean" + // }, + // "RequireDirectoryPath": { + // "type": "boolean" + // }, + // "RequireDnsAsCn": { + // "type": "boolean" + // }, + // "RequireEmail": { + // "type": "boolean" + // }, + // "SanRequireDirectoryGuid": { + // "type": "boolean" + // }, + // "SanRequireDns": { + // "type": "boolean" + // }, + // "SanRequireDomainDns": { + // "type": "boolean" + // }, + // "SanRequireEmail": { + // "type": "boolean" + // }, + // "SanRequireSpn": { + // "type": "boolean" + // }, + // "SanRequireUpn": { + // "type": "boolean" + // } + // }, + // "type": "object" + // }, + // "SupersededTemplates": { + // "items": { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "maxItems": 100, + // "minItems": 1, + // "type": "array", + // "uniqueItems": true + // } + // }, + // "required": [ + // "CertificateValidity", + // "EnrollmentFlags", + // "Extensions", + // "GeneralFlags", + // "PrivateKeyAttributes", + // "PrivateKeyFlags", + // "SubjectNameFlags" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // } + "definition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: TemplateV2 + "template_v2": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CertificateValidity + "certificate_validity": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: RenewalPeriod + "renewal_period": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Period + "period": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PeriodType + "period_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ValidityPeriod + "validity_period": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Period + "period": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PeriodType + "period_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EnrollmentFlags + "enrollment_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EnableKeyReuseOnNtTokenKeysetStorageFull + "enable_key_reuse_on_nt_token_keyset_storage_full": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: IncludeSymmetricAlgorithms + "include_symmetric_algorithms": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: NoSecurityExtension + "no_security_extension": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RemoveInvalidCertificateFromPersonalStore + "remove_invalid_certificate_from_personal_store": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UserInteractionRequired + "user_interaction_required": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Extensions + "extensions": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ApplicationPolicies + "application_policies": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Critical + "critical": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Policies + "policies": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PolicyObjectIdentifier + "policy_object_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PolicyType + "policy_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KeyUsage + "key_usage": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Critical + "critical": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UsageFlags + "usage_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DataEncipherment + "data_encipherment": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DigitalSignature + "digital_signature": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KeyAgreement + "key_agreement": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KeyEncipherment + "key_encipherment": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: NonRepudiation + "non_repudiation": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: GeneralFlags + "general_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AutoEnrollment + "auto_enrollment": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MachineType + "machine_type": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PrivateKeyAttributes + "private_key_attributes": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CryptoProviders + "crypto_providers": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KeySpec + "key_spec": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MinimalKeyLength + "minimal_key_length": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PrivateKeyFlags + "private_key_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ClientVersion + "client_version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ExportableKey + "exportable_key": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: StrongKeyProtectionRequired + "strong_key_protection_required": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SubjectNameFlags + "subject_name_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: RequireCommonName + "require_common_name": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RequireDirectoryPath + "require_directory_path": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RequireDnsAsCn + "require_dns_as_cn": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RequireEmail + "require_email": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SanRequireDirectoryGuid + "san_require_directory_guid": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SanRequireDns + "san_require_dns": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SanRequireDomainDns + "san_require_domain_dns": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SanRequireEmail + "san_require_email": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SanRequireSpn + "san_require_spn": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SanRequireUpn + "san_require_upn": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SupersededTemplates + "superseded_templates": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TemplateV3 + "template_v3": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CertificateValidity + "certificate_validity": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: RenewalPeriod + "renewal_period": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Period + "period": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PeriodType + "period_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ValidityPeriod + "validity_period": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Period + "period": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PeriodType + "period_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EnrollmentFlags + "enrollment_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EnableKeyReuseOnNtTokenKeysetStorageFull + "enable_key_reuse_on_nt_token_keyset_storage_full": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: IncludeSymmetricAlgorithms + "include_symmetric_algorithms": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: NoSecurityExtension + "no_security_extension": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RemoveInvalidCertificateFromPersonalStore + "remove_invalid_certificate_from_personal_store": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UserInteractionRequired + "user_interaction_required": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Extensions + "extensions": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ApplicationPolicies + "application_policies": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Critical + "critical": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Policies + "policies": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PolicyObjectIdentifier + "policy_object_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PolicyType + "policy_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KeyUsage + "key_usage": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Critical + "critical": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UsageFlags + "usage_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DataEncipherment + "data_encipherment": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DigitalSignature + "digital_signature": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KeyAgreement + "key_agreement": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KeyEncipherment + "key_encipherment": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: NonRepudiation + "non_repudiation": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: GeneralFlags + "general_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AutoEnrollment + "auto_enrollment": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MachineType + "machine_type": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: HashAlgorithm + "hash_algorithm": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PrivateKeyAttributes + "private_key_attributes": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Algorithm + "algorithm": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CryptoProviders + "crypto_providers": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KeySpec + "key_spec": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KeyUsageProperty + "key_usage_property": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PropertyFlags + "property_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Decrypt + "decrypt": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KeyAgreement + "key_agreement": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Sign + "sign": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PropertyType + "property_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MinimalKeyLength + "minimal_key_length": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PrivateKeyFlags + "private_key_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ClientVersion + "client_version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ExportableKey + "exportable_key": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RequireAlternateSignatureAlgorithm + "require_alternate_signature_algorithm": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: StrongKeyProtectionRequired + "strong_key_protection_required": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SubjectNameFlags + "subject_name_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: RequireCommonName + "require_common_name": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RequireDirectoryPath + "require_directory_path": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RequireDnsAsCn + "require_dns_as_cn": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RequireEmail + "require_email": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SanRequireDirectoryGuid + "san_require_directory_guid": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SanRequireDns + "san_require_dns": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SanRequireDomainDns + "san_require_domain_dns": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SanRequireEmail + "san_require_email": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SanRequireSpn + "san_require_spn": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SanRequireUpn + "san_require_upn": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SupersededTemplates + "superseded_templates": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TemplateV4 + "template_v4": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CertificateValidity + "certificate_validity": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: RenewalPeriod + "renewal_period": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Period + "period": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PeriodType + "period_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ValidityPeriod + "validity_period": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Period + "period": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PeriodType + "period_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EnrollmentFlags + "enrollment_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: EnableKeyReuseOnNtTokenKeysetStorageFull + "enable_key_reuse_on_nt_token_keyset_storage_full": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: IncludeSymmetricAlgorithms + "include_symmetric_algorithms": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: NoSecurityExtension + "no_security_extension": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RemoveInvalidCertificateFromPersonalStore + "remove_invalid_certificate_from_personal_store": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UserInteractionRequired + "user_interaction_required": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Extensions + "extensions": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ApplicationPolicies + "application_policies": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Critical + "critical": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Policies + "policies": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PolicyObjectIdentifier + "policy_object_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PolicyType + "policy_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KeyUsage + "key_usage": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Critical + "critical": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UsageFlags + "usage_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: DataEncipherment + "data_encipherment": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DigitalSignature + "digital_signature": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KeyAgreement + "key_agreement": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KeyEncipherment + "key_encipherment": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: NonRepudiation + "non_repudiation": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: GeneralFlags + "general_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AutoEnrollment + "auto_enrollment": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MachineType + "machine_type": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: HashAlgorithm + "hash_algorithm": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PrivateKeyAttributes + "private_key_attributes": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Algorithm + "algorithm": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CryptoProviders + "crypto_providers": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KeySpec + "key_spec": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KeyUsageProperty + "key_usage_property": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: PropertyFlags + "property_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Decrypt + "decrypt": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: KeyAgreement + "key_agreement": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Sign + "sign": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PropertyType + "property_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MinimalKeyLength + "minimal_key_length": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PrivateKeyFlags + "private_key_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ClientVersion + "client_version": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ExportableKey + "exportable_key": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RequireAlternateSignatureAlgorithm + "require_alternate_signature_algorithm": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RequireSameKeyRenewal + "require_same_key_renewal": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: StrongKeyProtectionRequired + "strong_key_protection_required": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UseLegacyProvider + "use_legacy_provider": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SubjectNameFlags + "subject_name_flags": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: RequireCommonName + "require_common_name": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RequireDirectoryPath + "require_directory_path": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RequireDnsAsCn + "require_dns_as_cn": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RequireEmail + "require_email": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SanRequireDirectoryGuid + "san_require_directory_guid": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SanRequireDns + "san_require_dns": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SanRequireDomainDns + "san_require_domain_dns": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SanRequireEmail + "san_require_email": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SanRequireSpn + "san_require_spn": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SanRequireUpn + "san_require_upn": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SupersededTemplates + "superseded_templates": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ReenrollAllCertificateHolders + // CloudFormation resource type schema: + // + // { + // "type": "boolean" + // } + "reenroll_all_certificate_holders": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "type": "string" + // } + // }, + // "type": "object" + // } + "tags": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TemplateArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 200, + // "minLength": 5, + // "pattern": "^arn:[\\w-]+:pca-connector-ad:[\\w-]+:[0-9]+:connector\\/[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}\\/template\\/[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$", + // "type": "string" + // } + "template_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::PCAConnectorAD::Template", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::PCAConnectorAD::Template").WithTerraformTypeName("awscc_pcaconnectorad_template") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "algorithm": "Algorithm", + "application_policies": "ApplicationPolicies", + "auto_enrollment": "AutoEnrollment", + "certificate_validity": "CertificateValidity", + "client_version": "ClientVersion", + "connector_arn": "ConnectorArn", + "critical": "Critical", + "crypto_providers": "CryptoProviders", + "data_encipherment": "DataEncipherment", + "decrypt": "Decrypt", + "definition": "Definition", + "digital_signature": "DigitalSignature", + "enable_key_reuse_on_nt_token_keyset_storage_full": "EnableKeyReuseOnNtTokenKeysetStorageFull", + "enrollment_flags": "EnrollmentFlags", + "exportable_key": "ExportableKey", + "extensions": "Extensions", + "general_flags": "GeneralFlags", + "hash_algorithm": "HashAlgorithm", + "include_symmetric_algorithms": "IncludeSymmetricAlgorithms", + "key_agreement": "KeyAgreement", + "key_encipherment": "KeyEncipherment", + "key_spec": "KeySpec", + "key_usage": "KeyUsage", + "key_usage_property": "KeyUsageProperty", + "machine_type": "MachineType", + "minimal_key_length": "MinimalKeyLength", + "name": "Name", + "no_security_extension": "NoSecurityExtension", + "non_repudiation": "NonRepudiation", + "period": "Period", + "period_type": "PeriodType", + "policies": "Policies", + "policy_object_identifier": "PolicyObjectIdentifier", + "policy_type": "PolicyType", + "private_key_attributes": "PrivateKeyAttributes", + "private_key_flags": "PrivateKeyFlags", + "property_flags": "PropertyFlags", + "property_type": "PropertyType", + "reenroll_all_certificate_holders": "ReenrollAllCertificateHolders", + "remove_invalid_certificate_from_personal_store": "RemoveInvalidCertificateFromPersonalStore", + "renewal_period": "RenewalPeriod", + "require_alternate_signature_algorithm": "RequireAlternateSignatureAlgorithm", + "require_common_name": "RequireCommonName", + "require_directory_path": "RequireDirectoryPath", + "require_dns_as_cn": "RequireDnsAsCn", + "require_email": "RequireEmail", + "require_same_key_renewal": "RequireSameKeyRenewal", + "san_require_directory_guid": "SanRequireDirectoryGuid", + "san_require_dns": "SanRequireDns", + "san_require_domain_dns": "SanRequireDomainDns", + "san_require_email": "SanRequireEmail", + "san_require_spn": "SanRequireSpn", + "san_require_upn": "SanRequireUpn", + "sign": "Sign", + "strong_key_protection_required": "StrongKeyProtectionRequired", + "subject_name_flags": "SubjectNameFlags", + "superseded_templates": "SupersededTemplates", + "tags": "Tags", + "template_arn": "TemplateArn", + "template_v2": "TemplateV2", + "template_v3": "TemplateV3", + "template_v4": "TemplateV4", + "usage_flags": "UsageFlags", + "use_legacy_provider": "UseLegacyProvider", + "user_interaction_required": "UserInteractionRequired", + "validity_period": "ValidityPeriod", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/pcaconnectorad/template_singular_data_source_gen_test.go b/internal/aws/pcaconnectorad/template_singular_data_source_gen_test.go new file mode 100644 index 0000000000..40f436400b --- /dev/null +++ b/internal/aws/pcaconnectorad/template_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 pcaconnectorad_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSPCAConnectorADTemplateDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::PCAConnectorAD::Template", "awscc_pcaconnectorad_template", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSPCAConnectorADTemplateDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::PCAConnectorAD::Template", "awscc_pcaconnectorad_template", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/rds/option_group_singular_data_source_gen.go b/internal/aws/rds/option_group_singular_data_source_gen.go index ed7a1f2d68..96575be034 100644 --- a/internal/aws/rds/option_group_singular_data_source_gen.go +++ b/internal/aws/rds/option_group_singular_data_source_gen.go @@ -49,6 +49,7 @@ func optionGroupDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { + // "arrayType": "AttributeList", // "description": "Indicates what options are available in the option group.", // "insertionOrder": false, // "items": { diff --git a/internal/aws/rolesanywhere/trust_anchor_singular_data_source_gen.go b/internal/aws/rolesanywhere/trust_anchor_singular_data_source_gen.go index 5474bd8419..05deeb33ce 100644 --- a/internal/aws/rolesanywhere/trust_anchor_singular_data_source_gen.go +++ b/internal/aws/rolesanywhere/trust_anchor_singular_data_source_gen.go @@ -41,6 +41,68 @@ func trustAnchorDataSource(ctx context.Context) (datasource.DataSource, error) { "name": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: NotificationSettings + // CloudFormation resource type schema: + // + // { + // "items": { + // "additionalProperties": false, + // "properties": { + // "Channel": { + // "enum": [ + // "ALL" + // ], + // "type": "string" + // }, + // "Enabled": { + // "type": "boolean" + // }, + // "Event": { + // "enum": [ + // "CA_CERTIFICATE_EXPIRY", + // "END_ENTITY_CERTIFICATE_EXPIRY" + // ], + // "type": "string" + // }, + // "Threshold": { + // "maximum": 360, + // "minimum": 1, + // "type": "number" + // } + // }, + // "required": [ + // "Enabled", + // "Event" + // ], + // "type": "object" + // }, + // "maxItems": 50, + // "minItems": 0, + // "type": "array" + // } + "notification_settings": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Channel + "channel": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Enabled + "enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Event + "event": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Threshold + "threshold": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Source // CloudFormation resource type schema: // @@ -173,13 +235,17 @@ func trustAnchorDataSource(ctx context.Context) (datasource.DataSource, error) { opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ "acm_pca_arn": "AcmPcaArn", + "channel": "Channel", "enabled": "Enabled", + "event": "Event", "key": "Key", "name": "Name", + "notification_settings": "NotificationSettings", "source": "Source", "source_data": "SourceData", "source_type": "SourceType", "tags": "Tags", + "threshold": "Threshold", "trust_anchor_arn": "TrustAnchorArn", "trust_anchor_id": "TrustAnchorId", "value": "Value", From bcae63fcf76e25019f9222ae472ddf5bbe8fed25 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 7 Sep 2023 12:28:27 -0400 Subject: [PATCH 5/6] Run 'make docs'. --- docs/data-sources/appflow_flow.md | 18 + .../billingconductor_custom_line_item.md | 11 + ..._microsoft_teams_channel_configurations.md | 21 + .../cleanrooms_analysis_template.md | 70 +++ .../cleanrooms_analysis_templates.md | 21 + docs/data-sources/cleanrooms_membership.md | 28 + .../cloudformation_hook_versions.md | 21 + docs/data-sources/connect_quick_connect.md | 1 + docs/data-sources/connect_view.md | 40 ++ docs/data-sources/connect_view_version.md | 28 + docs/data-sources/datasync_task.md | 72 +++ docs/data-sources/ec2_eip_association.md | 28 + docs/data-sources/ec2_eip_associations.md | 21 + docs/data-sources/ec2_flow_log.md | 1 + .../data-sources/emrserverless_application.md | 2 +- docs/data-sources/guardduty_detector.md | 105 ++++ docs/data-sources/guardduty_detectors.md | 21 + .../iotwireless_task_definitions.md | 21 + docs/data-sources/macie_findings_filter.md | 11 + docs/data-sources/pcaconnectorad_connector.md | 35 ++ .../data-sources/pcaconnectorad_connectors.md | 21 + .../pcaconnectorad_directory_registration.md | 26 + .../pcaconnectorad_directory_registrations.md | 21 + .../pcaconnectorad_service_principal_name.md | 25 + docs/data-sources/pcaconnectorad_template.md | 528 ++++++++++++++++ ...rad_template_group_access_control_entry.md | 35 ++ .../rolesanywhere_trust_anchor.md | 12 + docs/resources/appflow_flow.md | 21 + .../billingconductor_custom_line_item.md | 11 + .../resources/cleanrooms_analysis_template.md | 84 +++ docs/resources/cleanrooms_membership.md | 34 + docs/resources/connect_quick_connect.md | 1 + docs/resources/connect_view.md | 51 ++ docs/resources/connect_view_version.md | 39 ++ docs/resources/datasync_task.md | 75 +++ docs/resources/ec2_eip_association.md | 36 ++ docs/resources/ec2_flow_log.md | 1 + docs/resources/emrserverless_application.md | 2 +- docs/resources/guardduty_detector.md | 119 ++++ docs/resources/iotwireless_destination.md | 2 +- docs/resources/iotwireless_service_profile.md | 4 +- docs/resources/macie_findings_filter.md | 11 + docs/resources/pcaconnectorad_connector.md | 46 ++ .../pcaconnectorad_directory_registration.md | 37 ++ .../pcaconnectorad_service_principal_name.md | 33 + docs/resources/pcaconnectorad_template.md | 593 ++++++++++++++++++ ...rad_template_group_access_control_entry.md | 46 ++ docs/resources/rolesanywhere_trust_anchor.md | 15 + .../import.sh | 1 + .../resources/awscc_connect_view/import.sh | 1 + .../awscc_connect_view_version/import.sh | 1 + .../awscc_ec2_eip_association/import.sh | 1 + .../awscc_guardduty_detector/import.sh | 1 + .../awscc_pcaconnectorad_connector/import.sh | 1 + .../import.sh | 1 + .../import.sh | 1 + .../awscc_pcaconnectorad_template/import.sh | 1 + .../import.sh | 1 + 58 files changed, 2510 insertions(+), 5 deletions(-) create mode 100644 docs/data-sources/chatbot_microsoft_teams_channel_configurations.md create mode 100644 docs/data-sources/cleanrooms_analysis_template.md create mode 100644 docs/data-sources/cleanrooms_analysis_templates.md create mode 100644 docs/data-sources/cloudformation_hook_versions.md create mode 100644 docs/data-sources/connect_view.md create mode 100644 docs/data-sources/connect_view_version.md create mode 100644 docs/data-sources/ec2_eip_association.md create mode 100644 docs/data-sources/ec2_eip_associations.md create mode 100644 docs/data-sources/guardduty_detector.md create mode 100644 docs/data-sources/guardduty_detectors.md create mode 100644 docs/data-sources/iotwireless_task_definitions.md create mode 100644 docs/data-sources/pcaconnectorad_connector.md create mode 100644 docs/data-sources/pcaconnectorad_connectors.md create mode 100644 docs/data-sources/pcaconnectorad_directory_registration.md create mode 100644 docs/data-sources/pcaconnectorad_directory_registrations.md create mode 100644 docs/data-sources/pcaconnectorad_service_principal_name.md create mode 100644 docs/data-sources/pcaconnectorad_template.md create mode 100644 docs/data-sources/pcaconnectorad_template_group_access_control_entry.md create mode 100644 docs/resources/cleanrooms_analysis_template.md create mode 100644 docs/resources/connect_view.md create mode 100644 docs/resources/connect_view_version.md create mode 100644 docs/resources/ec2_eip_association.md create mode 100644 docs/resources/guardduty_detector.md create mode 100644 docs/resources/pcaconnectorad_connector.md create mode 100644 docs/resources/pcaconnectorad_directory_registration.md create mode 100644 docs/resources/pcaconnectorad_service_principal_name.md create mode 100644 docs/resources/pcaconnectorad_template.md create mode 100644 docs/resources/pcaconnectorad_template_group_access_control_entry.md create mode 100644 examples/resources/awscc_cleanrooms_analysis_template/import.sh create mode 100644 examples/resources/awscc_connect_view/import.sh create mode 100644 examples/resources/awscc_connect_view_version/import.sh create mode 100644 examples/resources/awscc_ec2_eip_association/import.sh create mode 100644 examples/resources/awscc_guardduty_detector/import.sh create mode 100644 examples/resources/awscc_pcaconnectorad_connector/import.sh create mode 100644 examples/resources/awscc_pcaconnectorad_directory_registration/import.sh create mode 100644 examples/resources/awscc_pcaconnectorad_service_principal_name/import.sh create mode 100644 examples/resources/awscc_pcaconnectorad_template/import.sh create mode 100644 examples/resources/awscc_pcaconnectorad_template_group_access_control_entry/import.sh diff --git a/docs/data-sources/appflow_flow.md b/docs/data-sources/appflow_flow.md index fa80a1cb03..545b21f310 100644 --- a/docs/data-sources/appflow_flow.md +++ b/docs/data-sources/appflow_flow.md @@ -495,6 +495,24 @@ Read-Only: Read-Only: - `object_path` (String) +- `pagination_config` (Attributes) SAP Source connector page size (see [below for nested schema](#nestedatt--source_flow_config--source_connector_properties--sapo_data--pagination_config)) +- `parallelism_config` (Attributes) SAP Source connector parallelism factor (see [below for nested schema](#nestedatt--source_flow_config--source_connector_properties--sapo_data--parallelism_config)) + + +### Nested Schema for `source_flow_config.source_connector_properties.sapo_data.parallelism_config` + +Read-Only: + +- `max_page_size` (Number) + + + +### Nested Schema for `source_flow_config.source_connector_properties.sapo_data.parallelism_config` + +Read-Only: + +- `max_parallelism` (Number) + diff --git a/docs/data-sources/billingconductor_custom_line_item.md b/docs/data-sources/billingconductor_custom_line_item.md index 24a2838174..e6ded72abc 100644 --- a/docs/data-sources/billingconductor_custom_line_item.md +++ b/docs/data-sources/billingconductor_custom_line_item.md @@ -49,6 +49,7 @@ Read-Only: Read-Only: - `flat` (Attributes) (see [below for nested schema](#nestedatt--custom_line_item_charge_details--flat)) +- `line_item_filters` (Attributes Set) (see [below for nested schema](#nestedatt--custom_line_item_charge_details--line_item_filters)) - `percentage` (Attributes) (see [below for nested schema](#nestedatt--custom_line_item_charge_details--percentage)) - `type` (String) @@ -60,6 +61,16 @@ Read-Only: - `charge_value` (Number) + +### Nested Schema for `custom_line_item_charge_details.line_item_filters` + +Read-Only: + +- `attribute` (String) +- `match_option` (String) +- `values` (Set of String) + + ### Nested Schema for `custom_line_item_charge_details.percentage` diff --git a/docs/data-sources/chatbot_microsoft_teams_channel_configurations.md b/docs/data-sources/chatbot_microsoft_teams_channel_configurations.md new file mode 100644 index 0000000000..cd8daf283a --- /dev/null +++ b/docs/data-sources/chatbot_microsoft_teams_channel_configurations.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_chatbot_microsoft_teams_channel_configurations Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::Chatbot::MicrosoftTeamsChannelConfiguration +--- + +# awscc_chatbot_microsoft_teams_channel_configurations (Data Source) + +Plural Data Source schema for AWS::Chatbot::MicrosoftTeamsChannelConfiguration + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/cleanrooms_analysis_template.md b/docs/data-sources/cleanrooms_analysis_template.md new file mode 100644 index 0000000000..11fc1c0ca5 --- /dev/null +++ b/docs/data-sources/cleanrooms_analysis_template.md @@ -0,0 +1,70 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_cleanrooms_analysis_template Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::CleanRooms::AnalysisTemplate +--- + +# awscc_cleanrooms_analysis_template (Data Source) + +Data Source schema for AWS::CleanRooms::AnalysisTemplate + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `analysis_parameters` (Attributes List) The member who can query can provide this placeholder for a literal data value in an analysis template (see [below for nested schema](#nestedatt--analysis_parameters)) +- `analysis_template_identifier` (String) +- `arn` (String) +- `collaboration_arn` (String) +- `collaboration_identifier` (String) +- `description` (String) +- `format` (String) +- `membership_arn` (String) +- `membership_identifier` (String) +- `name` (String) +- `schema` (Attributes) (see [below for nested schema](#nestedatt--schema)) +- `source` (Attributes) (see [below for nested schema](#nestedatt--source)) +- `tags` (Attributes List) An arbitrary set of tags (key-value pairs) for this cleanrooms analysis template. (see [below for nested schema](#nestedatt--tags)) + + +### Nested Schema for `analysis_parameters` + +Read-Only: + +- `default_value` (String) +- `name` (String) +- `type` (String) + + + +### Nested Schema for `schema` + +Read-Only: + +- `referenced_tables` (List of String) + + + +### Nested Schema for `source` + +Read-Only: + +- `text` (String) + + + +### Nested Schema for `tags` + +Read-Only: + +- `key` (String) +- `value` (String) diff --git a/docs/data-sources/cleanrooms_analysis_templates.md b/docs/data-sources/cleanrooms_analysis_templates.md new file mode 100644 index 0000000000..de1df7a0e9 --- /dev/null +++ b/docs/data-sources/cleanrooms_analysis_templates.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_cleanrooms_analysis_templates Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::CleanRooms::AnalysisTemplate +--- + +# awscc_cleanrooms_analysis_templates (Data Source) + +Plural Data Source schema for AWS::CleanRooms::AnalysisTemplate + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/cleanrooms_membership.md b/docs/data-sources/cleanrooms_membership.md index fa8c96d4c5..a0680d8fce 100644 --- a/docs/data-sources/cleanrooms_membership.md +++ b/docs/data-sources/cleanrooms_membership.md @@ -25,10 +25,38 @@ Data Source schema for AWS::CleanRooms::Membership - `collaboration_arn` (String) - `collaboration_creator_account_id` (String) - `collaboration_identifier` (String) +- `default_result_configuration` (Attributes) (see [below for nested schema](#nestedatt--default_result_configuration)) - `membership_identifier` (String) - `query_log_status` (String) - `tags` (Attributes Set) An arbitrary set of tags (key-value pairs) for this cleanrooms membership. (see [below for nested schema](#nestedatt--tags)) + +### Nested Schema for `default_result_configuration` + +Read-Only: + +- `output_configuration` (Attributes) (see [below for nested schema](#nestedatt--default_result_configuration--output_configuration)) +- `role_arn` (String) + + +### Nested Schema for `default_result_configuration.output_configuration` + +Read-Only: + +- `s3` (Attributes) (see [below for nested schema](#nestedatt--default_result_configuration--output_configuration--s3)) + + +### Nested Schema for `default_result_configuration.output_configuration.s3` + +Read-Only: + +- `bucket` (String) +- `key_prefix` (String) +- `result_format` (String) + + + + ### Nested Schema for `tags` diff --git a/docs/data-sources/cloudformation_hook_versions.md b/docs/data-sources/cloudformation_hook_versions.md new file mode 100644 index 0000000000..6530297dc8 --- /dev/null +++ b/docs/data-sources/cloudformation_hook_versions.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_cloudformation_hook_versions Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::CloudFormation::HookVersion +--- + +# awscc_cloudformation_hook_versions (Data Source) + +Plural Data Source schema for AWS::CloudFormation::HookVersion + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/connect_quick_connect.md b/docs/data-sources/connect_quick_connect.md index 395582c00f..66b96b3ebf 100644 --- a/docs/data-sources/connect_quick_connect.md +++ b/docs/data-sources/connect_quick_connect.md @@ -26,6 +26,7 @@ Data Source schema for AWS::Connect::QuickConnect - `name` (String) The name of the quick connect. - `quick_connect_arn` (String) The Amazon Resource Name (ARN) for the quick connect. - `quick_connect_config` (Attributes) Configuration settings for the quick connect. (see [below for nested schema](#nestedatt--quick_connect_config)) +- `quick_connect_type` (String) The type of quick connect. In the Amazon Connect console, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE). - `tags` (Attributes Set) One or more tags. (see [below for nested schema](#nestedatt--tags)) diff --git a/docs/data-sources/connect_view.md b/docs/data-sources/connect_view.md new file mode 100644 index 0000000000..8b18217d78 --- /dev/null +++ b/docs/data-sources/connect_view.md @@ -0,0 +1,40 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_connect_view Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Connect::View +--- + +# awscc_connect_view (Data Source) + +Data Source schema for AWS::Connect::View + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `actions` (List of String) The actions of the view in an array. +- `description` (String) The description of the view. +- `instance_arn` (String) The Amazon Resource Name (ARN) of the instance. +- `name` (String) The name of the view. +- `tags` (Attributes Set) One or more tags. (see [below for nested schema](#nestedatt--tags)) +- `template` (Map of String) The template of the view as JSON. +- `view_arn` (String) The Amazon Resource Name (ARN) of the view. +- `view_content_sha_256` (String) The view content hash. +- `view_id` (String) The view id of the view. + + +### 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 +- `value` (String) The value for the tag. . You can specify a value that is maximum of 256 Unicode characters diff --git a/docs/data-sources/connect_view_version.md b/docs/data-sources/connect_view_version.md new file mode 100644 index 0000000000..dcf93ef2ec --- /dev/null +++ b/docs/data-sources/connect_view_version.md @@ -0,0 +1,28 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_connect_view_version Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Connect::ViewVersion +--- + +# awscc_connect_view_version (Data Source) + +Data Source schema for AWS::Connect::ViewVersion + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `version` (Number) The version of the view. +- `version_description` (String) The description for the view version. +- `view_arn` (String) The Amazon Resource Name (ARN) of the view for which a version is being created. +- `view_content_sha_256` (String) The view content hash to be checked. +- `view_version_arn` (String) The Amazon Resource Name (ARN) of the created view version. diff --git a/docs/data-sources/datasync_task.md b/docs/data-sources/datasync_task.md index 8422c0da3e..daad625a1b 100644 --- a/docs/data-sources/datasync_task.md +++ b/docs/data-sources/datasync_task.md @@ -34,6 +34,7 @@ Data Source schema for AWS::DataSync::Task - `status` (String) The status of the task that was described. - `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) - `task_arn` (String) The ARN of the task. +- `task_report_config` (Attributes) Specifies how you want to configure a task report, which provides detailed information about for your Datasync transfer. (see [below for nested schema](#nestedatt--task_report_config)) ### Nested Schema for `excludes` @@ -90,3 +91,74 @@ Read-Only: - `key` (String) The key for an AWS resource tag. - `value` (String) The value for an AWS resource tag. + + + +### Nested Schema for `task_report_config` + +Read-Only: + +- `destination` (Attributes) Specifies where DataSync uploads your task report. (see [below for nested schema](#nestedatt--task_report_config--destination)) +- `object_version_ids` (String) Specifies whether your task report includes the new version of each object transferred into an S3 bucket, this only applies if you enable versioning on your bucket. +- `output_type` (String) Specifies the type of task report that you want. +- `overrides` (Attributes) Customizes the reporting level for aspects of your task report. For example, your report might generally only include errors, but you could specify that you want a list of successes and errors just for the files that Datasync attempted to delete in your destination location. (see [below for nested schema](#nestedatt--task_report_config--overrides)) +- `report_level` (String) Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't. + + +### Nested Schema for `task_report_config.destination` + +Read-Only: + +- `s3` (Attributes) Specifies the Amazon S3 bucket where DataSync uploads your task report. (see [below for nested schema](#nestedatt--task_report_config--destination--s3)) + + +### Nested Schema for `task_report_config.destination.s3` + +Read-Only: + +- `bucket_access_role_arn` (String) Specifies the Amazon Resource Name (ARN) of the IAM policy that allows Datasync to upload a task report to your S3 bucket. +- `s3_bucket_arn` (String) Specifies the ARN of the S3 bucket where Datasync uploads your report. +- `subdirectory` (String) Specifies a bucket prefix for your report. + + + + +### Nested Schema for `task_report_config.overrides` + +Read-Only: + +- `deleted` (Attributes) Specifies the level of reporting for the files, objects, and directories that Datasync attempted to delete in your destination location. This only applies if you configure your task to delete data in the destination that isn't in the source. (see [below for nested schema](#nestedatt--task_report_config--overrides--deleted)) +- `skipped` (Attributes) Specifies the level of reporting for the files, objects, and directories that Datasync attempted to skip during your transfer. (see [below for nested schema](#nestedatt--task_report_config--overrides--skipped)) +- `transferred` (Attributes) Specifies the level of reporting for the files, objects, and directories that Datasync attempted to transfer. (see [below for nested schema](#nestedatt--task_report_config--overrides--transferred)) +- `verified` (Attributes) Specifies the level of reporting for the files, objects, and directories that Datasync attempted to verify at the end of your transfer. This only applies if you configure your task to verify data during and after the transfer (which Datasync does by default) (see [below for nested schema](#nestedatt--task_report_config--overrides--verified)) + + +### Nested Schema for `task_report_config.overrides.deleted` + +Read-Only: + +- `report_level` (String) Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't. + + + +### Nested Schema for `task_report_config.overrides.skipped` + +Read-Only: + +- `report_level` (String) Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't. + + + +### Nested Schema for `task_report_config.overrides.transferred` + +Read-Only: + +- `report_level` (String) Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't. + + + +### Nested Schema for `task_report_config.overrides.verified` + +Read-Only: + +- `report_level` (String) Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't. diff --git a/docs/data-sources/ec2_eip_association.md b/docs/data-sources/ec2_eip_association.md new file mode 100644 index 0000000000..655fb85419 --- /dev/null +++ b/docs/data-sources/ec2_eip_association.md @@ -0,0 +1,28 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_ec2_eip_association Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::EC2::EIPAssociation +--- + +# awscc_ec2_eip_association (Data Source) + +Data Source schema for AWS::EC2::EIPAssociation + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `allocation_id` (String) The allocation ID. This is required for EC2-VPC. +- `eip` (String) The Elastic IP address to associate with the instance. +- `instance_id` (String) The ID of the instance. +- `network_interface_id` (String) The ID of the network interface. +- `private_ip_address` (String) The primary or secondary private IP address to associate with the Elastic IP address. diff --git a/docs/data-sources/ec2_eip_associations.md b/docs/data-sources/ec2_eip_associations.md new file mode 100644 index 0000000000..9bab915932 --- /dev/null +++ b/docs/data-sources/ec2_eip_associations.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_ec2_eip_associations Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::EC2::EIPAssociation +--- + +# awscc_ec2_eip_associations (Data Source) + +Plural Data Source schema for AWS::EC2::EIPAssociation + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/ec2_flow_log.md b/docs/data-sources/ec2_flow_log.md index 9fe0c35549..a71f339678 100644 --- a/docs/data-sources/ec2_flow_log.md +++ b/docs/data-sources/ec2_flow_log.md @@ -21,6 +21,7 @@ Data Source schema for AWS::EC2::FlowLog ### Read-Only +- `deliver_cross_account_role` (String) The ARN of the IAM role that allows Amazon EC2 to publish flow logs across accounts. - `deliver_logs_permission_arn` (String) The ARN for the IAM role that permits Amazon EC2 to publish flow logs to a CloudWatch Logs log group in your account. If you specify LogDestinationType as s3 or kinesis-data-firehose, do not specify DeliverLogsPermissionArn or LogGroupName. - `destination_options` (Attributes) (see [below for nested schema](#nestedatt--destination_options)) - `log_destination` (String) Specifies the destination to which the flow log data is to be published. Flow log data can be published to a CloudWatch Logs log group, an Amazon S3 bucket, or a Kinesis Firehose stream. The value specified for this parameter depends on the value specified for LogDestinationType. diff --git a/docs/data-sources/emrserverless_application.md b/docs/data-sources/emrserverless_application.md index bbe3257f88..7811b31988 100644 --- a/docs/data-sources/emrserverless_application.md +++ b/docs/data-sources/emrserverless_application.md @@ -34,7 +34,7 @@ Data Source schema for AWS::EMRServerless::Application - `release_label` (String) EMR release label. - `tags` (Attributes Set) Tag map with key and value (see [below for nested schema](#nestedatt--tags)) - `type` (String) The type of the application -- `worker_type_specifications` (Attributes Map) (see [below for nested schema](#nestedatt--worker_type_specifications)) +- `worker_type_specifications` (Attributes Map) The key-value pairs that specify worker type to WorkerTypeSpecificationInput. This parameter must contain all valid worker types for a Spark or Hive application. Valid worker types include Driver and Executor for Spark applications and HiveDriver and TezTask for Hive applications. You can either set image details in this parameter for each worker type, or in imageConfiguration for all worker types. (see [below for nested schema](#nestedatt--worker_type_specifications)) ### Nested Schema for `auto_start_configuration` diff --git a/docs/data-sources/guardduty_detector.md b/docs/data-sources/guardduty_detector.md new file mode 100644 index 0000000000..3c0b353196 --- /dev/null +++ b/docs/data-sources/guardduty_detector.md @@ -0,0 +1,105 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_guardduty_detector Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::GuardDuty::Detector +--- + +# awscc_guardduty_detector (Data Source) + +Data Source schema for AWS::GuardDuty::Detector + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `data_sources` (Attributes) (see [below for nested schema](#nestedatt--data_sources)) +- `enable` (Boolean) +- `features` (Attributes List) (see [below for nested schema](#nestedatt--features)) +- `finding_publishing_frequency` (String) +- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) + + +### Nested Schema for `data_sources` + +Read-Only: + +- `kubernetes` (Attributes) (see [below for nested schema](#nestedatt--data_sources--kubernetes)) +- `malware_protection` (Attributes) (see [below for nested schema](#nestedatt--data_sources--malware_protection)) +- `s3_logs` (Attributes) (see [below for nested schema](#nestedatt--data_sources--s3_logs)) + + +### Nested Schema for `data_sources.kubernetes` + +Read-Only: + +- `audit_logs` (Attributes) (see [below for nested schema](#nestedatt--data_sources--kubernetes--audit_logs)) + + +### Nested Schema for `data_sources.kubernetes.audit_logs` + +Read-Only: + +- `enable` (Boolean) + + + + +### Nested Schema for `data_sources.malware_protection` + +Read-Only: + +- `scan_ec_2_instance_with_findings` (Attributes) (see [below for nested schema](#nestedatt--data_sources--malware_protection--scan_ec_2_instance_with_findings)) + + +### Nested Schema for `data_sources.malware_protection.scan_ec_2_instance_with_findings` + +Read-Only: + +- `ebs_volumes` (Boolean) + + + + +### Nested Schema for `data_sources.s3_logs` + +Read-Only: + +- `enable` (Boolean) + + + + +### Nested Schema for `features` + +Read-Only: + +- `additional_configuration` (Attributes List) (see [below for nested schema](#nestedatt--features--additional_configuration)) +- `name` (String) +- `status` (String) + + +### Nested Schema for `features.additional_configuration` + +Read-Only: + +- `name` (String) +- `status` (String) + + + + +### Nested Schema for `tags` + +Read-Only: + +- `key` (String) +- `value` (String) diff --git a/docs/data-sources/guardduty_detectors.md b/docs/data-sources/guardduty_detectors.md new file mode 100644 index 0000000000..45ee8685b3 --- /dev/null +++ b/docs/data-sources/guardduty_detectors.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_guardduty_detectors Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::GuardDuty::Detector +--- + +# awscc_guardduty_detectors (Data Source) + +Plural Data Source schema for AWS::GuardDuty::Detector + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/iotwireless_task_definitions.md b/docs/data-sources/iotwireless_task_definitions.md new file mode 100644 index 0000000000..493dc0510e --- /dev/null +++ b/docs/data-sources/iotwireless_task_definitions.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_iotwireless_task_definitions Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::IoTWireless::TaskDefinition +--- + +# awscc_iotwireless_task_definitions (Data Source) + +Plural Data Source schema for AWS::IoTWireless::TaskDefinition + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/macie_findings_filter.md b/docs/data-sources/macie_findings_filter.md index 2be83fe561..367cd0562d 100644 --- a/docs/data-sources/macie_findings_filter.md +++ b/docs/data-sources/macie_findings_filter.md @@ -27,6 +27,7 @@ Data Source schema for AWS::Macie::FindingsFilter - `finding_criteria` (Attributes) Findings filter criteria. (see [below for nested schema](#nestedatt--finding_criteria)) - `name` (String) Findings filter name - `position` (Number) Findings filter position. +- `tags` (Attributes List) A collection of tags associated with a resource (see [below for nested schema](#nestedatt--tags)) ### Nested Schema for `finding_criteria` @@ -46,3 +47,13 @@ Read-Only: - `lt` (Number) - `lte` (Number) - `neq` (List of String) + + + + +### Nested Schema for `tags` + +Read-Only: + +- `key` (String) The tag's key. +- `value` (String) The tag's value. diff --git a/docs/data-sources/pcaconnectorad_connector.md b/docs/data-sources/pcaconnectorad_connector.md new file mode 100644 index 0000000000..9e47bd68b4 --- /dev/null +++ b/docs/data-sources/pcaconnectorad_connector.md @@ -0,0 +1,35 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_pcaconnectorad_connector Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::PCAConnectorAD::Connector +--- + +# awscc_pcaconnectorad_connector (Data Source) + +Data Source schema for AWS::PCAConnectorAD::Connector + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `certificate_authority_arn` (String) +- `connector_arn` (String) +- `directory_id` (String) +- `tags` (Map of String) +- `vpc_information` (Attributes) (see [below for nested schema](#nestedatt--vpc_information)) + + +### Nested Schema for `vpc_information` + +Read-Only: + +- `security_group_ids` (List of String) diff --git a/docs/data-sources/pcaconnectorad_connectors.md b/docs/data-sources/pcaconnectorad_connectors.md new file mode 100644 index 0000000000..0d14a9f3f3 --- /dev/null +++ b/docs/data-sources/pcaconnectorad_connectors.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_pcaconnectorad_connectors Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::PCAConnectorAD::Connector +--- + +# awscc_pcaconnectorad_connectors (Data Source) + +Plural Data Source schema for AWS::PCAConnectorAD::Connector + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/pcaconnectorad_directory_registration.md b/docs/data-sources/pcaconnectorad_directory_registration.md new file mode 100644 index 0000000000..fe94572f57 --- /dev/null +++ b/docs/data-sources/pcaconnectorad_directory_registration.md @@ -0,0 +1,26 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_pcaconnectorad_directory_registration Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::PCAConnectorAD::DirectoryRegistration +--- + +# awscc_pcaconnectorad_directory_registration (Data Source) + +Data Source schema for AWS::PCAConnectorAD::DirectoryRegistration + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `directory_id` (String) +- `directory_registration_arn` (String) +- `tags` (Map of String) diff --git a/docs/data-sources/pcaconnectorad_directory_registrations.md b/docs/data-sources/pcaconnectorad_directory_registrations.md new file mode 100644 index 0000000000..2c8e2b5bd7 --- /dev/null +++ b/docs/data-sources/pcaconnectorad_directory_registrations.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_pcaconnectorad_directory_registrations Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::PCAConnectorAD::DirectoryRegistration +--- + +# awscc_pcaconnectorad_directory_registrations (Data Source) + +Plural Data Source schema for AWS::PCAConnectorAD::DirectoryRegistration + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/pcaconnectorad_service_principal_name.md b/docs/data-sources/pcaconnectorad_service_principal_name.md new file mode 100644 index 0000000000..9936cbd646 --- /dev/null +++ b/docs/data-sources/pcaconnectorad_service_principal_name.md @@ -0,0 +1,25 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_pcaconnectorad_service_principal_name Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::PCAConnectorAD::ServicePrincipalName +--- + +# awscc_pcaconnectorad_service_principal_name (Data Source) + +Data Source schema for AWS::PCAConnectorAD::ServicePrincipalName + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `connector_arn` (String) +- `directory_registration_arn` (String) diff --git a/docs/data-sources/pcaconnectorad_template.md b/docs/data-sources/pcaconnectorad_template.md new file mode 100644 index 0000000000..cac3991fee --- /dev/null +++ b/docs/data-sources/pcaconnectorad_template.md @@ -0,0 +1,528 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_pcaconnectorad_template Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::PCAConnectorAD::Template +--- + +# awscc_pcaconnectorad_template (Data Source) + +Data Source schema for AWS::PCAConnectorAD::Template + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `connector_arn` (String) +- `definition` (Attributes) (see [below for nested schema](#nestedatt--definition)) +- `name` (String) +- `reenroll_all_certificate_holders` (Boolean) +- `tags` (Map of String) +- `template_arn` (String) + + +### Nested Schema for `definition` + +Read-Only: + +- `template_v2` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2)) +- `template_v3` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3)) +- `template_v4` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4)) + + +### Nested Schema for `definition.template_v2` + +Read-Only: + +- `certificate_validity` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2--certificate_validity)) +- `enrollment_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2--enrollment_flags)) +- `extensions` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2--extensions)) +- `general_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2--general_flags)) +- `private_key_attributes` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2--private_key_attributes)) +- `private_key_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2--private_key_flags)) +- `subject_name_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2--subject_name_flags)) +- `superseded_templates` (List of String) + + +### Nested Schema for `definition.template_v2.certificate_validity` + +Read-Only: + +- `renewal_period` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2--certificate_validity--renewal_period)) +- `validity_period` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2--certificate_validity--validity_period)) + + +### Nested Schema for `definition.template_v2.certificate_validity.validity_period` + +Read-Only: + +- `period` (Number) +- `period_type` (String) + + + +### Nested Schema for `definition.template_v2.certificate_validity.validity_period` + +Read-Only: + +- `period` (Number) +- `period_type` (String) + + + + +### Nested Schema for `definition.template_v2.enrollment_flags` + +Read-Only: + +- `enable_key_reuse_on_nt_token_keyset_storage_full` (Boolean) +- `include_symmetric_algorithms` (Boolean) +- `no_security_extension` (Boolean) +- `remove_invalid_certificate_from_personal_store` (Boolean) +- `user_interaction_required` (Boolean) + + + +### Nested Schema for `definition.template_v2.extensions` + +Read-Only: + +- `application_policies` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2--extensions--application_policies)) +- `key_usage` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2--extensions--key_usage)) + + +### Nested Schema for `definition.template_v2.extensions.key_usage` + +Read-Only: + +- `critical` (Boolean) +- `policies` (Attributes List) (see [below for nested schema](#nestedatt--definition--template_v2--extensions--key_usage--policies)) + + +### Nested Schema for `definition.template_v2.extensions.key_usage.policies` + +Read-Only: + +- `policy_object_identifier` (String) +- `policy_type` (String) + + + + +### Nested Schema for `definition.template_v2.extensions.key_usage` + +Read-Only: + +- `critical` (Boolean) +- `usage_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2--extensions--key_usage--usage_flags)) + + +### Nested Schema for `definition.template_v2.extensions.key_usage.usage_flags` + +Read-Only: + +- `data_encipherment` (Boolean) +- `digital_signature` (Boolean) +- `key_agreement` (Boolean) +- `key_encipherment` (Boolean) +- `non_repudiation` (Boolean) + + + + + +### Nested Schema for `definition.template_v2.general_flags` + +Read-Only: + +- `auto_enrollment` (Boolean) +- `machine_type` (Boolean) + + + +### Nested Schema for `definition.template_v2.private_key_attributes` + +Read-Only: + +- `crypto_providers` (List of String) +- `key_spec` (String) +- `minimal_key_length` (Number) + + + +### Nested Schema for `definition.template_v2.private_key_flags` + +Read-Only: + +- `client_version` (String) +- `exportable_key` (Boolean) +- `strong_key_protection_required` (Boolean) + + + +### Nested Schema for `definition.template_v2.subject_name_flags` + +Read-Only: + +- `require_common_name` (Boolean) +- `require_directory_path` (Boolean) +- `require_dns_as_cn` (Boolean) +- `require_email` (Boolean) +- `san_require_directory_guid` (Boolean) +- `san_require_dns` (Boolean) +- `san_require_domain_dns` (Boolean) +- `san_require_email` (Boolean) +- `san_require_spn` (Boolean) +- `san_require_upn` (Boolean) + + + + +### Nested Schema for `definition.template_v3` + +Read-Only: + +- `certificate_validity` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--certificate_validity)) +- `enrollment_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--enrollment_flags)) +- `extensions` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--extensions)) +- `general_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--general_flags)) +- `hash_algorithm` (String) +- `private_key_attributes` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--private_key_attributes)) +- `private_key_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--private_key_flags)) +- `subject_name_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--subject_name_flags)) +- `superseded_templates` (List of String) + + +### Nested Schema for `definition.template_v3.certificate_validity` + +Read-Only: + +- `renewal_period` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--certificate_validity--renewal_period)) +- `validity_period` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--certificate_validity--validity_period)) + + +### Nested Schema for `definition.template_v3.certificate_validity.validity_period` + +Read-Only: + +- `period` (Number) +- `period_type` (String) + + + +### Nested Schema for `definition.template_v3.certificate_validity.validity_period` + +Read-Only: + +- `period` (Number) +- `period_type` (String) + + + + +### Nested Schema for `definition.template_v3.enrollment_flags` + +Read-Only: + +- `enable_key_reuse_on_nt_token_keyset_storage_full` (Boolean) +- `include_symmetric_algorithms` (Boolean) +- `no_security_extension` (Boolean) +- `remove_invalid_certificate_from_personal_store` (Boolean) +- `user_interaction_required` (Boolean) + + + +### Nested Schema for `definition.template_v3.extensions` + +Read-Only: + +- `application_policies` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--extensions--application_policies)) +- `key_usage` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--extensions--key_usage)) + + +### Nested Schema for `definition.template_v3.extensions.key_usage` + +Read-Only: + +- `critical` (Boolean) +- `policies` (Attributes List) (see [below for nested schema](#nestedatt--definition--template_v3--extensions--key_usage--policies)) + + +### Nested Schema for `definition.template_v3.extensions.key_usage.policies` + +Read-Only: + +- `policy_object_identifier` (String) +- `policy_type` (String) + + + + +### Nested Schema for `definition.template_v3.extensions.key_usage` + +Read-Only: + +- `critical` (Boolean) +- `usage_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--extensions--key_usage--usage_flags)) + + +### Nested Schema for `definition.template_v3.extensions.key_usage.usage_flags` + +Read-Only: + +- `data_encipherment` (Boolean) +- `digital_signature` (Boolean) +- `key_agreement` (Boolean) +- `key_encipherment` (Boolean) +- `non_repudiation` (Boolean) + + + + + +### Nested Schema for `definition.template_v3.general_flags` + +Read-Only: + +- `auto_enrollment` (Boolean) +- `machine_type` (Boolean) + + + +### Nested Schema for `definition.template_v3.private_key_attributes` + +Read-Only: + +- `algorithm` (String) +- `crypto_providers` (List of String) +- `key_spec` (String) +- `key_usage_property` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--private_key_attributes--key_usage_property)) +- `minimal_key_length` (Number) + + +### Nested Schema for `definition.template_v3.private_key_attributes.minimal_key_length` + +Read-Only: + +- `property_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--private_key_attributes--minimal_key_length--property_flags)) +- `property_type` (String) + + +### Nested Schema for `definition.template_v3.private_key_attributes.minimal_key_length.property_flags` + +Read-Only: + +- `decrypt` (Boolean) +- `key_agreement` (Boolean) +- `sign` (Boolean) + + + + + +### Nested Schema for `definition.template_v3.private_key_flags` + +Read-Only: + +- `client_version` (String) +- `exportable_key` (Boolean) +- `require_alternate_signature_algorithm` (Boolean) +- `strong_key_protection_required` (Boolean) + + + +### Nested Schema for `definition.template_v3.subject_name_flags` + +Read-Only: + +- `require_common_name` (Boolean) +- `require_directory_path` (Boolean) +- `require_dns_as_cn` (Boolean) +- `require_email` (Boolean) +- `san_require_directory_guid` (Boolean) +- `san_require_dns` (Boolean) +- `san_require_domain_dns` (Boolean) +- `san_require_email` (Boolean) +- `san_require_spn` (Boolean) +- `san_require_upn` (Boolean) + + + + +### Nested Schema for `definition.template_v4` + +Read-Only: + +- `certificate_validity` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--certificate_validity)) +- `enrollment_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--enrollment_flags)) +- `extensions` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--extensions)) +- `general_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--general_flags)) +- `hash_algorithm` (String) +- `private_key_attributes` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--private_key_attributes)) +- `private_key_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--private_key_flags)) +- `subject_name_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--subject_name_flags)) +- `superseded_templates` (List of String) + + +### Nested Schema for `definition.template_v4.certificate_validity` + +Read-Only: + +- `renewal_period` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--certificate_validity--renewal_period)) +- `validity_period` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--certificate_validity--validity_period)) + + +### Nested Schema for `definition.template_v4.certificate_validity.validity_period` + +Read-Only: + +- `period` (Number) +- `period_type` (String) + + + +### Nested Schema for `definition.template_v4.certificate_validity.validity_period` + +Read-Only: + +- `period` (Number) +- `period_type` (String) + + + + +### Nested Schema for `definition.template_v4.enrollment_flags` + +Read-Only: + +- `enable_key_reuse_on_nt_token_keyset_storage_full` (Boolean) +- `include_symmetric_algorithms` (Boolean) +- `no_security_extension` (Boolean) +- `remove_invalid_certificate_from_personal_store` (Boolean) +- `user_interaction_required` (Boolean) + + + +### Nested Schema for `definition.template_v4.extensions` + +Read-Only: + +- `application_policies` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--extensions--application_policies)) +- `key_usage` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--extensions--key_usage)) + + +### Nested Schema for `definition.template_v4.extensions.key_usage` + +Read-Only: + +- `critical` (Boolean) +- `policies` (Attributes List) (see [below for nested schema](#nestedatt--definition--template_v4--extensions--key_usage--policies)) + + +### Nested Schema for `definition.template_v4.extensions.key_usage.policies` + +Read-Only: + +- `policy_object_identifier` (String) +- `policy_type` (String) + + + + +### Nested Schema for `definition.template_v4.extensions.key_usage` + +Read-Only: + +- `critical` (Boolean) +- `usage_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--extensions--key_usage--usage_flags)) + + +### Nested Schema for `definition.template_v4.extensions.key_usage.usage_flags` + +Read-Only: + +- `data_encipherment` (Boolean) +- `digital_signature` (Boolean) +- `key_agreement` (Boolean) +- `key_encipherment` (Boolean) +- `non_repudiation` (Boolean) + + + + + +### Nested Schema for `definition.template_v4.general_flags` + +Read-Only: + +- `auto_enrollment` (Boolean) +- `machine_type` (Boolean) + + + +### Nested Schema for `definition.template_v4.private_key_attributes` + +Read-Only: + +- `algorithm` (String) +- `crypto_providers` (List of String) +- `key_spec` (String) +- `key_usage_property` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--private_key_attributes--key_usage_property)) +- `minimal_key_length` (Number) + + +### Nested Schema for `definition.template_v4.private_key_attributes.minimal_key_length` + +Read-Only: + +- `property_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--private_key_attributes--minimal_key_length--property_flags)) +- `property_type` (String) + + +### Nested Schema for `definition.template_v4.private_key_attributes.minimal_key_length.property_flags` + +Read-Only: + +- `decrypt` (Boolean) +- `key_agreement` (Boolean) +- `sign` (Boolean) + + + + + +### Nested Schema for `definition.template_v4.private_key_flags` + +Read-Only: + +- `client_version` (String) +- `exportable_key` (Boolean) +- `require_alternate_signature_algorithm` (Boolean) +- `require_same_key_renewal` (Boolean) +- `strong_key_protection_required` (Boolean) +- `use_legacy_provider` (Boolean) + + + +### Nested Schema for `definition.template_v4.subject_name_flags` + +Read-Only: + +- `require_common_name` (Boolean) +- `require_directory_path` (Boolean) +- `require_dns_as_cn` (Boolean) +- `require_email` (Boolean) +- `san_require_directory_guid` (Boolean) +- `san_require_dns` (Boolean) +- `san_require_domain_dns` (Boolean) +- `san_require_email` (Boolean) +- `san_require_spn` (Boolean) +- `san_require_upn` (Boolean) diff --git a/docs/data-sources/pcaconnectorad_template_group_access_control_entry.md b/docs/data-sources/pcaconnectorad_template_group_access_control_entry.md new file mode 100644 index 0000000000..8555329701 --- /dev/null +++ b/docs/data-sources/pcaconnectorad_template_group_access_control_entry.md @@ -0,0 +1,35 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_pcaconnectorad_template_group_access_control_entry Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::PCAConnectorAD::TemplateGroupAccessControlEntry +--- + +# awscc_pcaconnectorad_template_group_access_control_entry (Data Source) + +Data Source schema for AWS::PCAConnectorAD::TemplateGroupAccessControlEntry + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `access_rights` (Attributes) (see [below for nested schema](#nestedatt--access_rights)) +- `group_display_name` (String) +- `group_security_identifier` (String) +- `template_arn` (String) + + +### Nested Schema for `access_rights` + +Read-Only: + +- `auto_enroll` (String) +- `enroll` (String) diff --git a/docs/data-sources/rolesanywhere_trust_anchor.md b/docs/data-sources/rolesanywhere_trust_anchor.md index 17d9d3ddbc..35225c924b 100644 --- a/docs/data-sources/rolesanywhere_trust_anchor.md +++ b/docs/data-sources/rolesanywhere_trust_anchor.md @@ -23,11 +23,23 @@ Data Source schema for AWS::RolesAnywhere::TrustAnchor - `enabled` (Boolean) - `name` (String) +- `notification_settings` (Attributes List) (see [below for nested schema](#nestedatt--notification_settings)) - `source` (Attributes) (see [below for nested schema](#nestedatt--source)) - `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) - `trust_anchor_arn` (String) - `trust_anchor_id` (String) + +### Nested Schema for `notification_settings` + +Read-Only: + +- `channel` (String) +- `enabled` (Boolean) +- `event` (String) +- `threshold` (Number) + + ### Nested Schema for `source` diff --git a/docs/resources/appflow_flow.md b/docs/resources/appflow_flow.md index 66a4d2deef..0a65245068 100644 --- a/docs/resources/appflow_flow.md +++ b/docs/resources/appflow_flow.md @@ -521,6 +521,27 @@ Required: - `object_path` (String) +Optional: + +- `pagination_config` (Attributes) SAP Source connector page size (see [below for nested schema](#nestedatt--source_flow_config--source_connector_properties--sapo_data--pagination_config)) +- `parallelism_config` (Attributes) SAP Source connector parallelism factor (see [below for nested schema](#nestedatt--source_flow_config--source_connector_properties--sapo_data--parallelism_config)) + + +### Nested Schema for `source_flow_config.source_connector_properties.sapo_data.parallelism_config` + +Required: + +- `max_page_size` (Number) + + + +### Nested Schema for `source_flow_config.source_connector_properties.sapo_data.parallelism_config` + +Required: + +- `max_parallelism` (Number) + + ### Nested Schema for `source_flow_config.source_connector_properties.service_now` diff --git a/docs/resources/billingconductor_custom_line_item.md b/docs/resources/billingconductor_custom_line_item.md index 71a83620ca..5fc2af9b64 100644 --- a/docs/resources/billingconductor_custom_line_item.md +++ b/docs/resources/billingconductor_custom_line_item.md @@ -56,6 +56,7 @@ Required: Optional: - `flat` (Attributes) (see [below for nested schema](#nestedatt--custom_line_item_charge_details--flat)) +- `line_item_filters` (Attributes Set) (see [below for nested schema](#nestedatt--custom_line_item_charge_details--line_item_filters)) - `percentage` (Attributes) (see [below for nested schema](#nestedatt--custom_line_item_charge_details--percentage)) @@ -66,6 +67,16 @@ Required: - `charge_value` (Number) + +### Nested Schema for `custom_line_item_charge_details.line_item_filters` + +Required: + +- `attribute` (String) +- `match_option` (String) +- `values` (Set of String) + + ### Nested Schema for `custom_line_item_charge_details.percentage` diff --git a/docs/resources/cleanrooms_analysis_template.md b/docs/resources/cleanrooms_analysis_template.md new file mode 100644 index 0000000000..73d7bfd8c2 --- /dev/null +++ b/docs/resources/cleanrooms_analysis_template.md @@ -0,0 +1,84 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_cleanrooms_analysis_template Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Represents a stored analysis within a collaboration +--- + +# awscc_cleanrooms_analysis_template (Resource) + +Represents a stored analysis within a collaboration + + + + +## Schema + +### Required + +- `format` (String) +- `membership_identifier` (String) +- `name` (String) +- `source` (Attributes) (see [below for nested schema](#nestedatt--source)) + +### Optional + +- `analysis_parameters` (Attributes List) The member who can query can provide this placeholder for a literal data value in an analysis template (see [below for nested schema](#nestedatt--analysis_parameters)) +- `description` (String) +- `tags` (Attributes List) An arbitrary set of tags (key-value pairs) for this cleanrooms analysis template. (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- `analysis_template_identifier` (String) +- `arn` (String) +- `collaboration_arn` (String) +- `collaboration_identifier` (String) +- `id` (String) Uniquely identifies the resource. +- `membership_arn` (String) +- `schema` (Attributes) (see [below for nested schema](#nestedatt--schema)) + + +### Nested Schema for `source` + +Required: + +- `text` (String) + + + +### Nested Schema for `analysis_parameters` + +Required: + +- `name` (String) +- `type` (String) + +Optional: + +- `default_value` (String) + + + +### Nested Schema for `tags` + +Required: + +- `key` (String) +- `value` (String) + + + +### Nested Schema for `schema` + +Read-Only: + +- `referenced_tables` (List of String) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_cleanrooms_analysis_template.example +``` diff --git a/docs/resources/cleanrooms_membership.md b/docs/resources/cleanrooms_membership.md index 29f6890d70..baa7bfbc7e 100644 --- a/docs/resources/cleanrooms_membership.md +++ b/docs/resources/cleanrooms_membership.md @@ -22,6 +22,7 @@ Represents an AWS account that is a part of a collaboration ### Optional +- `default_result_configuration` (Attributes) (see [below for nested schema](#nestedatt--default_result_configuration)) - `tags` (Attributes Set) An arbitrary set of tags (key-value pairs) for this cleanrooms membership. (see [below for nested schema](#nestedatt--tags)) ### Read-Only @@ -32,6 +33,39 @@ Represents an AWS account that is a part of a collaboration - `id` (String) Uniquely identifies the resource. - `membership_identifier` (String) + +### Nested Schema for `default_result_configuration` + +Required: + +- `output_configuration` (Attributes) (see [below for nested schema](#nestedatt--default_result_configuration--output_configuration)) + +Optional: + +- `role_arn` (String) + + +### Nested Schema for `default_result_configuration.output_configuration` + +Required: + +- `s3` (Attributes) (see [below for nested schema](#nestedatt--default_result_configuration--output_configuration--s3)) + + +### Nested Schema for `default_result_configuration.output_configuration.s3` + +Required: + +- `bucket` (String) +- `result_format` (String) + +Optional: + +- `key_prefix` (String) + + + + ### Nested Schema for `tags` diff --git a/docs/resources/connect_quick_connect.md b/docs/resources/connect_quick_connect.md index 1df9d938dd..53a700258d 100644 --- a/docs/resources/connect_quick_connect.md +++ b/docs/resources/connect_quick_connect.md @@ -30,6 +30,7 @@ Resource Type definition for AWS::Connect::QuickConnect - `id` (String) Uniquely identifies the resource. - `quick_connect_arn` (String) The Amazon Resource Name (ARN) for the quick connect. +- `quick_connect_type` (String) The type of quick connect. In the Amazon Connect console, when you create a quick connect, you are prompted to assign one of the following types: Agent (USER), External (PHONE_NUMBER), or Queue (QUEUE). ### Nested Schema for `quick_connect_config` diff --git a/docs/resources/connect_view.md b/docs/resources/connect_view.md new file mode 100644 index 0000000000..fe7b7ed0a0 --- /dev/null +++ b/docs/resources/connect_view.md @@ -0,0 +1,51 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_connect_view Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::Connect::View +--- + +# awscc_connect_view (Resource) + +Resource Type definition for AWS::Connect::View + + + + +## Schema + +### Required + +- `actions` (List of String) The actions of the view in an array. +- `instance_arn` (String) The Amazon Resource Name (ARN) of the instance. +- `name` (String) The name of the view. +- `template` (Map of String) The template of the view as JSON. + +### Optional + +- `description` (String) The description of the view. +- `tags` (Attributes Set) One or more tags. (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- `id` (String) Uniquely identifies the resource. +- `view_arn` (String) The Amazon Resource Name (ARN) of the view. +- `view_content_sha_256` (String) The view content hash. +- `view_id` (String) The view id of the view. + + +### 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 +- `value` (String) The value for the tag. . You can specify a value that is maximum of 256 Unicode characters + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_connect_view.example +``` diff --git a/docs/resources/connect_view_version.md b/docs/resources/connect_view_version.md new file mode 100644 index 0000000000..78f65d9f77 --- /dev/null +++ b/docs/resources/connect_view_version.md @@ -0,0 +1,39 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_connect_view_version Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::Connect::ViewVersion +--- + +# awscc_connect_view_version (Resource) + +Resource Type definition for AWS::Connect::ViewVersion + + + + +## Schema + +### Required + +- `view_arn` (String) The Amazon Resource Name (ARN) of the view for which a version is being created. + +### Optional + +- `version_description` (String) The description for the view version. +- `view_content_sha_256` (String) The view content hash to be checked. + +### Read-Only + +- `id` (String) Uniquely identifies the resource. +- `version` (Number) The version of the view. +- `view_version_arn` (String) The Amazon Resource Name (ARN) of the created view version. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_connect_view_version.example +``` diff --git a/docs/resources/datasync_task.md b/docs/resources/datasync_task.md index e56f59937f..e1c518861e 100644 --- a/docs/resources/datasync_task.md +++ b/docs/resources/datasync_task.md @@ -29,6 +29,7 @@ Resource schema for AWS::DataSync::Task. - `options` (Attributes) Represents the options that are available to control the behavior of a StartTaskExecution operation. (see [below for nested schema](#nestedatt--options)) - `schedule` (Attributes) Specifies the schedule you want your task to use for repeated executions. (see [below for nested schema](#nestedatt--schedule)) - `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) +- `task_report_config` (Attributes) Specifies how you want to configure a task report, which provides detailed information about for your Datasync transfer. (see [below for nested schema](#nestedatt--task_report_config)) ### Read-Only @@ -94,6 +95,80 @@ Required: - `key` (String) The key for an AWS resource tag. - `value` (String) The value for an AWS resource tag. + + +### Nested Schema for `task_report_config` + +Required: + +- `destination` (Attributes) Specifies where DataSync uploads your task report. (see [below for nested schema](#nestedatt--task_report_config--destination)) +- `output_type` (String) Specifies the type of task report that you want. + +Optional: + +- `object_version_ids` (String) Specifies whether your task report includes the new version of each object transferred into an S3 bucket, this only applies if you enable versioning on your bucket. +- `overrides` (Attributes) Customizes the reporting level for aspects of your task report. For example, your report might generally only include errors, but you could specify that you want a list of successes and errors just for the files that Datasync attempted to delete in your destination location. (see [below for nested schema](#nestedatt--task_report_config--overrides)) +- `report_level` (String) Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't. + + +### Nested Schema for `task_report_config.destination` + +Optional: + +- `s3` (Attributes) Specifies the Amazon S3 bucket where DataSync uploads your task report. (see [below for nested schema](#nestedatt--task_report_config--destination--s3)) + + +### Nested Schema for `task_report_config.destination.s3` + +Optional: + +- `bucket_access_role_arn` (String) Specifies the Amazon Resource Name (ARN) of the IAM policy that allows Datasync to upload a task report to your S3 bucket. +- `s3_bucket_arn` (String) Specifies the ARN of the S3 bucket where Datasync uploads your report. +- `subdirectory` (String) Specifies a bucket prefix for your report. + + + + +### Nested Schema for `task_report_config.overrides` + +Optional: + +- `deleted` (Attributes) Specifies the level of reporting for the files, objects, and directories that Datasync attempted to delete in your destination location. This only applies if you configure your task to delete data in the destination that isn't in the source. (see [below for nested schema](#nestedatt--task_report_config--overrides--deleted)) +- `skipped` (Attributes) Specifies the level of reporting for the files, objects, and directories that Datasync attempted to skip during your transfer. (see [below for nested schema](#nestedatt--task_report_config--overrides--skipped)) +- `transferred` (Attributes) Specifies the level of reporting for the files, objects, and directories that Datasync attempted to transfer. (see [below for nested schema](#nestedatt--task_report_config--overrides--transferred)) +- `verified` (Attributes) Specifies the level of reporting for the files, objects, and directories that Datasync attempted to verify at the end of your transfer. This only applies if you configure your task to verify data during and after the transfer (which Datasync does by default) (see [below for nested schema](#nestedatt--task_report_config--overrides--verified)) + + +### Nested Schema for `task_report_config.overrides.deleted` + +Optional: + +- `report_level` (String) Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't. + + + +### Nested Schema for `task_report_config.overrides.skipped` + +Optional: + +- `report_level` (String) Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't. + + + +### Nested Schema for `task_report_config.overrides.transferred` + +Optional: + +- `report_level` (String) Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't. + + + +### Nested Schema for `task_report_config.overrides.verified` + +Optional: + +- `report_level` (String) Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't. + ## Import Import is supported using the following syntax: diff --git a/docs/resources/ec2_eip_association.md b/docs/resources/ec2_eip_association.md new file mode 100644 index 0000000000..fe7e55144c --- /dev/null +++ b/docs/resources/ec2_eip_association.md @@ -0,0 +1,36 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_ec2_eip_association Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource schema for EC2 EIP association. +--- + +# awscc_ec2_eip_association (Resource) + +Resource schema for EC2 EIP association. + + + + +## Schema + +### Optional + +- `allocation_id` (String) The allocation ID. This is required for EC2-VPC. +- `eip` (String) The Elastic IP address to associate with the instance. +- `instance_id` (String) The ID of the instance. +- `network_interface_id` (String) The ID of the network interface. +- `private_ip_address` (String) The primary or secondary private IP address to associate with the Elastic IP address. + +### Read-Only + +- `id` (String) Composite ID of non-empty properties, to determine the identification. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_ec2_eip_association.example +``` diff --git a/docs/resources/ec2_flow_log.md b/docs/resources/ec2_flow_log.md index 2829db7ffe..efb5f9d7d0 100644 --- a/docs/resources/ec2_flow_log.md +++ b/docs/resources/ec2_flow_log.md @@ -22,6 +22,7 @@ Specifies a VPC flow log, which enables you to capture IP traffic for a specific ### Optional +- `deliver_cross_account_role` (String) The ARN of the IAM role that allows Amazon EC2 to publish flow logs across accounts. - `deliver_logs_permission_arn` (String) The ARN for the IAM role that permits Amazon EC2 to publish flow logs to a CloudWatch Logs log group in your account. If you specify LogDestinationType as s3 or kinesis-data-firehose, do not specify DeliverLogsPermissionArn or LogGroupName. - `destination_options` (Attributes) (see [below for nested schema](#nestedatt--destination_options)) - `log_destination` (String) Specifies the destination to which the flow log data is to be published. Flow log data can be published to a CloudWatch Logs log group, an Amazon S3 bucket, or a Kinesis Firehose stream. The value specified for this parameter depends on the value specified for LogDestinationType. diff --git a/docs/resources/emrserverless_application.md b/docs/resources/emrserverless_application.md index c7a4e959df..a91465e6a2 100644 --- a/docs/resources/emrserverless_application.md +++ b/docs/resources/emrserverless_application.md @@ -31,7 +31,7 @@ Resource schema for AWS::EMRServerless::Application Type - `name` (String) User friendly Application name. - `network_configuration` (Attributes) Network Configuration for customer VPC connectivity. (see [below for nested schema](#nestedatt--network_configuration)) - `tags` (Attributes Set) Tag map with key and value (see [below for nested schema](#nestedatt--tags)) -- `worker_type_specifications` (Attributes Map) (see [below for nested schema](#nestedatt--worker_type_specifications)) +- `worker_type_specifications` (Attributes Map) The key-value pairs that specify worker type to WorkerTypeSpecificationInput. This parameter must contain all valid worker types for a Spark or Hive application. Valid worker types include Driver and Executor for Spark applications and HiveDriver and TezTask for Hive applications. You can either set image details in this parameter for each worker type, or in imageConfiguration for all worker types. (see [below for nested schema](#nestedatt--worker_type_specifications)) ### Read-Only diff --git a/docs/resources/guardduty_detector.md b/docs/resources/guardduty_detector.md new file mode 100644 index 0000000000..b45a913a34 --- /dev/null +++ b/docs/resources/guardduty_detector.md @@ -0,0 +1,119 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_guardduty_detector Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::GuardDuty::Detector +--- + +# awscc_guardduty_detector (Resource) + +Resource Type definition for AWS::GuardDuty::Detector + + + + +## Schema + +### Required + +- `enable` (Boolean) + +### Optional + +- `data_sources` (Attributes) (see [below for nested schema](#nestedatt--data_sources)) +- `features` (Attributes List) (see [below for nested schema](#nestedatt--features)) +- `finding_publishing_frequency` (String) +- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- `id` (String) The ID of this resource. + + +### Nested Schema for `data_sources` + +Optional: + +- `kubernetes` (Attributes) (see [below for nested schema](#nestedatt--data_sources--kubernetes)) +- `malware_protection` (Attributes) (see [below for nested schema](#nestedatt--data_sources--malware_protection)) +- `s3_logs` (Attributes) (see [below for nested schema](#nestedatt--data_sources--s3_logs)) + + +### Nested Schema for `data_sources.kubernetes` + +Required: + +- `audit_logs` (Attributes) (see [below for nested schema](#nestedatt--data_sources--kubernetes--audit_logs)) + + +### Nested Schema for `data_sources.kubernetes.audit_logs` + +Required: + +- `enable` (Boolean) + + + + +### Nested Schema for `data_sources.malware_protection` + +Optional: + +- `scan_ec_2_instance_with_findings` (Attributes) (see [below for nested schema](#nestedatt--data_sources--malware_protection--scan_ec_2_instance_with_findings)) + + +### Nested Schema for `data_sources.malware_protection.scan_ec_2_instance_with_findings` + +Optional: + +- `ebs_volumes` (Boolean) + + + + +### Nested Schema for `data_sources.s3_logs` + +Required: + +- `enable` (Boolean) + + + + +### Nested Schema for `features` + +Required: + +- `name` (String) +- `status` (String) + +Optional: + +- `additional_configuration` (Attributes List) (see [below for nested schema](#nestedatt--features--additional_configuration)) + + +### Nested Schema for `features.additional_configuration` + +Optional: + +- `name` (String) +- `status` (String) + + + + +### Nested Schema for `tags` + +Required: + +- `key` (String) +- `value` (String) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_guardduty_detector.example +``` diff --git a/docs/resources/iotwireless_destination.md b/docs/resources/iotwireless_destination.md index 1c85071475..78f8fdbce2 100644 --- a/docs/resources/iotwireless_destination.md +++ b/docs/resources/iotwireless_destination.md @@ -20,11 +20,11 @@ Destination's resource schema demonstrating some basic constructs and validation - `expression` (String) Destination expression - `expression_type` (String) Must be RuleName - `name` (String) Unique name of destination -- `role_arn` (String) AWS role ARN that grants access ### Optional - `description` (String) Destination description +- `role_arn` (String) AWS role ARN that grants access - `tags` (Attributes Set) A list of key-value pairs that contain metadata for the destination. (see [below for nested schema](#nestedatt--tags)) ### Read-Only diff --git a/docs/resources/iotwireless_service_profile.md b/docs/resources/iotwireless_service_profile.md index 55a7e6f212..2f2aba5208 100644 --- a/docs/resources/iotwireless_service_profile.md +++ b/docs/resources/iotwireless_service_profile.md @@ -32,6 +32,8 @@ An example resource schema demonstrating some basic constructs and validation ru Optional: - `add_gw_metadata` (Boolean) +- `pr_allowed` (Boolean) +- `ra_allowed` (Boolean) Read-Only: @@ -45,8 +47,6 @@ Read-Only: - `hr_allowed` (Boolean) - `min_gw_diversity` (Number) - `nwk_geo_loc` (Boolean) -- `pr_allowed` (Boolean) -- `ra_allowed` (Boolean) - `report_dev_status_battery` (Boolean) - `report_dev_status_margin` (Boolean) - `target_per` (Number) diff --git a/docs/resources/macie_findings_filter.md b/docs/resources/macie_findings_filter.md index 3f4827c945..44249ea0b8 100644 --- a/docs/resources/macie_findings_filter.md +++ b/docs/resources/macie_findings_filter.md @@ -25,6 +25,7 @@ Macie FindingsFilter resource schema. - `action` (String) Findings filter action. - `description` (String) Findings filter description - `position` (Number) Findings filter position. +- `tags` (Attributes List) A collection of tags associated with a resource (see [below for nested schema](#nestedatt--tags)) ### Read-Only @@ -50,6 +51,16 @@ Optional: - `lte` (Number) - `neq` (List of String) + + + +### Nested Schema for `tags` + +Required: + +- `key` (String) The tag's key. +- `value` (String) The tag's value. + ## Import Import is supported using the following syntax: diff --git a/docs/resources/pcaconnectorad_connector.md b/docs/resources/pcaconnectorad_connector.md new file mode 100644 index 0000000000..5183a4b12a --- /dev/null +++ b/docs/resources/pcaconnectorad_connector.md @@ -0,0 +1,46 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_pcaconnectorad_connector Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Definition of AWS::PCAConnectorAD::Connector Resource Type +--- + +# awscc_pcaconnectorad_connector (Resource) + +Definition of AWS::PCAConnectorAD::Connector Resource Type + + + + +## Schema + +### Required + +- `certificate_authority_arn` (String) +- `directory_id` (String) +- `vpc_information` (Attributes) (see [below for nested schema](#nestedatt--vpc_information)) + +### Optional + +- `tags` (Map of String) + +### Read-Only + +- `connector_arn` (String) +- `id` (String) Uniquely identifies the resource. + + +### Nested Schema for `vpc_information` + +Required: + +- `security_group_ids` (List of String) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_pcaconnectorad_connector.example +``` diff --git a/docs/resources/pcaconnectorad_directory_registration.md b/docs/resources/pcaconnectorad_directory_registration.md new file mode 100644 index 0000000000..88409daa6d --- /dev/null +++ b/docs/resources/pcaconnectorad_directory_registration.md @@ -0,0 +1,37 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_pcaconnectorad_directory_registration Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Definition of AWS::PCAConnectorAD::DirectoryRegistration Resource Type +--- + +# awscc_pcaconnectorad_directory_registration (Resource) + +Definition of AWS::PCAConnectorAD::DirectoryRegistration Resource Type + + + + +## Schema + +### Required + +- `directory_id` (String) + +### Optional + +- `tags` (Map of String) + +### Read-Only + +- `directory_registration_arn` (String) +- `id` (String) Uniquely identifies the resource. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_pcaconnectorad_directory_registration.example +``` diff --git a/docs/resources/pcaconnectorad_service_principal_name.md b/docs/resources/pcaconnectorad_service_principal_name.md new file mode 100644 index 0000000000..c6e86b041d --- /dev/null +++ b/docs/resources/pcaconnectorad_service_principal_name.md @@ -0,0 +1,33 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_pcaconnectorad_service_principal_name Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Definition of AWS::PCAConnectorAD::ServicePrincipalName Resource Type +--- + +# awscc_pcaconnectorad_service_principal_name (Resource) + +Definition of AWS::PCAConnectorAD::ServicePrincipalName Resource Type + + + + +## Schema + +### Optional + +- `connector_arn` (String) +- `directory_registration_arn` (String) + +### Read-Only + +- `id` (String) Uniquely identifies the resource. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_pcaconnectorad_service_principal_name.example +``` diff --git a/docs/resources/pcaconnectorad_template.md b/docs/resources/pcaconnectorad_template.md new file mode 100644 index 0000000000..868185f039 --- /dev/null +++ b/docs/resources/pcaconnectorad_template.md @@ -0,0 +1,593 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_pcaconnectorad_template Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Represents a template that defines certificate configurations, both for issuance and client handling +--- + +# awscc_pcaconnectorad_template (Resource) + +Represents a template that defines certificate configurations, both for issuance and client handling + + + + +## Schema + +### Required + +- `connector_arn` (String) +- `definition` (Attributes) (see [below for nested schema](#nestedatt--definition)) +- `name` (String) + +### Optional + +- `reenroll_all_certificate_holders` (Boolean) +- `tags` (Map of String) + +### Read-Only + +- `id` (String) Uniquely identifies the resource. +- `template_arn` (String) + + +### Nested Schema for `definition` + +Optional: + +- `template_v2` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2)) +- `template_v3` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3)) +- `template_v4` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4)) + + +### Nested Schema for `definition.template_v2` + +Required: + +- `certificate_validity` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2--certificate_validity)) +- `enrollment_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2--enrollment_flags)) +- `extensions` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2--extensions)) +- `general_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2--general_flags)) +- `private_key_attributes` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2--private_key_attributes)) +- `private_key_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2--private_key_flags)) +- `subject_name_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2--subject_name_flags)) + +Optional: + +- `superseded_templates` (List of String) + + +### Nested Schema for `definition.template_v2.certificate_validity` + +Required: + +- `renewal_period` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2--certificate_validity--renewal_period)) +- `validity_period` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2--certificate_validity--validity_period)) + + +### Nested Schema for `definition.template_v2.certificate_validity.validity_period` + +Required: + +- `period` (Number) +- `period_type` (String) + + + +### Nested Schema for `definition.template_v2.certificate_validity.validity_period` + +Required: + +- `period` (Number) +- `period_type` (String) + + + + +### Nested Schema for `definition.template_v2.enrollment_flags` + +Optional: + +- `enable_key_reuse_on_nt_token_keyset_storage_full` (Boolean) +- `include_symmetric_algorithms` (Boolean) +- `no_security_extension` (Boolean) +- `remove_invalid_certificate_from_personal_store` (Boolean) +- `user_interaction_required` (Boolean) + + + +### Nested Schema for `definition.template_v2.extensions` + +Required: + +- `key_usage` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2--extensions--key_usage)) + +Optional: + +- `application_policies` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2--extensions--application_policies)) + + +### Nested Schema for `definition.template_v2.extensions.application_policies` + +Required: + +- `usage_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v2--extensions--application_policies--usage_flags)) + +Optional: + +- `critical` (Boolean) + + +### Nested Schema for `definition.template_v2.extensions.application_policies.usage_flags` + +Optional: + +- `data_encipherment` (Boolean) +- `digital_signature` (Boolean) +- `key_agreement` (Boolean) +- `key_encipherment` (Boolean) +- `non_repudiation` (Boolean) + + + + +### Nested Schema for `definition.template_v2.extensions.application_policies` + +Required: + +- `policies` (Attributes List) (see [below for nested schema](#nestedatt--definition--template_v2--extensions--application_policies--policies)) + +Optional: + +- `critical` (Boolean) + + +### Nested Schema for `definition.template_v2.extensions.application_policies.policies` + +Optional: + +- `policy_object_identifier` (String) +- `policy_type` (String) + + + + + +### Nested Schema for `definition.template_v2.general_flags` + +Optional: + +- `auto_enrollment` (Boolean) +- `machine_type` (Boolean) + + + +### Nested Schema for `definition.template_v2.private_key_attributes` + +Required: + +- `key_spec` (String) +- `minimal_key_length` (Number) + +Optional: + +- `crypto_providers` (List of String) + + + +### Nested Schema for `definition.template_v2.private_key_flags` + +Required: + +- `client_version` (String) + +Optional: + +- `exportable_key` (Boolean) +- `strong_key_protection_required` (Boolean) + + + +### Nested Schema for `definition.template_v2.subject_name_flags` + +Optional: + +- `require_common_name` (Boolean) +- `require_directory_path` (Boolean) +- `require_dns_as_cn` (Boolean) +- `require_email` (Boolean) +- `san_require_directory_guid` (Boolean) +- `san_require_dns` (Boolean) +- `san_require_domain_dns` (Boolean) +- `san_require_email` (Boolean) +- `san_require_spn` (Boolean) +- `san_require_upn` (Boolean) + + + + +### Nested Schema for `definition.template_v3` + +Required: + +- `certificate_validity` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--certificate_validity)) +- `enrollment_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--enrollment_flags)) +- `extensions` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--extensions)) +- `general_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--general_flags)) +- `hash_algorithm` (String) +- `private_key_attributes` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--private_key_attributes)) +- `private_key_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--private_key_flags)) +- `subject_name_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--subject_name_flags)) + +Optional: + +- `superseded_templates` (List of String) + + +### Nested Schema for `definition.template_v3.certificate_validity` + +Required: + +- `renewal_period` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--certificate_validity--renewal_period)) +- `validity_period` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--certificate_validity--validity_period)) + + +### Nested Schema for `definition.template_v3.certificate_validity.validity_period` + +Required: + +- `period` (Number) +- `period_type` (String) + + + +### Nested Schema for `definition.template_v3.certificate_validity.validity_period` + +Required: + +- `period` (Number) +- `period_type` (String) + + + + +### Nested Schema for `definition.template_v3.enrollment_flags` + +Optional: + +- `enable_key_reuse_on_nt_token_keyset_storage_full` (Boolean) +- `include_symmetric_algorithms` (Boolean) +- `no_security_extension` (Boolean) +- `remove_invalid_certificate_from_personal_store` (Boolean) +- `user_interaction_required` (Boolean) + + + +### Nested Schema for `definition.template_v3.extensions` + +Required: + +- `key_usage` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--extensions--key_usage)) + +Optional: + +- `application_policies` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--extensions--application_policies)) + + +### Nested Schema for `definition.template_v3.extensions.application_policies` + +Required: + +- `usage_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--extensions--application_policies--usage_flags)) + +Optional: + +- `critical` (Boolean) + + +### Nested Schema for `definition.template_v3.extensions.application_policies.usage_flags` + +Optional: + +- `data_encipherment` (Boolean) +- `digital_signature` (Boolean) +- `key_agreement` (Boolean) +- `key_encipherment` (Boolean) +- `non_repudiation` (Boolean) + + + + +### Nested Schema for `definition.template_v3.extensions.application_policies` + +Required: + +- `policies` (Attributes List) (see [below for nested schema](#nestedatt--definition--template_v3--extensions--application_policies--policies)) + +Optional: + +- `critical` (Boolean) + + +### Nested Schema for `definition.template_v3.extensions.application_policies.policies` + +Optional: + +- `policy_object_identifier` (String) +- `policy_type` (String) + + + + + +### Nested Schema for `definition.template_v3.general_flags` + +Optional: + +- `auto_enrollment` (Boolean) +- `machine_type` (Boolean) + + + +### Nested Schema for `definition.template_v3.private_key_attributes` + +Required: + +- `algorithm` (String) +- `key_spec` (String) +- `key_usage_property` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--private_key_attributes--key_usage_property)) +- `minimal_key_length` (Number) + +Optional: + +- `crypto_providers` (List of String) + + +### Nested Schema for `definition.template_v3.private_key_attributes.crypto_providers` + +Optional: + +- `property_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v3--private_key_attributes--crypto_providers--property_flags)) +- `property_type` (String) + + +### Nested Schema for `definition.template_v3.private_key_attributes.crypto_providers.property_flags` + +Optional: + +- `decrypt` (Boolean) +- `key_agreement` (Boolean) +- `sign` (Boolean) + + + + + +### Nested Schema for `definition.template_v3.private_key_flags` + +Required: + +- `client_version` (String) + +Optional: + +- `exportable_key` (Boolean) +- `require_alternate_signature_algorithm` (Boolean) +- `strong_key_protection_required` (Boolean) + + + +### Nested Schema for `definition.template_v3.subject_name_flags` + +Optional: + +- `require_common_name` (Boolean) +- `require_directory_path` (Boolean) +- `require_dns_as_cn` (Boolean) +- `require_email` (Boolean) +- `san_require_directory_guid` (Boolean) +- `san_require_dns` (Boolean) +- `san_require_domain_dns` (Boolean) +- `san_require_email` (Boolean) +- `san_require_spn` (Boolean) +- `san_require_upn` (Boolean) + + + + +### Nested Schema for `definition.template_v4` + +Required: + +- `certificate_validity` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--certificate_validity)) +- `enrollment_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--enrollment_flags)) +- `extensions` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--extensions)) +- `general_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--general_flags)) +- `private_key_attributes` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--private_key_attributes)) +- `private_key_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--private_key_flags)) +- `subject_name_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--subject_name_flags)) + +Optional: + +- `hash_algorithm` (String) +- `superseded_templates` (List of String) + + +### Nested Schema for `definition.template_v4.certificate_validity` + +Required: + +- `renewal_period` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--certificate_validity--renewal_period)) +- `validity_period` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--certificate_validity--validity_period)) + + +### Nested Schema for `definition.template_v4.certificate_validity.validity_period` + +Required: + +- `period` (Number) +- `period_type` (String) + + + +### Nested Schema for `definition.template_v4.certificate_validity.validity_period` + +Required: + +- `period` (Number) +- `period_type` (String) + + + + +### Nested Schema for `definition.template_v4.enrollment_flags` + +Optional: + +- `enable_key_reuse_on_nt_token_keyset_storage_full` (Boolean) +- `include_symmetric_algorithms` (Boolean) +- `no_security_extension` (Boolean) +- `remove_invalid_certificate_from_personal_store` (Boolean) +- `user_interaction_required` (Boolean) + + + +### Nested Schema for `definition.template_v4.extensions` + +Required: + +- `key_usage` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--extensions--key_usage)) + +Optional: + +- `application_policies` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--extensions--application_policies)) + + +### Nested Schema for `definition.template_v4.extensions.application_policies` + +Required: + +- `usage_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--extensions--application_policies--usage_flags)) + +Optional: + +- `critical` (Boolean) + + +### Nested Schema for `definition.template_v4.extensions.application_policies.usage_flags` + +Optional: + +- `data_encipherment` (Boolean) +- `digital_signature` (Boolean) +- `key_agreement` (Boolean) +- `key_encipherment` (Boolean) +- `non_repudiation` (Boolean) + + + + +### Nested Schema for `definition.template_v4.extensions.application_policies` + +Required: + +- `policies` (Attributes List) (see [below for nested schema](#nestedatt--definition--template_v4--extensions--application_policies--policies)) + +Optional: + +- `critical` (Boolean) + + +### Nested Schema for `definition.template_v4.extensions.application_policies.policies` + +Optional: + +- `policy_object_identifier` (String) +- `policy_type` (String) + + + + + +### Nested Schema for `definition.template_v4.general_flags` + +Optional: + +- `auto_enrollment` (Boolean) +- `machine_type` (Boolean) + + + +### Nested Schema for `definition.template_v4.private_key_attributes` + +Required: + +- `key_spec` (String) +- `minimal_key_length` (Number) + +Optional: + +- `algorithm` (String) +- `crypto_providers` (List of String) +- `key_usage_property` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--private_key_attributes--key_usage_property)) + + +### Nested Schema for `definition.template_v4.private_key_attributes.key_usage_property` + +Optional: + +- `property_flags` (Attributes) (see [below for nested schema](#nestedatt--definition--template_v4--private_key_attributes--key_usage_property--property_flags)) +- `property_type` (String) + + +### Nested Schema for `definition.template_v4.private_key_attributes.key_usage_property.property_flags` + +Optional: + +- `decrypt` (Boolean) +- `key_agreement` (Boolean) +- `sign` (Boolean) + + + + + +### Nested Schema for `definition.template_v4.private_key_flags` + +Required: + +- `client_version` (String) + +Optional: + +- `exportable_key` (Boolean) +- `require_alternate_signature_algorithm` (Boolean) +- `require_same_key_renewal` (Boolean) +- `strong_key_protection_required` (Boolean) +- `use_legacy_provider` (Boolean) + + + +### Nested Schema for `definition.template_v4.subject_name_flags` + +Optional: + +- `require_common_name` (Boolean) +- `require_directory_path` (Boolean) +- `require_dns_as_cn` (Boolean) +- `require_email` (Boolean) +- `san_require_directory_guid` (Boolean) +- `san_require_dns` (Boolean) +- `san_require_domain_dns` (Boolean) +- `san_require_email` (Boolean) +- `san_require_spn` (Boolean) +- `san_require_upn` (Boolean) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_pcaconnectorad_template.example +``` diff --git a/docs/resources/pcaconnectorad_template_group_access_control_entry.md b/docs/resources/pcaconnectorad_template_group_access_control_entry.md new file mode 100644 index 0000000000..951428837a --- /dev/null +++ b/docs/resources/pcaconnectorad_template_group_access_control_entry.md @@ -0,0 +1,46 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_pcaconnectorad_template_group_access_control_entry Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Definition of AWS::PCAConnectorAD::TemplateGroupAccessControlEntry Resource Type +--- + +# awscc_pcaconnectorad_template_group_access_control_entry (Resource) + +Definition of AWS::PCAConnectorAD::TemplateGroupAccessControlEntry Resource Type + + + + +## Schema + +### Required + +- `access_rights` (Attributes) (see [below for nested schema](#nestedatt--access_rights)) +- `group_display_name` (String) + +### Optional + +- `group_security_identifier` (String) +- `template_arn` (String) + +### Read-Only + +- `id` (String) Uniquely identifies the resource. + + +### Nested Schema for `access_rights` + +Optional: + +- `auto_enroll` (String) +- `enroll` (String) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_pcaconnectorad_template_group_access_control_entry.example +``` diff --git a/docs/resources/rolesanywhere_trust_anchor.md b/docs/resources/rolesanywhere_trust_anchor.md index c14375b661..909d2e1774 100644 --- a/docs/resources/rolesanywhere_trust_anchor.md +++ b/docs/resources/rolesanywhere_trust_anchor.md @@ -23,6 +23,7 @@ Definition of AWS::RolesAnywhere::TrustAnchor Resource Type. ### Optional - `enabled` (Boolean) +- `notification_settings` (Attributes List) (see [below for nested schema](#nestedatt--notification_settings)) - `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) ### Read-Only @@ -49,6 +50,20 @@ Optional: + +### Nested Schema for `notification_settings` + +Required: + +- `enabled` (Boolean) +- `event` (String) + +Optional: + +- `channel` (String) +- `threshold` (Number) + + ### Nested Schema for `tags` diff --git a/examples/resources/awscc_cleanrooms_analysis_template/import.sh b/examples/resources/awscc_cleanrooms_analysis_template/import.sh new file mode 100644 index 0000000000..38ce084b9d --- /dev/null +++ b/examples/resources/awscc_cleanrooms_analysis_template/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_cleanrooms_analysis_template.example \ No newline at end of file diff --git a/examples/resources/awscc_connect_view/import.sh b/examples/resources/awscc_connect_view/import.sh new file mode 100644 index 0000000000..a2fa7847f0 --- /dev/null +++ b/examples/resources/awscc_connect_view/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_connect_view.example \ No newline at end of file diff --git a/examples/resources/awscc_connect_view_version/import.sh b/examples/resources/awscc_connect_view_version/import.sh new file mode 100644 index 0000000000..7b4b8f1e8a --- /dev/null +++ b/examples/resources/awscc_connect_view_version/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_connect_view_version.example \ No newline at end of file diff --git a/examples/resources/awscc_ec2_eip_association/import.sh b/examples/resources/awscc_ec2_eip_association/import.sh new file mode 100644 index 0000000000..66d0418479 --- /dev/null +++ b/examples/resources/awscc_ec2_eip_association/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_ec2_eip_association.example \ No newline at end of file diff --git a/examples/resources/awscc_guardduty_detector/import.sh b/examples/resources/awscc_guardduty_detector/import.sh new file mode 100644 index 0000000000..a39839649d --- /dev/null +++ b/examples/resources/awscc_guardduty_detector/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_guardduty_detector.example \ No newline at end of file diff --git a/examples/resources/awscc_pcaconnectorad_connector/import.sh b/examples/resources/awscc_pcaconnectorad_connector/import.sh new file mode 100644 index 0000000000..7920f6922c --- /dev/null +++ b/examples/resources/awscc_pcaconnectorad_connector/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_pcaconnectorad_connector.example \ No newline at end of file diff --git a/examples/resources/awscc_pcaconnectorad_directory_registration/import.sh b/examples/resources/awscc_pcaconnectorad_directory_registration/import.sh new file mode 100644 index 0000000000..99a5fe0206 --- /dev/null +++ b/examples/resources/awscc_pcaconnectorad_directory_registration/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_pcaconnectorad_directory_registration.example \ No newline at end of file diff --git a/examples/resources/awscc_pcaconnectorad_service_principal_name/import.sh b/examples/resources/awscc_pcaconnectorad_service_principal_name/import.sh new file mode 100644 index 0000000000..cdc41dfee8 --- /dev/null +++ b/examples/resources/awscc_pcaconnectorad_service_principal_name/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_pcaconnectorad_service_principal_name.example \ No newline at end of file diff --git a/examples/resources/awscc_pcaconnectorad_template/import.sh b/examples/resources/awscc_pcaconnectorad_template/import.sh new file mode 100644 index 0000000000..49265f75d1 --- /dev/null +++ b/examples/resources/awscc_pcaconnectorad_template/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_pcaconnectorad_template.example \ No newline at end of file diff --git a/examples/resources/awscc_pcaconnectorad_template_group_access_control_entry/import.sh b/examples/resources/awscc_pcaconnectorad_template_group_access_control_entry/import.sh new file mode 100644 index 0000000000..984e0a1304 --- /dev/null +++ b/examples/resources/awscc_pcaconnectorad_template_group_access_control_entry/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_pcaconnectorad_template_group_access_control_entry.example \ No newline at end of file From 4acfb556c04a64fd3fe5e9bfbbd80214e07e958c Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 7 Sep 2023 12:32:06 -0400 Subject: [PATCH 6/6] Add CHANGELOG entries. --- CHANGELOG.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3cbbc110c9..dd8b574031 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,36 @@ ## 0.60.0 (Unreleased) + +FEATURES: + +* **New Data Source:** `awscc_chatbot_microsoft_teams_channel_configurations` +* **New Data Source:** `awscc_cleanrooms_analysis_template` +* **New Data Source:** `awscc_cleanrooms_analysis_templates` +* **New Data Source:** `awscc_cloudformation_hook_versions` +* **New Data Source:** `awscc_connect_view` +* **New Data Source:** `awscc_connect_view_version` +* **New Data Source:** `awscc_ec2_eip_association` +* **New Data Source:** `awscc_ec2_eip_associations` +* **New Data Source:** `awscc_guardduty_detector` +* **New Data Source:** `awscc_guardduty_detectors` +* **New Data Source:** `awscc_iotwireless_task_definitions` +* **New Data Source:** `awscc_pcaconnectorad_connector` +* **New Data Source:** `awscc_pcaconnectorad_connectors` +* **New Data Source:** `awscc_pcaconnectorad_directory_registration` +* **New Data Source:** `awscc_pcaconnectorad_directory_registrations` +* **New Data Source:** `awscc_pcaconnectorad_service_principal_name` +* **New Data Source:** `awscc_pcaconnectorad_template` +* **New Data Source:** `awscc_pcaconnectorad_template_group_access_control_entry` +* **New Resource:** `awscc_cleanrooms_analysis_template` +* **New Resource:** `awscc_connect_view` +* **New Resource:** `awscc_connect_view_version` +* **New Resource:** `awscc_ec2_eip_association` +* **New Resource:** `awscc_guardduty_detector` +* **New Resource:** `awscc_pcaconnectorad_connector` +* **New Resource:** `awscc_pcaconnectorad_directory_registration` +* **New Resource:** `awscc_pcaconnectorad_service_principal_name` +* **New Resource:** `awscc_pcaconnectorad_template` +* **New Resource:** `awscc_pcaconnectorad_template_group_access_control_entry` + ## 0.59.0 (August 24, 2023) NOTES: