// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. package nimblestudio 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_nimblestudio_launch_profile", launchProfileDataSourceType) } // launchProfileDataSourceType returns the Terraform awscc_nimblestudio_launch_profile data source type. // This Terraform data source type corresponds to the CloudFormation AWS::NimbleStudio::LaunchProfile resource type. func launchProfileDataSourceType(ctx context.Context) (tfsdk.DataSourceType, error) { attributes := map[string]tfsdk.Attribute{ "description": { // Property: Description // CloudFormation resource type schema: // { // "description": "\u003cp\u003eThe description.\u003c/p\u003e", // "maxLength": 256, // "minLength": 0, // "type": "string" // } Description: "

The description.

", Type: types.StringType, Computed: true, }, "ec_2_subnet_ids": { // Property: Ec2SubnetIds // CloudFormation resource type schema: // { // "description": "\u003cp\u003eSpecifies the IDs of the EC2 subnets where streaming sessions will be accessible from.\n These subnets must support the specified instance types. \u003c/p\u003e", // "items": { // "type": "string" // }, // "maxItems": 6, // "minItems": 0, // "type": "array" // } Description: "

Specifies the IDs of the EC2 subnets where streaming sessions will be accessible from.\n These subnets must support the specified instance types.

", Type: types.ListType{ElemType: types.StringType}, Computed: true, }, "launch_profile_id": { // Property: LaunchProfileId // CloudFormation resource type schema: // { // "type": "string" // } Type: types.StringType, Computed: true, }, "launch_profile_protocol_versions": { // Property: LaunchProfileProtocolVersions // CloudFormation resource type schema: // { // "description": "\u003cp\u003eThe version number of the protocol that is used by the launch profile. The only valid\n version is \"2021-03-31\".\u003c/p\u003e", // "items": { // "description": "\u003cp\u003eThe version number of the protocol that is used by the launch profile. The only valid\n version is \"2021-03-31\".\u003c/p\u003e", // "maxLength": 10, // "minLength": 0, // "pattern": "^2021\\-03\\-31$", // "type": "string" // }, // "type": "array" // } Description: "

The version number of the protocol that is used by the launch profile. The only valid\n version is \"2021-03-31\".

", Type: types.ListType{ElemType: types.StringType}, Computed: true, }, "name": { // Property: Name // CloudFormation resource type schema: // { // "description": "\u003cp\u003eThe name for the launch profile.\u003c/p\u003e", // "maxLength": 64, // "minLength": 1, // "type": "string" // } Description: "

The name for the launch profile.

