// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. package gamelift import ( "context" "github.com/hashicorp/terraform-plugin-framework/tfsdk" "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.AddDataSourceTypeFactory("awscc_gamelift_fleet", fleetDataSourceType) } // fleetDataSourceType returns the Terraform awscc_gamelift_fleet data source type. // This Terraform data source type corresponds to the CloudFormation AWS::GameLift::Fleet resource type. func fleetDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { attributes := map[string]tfsdk.Attribute{ "build_id": { // Property: BuildId // CloudFormation resource type schema: // { // "description": "A unique identifier for a build to be deployed on the new fleet. If you are deploying the fleet with a custom game build, you must specify this property. The build must have been successfully uploaded to Amazon GameLift and be in a READY status. This fleet setting cannot be changed once the fleet is created.", // "pattern": "^build-\\S+|^arn:.*:build\\/build-\\S+", // "type": "string" // } Description: "A unique identifier for a build to be deployed on the new fleet. If you are deploying the fleet with a custom game build, you must specify this property. The build must have been successfully uploaded to Amazon GameLift and be in a READY status. This fleet setting cannot be changed once the fleet is created.", Type: types.StringType, Computed: true, }, "certificate_configuration": { // Property: CertificateConfiguration // CloudFormation resource type schema: // { // "additionalProperties": false, // "description": "Indicates whether to generate a TLS/SSL certificate for the new fleet. TLS certificates are used for encrypting traffic between game clients and game servers running on GameLift. If this parameter is not set, certificate generation is disabled. This fleet setting cannot be changed once the fleet is created.", // "properties": { // "CertificateType": { // "enum": [ // "DISABLED", // "GENERATED" // ], // "type": "string" // } // }, // "required": [ // "CertificateType" // ], // "type": "object" // } Description: "Indicates whether to generate a TLS/SSL certificate for the new fleet. TLS certificates are used for encrypting traffic between game clients and game servers running on GameLift. If this parameter is not set, certificate generation is disabled. This fleet setting cannot be changed once the fleet is created.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "certificate_type": { // Property: CertificateType Type: types.StringType, Computed: true, }, }, ), Computed: true, }, "description": { // Property: Description // CloudFormation resource type schema: // { // "description": "A human-readable description of a fleet.", // "maxLength": 1024, // "minLength": 1, // "type": "string" // } Description: "A human-readable description of a fleet.", Type: types.StringType, Computed: true, }, "desired_ec2_instances": { // Property: DesiredEC2Instances // CloudFormation resource type schema: // { // "description": "[DEPRECATED] The number of EC2 instances that you want this fleet to host. When creating a new fleet, GameLift automatically sets this value to \"1\" and initiates a single instance. Once the fleet is active, update this value to trigger GameLift to add or remove instances from the fleet.", // "minimum": 0, // "type": "integer" // } Description: "[DEPRECATED] The number of EC2 instances that you want this fleet to host. When creating a new fleet, GameLift automatically sets this value to \"1\" and initiates a single instance. Once the fleet is active, update this value to trigger GameLift to add or remove instances from the fleet.", Type: types.Int64Type, Computed: true, }, "ec2_inbound_permissions": { // Property: EC2InboundPermissions // CloudFormation resource type schema: // { // "description": "A range of IP addresses and port settings that allow inbound traffic to connect to server processes on an Amazon GameLift server.", // "insertionOrder": false, // "items": { // "additionalProperties": false, // "description": "A range of IP addresses and port settings that allow inbound traffic to connect to server processes on an Amazon GameLift hosting resource. New game sessions that are started on the fleet are assigned an IP address/port number combination, which must fall into the fleet's allowed ranges. For fleets created with a custom game server, the ranges reflect the server's game session assignments. For Realtime Servers fleets, Amazon GameLift automatically opens two port ranges, one for TCP messaging and one for UDP, for use by the Realtime servers.", // "properties": { // "FromPort": { // "description": "A starting value for a range of allowed port numbers.", // "maximum": 60000, // "minimum": 1, // "type": "integer" // }, // "IpRange": { // "description": "A range of allowed IP addresses. This value must be expressed in CIDR notation. Example: \"000.000.000.000/[subnet mask]\" or optionally the shortened version \"0.0.0.0/[subnet mask]\".", // "pattern": "(^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\/([0-9]|[1-2][0-9]|3[0-2]))$)", // "type": "string" // }, // "Protocol": { // "description": "The network communication protocol used by the fleet.", // "enum": [ // "TCP", // "UDP" // ], // "type": "string" // }, // "ToPort": { // "description": "An ending value for a range of allowed port numbers. Port numbers are end-inclusive. This value must be higher than FromPort.", // "maximum": 60000, // "minimum": 1, // "type": "integer" // } // }, // "required": [ // "FromPort", // "IpRange", // "Protocol", // "ToPort" // ], // "type": "object" // }, // "maxItems": 50, // "type": "array" // } Description: "A range of IP addresses and port settings that allow inbound traffic to connect to server processes on an Amazon GameLift server.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "from_port": { // Property: FromPort Description: "A starting value for a range of allowed port numbers.", Type: types.Int64Type, Computed: true, }, "ip_range": { // Property: IpRange Description: "A range of allowed IP addresses. This value must be expressed in CIDR notation. Example: \"000.000.000.000/[subnet mask]\" or optionally the shortened version \"0.0.0.0/[subnet mask]\".", Type: types.StringType, Computed: true, }, "protocol": { // Property: Protocol Description: "The network communication protocol used by the fleet.", Type: types.StringType, Computed: true, }, "to_port": { // Property: ToPort Description: "An ending value for a range of allowed port numbers. Port numbers are end-inclusive. This value must be higher than FromPort.", Type: types.Int64Type, Computed: true, }, }, tfsdk.ListNestedAttributesOptions{}, ), Computed: true, }, "ec2_instance_type": { // Property: EC2InstanceType // CloudFormation resource type schema: // { // "description": "The name of an EC2 instance type that is supported in Amazon GameLift. A fleet instance type determines the computing resources of each instance in the fleet, including CPU, memory, storage, and networking capacity. Amazon GameLift supports the following EC2 instance types. See Amazon EC2 Instance Types for detailed descriptions.", // "pattern": "^.*..*$", // "type": "string" // } Description: "The name of an EC2 instance type that is supported in Amazon GameLift. A fleet instance type determines the computing resources of each instance in the fleet, including CPU, memory, storage, and networking capacity. Amazon GameLift supports the following EC2 instance types. See Amazon EC2 Instance Types for detailed descriptions.", Type: types.StringType, Computed: true, }, "fleet_id": { // Property: FleetId // CloudFormation resource type schema: // { // "description": "Unique fleet ID", // "pattern": "^fleet-\\S+", // "type": "string" // } Description: "Unique fleet ID", Type: types.StringType, Computed: true, }, "fleet_type": { // Property: FleetType // CloudFormation resource type schema: // { // "description": "Indicates whether to use On-Demand instances or Spot instances for this fleet. If empty, the default is ON_DEMAND. Both categories of instances use identical hardware and configurations based on the instance type selected for this fleet.", // "enum": [ // "ON_DEMAND", // "SPOT" // ], // "type": "string" // } Description: "Indicates whether to use On-Demand instances or Spot instances for this fleet. If empty, the default is ON_DEMAND. Both categories of instances use identical hardware and configurations based on the instance type selected for this fleet.", Type: types.StringType, Computed: true, }, "instance_role_arn": { // Property: InstanceRoleARN // CloudFormation resource type schema: // { // "description": "A unique identifier for an AWS IAM role that manages access to your AWS services. With an instance role ARN set, any application that runs on an instance in this fleet can assume the role, including install scripts, server processes, and daemons (background processes). Create a role or look up a role's ARN from the IAM dashboard in the AWS Management Console.", // "minLength": 1, // "pattern": "^arn:aws(-.*)?:[a-z-]+:(([a-z]+-)+[0-9])?:([0-9]{12})?:[^.]+$", // "type": "string" // } Description: "A unique identifier for an AWS IAM role that manages access to your AWS services. With an instance role ARN set, any application that runs on an instance in this fleet can assume the role, including install scripts, server processes, and daemons (background processes). Create a role or look up a role's ARN from the IAM dashboard in the AWS Management Console.", Type: types.StringType, Computed: true, }, "locations": { // Property: Locations // CloudFormation resource type schema: // { // "insertionOrder": false, // "items": { // "additionalProperties": false, // "description": "A remote location where a multi-location fleet can deploy EC2 instances for game hosting.", // "properties": { // "Location": { // "maxLength": 64, // "minLength": 1, // "pattern": "^[a-z]+(-([a-z]+|\\d))*", // "type": "string" // }, // "LocationCapacity": { // "additionalProperties": false, // "description": "Current resource capacity settings in a specified fleet or location. The location value might refer to a fleet's remote location or its home Region.", // "properties": { // "DesiredEC2Instances": { // "description": "The number of EC2 instances you want to maintain in the specified fleet location. This value must fall between the minimum and maximum size limits.", // "minimum": 0, // "type": "integer" // }, // "MaxSize": { // "description": "The maximum value that is allowed for the fleet's instance count for a location. When creating a new fleet, GameLift automatically sets this value to \"1\". Once the fleet is active, you can change this value.", // "minimum": 0, // "type": "integer" // }, // "MinSize": { // "description": "The minimum value allowed for the fleet's instance count for a location. When creating a new fleet, GameLift automatically sets this value to \"0\". After the fleet is active, you can change this value.", // "minimum": 0, // "type": "integer" // } // }, // "required": [ // "DesiredEC2Instances", // "MinSize", // "MaxSize" // ], // "type": "object" // } // }, // "required": [ // "Location" // ], // "type": "object" // }, // "maxItems": 100, // "minItems": 1, // "type": "array" // } Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "location": { // Property: Location Type: types.StringType, Computed: true, }, "location_capacity": { // Property: LocationCapacity Description: "Current resource capacity settings in a specified fleet or location. The location value might refer to a fleet's remote location or its home Region.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "desired_ec2_instances": { // Property: DesiredEC2Instances Description: "The number of EC2 instances you want to maintain in the specified fleet location. This value must fall between the minimum and maximum size limits.", Type: types.Int64Type, Computed: true, }, "max_size": { // Property: MaxSize Description: "The maximum value that is allowed for the fleet's instance count for a location. When creating a new fleet, GameLift automatically sets this value to \"1\". Once the fleet is active, you can change this value.", Type: types.Int64Type, Computed: true, }, "min_size": { // Property: MinSize Description: "The minimum value allowed for the fleet's instance count for a location. When creating a new fleet, GameLift automatically sets this value to \"0\". After the fleet is active, you can change this value.", Type: types.Int64Type, Computed: true, }, }, ), Computed: true, }, }, tfsdk.ListNestedAttributesOptions{}, ), Computed: true, }, "log_paths": { // Property: LogPaths // CloudFormation resource type schema: // { // "description": "This parameter is no longer used. When hosting a custom game build, specify where Amazon GameLift should store log files using the Amazon GameLift server API call ProcessReady()", // "insertionOrder": false, // "items": { // "type": "string" // }, // "type": "array" // } Description: "This parameter is no longer used. When hosting a custom game build, specify where Amazon GameLift should store log files using the Amazon GameLift server API call ProcessReady()", Type: types.ListType{ElemType: types.StringType}, Computed: true, }, "max_size": { // Property: MaxSize // CloudFormation resource type schema: // { // "description": "[DEPRECATED] The maximum value that is allowed for the fleet's instance count. When creating a new fleet, GameLift automatically sets this value to \"1\". Once the fleet is active, you can change this value.", // "minimum": 0, // "type": "integer" // } Description: "[DEPRECATED] The maximum value that is allowed for the fleet's instance count. When creating a new fleet, GameLift automatically sets this value to \"1\". Once the fleet is active, you can change this value.", Type: types.Int64Type, Computed: true, }, "metric_groups": { // Property: MetricGroups // CloudFormation resource type schema: // { // "description": "The name of an Amazon CloudWatch metric group. A metric group aggregates the metrics for all fleets in the group. Specify a string containing the metric group name. You can use an existing name or use a new name to create a new metric group. Currently, this parameter can have only one string.", // "insertionOrder": false, // "items": { // "type": "string" // }, // "maxItems": 1, // "type": "array" // } Description: "The name of an Amazon CloudWatch metric group. A metric group aggregates the metrics for all fleets in the group. Specify a string containing the metric group name. You can use an existing name or use a new name to create a new metric group. Currently, this parameter can have only one string.", Type: types.ListType{ElemType: types.StringType}, Computed: true, }, "min_size": { // Property: MinSize // CloudFormation resource type schema: // { // "description": "[DEPRECATED] The minimum value allowed for the fleet's instance count. When creating a new fleet, GameLift automatically sets this value to \"0\". After the fleet is active, you can change this value.", // "minimum": 0, // "type": "integer" // } Description: "[DEPRECATED] The minimum value allowed for the fleet's instance count. When creating a new fleet, GameLift automatically sets this value to \"0\". After the fleet is active, you can change this value.", Type: types.Int64Type, Computed: true, }, "name": { // Property: Name // CloudFormation resource type schema: // { // "description": "A descriptive label that is associated with a fleet. Fleet names do not need to be unique.", // "maxLength": 1024, // "minLength": 1, // "type": "string" // } Description: "A descriptive label that is associated with a fleet. Fleet names do not need to be unique.", Type: types.StringType, Computed: true, }, "new_game_session_protection_policy": { // Property: NewGameSessionProtectionPolicy // CloudFormation resource type schema: // { // "description": "A game session protection policy to apply to all game sessions hosted on instances in this fleet. When protected, active game sessions cannot be terminated during a scale-down event. If this parameter is not set, instances in this fleet default to no protection. You can change a fleet's protection policy to affect future game sessions on the fleet. You can also set protection for individual game sessions.", // "enum": [ // "FullProtection", // "NoProtection" // ], // "type": "string" // } Description: "A game session protection policy to apply to all game sessions hosted on instances in this fleet. When protected, active game sessions cannot be terminated during a scale-down event. If this parameter is not set, instances in this fleet default to no protection. You can change a fleet's protection policy to affect future game sessions on the fleet. You can also set protection for individual game sessions.", Type: types.StringType, Computed: true, }, "peer_vpc_aws_account_id": { // Property: PeerVpcAwsAccountId // CloudFormation resource type schema: // { // "description": "A unique identifier for the AWS account with the VPC that you want to peer your Amazon GameLift fleet with. You can find your account ID in the AWS Management Console under account settings.", // "maxLength": 1024, // "minLength": 1, // "pattern": "^[0-9]{12}$", // "type": "string" // } Description: "A unique identifier for the AWS account with the VPC that you want to peer your Amazon GameLift fleet with. You can find your account ID in the AWS Management Console under account settings.", Type: types.StringType, Computed: true, }, "peer_vpc_id": { // Property: PeerVpcId // CloudFormation resource type schema: // { // "description": "A unique identifier for a VPC with resources to be accessed by your Amazon GameLift fleet. The VPC must be in the same Region as your fleet. To look up a VPC ID, use the VPC Dashboard in the AWS Management Console.", // "maxLength": 1024, // "minLength": 1, // "pattern": "^vpc-\\S+", // "type": "string" // } Description: "A unique identifier for a VPC with resources to be accessed by your Amazon GameLift fleet. The VPC must be in the same Region as your fleet. To look up a VPC ID, use the VPC Dashboard in the AWS Management Console.", Type: types.StringType, Computed: true, }, "resource_creation_limit_policy": { // Property: ResourceCreationLimitPolicy // CloudFormation resource type schema: // { // "additionalProperties": false, // "description": "A policy that limits the number of game sessions an individual player can create over a span of time for this fleet.", // "properties": { // "NewGameSessionsPerCreator": { // "description": "The maximum number of game sessions that an individual can create during the policy period.", // "minimum": 0, // "type": "integer" // }, // "PolicyPeriodInMinutes": { // "description": "The time span used in evaluating the resource creation limit policy.", // "minimum": 0, // "type": "integer" // } // }, // "type": "object" // } Description: "A policy that limits the number of game sessions an individual player can create over a span of time for this fleet.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "new_game_sessions_per_creator": { // Property: NewGameSessionsPerCreator Description: "The maximum number of game sessions that an individual can create during the policy period.", Type: types.Int64Type, Computed: true, }, "policy_period_in_minutes": { // Property: PolicyPeriodInMinutes Description: "The time span used in evaluating the resource creation limit policy.", Type: types.Int64Type, Computed: true, }, }, ), Computed: true, }, "runtime_configuration": { // Property: RuntimeConfiguration // CloudFormation resource type schema: // { // "additionalProperties": false, // "description": "Instructions for launching server processes on each instance in the fleet. Server processes run either a custom game build executable or a Realtime script. The runtime configuration defines the server executables or launch script file, launch parameters, and the number of processes to run concurrently on each instance. When creating a fleet, the runtime configuration must have at least one server process configuration; otherwise the request fails with an invalid request exception.\n\nThis parameter is required unless the parameters ServerLaunchPath and ServerLaunchParameters are defined. Runtime configuration has replaced these parameters, but fleets that use them will continue to work.", // "properties": { // "GameSessionActivationTimeoutSeconds": { // "description": "The maximum amount of time (in seconds) that a game session can remain in status ACTIVATING. If the game session is not active before the timeout, activation is terminated and the game session status is changed to TERMINATED.", // "maximum": 600, // "minimum": 1, // "type": "integer" // }, // "MaxConcurrentGameSessionActivations": { // "description": "The maximum number of game sessions with status ACTIVATING to allow on an instance simultaneously. This setting limits the amount of instance resources that can be used for new game activations at any one time.", // "maximum": 2147483647, // "minimum": 1, // "type": "integer" // }, // "ServerProcesses": { // "description": "A collection of server process configurations that describe which server processes to run on each instance in a fleet.", // "insertionOrder": false, // "items": { // "additionalProperties": false, // "description": "A set of instructions for launching server processes on each instance in a fleet. Each instruction set identifies the location of the server executable, optional launch parameters, and the number of server processes with this configuration to maintain concurrently on the instance. Server process configurations make up a fleet's RuntimeConfiguration.", // "properties": { // "ConcurrentExecutions": { // "description": "The number of server processes that use this configuration to run concurrently on an instance.", // "minimum": 1, // "type": "integer" // }, // "LaunchPath": { // "description": "The location of the server executable in a custom game build or the name of the Realtime script file that contains the Init() function. Game builds and Realtime scripts are installed on instances at the root:\n\nWindows (for custom game builds only): C:\\game. Example: \"C:\\game\\MyGame\\server.exe\"\n\nLinux: /local/game. Examples: \"/local/game/MyGame/server.exe\" or \"/local/game/MyRealtimeScript.js\"", // "maxLength": 1024, // "minLength": 1, // "pattern": "^([Cc]:\\\\game\\S+|/local/game/\\S+)", // "type": "string" // }, // "Parameters": { // "description": "An optional list of parameters to pass to the server executable or Realtime script on launch.", // "maxLength": 1024, // "minLength": 1, // "type": "string" // } // }, // "required": [ // "ConcurrentExecutions", // "LaunchPath" // ], // "type": "object" // }, // "maxItems": 50, // "type": "array" // } // }, // "type": "object" // } Description: "Instructions for launching server processes on each instance in the fleet. Server processes run either a custom game build executable or a Realtime script. The runtime configuration defines the server executables or launch script file, launch parameters, and the number of processes to run concurrently on each instance. When creating a fleet, the runtime configuration must have at least one server process configuration; otherwise the request fails with an invalid request exception.\n\nThis parameter is required unless the parameters ServerLaunchPath and ServerLaunchParameters are defined. Runtime configuration has replaced these parameters, but fleets that use them will continue to work.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "game_session_activation_timeout_seconds": { // Property: GameSessionActivationTimeoutSeconds Description: "The maximum amount of time (in seconds) that a game session can remain in status ACTIVATING. If the game session is not active before the timeout, activation is terminated and the game session status is changed to TERMINATED.", Type: types.Int64Type, Computed: true, }, "max_concurrent_game_session_activations": { // Property: MaxConcurrentGameSessionActivations Description: "The maximum number of game sessions with status ACTIVATING to allow on an instance simultaneously. This setting limits the amount of instance resources that can be used for new game activations at any one time.", Type: types.Int64Type, Computed: true, }, "server_processes": { // Property: ServerProcesses Description: "A collection of server process configurations that describe which server processes to run on each instance in a fleet.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "concurrent_executions": { // Property: ConcurrentExecutions Description: "The number of server processes that use this configuration to run concurrently on an instance.", Type: types.Int64Type, Computed: true, }, "launch_path": { // Property: LaunchPath Description: "The location of the server executable in a custom game build or the name of the Realtime script file that contains the Init() function. Game builds and Realtime scripts are installed on instances at the root:\n\nWindows (for custom game builds only): C:\\game. Example: \"C:\\game\\MyGame\\server.exe\"\n\nLinux: /local/game. Examples: \"/local/game/MyGame/server.exe\" or \"/local/game/MyRealtimeScript.js\"", Type: types.StringType, Computed: true, }, "parameters": { // Property: Parameters Description: "An optional list of parameters to pass to the server executable or Realtime script on launch.", Type: types.StringType, Computed: true, }, }, tfsdk.ListNestedAttributesOptions{}, ), Computed: true, }, }, ), Computed: true, }, "script_id": { // Property: ScriptId // CloudFormation resource type schema: // { // "description": "A unique identifier for a Realtime script to be deployed on a new Realtime Servers fleet. The script must have been successfully uploaded to Amazon GameLift. This fleet setting cannot be changed once the fleet is created.\n\nNote: It is not currently possible to use the !Ref command to reference a script created with a CloudFormation template for the fleet property ScriptId. Instead, use Fn::GetAtt Script.Arn or Fn::GetAtt Script.Id to retrieve either of these properties as input for ScriptId. Alternatively, enter a ScriptId string manually.", // "pattern": "^script-\\S+|^arn:.*:script\\/script-\\S+", // "type": "string" // } Description: "A unique identifier for a Realtime script to be deployed on a new Realtime Servers fleet. The script must have been successfully uploaded to Amazon GameLift. This fleet setting cannot be changed once the fleet is created.\n\nNote: It is not currently possible to use the !Ref command to reference a script created with a CloudFormation template for the fleet property ScriptId. Instead, use Fn::GetAtt Script.Arn or Fn::GetAtt Script.Id to retrieve either of these properties as input for ScriptId. Alternatively, enter a ScriptId string manually.", Type: types.StringType, Computed: true, }, "server_launch_parameters": { // Property: ServerLaunchParameters // CloudFormation resource type schema: // { // "description": "This parameter is no longer used but is retained for backward compatibility. Instead, specify server launch parameters in the RuntimeConfiguration parameter. A request must specify either a runtime configuration or values for both ServerLaunchParameters and ServerLaunchPath.", // "maxLength": 1024, // "minLength": 1, // "type": "string" // } Description: "This parameter is no longer used but is retained for backward compatibility. Instead, specify server launch parameters in the RuntimeConfiguration parameter. A request must specify either a runtime configuration or values for both ServerLaunchParameters and ServerLaunchPath.", Type: types.StringType, Computed: true, }, "server_launch_path": { // Property: ServerLaunchPath // CloudFormation resource type schema: // { // "description": "This parameter is no longer used. Instead, specify a server launch path using the RuntimeConfiguration parameter. Requests that specify a server launch path and launch parameters instead of a runtime configuration will continue to work.", // "maxLength": 1024, // "minLength": 1, // "type": "string" // } Description: "This parameter is no longer used. Instead, specify a server launch path using the RuntimeConfiguration parameter. Requests that specify a server launch path and launch parameters instead of a runtime configuration will continue to work.", Type: types.StringType, Computed: true, }, } attributes["id"] = tfsdk.Attribute{ Description: "Uniquely identifies the resource.", Type: types.StringType, Required: true, } schema := tfsdk.Schema{ Description: "Data Source schema for AWS::GameLift::Fleet", Version: 1, Attributes: attributes, } var opts DataSourceTypeOptions opts = opts.WithCloudFormationTypeName("AWS::GameLift::Fleet").WithTerraformTypeName("awscc_gamelift_fleet") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ "build_id": "BuildId", "certificate_configuration": "CertificateConfiguration", "certificate_type": "CertificateType", "concurrent_executions": "ConcurrentExecutions", "description": "Description", "desired_ec2_instances": "DesiredEC2Instances", "ec2_inbound_permissions": "EC2InboundPermissions", "ec2_instance_type": "EC2InstanceType", "fleet_id": "FleetId", "fleet_type": "FleetType", "from_port": "FromPort", "game_session_activation_timeout_seconds": "GameSessionActivationTimeoutSeconds", "instance_role_arn": "InstanceRoleARN", "ip_range": "IpRange", "launch_path": "LaunchPath", "location": "Location", "location_capacity": "LocationCapacity", "locations": "Locations", "log_paths": "LogPaths", "max_concurrent_game_session_activations": "MaxConcurrentGameSessionActivations", "max_size": "MaxSize", "metric_groups": "MetricGroups", "min_size": "MinSize", "name": "Name", "new_game_session_protection_policy": "NewGameSessionProtectionPolicy", "new_game_sessions_per_creator": "NewGameSessionsPerCreator", "parameters": "Parameters", "peer_vpc_aws_account_id": "PeerVpcAwsAccountId", "peer_vpc_id": "PeerVpcId", "policy_period_in_minutes": "PolicyPeriodInMinutes", "protocol": "Protocol", "resource_creation_limit_policy": "ResourceCreationLimitPolicy", "runtime_configuration": "RuntimeConfiguration", "script_id": "ScriptId", "server_launch_parameters": "ServerLaunchParameters", "server_launch_path": "ServerLaunchPath", "server_processes": "ServerProcesses", "to_port": "ToPort", }) singularDataSourceType, err := NewSingularDataSourceType(ctx, opts...) if err != nil { return nil, err } return singularDataSourceType, nil }