// Code generated by generators/resource/main.go; DO NOT EDIT. package iotsitewise 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" "github.com/hashicorp/terraform-provider-awscc/internal/validate" ) func init() { registry.AddResourceTypeFactory("awscc_iotsitewise_asset_model", assetModelResourceType) } // assetModelResourceType returns the Terraform awscc_iotsitewise_asset_model resource type. // This Terraform resource type corresponds to the CloudFormation AWS::IoTSiteWise::AssetModel resource type. func assetModelResourceType(ctx context.Context) (tfsdk.ResourceType, error) { attributes := map[string]tfsdk.Attribute{ "asset_model_arn": { // Property: AssetModelArn // CloudFormation resource type schema: // { // "description": "The ARN of the asset model, which has the following format.", // "type": "string" // } Description: "The ARN of the asset model, which has the following format.", Type: types.StringType, Computed: true, PlanModifiers: []tfsdk.AttributePlanModifier{ tfsdk.UseStateForUnknown(), }, }, "asset_model_composite_models": { // Property: AssetModelCompositeModels // CloudFormation resource type schema: // { // "description": "The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties.", // "insertionOrder": false, // "items": { // "additionalProperties": false, // "description": "Contains a composite model definition in an asset model. This composite model definition is applied to all assets created from the asset model.", // "properties": { // "CompositeModelProperties": { // "description": "The property definitions of the asset model. You can specify up to 200 properties per asset model.", // "insertionOrder": false, // "items": { // "additionalProperties": false, // "description": "Contains information about an asset model property.", // "properties": { // "DataType": { // "description": "The data type of the asset model property.", // "enum": [ // "STRING", // "INTEGER", // "DOUBLE", // "BOOLEAN", // "STRUCT" // ], // "type": "string" // }, // "DataTypeSpec": { // "description": "The data type of the structure for this property.", // "enum": [ // "AWS/ALARM_STATE" // ], // "type": "string" // }, // "LogicalId": { // "description": "Customer provided ID for property.", // "maxLength": 256, // "minLength": 1, // "pattern": "", // "type": "string" // }, // "Name": { // "description": "The name of the asset model property.", // "type": "string" // }, // "Type": { // "additionalProperties": false, // "description": "The property type", // "properties": { // "Attribute": { // "additionalProperties": false, // "properties": { // "DefaultValue": { // "type": "string" // } // }, // "type": "object" // }, // "Metric": { // "additionalProperties": false, // "properties": { // "Expression": { // "description": "The mathematical expression that defines the metric aggregation function. You can specify up to 10 functions per expression.", // "type": "string" // }, // "Variables": { // "description": "The list of variables used in the expression.", // "insertionOrder": false, // "items": { // "additionalProperties": false, // "properties": { // "Name": { // "description": "The friendly name of the variable to be used in the expression.", // "type": "string" // }, // "Value": { // "additionalProperties": false, // "description": "The variable that identifies an asset property from which to use values.", // "properties": { // "HierarchyLogicalId": { // "maxLength": 256, // "minLength": 1, // "pattern": "", // "type": "string" // }, // "PropertyLogicalId": { // "maxLength": 256, // "minLength": 1, // "pattern": "", // "type": "string" // } // }, // "required": [ // "PropertyLogicalId" // ], // "type": "object" // } // }, // "required": [ // "Name", // "Value" // ], // "type": "object" // }, // "type": "array" // }, // "Window": { // "additionalProperties": false, // "description": "The window (time interval) over which AWS IoT SiteWise computes the metric's aggregation expression", // "properties": { // "Tumbling": { // "additionalProperties": false, // "description": "Contains a tumbling window, which is a repeating fixed-sized, non-overlapping, and contiguous time interval. This window is used in metric and aggregation computations.", // "properties": { // "Interval": { // "description": "The time interval for the tumbling window.", // "type": "string" // }, // "Offset": { // "description": "The shift or reference point on timeline for the contiguous time intervals.", // "type": "string" // } // }, // "required": [ // "Interval" // ], // "type": "object" // } // }, // "type": "object" // } // }, // "required": [ // "Expression", // "Variables", // "Window" // ], // "type": "object" // }, // "Transform": { // "additionalProperties": false, // "properties": { // "Expression": { // "description": "The mathematical expression that defines the transformation function. You can specify up to 10 functions per expression.", // "type": "string" // }, // "Variables": { // "description": "The list of variables used in the expression.", // "insertionOrder": false, // "items": { // "additionalProperties": false, // "properties": { // "Name": { // "description": "The friendly name of the variable to be used in the expression.", // "type": "string" // }, // "Value": { // "additionalProperties": false, // "description": "The variable that identifies an asset property from which to use values.", // "properties": { // "HierarchyLogicalId": { // "maxLength": 256, // "minLength": 1, // "pattern": "", // "type": "string" // }, // "PropertyLogicalId": { // "maxLength": 256, // "minLength": 1, // "pattern": "", // "type": "string" // } // }, // "required": [ // "PropertyLogicalId" // ], // "type": "object" // } // }, // "required": [ // "Name", // "Value" // ], // "type": "object" // }, // "type": "array" // } // }, // "required": [ // "Expression", // "Variables" // ], // "type": "object" // }, // "TypeName": { // "enum": [ // "Measurement", // "Attribute", // "Transform", // "Metric" // ], // "type": "string" // } // }, // "required": [ // "TypeName" // ], // "type": "object" // }, // "Unit": { // "description": "The unit of the asset model property, such as Newtons or RPM.", // "type": "string" // } // }, // "required": [ // "LogicalId", // "Name", // "DataType", // "Type" // ], // "type": "object" // }, // "type": "array" // }, // "Description": { // "description": "A description for the asset composite model.", // "type": "string" // }, // "Name": { // "description": "A unique, friendly name for the asset composite model.", // "type": "string" // }, // "Type": { // "description": "The type of the composite model. For alarm composite models, this type is AWS/ALARM", // "type": "string" // } // }, // "required": [ // "Name", // "Type" // ], // "type": "object" // }, // "type": "array" // } Description: "The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "composite_model_properties": { // Property: CompositeModelProperties Description: "The property definitions of the asset model. You can specify up to 200 properties per asset model.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "data_type": { // Property: DataType Description: "The data type of the asset model property.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringInSlice([]string{ "STRING", "INTEGER", "DOUBLE", "BOOLEAN", "STRUCT", }), }, }, "data_type_spec": { // Property: DataTypeSpec Description: "The data type of the structure for this property.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringInSlice([]string{ "AWS/ALARM_STATE", }), }, }, "logical_id": { // Property: LogicalId Description: "Customer provided ID for property.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 256), }, }, "name": { // Property: Name Description: "The name of the asset model property.", Type: types.StringType, Required: true, }, "type": { // Property: Type Description: "The property type", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "attribute": { // Property: Attribute Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "default_value": { // Property: DefaultValue Type: types.StringType, Optional: true, }, }, ), Optional: true, }, "metric": { // Property: Metric Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "expression": { // Property: Expression Description: "The mathematical expression that defines the metric aggregation function. You can specify up to 10 functions per expression.", Type: types.StringType, Required: true, }, "variables": { // Property: Variables Description: "The list of variables used in the expression.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "name": { // Property: Name Description: "The friendly name of the variable to be used in the expression.", Type: types.StringType, Required: true, }, "value": { // Property: Value Description: "The variable that identifies an asset property from which to use values.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "hierarchy_logical_id": { // Property: HierarchyLogicalId Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 256), }, }, "property_logical_id": { // Property: PropertyLogicalId Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 256), }, }, }, ), Required: true, }, }, tfsdk.ListNestedAttributesOptions{}, ), Required: true, PlanModifiers: []tfsdk.AttributePlanModifier{ Multiset(), }, }, "window": { // Property: Window Description: "The window (time interval) over which AWS IoT SiteWise computes the metric's aggregation expression", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "tumbling": { // Property: Tumbling Description: "Contains a tumbling window, which is a repeating fixed-sized, non-overlapping, and contiguous time interval. This window is used in metric and aggregation computations.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "interval": { // Property: Interval Description: "The time interval for the tumbling window.", Type: types.StringType, Required: true, }, "offset": { // Property: Offset Description: "The shift or reference point on timeline for the contiguous time intervals.", Type: types.StringType, Optional: true, }, }, ), Optional: true, }, }, ), Required: true, }, }, ), Optional: true, }, "transform": { // Property: Transform Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "expression": { // Property: Expression Description: "The mathematical expression that defines the transformation function. You can specify up to 10 functions per expression.", Type: types.StringType, Required: true, }, "variables": { // Property: Variables Description: "The list of variables used in the expression.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "name": { // Property: Name Description: "The friendly name of the variable to be used in the expression.", Type: types.StringType, Required: true, }, "value": { // Property: Value Description: "The variable that identifies an asset property from which to use values.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "hierarchy_logical_id": { // Property: HierarchyLogicalId Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 256), }, }, "property_logical_id": { // Property: PropertyLogicalId Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 256), }, }, }, ), Required: true, }, }, tfsdk.ListNestedAttributesOptions{}, ), Required: true, PlanModifiers: []tfsdk.AttributePlanModifier{ Multiset(), }, }, }, ), Optional: true, }, "type_name": { // Property: TypeName Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringInSlice([]string{ "Measurement", "Attribute", "Transform", "Metric", }), }, }, }, ), Required: true, }, "unit": { // Property: Unit Description: "The unit of the asset model property, such as Newtons or RPM.", Type: types.StringType, Optional: true, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, PlanModifiers: []tfsdk.AttributePlanModifier{ Multiset(), }, }, "description": { // Property: Description Description: "A description for the asset composite model.", Type: types.StringType, Optional: true, }, "name": { // Property: Name Description: "A unique, friendly name for the asset composite model.", Type: types.StringType, Required: true, }, "type": { // Property: Type Description: "The type of the composite model. For alarm composite models, this type is AWS/ALARM", Type: types.StringType, Required: true, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, PlanModifiers: []tfsdk.AttributePlanModifier{ Multiset(), }, }, "asset_model_description": { // Property: AssetModelDescription // CloudFormation resource type schema: // { // "description": "A description for the asset model.", // "type": "string" // } Description: "A description for the asset model.", Type: types.StringType, Optional: true, }, "asset_model_hierarchies": { // Property: AssetModelHierarchies // CloudFormation resource type schema: // { // "description": "The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. You can specify up to 10 hierarchies per asset model.", // "insertionOrder": false, // "items": { // "additionalProperties": false, // "description": "Contains information about an asset model hierarchy.", // "properties": { // "ChildAssetModelId": { // "description": "The ID of the asset model. All assets in this hierarchy must be instances of the child AssetModelId asset model.", // "type": "string" // }, // "LogicalId": { // "description": "Customer provided ID for hierarchy.", // "maxLength": 256, // "minLength": 1, // "pattern": "", // "type": "string" // }, // "Name": { // "description": "The name of the asset model hierarchy.", // "type": "string" // } // }, // "required": [ // "LogicalId", // "Name", // "ChildAssetModelId" // ], // "type": "object" // }, // "type": "array" // } Description: "The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. You can specify up to 10 hierarchies per asset model.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "child_asset_model_id": { // Property: ChildAssetModelId Description: "The ID of the asset model. All assets in this hierarchy must be instances of the child AssetModelId asset model.", Type: types.StringType, Required: true, }, "logical_id": { // Property: LogicalId Description: "Customer provided ID for hierarchy.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 256), }, }, "name": { // Property: Name Description: "The name of the asset model hierarchy.", Type: types.StringType, Required: true, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, PlanModifiers: []tfsdk.AttributePlanModifier{ Multiset(), }, }, "asset_model_id": { // Property: AssetModelId // CloudFormation resource type schema: // { // "description": "The ID of the asset model.", // "type": "string" // } Description: "The ID of the asset model.", Type: types.StringType, Computed: true, PlanModifiers: []tfsdk.AttributePlanModifier{ tfsdk.UseStateForUnknown(), }, }, "asset_model_name": { // Property: AssetModelName // CloudFormation resource type schema: // { // "description": "A unique, friendly name for the asset model.", // "type": "string" // } Description: "A unique, friendly name for the asset model.", Type: types.StringType, Required: true, }, "asset_model_properties": { // Property: AssetModelProperties // CloudFormation resource type schema: // { // "description": "The property definitions of the asset model. You can specify up to 200 properties per asset model.", // "insertionOrder": false, // "items": { // "additionalProperties": false, // "description": "Contains information about an asset model property.", // "properties": { // "DataType": { // "description": "The data type of the asset model property.", // "enum": [ // "STRING", // "INTEGER", // "DOUBLE", // "BOOLEAN", // "STRUCT" // ], // "type": "string" // }, // "DataTypeSpec": { // "description": "The data type of the structure for this property.", // "enum": [ // "AWS/ALARM_STATE" // ], // "type": "string" // }, // "LogicalId": { // "description": "Customer provided ID for property.", // "maxLength": 256, // "minLength": 1, // "pattern": "", // "type": "string" // }, // "Name": { // "description": "The name of the asset model property.", // "type": "string" // }, // "Type": { // "additionalProperties": false, // "description": "The property type", // "properties": { // "Attribute": { // "additionalProperties": false, // "properties": { // "DefaultValue": { // "type": "string" // } // }, // "type": "object" // }, // "Metric": { // "additionalProperties": false, // "properties": { // "Expression": { // "description": "The mathematical expression that defines the metric aggregation function. You can specify up to 10 functions per expression.", // "type": "string" // }, // "Variables": { // "description": "The list of variables used in the expression.", // "insertionOrder": false, // "items": { // "additionalProperties": false, // "properties": { // "Name": { // "description": "The friendly name of the variable to be used in the expression.", // "type": "string" // }, // "Value": { // "additionalProperties": false, // "description": "The variable that identifies an asset property from which to use values.", // "properties": { // "HierarchyLogicalId": { // "maxLength": 256, // "minLength": 1, // "pattern": "", // "type": "string" // }, // "PropertyLogicalId": { // "maxLength": 256, // "minLength": 1, // "pattern": "", // "type": "string" // } // }, // "required": [ // "PropertyLogicalId" // ], // "type": "object" // } // }, // "required": [ // "Name", // "Value" // ], // "type": "object" // }, // "type": "array" // }, // "Window": { // "additionalProperties": false, // "description": "The window (time interval) over which AWS IoT SiteWise computes the metric's aggregation expression", // "properties": { // "Tumbling": { // "additionalProperties": false, // "description": "Contains a tumbling window, which is a repeating fixed-sized, non-overlapping, and contiguous time interval. This window is used in metric and aggregation computations.", // "properties": { // "Interval": { // "description": "The time interval for the tumbling window.", // "type": "string" // }, // "Offset": { // "description": "The shift or reference point on timeline for the contiguous time intervals.", // "type": "string" // } // }, // "required": [ // "Interval" // ], // "type": "object" // } // }, // "type": "object" // } // }, // "required": [ // "Expression", // "Variables", // "Window" // ], // "type": "object" // }, // "Transform": { // "additionalProperties": false, // "properties": { // "Expression": { // "description": "The mathematical expression that defines the transformation function. You can specify up to 10 functions per expression.", // "type": "string" // }, // "Variables": { // "description": "The list of variables used in the expression.", // "insertionOrder": false, // "items": { // "additionalProperties": false, // "properties": { // "Name": { // "description": "The friendly name of the variable to be used in the expression.", // "type": "string" // }, // "Value": { // "additionalProperties": false, // "description": "The variable that identifies an asset property from which to use values.", // "properties": { // "HierarchyLogicalId": { // "maxLength": 256, // "minLength": 1, // "pattern": "", // "type": "string" // }, // "PropertyLogicalId": { // "maxLength": 256, // "minLength": 1, // "pattern": "", // "type": "string" // } // }, // "required": [ // "PropertyLogicalId" // ], // "type": "object" // } // }, // "required": [ // "Name", // "Value" // ], // "type": "object" // }, // "type": "array" // } // }, // "required": [ // "Expression", // "Variables" // ], // "type": "object" // }, // "TypeName": { // "enum": [ // "Measurement", // "Attribute", // "Transform", // "Metric" // ], // "type": "string" // } // }, // "required": [ // "TypeName" // ], // "type": "object" // }, // "Unit": { // "description": "The unit of the asset model property, such as Newtons or RPM.", // "type": "string" // } // }, // "required": [ // "LogicalId", // "Name", // "DataType", // "Type" // ], // "type": "object" // }, // "type": "array" // } Description: "The property definitions of the asset model. You can specify up to 200 properties per asset model.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "data_type": { // Property: DataType Description: "The data type of the asset model property.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringInSlice([]string{ "STRING", "INTEGER", "DOUBLE", "BOOLEAN", "STRUCT", }), }, }, "data_type_spec": { // Property: DataTypeSpec Description: "The data type of the structure for this property.", Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringInSlice([]string{ "AWS/ALARM_STATE", }), }, }, "logical_id": { // Property: LogicalId Description: "Customer provided ID for property.", Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 256), }, }, "name": { // Property: Name Description: "The name of the asset model property.", Type: types.StringType, Required: true, }, "type": { // Property: Type Description: "The property type", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "attribute": { // Property: Attribute Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "default_value": { // Property: DefaultValue Type: types.StringType, Optional: true, }, }, ), Optional: true, }, "metric": { // Property: Metric Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "expression": { // Property: Expression Description: "The mathematical expression that defines the metric aggregation function. You can specify up to 10 functions per expression.", Type: types.StringType, Required: true, }, "variables": { // Property: Variables Description: "The list of variables used in the expression.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "name": { // Property: Name Description: "The friendly name of the variable to be used in the expression.", Type: types.StringType, Required: true, }, "value": { // Property: Value Description: "The variable that identifies an asset property from which to use values.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "hierarchy_logical_id": { // Property: HierarchyLogicalId Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 256), }, }, "property_logical_id": { // Property: PropertyLogicalId Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 256), }, }, }, ), Required: true, }, }, tfsdk.ListNestedAttributesOptions{}, ), Required: true, PlanModifiers: []tfsdk.AttributePlanModifier{ Multiset(), }, }, "window": { // Property: Window Description: "The window (time interval) over which AWS IoT SiteWise computes the metric's aggregation expression", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "tumbling": { // Property: Tumbling Description: "Contains a tumbling window, which is a repeating fixed-sized, non-overlapping, and contiguous time interval. This window is used in metric and aggregation computations.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "interval": { // Property: Interval Description: "The time interval for the tumbling window.", Type: types.StringType, Required: true, }, "offset": { // Property: Offset Description: "The shift or reference point on timeline for the contiguous time intervals.", Type: types.StringType, Optional: true, }, }, ), Optional: true, }, }, ), Required: true, }, }, ), Optional: true, }, "transform": { // Property: Transform Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "expression": { // Property: Expression Description: "The mathematical expression that defines the transformation function. You can specify up to 10 functions per expression.", Type: types.StringType, Required: true, }, "variables": { // Property: Variables Description: "The list of variables used in the expression.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "name": { // Property: Name Description: "The friendly name of the variable to be used in the expression.", Type: types.StringType, Required: true, }, "value": { // Property: Value Description: "The variable that identifies an asset property from which to use values.", Attributes: tfsdk.SingleNestedAttributes( map[string]tfsdk.Attribute{ "hierarchy_logical_id": { // Property: HierarchyLogicalId Type: types.StringType, Optional: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 256), }, }, "property_logical_id": { // Property: PropertyLogicalId Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringLenBetween(1, 256), }, }, }, ), Required: true, }, }, tfsdk.ListNestedAttributesOptions{}, ), Required: true, PlanModifiers: []tfsdk.AttributePlanModifier{ Multiset(), }, }, }, ), Optional: true, }, "type_name": { // Property: TypeName Type: types.StringType, Required: true, Validators: []tfsdk.AttributeValidator{ validate.StringInSlice([]string{ "Measurement", "Attribute", "Transform", "Metric", }), }, }, }, ), Required: true, }, "unit": { // Property: Unit Description: "The unit of the asset model property, such as Newtons or RPM.", Type: types.StringType, Optional: true, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, PlanModifiers: []tfsdk.AttributePlanModifier{ Multiset(), }, }, "tags": { // Property: Tags // CloudFormation resource type schema: // { // "description": "A list of key-value pairs that contain metadata for the asset model.", // "insertionOrder": false, // "items": { // "additionalProperties": false, // "properties": { // "Key": { // "type": "string" // }, // "Value": { // "type": "string" // } // }, // "required": [ // "Value", // "Key" // ], // "type": "object" // }, // "type": "array" // } Description: "A list of key-value pairs that contain metadata for the asset model.", Attributes: tfsdk.ListNestedAttributes( map[string]tfsdk.Attribute{ "key": { // Property: Key Type: types.StringType, Required: true, }, "value": { // Property: Value Type: types.StringType, Required: true, }, }, tfsdk.ListNestedAttributesOptions{}, ), Optional: true, PlanModifiers: []tfsdk.AttributePlanModifier{ Multiset(), }, }, } attributes["id"] = tfsdk.Attribute{ Description: "Uniquely identifies the resource.", Type: types.StringType, Computed: true, PlanModifiers: []tfsdk.AttributePlanModifier{ tfsdk.UseStateForUnknown(), }, } schema := tfsdk.Schema{ Description: "Resource schema for AWS::IoTSiteWise::AssetModel", Version: 1, Attributes: attributes, } var opts ResourceTypeOptions opts = opts.WithCloudFormationTypeName("AWS::IoTSiteWise::AssetModel").WithTerraformTypeName("awscc_iotsitewise_asset_model") opts = opts.WithTerraformSchema(schema) opts = opts.WithSyntheticIDAttribute(true) opts = opts.WithAttributeNameMap(map[string]string{ "asset_model_arn": "AssetModelArn", "asset_model_composite_models": "AssetModelCompositeModels", "asset_model_description": "AssetModelDescription", "asset_model_hierarchies": "AssetModelHierarchies", "asset_model_id": "AssetModelId", "asset_model_name": "AssetModelName", "asset_model_properties": "AssetModelProperties", "attribute": "Attribute", "child_asset_model_id": "ChildAssetModelId", "composite_model_properties": "CompositeModelProperties", "data_type": "DataType", "data_type_spec": "DataTypeSpec", "default_value": "DefaultValue", "description": "Description", "expression": "Expression", "hierarchy_logical_id": "HierarchyLogicalId", "interval": "Interval", "key": "Key", "logical_id": "LogicalId", "metric": "Metric", "name": "Name", "offset": "Offset", "property_logical_id": "PropertyLogicalId", "tags": "Tags", "transform": "Transform", "tumbling": "Tumbling", "type": "Type", "type_name": "TypeName", "unit": "Unit", "value": "Value", "variables": "Variables", "window": "Window", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) opts = opts.WithUpdateTimeoutInMinutes(0) resourceType, err := NewResourceType(ctx, opts...) if err != nil { return nil, err } return resourceType, nil }