", Type: types.StringType, Computed: true, }, "stream_configuration": { // Property: StreamConfiguration // CloudFormation resource type schema: // { // "additionalProperties": false, // "description": "\u003cp\u003eA configuration for a streaming session.\u003c/p\u003e", // "properties": { // "ClipboardMode": { // "enum": [ // "ENABLED", // "DISABLED" // ], // "type": "string" // }, // "Ec2InstanceTypes": { // "description": "\u003cp\u003eThe EC2 instance types that users can select from when launching a streaming session\n with this launch profile.\u003c/p\u003e", // "items": { // "enum": [ // "g4dn.xlarge", // "g4dn.2xlarge", // "g4dn.4xlarge", // "g4dn.8xlarge", // "g4dn.12xlarge", // "g4dn.16xlarge" // ], // "type": "string" // }, // "maxItems": 30, // "minItems": 1, // "type": "array" // }, // "MaxSessionLengthInMinutes": { // "description": "\u003cp\u003eThe length of time, in minutes, that a streaming session can be active before it is\n stopped or terminated. After this point, Nimble Studio automatically terminates or\n stops the session. The default length of time is 690 minutes, and the maximum length of\n time is 30 days.\u003c/p\u003e", // "maximum": 43200, // "minimum": 1, // "type": "number" // }, // "MaxStoppedSessionLengthInMinutes": { // "description": "\u003cp\u003eInteger that determines if you can start and stop your sessions and how long a session\n can stay in the STOPPED state. The default value is 0. The maximum value is 5760.\u003c/p\u003e\n \u003cp\u003eIf the value is missing or set to 0, your sessions can’t be stopped. If you then call\n StopStreamingSession, the session fails. If the time that a session stays in the READY\n state exceeds the maxSessionLengthInMinutes value, the session will automatically be\n terminated by AWS (instead of stopped).\u003c/p\u003e\n \u003cp\u003eIf the value is set to a positive number, the session can be stopped. You can call\n StopStreamingSession to stop sessions in the READY state. If the time that a session\n stays in the READY state exceeds the maxSessionLengthInMinutes value, the session will\n automatically be stopped by AWS (instead of terminated).\u003c/p\u003e", // "maximum": 5760, // "minimum": 0, // "type": "number" // }, // "SessionStorage": { // "additionalProperties": false, // "description": "\u003cp\u003eThe configuration for a streaming session’s upload storage.\u003c/p\u003e", // "properties": { // "Mode": { // "description": "\u003cp\u003eAllows artists to upload files to their workstations. The only valid option is\n \u003ccode\u003eUPLOAD\u003c/code\u003e.\u003c/p\u003e", // "items": { // "enum": [ // "UPLOAD" // ], // "type": "string" // }, // "minItems": 1, // "type": "array" // }, // "Root": { // "additionalProperties": false, // "description": "\u003cp\u003eThe upload storage root location (folder) on streaming workstations where files are\n uploaded.\u003c/p\u003e", // "properties": { // "Linux": { // "description": "\u003cp\u003eThe folder path in Linux workstations where files are uploaded.\u003c/p\u003e", // "maxLength": 128, // "minLength": 1, // "pattern": "^(/?|(\\$HOME)?(/[^\\$/\\n\\s\\\\]+)*)$", // "type": "string" // }, // "Windows": { // "description": "\u003cp\u003eThe folder path in Windows workstations where files are uploaded.\u003c/p\u003e", // "maxLength": 128, // "minLength": 1, // "pattern": "^((\\%HOMEPATH\\%)|[a-zA-Z]:)[\\\\/](?:[a-zA-Z0-9_-]+[\\\\/])*[a-zA-Z0-9_-]+$", // "type": "string" // } // }, // "type": "object" // } // }, // "type": "object" // }, // "StreamingImageIds": { // "description": "\u003cp\u003eThe streaming images that users can select from when launching a streaming session\n with this launch profile.\u003c/p\u003e", // "items": { // "maxLength": 22, // "minLength": 0, // "pattern": "^[a-zA-Z0-9-_]*$", // "type": "string" // }, // "maxItems": 20, // "minItems": 1, // "type": "array" // } // }, // "required": [ // "ClipboardMode", // "Ec2InstanceTypes", // "StreamingImageIds" // ], // "type": "object" // } Description: "

A configuration for a streaming session.

", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "clipboard_mode": { // Property: ClipboardMode Type: types.StringType, Computed: true, }, "ec_2_instance_types": { // Property: Ec2InstanceTypes Description: "

The EC2 instance types that users can select from when launching a streaming session\n with this launch profile.

", Type: types.ListType{ElemType: types.StringType}, Computed: true, }, "max_session_length_in_minutes": { // Property: MaxSessionLengthInMinutes Description: "

The length of time, in minutes, that a streaming session can be active before it is\n stopped or terminated. After this point, Nimble Studio automatically terminates or\n stops the session. The default length of time is 690 minutes, and the maximum length of\n time is 30 days.

", Type: types.Float64Type, Computed: true, }, "max_stopped_session_length_in_minutes": { // Property: MaxStoppedSessionLengthInMinutes Description: "

Integer that determines if you can start and stop your sessions and how long a session\n can stay in the STOPPED state. The default value is 0. The maximum value is 5760.

\n

If the value is missing or set to 0, your sessions can’t be stopped. If you then call\n StopStreamingSession, the session fails. If the time that a session stays in the READY\n state exceeds the maxSessionLengthInMinutes value, the session will automatically be\n terminated by AWS (instead of stopped).

\n

If the value is set to a positive number, the session can be stopped. You can call\n StopStreamingSession to stop sessions in the READY state. If the time that a session\n stays in the READY state exceeds the maxSessionLengthInMinutes value, the session will\n automatically be stopped by AWS (instead of terminated).

", Type: types.Float64Type, Computed: true, }, "session_storage": { // Property: SessionStorage Description: "

The configuration for a streaming session’s upload storage.

", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "mode": { // Property: Mode Description: "

Allows artists to upload files to their workstations. The only valid option is\n UPLOAD.

", Type: types.ListType{ElemType: types.StringType}, Computed: true, }, "root": { // Property: Root Description: "

The upload storage root location (folder) on streaming workstations where files are\n uploaded.

", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "linux": { // Property: Linux Description: "

The folder path in Linux workstations where files are uploaded.

", Type: types.StringType, Computed: true, }, "windows": { // Property: Windows Description: "

The folder path in Windows workstations where files are uploaded.

", Type: types.StringType, Computed: true, }, }, ), Computed: true, }, }, ), Computed: true, }, "streaming_image_ids": { // Property: StreamingImageIds Description: "

The streaming images that users can select from when launching a streaming session\n with this launch profile.

", Type: types.ListType{ElemType: types.StringType}, Computed: true, }, }, ), Computed: true, }, "studio_component_ids": { // Property: StudioComponentIds // CloudFormation resource type schema: // { // "description": "\u003cp\u003eUnique identifiers for a collection of studio components that can be used with this\n launch profile.\u003c/p\u003e", // "items": { // "type": "string" // }, // "maxItems": 100, // "minItems": 1, // "type": "array" // } Description: "

Unique identifiers for a collection of studio components that can be used with this\n launch profile.

", Type: types.ListType{ElemType: types.StringType}, Computed: true, }, "studio_id": { // Property: StudioId // CloudFormation resource type schema: // { // "description": "\u003cp\u003eThe studio ID. \u003c/p\u003e", // "type": "string" // } Description: "

The studio ID.

", Type: types.StringType, Computed: true, }, "tags": { // Property: Tags // CloudFormation resource type schema: // { // "additionalProperties": false, // "patternProperties": { // "": { // "type": "string" // } // }, // "type": "object" // } // Pattern: "" Type: types.MapType{ElemType: 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::NimbleStudio::LaunchProfile", Version: 1, Attributes: attributes, } var opts DataSourceTypeOptions opts = opts.WithCloudFormationTypeName("AWS::NimbleStudio::LaunchProfile").WithTerraformTypeName("awscc_nimblestudio_launch_profile") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ "clipboard_mode": "ClipboardMode", "description": "Description", "ec_2_instance_types": "Ec2InstanceTypes", "ec_2_subnet_ids": "Ec2SubnetIds", "launch_profile_id": "LaunchProfileId", "launch_profile_protocol_versions": "LaunchProfileProtocolVersions", "linux": "Linux", "max_session_length_in_minutes": "MaxSessionLengthInMinutes", "max_stopped_session_length_in_minutes": "MaxStoppedSessionLengthInMinutes", "mode": "Mode", "name": "Name", "root": "Root", "session_storage": "SessionStorage", "stream_configuration": "StreamConfiguration", "streaming_image_ids": "StreamingImageIds", "studio_component_ids": "StudioComponentIds", "studio_id": "StudioId", "tags": "Tags", "windows": "Windows", }) singularDataSourceType, err := NewSingularDataSourceType(ctx, opts...) if err != nil { return nil, err } return singularDataSourceType, nil }