"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnWorkspace=exports.CfnSyncJob=exports.CfnScene=exports.CfnEntity=exports.CfnComponentType=void 0;var jsiiDeprecationWarnings=()=>{var tmp=require("../../.warnings.jsii.js");return jsiiDeprecationWarnings=()=>tmp,tmp};const JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti");var cdk=()=>{var tmp=require("../../core/lib");return cdk=()=>tmp,tmp},cfn_parse=()=>{var tmp=require("../../core/lib/helpers-internal");return cfn_parse=()=>tmp,tmp},cdk_errors=()=>{var tmp=require("../../core/lib/errors");return cdk_errors=()=>tmp,tmp};class CfnComponentType extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iottwinmaker.CfnComponentType",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoTTwinMaker::ComponentType";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnComponentTypePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnComponentType(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnComponentType(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnComponentType.CFN_RESOURCE_TYPE_NAME}static arnForComponentType(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iottwinmaker_IComponentTypeRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForComponentType),error}return resource.componentTypeRef.componentTypeArn}_componentTypeId;_compositeComponentTypes;_description;_extendsFrom;_functions;_isSingleton;_propertyDefinitions;_propertyGroups;tags;_tagsRaw;_workspaceId;cfnPropertyNames={componentTypeId:"ComponentTypeId",compositeComponentTypes:"CompositeComponentTypes",description:"Description",extendsFrom:"ExtendsFrom",functions:"Functions",isSingleton:"IsSingleton",propertyDefinitions:"PropertyDefinitions",propertyGroups:"PropertyGroups",tags:"Tags",workspaceId:"WorkspaceId"};constructor(scope,id,props){super(scope,id,{type:CfnComponentType.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iottwinmaker_CfnComponentTypeProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnComponentType),error}cdk().requireProperty(props,"componentTypeId",this),cdk().requireProperty(props,"workspaceId",this),this._componentTypeId=props.componentTypeId,this._compositeComponentTypes=props.compositeComponentTypes,this._description=props.description,this._extendsFrom=props.extendsFrom,this._functions=props.functions,this._isSingleton=props.isSingleton,this._propertyDefinitions=props.propertyDefinitions,this._propertyGroups=props.propertyGroups,this.tags=new(cdk()).TagManager(cdk().TagType.MAP,"AWS::IoTTwinMaker::ComponentType",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._workspaceId=props.workspaceId}get componentTypeRef(){return{workspaceId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),componentTypeId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref)),componentTypeArn:this.attrArn}}get componentTypeId(){return this._componentTypeId}set componentTypeId(value){cdk().traceProperty(this.node,"ComponentTypeId"),this._componentTypeId=value}get compositeComponentTypes(){return this._compositeComponentTypes}set compositeComponentTypes(value){cdk().traceProperty(this.node,"CompositeComponentTypes"),this._compositeComponentTypes=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get extendsFrom(){return this._extendsFrom}set extendsFrom(value){cdk().traceProperty(this.node,"ExtendsFrom"),this._extendsFrom=value}get functions(){return this._functions}set functions(value){cdk().traceProperty(this.node,"Functions"),this._functions=value}get isSingleton(){return this._isSingleton}set isSingleton(value){cdk().traceProperty(this.node,"IsSingleton"),this._isSingleton=value}get propertyDefinitions(){return this._propertyDefinitions}set propertyDefinitions(value){cdk().traceProperty(this.node,"PropertyDefinitions"),this._propertyDefinitions=value}get propertyGroups(){return this._propertyGroups}set propertyGroups(value){cdk().traceProperty(this.node,"PropertyGroups"),this._propertyGroups=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get workspaceId(){return this._workspaceId}set workspaceId(value){cdk().traceProperty(this.node,"WorkspaceId"),this._workspaceId=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrCreationDateTime(){return cdk().Token.asString(this.getAtt("CreationDateTime",cdk().ResolutionTypeHint.STRING))}get attrIsAbstract(){return this.getAtt("IsAbstract")}get attrIsSchemaInitialized(){return this.getAtt("IsSchemaInitialized")}get attrStatus(){return this.getAtt("Status")}get attrStatusError(){return this.getAtt("Status.Error")}get attrStatusErrorCode(){return cdk().Token.asString(this.getAtt("Status.Error.Code",cdk().ResolutionTypeHint.STRING))}get attrStatusErrorMessage(){return cdk().Token.asString(this.getAtt("Status.Error.Message",cdk().ResolutionTypeHint.STRING))}get attrStatusState(){return cdk().Token.asString(this.getAtt("Status.State",cdk().ResolutionTypeHint.STRING))}get attrUpdateDateTime(){return cdk().Token.asString(this.getAtt("UpdateDateTime",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{componentTypeId:this._componentTypeId,compositeComponentTypes:this._compositeComponentTypes,description:this._description,extendsFrom:this._extendsFrom,functions:this._functions,isSingleton:this._isSingleton,propertyDefinitions:this._propertyDefinitions,propertyGroups:this._propertyGroups,tags:this.tags.renderTags(),workspaceId:this._workspaceId}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnComponentType.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnComponentTypePropsToCloudFormation(props)}}exports.CfnComponentType=CfnComponentType;function CfnComponentTypeDataValuePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("booleanValue",cdk().validateBoolean)(properties.booleanValue)),errors.collect(cdk().propertyValidator("doubleValue",cdk().validateNumber)(properties.doubleValue)),errors.collect(cdk().propertyValidator("expression",cdk().validateString)(properties.expression)),errors.collect(cdk().propertyValidator("integerValue",cdk().validateNumber)(properties.integerValue)),errors.collect(cdk().propertyValidator("listValue",cdk().listValidator(CfnComponentTypeDataValuePropertyValidator))(properties.listValue)),errors.collect(cdk().propertyValidator("longValue",cdk().validateNumber)(properties.longValue)),errors.collect(cdk().propertyValidator("mapValue",cdk().hashValidator(CfnComponentTypeDataValuePropertyValidator))(properties.mapValue)),errors.collect(cdk().propertyValidator("relationshipValue",cdk().validateObject)(properties.relationshipValue)),errors.collect(cdk().propertyValidator("stringValue",cdk().validateString)(properties.stringValue)),errors.wrap('supplied properties not correct for "DataValueProperty"')}function convertCfnComponentTypeDataValuePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnComponentTypeDataValuePropertyValidator(properties).assertSuccess(),{BooleanValue:cdk().booleanToCloudFormation(properties.booleanValue),DoubleValue:cdk().numberToCloudFormation(properties.doubleValue),Expression:cdk().stringToCloudFormation(properties.expression),IntegerValue:cdk().numberToCloudFormation(properties.integerValue),ListValue:cdk().listMapper(convertCfnComponentTypeDataValuePropertyToCloudFormation)(properties.listValue),LongValue:cdk().numberToCloudFormation(properties.longValue),MapValue:cdk().hashMapper(convertCfnComponentTypeDataValuePropertyToCloudFormation)(properties.mapValue),RelationshipValue:cdk().objectToCloudFormation(properties.relationshipValue),StringValue:cdk().stringToCloudFormation(properties.stringValue)}):properties}function CfnComponentTypeDataValuePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("booleanValue","BooleanValue",properties.BooleanValue!=null?cfn_parse().FromCloudFormation.getBoolean(properties.BooleanValue):void 0),ret.addPropertyResult("doubleValue","DoubleValue",properties.DoubleValue!=null?cfn_parse().FromCloudFormation.getNumber(properties.DoubleValue):void 0),ret.addPropertyResult("expression","Expression",properties.Expression!=null?cfn_parse().FromCloudFormation.getString(properties.Expression):void 0),ret.addPropertyResult("integerValue","IntegerValue",properties.IntegerValue!=null?cfn_parse().FromCloudFormation.getNumber(properties.IntegerValue):void 0),ret.addPropertyResult("listValue","ListValue",properties.ListValue!=null?cfn_parse().FromCloudFormation.getArray(CfnComponentTypeDataValuePropertyFromCloudFormation)(properties.ListValue):void 0),ret.addPropertyResult("longValue","LongValue",properties.LongValue!=null?cfn_parse().FromCloudFormation.getNumber(properties.LongValue):void 0),ret.addPropertyResult("mapValue","MapValue",properties.MapValue!=null?cfn_parse().FromCloudFormation.getMap(CfnComponentTypeDataValuePropertyFromCloudFormation)(properties.MapValue):void 0),ret.addPropertyResult("relationshipValue","RelationshipValue",properties.RelationshipValue!=null?cfn_parse().FromCloudFormation.getAny(properties.RelationshipValue):void 0),ret.addPropertyResult("stringValue","StringValue",properties.StringValue!=null?cfn_parse().FromCloudFormation.getString(properties.StringValue):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnComponentTypeRelationshipPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("relationshipType",cdk().validateString)(properties.relationshipType)),errors.collect(cdk().propertyValidator("targetComponentTypeId",cdk().validateString)(properties.targetComponentTypeId)),errors.wrap('supplied properties not correct for "RelationshipProperty"')}function convertCfnComponentTypeRelationshipPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnComponentTypeRelationshipPropertyValidator(properties).assertSuccess(),{RelationshipType:cdk().stringToCloudFormation(properties.relationshipType),TargetComponentTypeId:cdk().stringToCloudFormation(properties.targetComponentTypeId)}):properties}function CfnComponentTypeRelationshipPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("relationshipType","RelationshipType",properties.RelationshipType!=null?cfn_parse().FromCloudFormation.getString(properties.RelationshipType):void 0),ret.addPropertyResult("targetComponentTypeId","TargetComponentTypeId",properties.TargetComponentTypeId!=null?cfn_parse().FromCloudFormation.getString(properties.TargetComponentTypeId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnComponentTypeDataTypePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("allowedValues",cdk().listValidator(CfnComponentTypeDataValuePropertyValidator))(properties.allowedValues)),errors.collect(cdk().propertyValidator("nestedType",CfnComponentTypeDataTypePropertyValidator)(properties.nestedType)),errors.collect(cdk().propertyValidator("relationship",CfnComponentTypeRelationshipPropertyValidator)(properties.relationship)),errors.collect(cdk().propertyValidator("type",cdk().requiredValidator)(properties.type)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.collect(cdk().propertyValidator("unitOfMeasure",cdk().validateString)(properties.unitOfMeasure)),errors.wrap('supplied properties not correct for "DataTypeProperty"')}function convertCfnComponentTypeDataTypePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnComponentTypeDataTypePropertyValidator(properties).assertSuccess(),{AllowedValues:cdk().listMapper(convertCfnComponentTypeDataValuePropertyToCloudFormation)(properties.allowedValues),NestedType:convertCfnComponentTypeDataTypePropertyToCloudFormation(properties.nestedType),Relationship:convertCfnComponentTypeRelationshipPropertyToCloudFormation(properties.relationship),Type:cdk().stringToCloudFormation(properties.type),UnitOfMeasure:cdk().stringToCloudFormation(properties.unitOfMeasure)}):properties}function CfnComponentTypeDataTypePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("allowedValues","AllowedValues",properties.AllowedValues!=null?cfn_parse().FromCloudFormation.getArray(CfnComponentTypeDataValuePropertyFromCloudFormation)(properties.AllowedValues):void 0),ret.addPropertyResult("nestedType","NestedType",properties.NestedType!=null?CfnComponentTypeDataTypePropertyFromCloudFormation(properties.NestedType):void 0),ret.addPropertyResult("relationship","Relationship",properties.Relationship!=null?CfnComponentTypeRelationshipPropertyFromCloudFormation(properties.Relationship):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addPropertyResult("unitOfMeasure","UnitOfMeasure",properties.UnitOfMeasure!=null?cfn_parse().FromCloudFormation.getString(properties.UnitOfMeasure):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnComponentTypePropertyDefinitionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("configurations",cdk().hashValidator(cdk().validateString))(properties.configurations)),errors.collect(cdk().propertyValidator("dataType",CfnComponentTypeDataTypePropertyValidator)(properties.dataType)),errors.collect(cdk().propertyValidator("defaultValue",CfnComponentTypeDataValuePropertyValidator)(properties.defaultValue)),errors.collect(cdk().propertyValidator("isExternalId",cdk().validateBoolean)(properties.isExternalId)),errors.collect(cdk().propertyValidator("isRequiredInEntity",cdk().validateBoolean)(properties.isRequiredInEntity)),errors.collect(cdk().propertyValidator("isStoredExternally",cdk().validateBoolean)(properties.isStoredExternally)),errors.collect(cdk().propertyValidator("isTimeSeries",cdk().validateBoolean)(properties.isTimeSeries)),errors.wrap('supplied properties not correct for "PropertyDefinitionProperty"')}function convertCfnComponentTypePropertyDefinitionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnComponentTypePropertyDefinitionPropertyValidator(properties).assertSuccess(),{Configurations:cdk().hashMapper(cdk().stringToCloudFormation)(properties.configurations),DataType:convertCfnComponentTypeDataTypePropertyToCloudFormation(properties.dataType),DefaultValue:convertCfnComponentTypeDataValuePropertyToCloudFormation(properties.defaultValue),IsExternalId:cdk().booleanToCloudFormation(properties.isExternalId),IsRequiredInEntity:cdk().booleanToCloudFormation(properties.isRequiredInEntity),IsStoredExternally:cdk().booleanToCloudFormation(properties.isStoredExternally),IsTimeSeries:cdk().booleanToCloudFormation(properties.isTimeSeries)}):properties}function CfnComponentTypePropertyDefinitionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("configurations","Configurations",properties.Configurations!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Configurations):void 0),ret.addPropertyResult("dataType","DataType",properties.DataType!=null?CfnComponentTypeDataTypePropertyFromCloudFormation(properties.DataType):void 0),ret.addPropertyResult("defaultValue","DefaultValue",properties.DefaultValue!=null?CfnComponentTypeDataValuePropertyFromCloudFormation(properties.DefaultValue):void 0),ret.addPropertyResult("isExternalId","IsExternalId",properties.IsExternalId!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IsExternalId):void 0),ret.addPropertyResult("isRequiredInEntity","IsRequiredInEntity",properties.IsRequiredInEntity!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IsRequiredInEntity):void 0),ret.addPropertyResult("isStoredExternally","IsStoredExternally",properties.IsStoredExternally!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IsStoredExternally):void 0),ret.addPropertyResult("isTimeSeries","IsTimeSeries",properties.IsTimeSeries!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IsTimeSeries):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnComponentTypePropertyGroupPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("groupType",cdk().validateString)(properties.groupType)),errors.collect(cdk().propertyValidator("propertyNames",cdk().listValidator(cdk().validateString))(properties.propertyNames)),errors.wrap('supplied properties not correct for "PropertyGroupProperty"')}function convertCfnComponentTypePropertyGroupPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnComponentTypePropertyGroupPropertyValidator(properties).assertSuccess(),{GroupType:cdk().stringToCloudFormation(properties.groupType),PropertyNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.propertyNames)}):properties}function CfnComponentTypePropertyGroupPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("groupType","GroupType",properties.GroupType!=null?cfn_parse().FromCloudFormation.getString(properties.GroupType):void 0),ret.addPropertyResult("propertyNames","PropertyNames",properties.PropertyNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.PropertyNames):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnComponentTypeLambdaFunctionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("arn",cdk().requiredValidator)(properties.arn)),errors.collect(cdk().propertyValidator("arn",cdk().validateString)(properties.arn)),errors.wrap('supplied properties not correct for "LambdaFunctionProperty"')}function convertCfnComponentTypeLambdaFunctionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnComponentTypeLambdaFunctionPropertyValidator(properties).assertSuccess(),{Arn:cdk().stringToCloudFormation(properties.arn)}):properties}function CfnComponentTypeLambdaFunctionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("arn","Arn",properties.Arn!=null?cfn_parse().FromCloudFormation.getString(properties.Arn):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnComponentTypeDataConnectorPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("isNative",cdk().validateBoolean)(properties.isNative)),errors.collect(cdk().propertyValidator("lambda",CfnComponentTypeLambdaFunctionPropertyValidator)(properties.lambda)),errors.wrap('supplied properties not correct for "DataConnectorProperty"')}function convertCfnComponentTypeDataConnectorPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnComponentTypeDataConnectorPropertyValidator(properties).assertSuccess(),{IsNative:cdk().booleanToCloudFormation(properties.isNative),Lambda:convertCfnComponentTypeLambdaFunctionPropertyToCloudFormation(properties.lambda)}):properties}function CfnComponentTypeDataConnectorPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("isNative","IsNative",properties.IsNative!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IsNative):void 0),ret.addPropertyResult("lambda","Lambda",properties.Lambda!=null?CfnComponentTypeLambdaFunctionPropertyFromCloudFormation(properties.Lambda):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnComponentTypeFunctionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("implementedBy",CfnComponentTypeDataConnectorPropertyValidator)(properties.implementedBy)),errors.collect(cdk().propertyValidator("requiredProperties",cdk().listValidator(cdk().validateString))(properties.requiredProperties)),errors.collect(cdk().propertyValidator("scope",cdk().validateString)(properties.scope)),errors.wrap('supplied properties not correct for "FunctionProperty"')}function convertCfnComponentTypeFunctionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnComponentTypeFunctionPropertyValidator(properties).assertSuccess(),{ImplementedBy:convertCfnComponentTypeDataConnectorPropertyToCloudFormation(properties.implementedBy),RequiredProperties:cdk().listMapper(cdk().stringToCloudFormation)(properties.requiredProperties),Scope:cdk().stringToCloudFormation(properties.scope)}):properties}function CfnComponentTypeFunctionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("implementedBy","ImplementedBy",properties.ImplementedBy!=null?CfnComponentTypeDataConnectorPropertyFromCloudFormation(properties.ImplementedBy):void 0),ret.addPropertyResult("requiredProperties","RequiredProperties",properties.RequiredProperties!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.RequiredProperties):void 0),ret.addPropertyResult("scope","Scope",properties.Scope!=null?cfn_parse().FromCloudFormation.getString(properties.Scope):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnComponentTypeCompositeComponentTypePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("componentTypeId",cdk().validateString)(properties.componentTypeId)),errors.wrap('supplied properties not correct for "CompositeComponentTypeProperty"')}function convertCfnComponentTypeCompositeComponentTypePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnComponentTypeCompositeComponentTypePropertyValidator(properties).assertSuccess(),{ComponentTypeId:cdk().stringToCloudFormation(properties.componentTypeId)}):properties}function CfnComponentTypeCompositeComponentTypePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("componentTypeId","ComponentTypeId",properties.ComponentTypeId!=null?cfn_parse().FromCloudFormation.getString(properties.ComponentTypeId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnComponentTypeErrorPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("code",cdk().validateString)(properties.code)),errors.collect(cdk().propertyValidator("message",cdk().validateString)(properties.message)),errors.wrap('supplied properties not correct for "ErrorProperty"')}function convertCfnComponentTypeErrorPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnComponentTypeErrorPropertyValidator(properties).assertSuccess(),{Code:cdk().stringToCloudFormation(properties.code),Message:cdk().stringToCloudFormation(properties.message)}):properties}function CfnComponentTypeErrorPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("code","Code",properties.Code!=null?cfn_parse().FromCloudFormation.getString(properties.Code):void 0),ret.addPropertyResult("message","Message",properties.Message!=null?cfn_parse().FromCloudFormation.getString(properties.Message):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnComponentTypeStatusPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("error",CfnComponentTypeErrorPropertyValidator)(properties.error)),errors.collect(cdk().propertyValidator("state",cdk().validateString)(properties.state)),errors.wrap('supplied properties not correct for "StatusProperty"')}function convertCfnComponentTypeStatusPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnComponentTypeStatusPropertyValidator(properties).assertSuccess(),{Error:convertCfnComponentTypeErrorPropertyToCloudFormation(properties.error),State:cdk().stringToCloudFormation(properties.state)}):properties}function CfnComponentTypeStatusPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("error","Error",properties.Error!=null?CfnComponentTypeErrorPropertyFromCloudFormation(properties.Error):void 0),ret.addPropertyResult("state","State",properties.State!=null?cfn_parse().FromCloudFormation.getString(properties.State):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnComponentTypePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("componentTypeId",cdk().requiredValidator)(properties.componentTypeId)),errors.collect(cdk().propertyValidator("componentTypeId",cdk().validateString)(properties.componentTypeId)),errors.collect(cdk().propertyValidator("compositeComponentTypes",cdk().hashValidator(CfnComponentTypeCompositeComponentTypePropertyValidator))(properties.compositeComponentTypes)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("extendsFrom",cdk().listValidator(cdk().validateString))(properties.extendsFrom)),errors.collect(cdk().propertyValidator("functions",cdk().hashValidator(CfnComponentTypeFunctionPropertyValidator))(properties.functions)),errors.collect(cdk().propertyValidator("isSingleton",cdk().validateBoolean)(properties.isSingleton)),errors.collect(cdk().propertyValidator("propertyDefinitions",cdk().hashValidator(CfnComponentTypePropertyDefinitionPropertyValidator))(properties.propertyDefinitions)),errors.collect(cdk().propertyValidator("propertyGroups",cdk().hashValidator(CfnComponentTypePropertyGroupPropertyValidator))(properties.propertyGroups)),errors.collect(cdk().propertyValidator("tags",cdk().hashValidator(cdk().validateString))(properties.tags)),errors.collect(cdk().propertyValidator("workspaceId",cdk().requiredValidator)(properties.workspaceId)),errors.collect(cdk().propertyValidator("workspaceId",cdk().validateString)(properties.workspaceId)),errors.wrap('supplied properties not correct for "CfnComponentTypeProps"')}function convertCfnComponentTypePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnComponentTypePropsValidator(properties).assertSuccess(),{ComponentTypeId:cdk().stringToCloudFormation(properties.componentTypeId),CompositeComponentTypes:cdk().hashMapper(convertCfnComponentTypeCompositeComponentTypePropertyToCloudFormation)(properties.compositeComponentTypes),Description:cdk().stringToCloudFormation(properties.description),ExtendsFrom:cdk().listMapper(cdk().stringToCloudFormation)(properties.extendsFrom),Functions:cdk().hashMapper(convertCfnComponentTypeFunctionPropertyToCloudFormation)(properties.functions),IsSingleton:cdk().booleanToCloudFormation(properties.isSingleton),PropertyDefinitions:cdk().hashMapper(convertCfnComponentTypePropertyDefinitionPropertyToCloudFormation)(properties.propertyDefinitions),PropertyGroups:cdk().hashMapper(convertCfnComponentTypePropertyGroupPropertyToCloudFormation)(properties.propertyGroups),Tags:cdk().hashMapper(cdk().stringToCloudFormation)(properties.tags),WorkspaceId:cdk().stringToCloudFormation(properties.workspaceId)}):properties}function CfnComponentTypePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("componentTypeId","ComponentTypeId",properties.ComponentTypeId!=null?cfn_parse().FromCloudFormation.getString(properties.ComponentTypeId):void 0),ret.addPropertyResult("compositeComponentTypes","CompositeComponentTypes",properties.CompositeComponentTypes!=null?cfn_parse().FromCloudFormation.getMap(CfnComponentTypeCompositeComponentTypePropertyFromCloudFormation)(properties.CompositeComponentTypes):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("extendsFrom","ExtendsFrom",properties.ExtendsFrom!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.ExtendsFrom):void 0),ret.addPropertyResult("functions","Functions",properties.Functions!=null?cfn_parse().FromCloudFormation.getMap(CfnComponentTypeFunctionPropertyFromCloudFormation)(properties.Functions):void 0),ret.addPropertyResult("isSingleton","IsSingleton",properties.IsSingleton!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IsSingleton):void 0),ret.addPropertyResult("propertyDefinitions","PropertyDefinitions",properties.PropertyDefinitions!=null?cfn_parse().FromCloudFormation.getMap(CfnComponentTypePropertyDefinitionPropertyFromCloudFormation)(properties.PropertyDefinitions):void 0),ret.addPropertyResult("propertyGroups","PropertyGroups",properties.PropertyGroups!=null?cfn_parse().FromCloudFormation.getMap(CfnComponentTypePropertyGroupPropertyFromCloudFormation)(properties.PropertyGroups):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Tags):void 0),ret.addPropertyResult("workspaceId","WorkspaceId",properties.WorkspaceId!=null?cfn_parse().FromCloudFormation.getString(properties.WorkspaceId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnComponentTypeRelationshipValuePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("targetComponentName",cdk().validateString)(properties.targetComponentName)),errors.collect(cdk().propertyValidator("targetEntityId",cdk().validateString)(properties.targetEntityId)),errors.wrap('supplied properties not correct for "RelationshipValueProperty"')}function convertCfnComponentTypeRelationshipValuePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnComponentTypeRelationshipValuePropertyValidator(properties).assertSuccess(),{TargetComponentName:cdk().stringToCloudFormation(properties.targetComponentName),TargetEntityId:cdk().stringToCloudFormation(properties.targetEntityId)}):properties}function CfnComponentTypeRelationshipValuePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("targetComponentName","TargetComponentName",properties.TargetComponentName!=null?cfn_parse().FromCloudFormation.getString(properties.TargetComponentName):void 0),ret.addPropertyResult("targetEntityId","TargetEntityId",properties.TargetEntityId!=null?cfn_parse().FromCloudFormation.getString(properties.TargetEntityId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnEntity extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iottwinmaker.CfnEntity",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoTTwinMaker::Entity";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnEntityPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnEntity(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnEntity(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnEntity.CFN_RESOURCE_TYPE_NAME}static arnForEntity(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iottwinmaker_IEntityRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForEntity),error}return resource.entityRef.entityArn}_components;_compositeComponents;_description;_entityId;_entityName;_parentEntityId;tags;_tagsRaw;_workspaceId;cfnPropertyNames={components:"Components",compositeComponents:"CompositeComponents",description:"Description",entityId:"EntityId",entityName:"EntityName",parentEntityId:"ParentEntityId",tags:"Tags",workspaceId:"WorkspaceId"};constructor(scope,id,props){super(scope,id,{type:CfnEntity.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iottwinmaker_CfnEntityProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnEntity),error}cdk().requireProperty(props,"entityName",this),cdk().requireProperty(props,"workspaceId",this),this._components=props.components,this._compositeComponents=props.compositeComponents,this._description=props.description,this._entityId=props.entityId,this._entityName=props.entityName,this._parentEntityId=props.parentEntityId,this.tags=new(cdk()).TagManager(cdk().TagType.MAP,"AWS::IoTTwinMaker::Entity",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._workspaceId=props.workspaceId}get entityRef(){return{workspaceId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),entityId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref)),entityArn:this.attrArn}}get components(){return this._components}set components(value){cdk().traceProperty(this.node,"Components"),this._components=value}get compositeComponents(){return this._compositeComponents}set compositeComponents(value){cdk().traceProperty(this.node,"CompositeComponents"),this._compositeComponents=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get entityId(){return this._entityId}set entityId(value){cdk().traceProperty(this.node,"EntityId"),this._entityId=value}get entityName(){return this._entityName}set entityName(value){cdk().traceProperty(this.node,"EntityName"),this._entityName=value}get parentEntityId(){return this._parentEntityId}set parentEntityId(value){cdk().traceProperty(this.node,"ParentEntityId"),this._parentEntityId=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get workspaceId(){return this._workspaceId}set workspaceId(value){cdk().traceProperty(this.node,"WorkspaceId"),this._workspaceId=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrCreationDateTime(){return cdk().Token.asString(this.getAtt("CreationDateTime",cdk().ResolutionTypeHint.STRING))}get attrHasChildEntities(){return this.getAtt("HasChildEntities")}get attrStatus(){return this.getAtt("Status")}get attrStatusError(){return this.getAtt("Status.Error")}get attrStatusErrorCode(){return cdk().Token.asString(this.getAtt("Status.Error.Code",cdk().ResolutionTypeHint.STRING))}get attrStatusErrorMessage(){return cdk().Token.asString(this.getAtt("Status.Error.Message",cdk().ResolutionTypeHint.STRING))}get attrStatusState(){return cdk().Token.asString(this.getAtt("Status.State",cdk().ResolutionTypeHint.STRING))}get attrUpdateDateTime(){return cdk().Token.asString(this.getAtt("UpdateDateTime",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{components:this._components,compositeComponents:this._compositeComponents,description:this._description,entityId:this._entityId,entityName:this._entityName,parentEntityId:this._parentEntityId,tags:this.tags.renderTags(),workspaceId:this._workspaceId}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnEntity.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnEntityPropsToCloudFormation(props)}}exports.CfnEntity=CfnEntity;function CfnEntityStatusPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("error",cdk().validateObject)(properties.error)),errors.collect(cdk().propertyValidator("state",cdk().validateString)(properties.state)),errors.wrap('supplied properties not correct for "StatusProperty"')}function convertCfnEntityStatusPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEntityStatusPropertyValidator(properties).assertSuccess(),{Error:cdk().objectToCloudFormation(properties.error),State:cdk().stringToCloudFormation(properties.state)}):properties}function CfnEntityStatusPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("error","Error",properties.Error!=null?cfn_parse().FromCloudFormation.getAny(properties.Error):void 0),ret.addPropertyResult("state","State",properties.State!=null?cfn_parse().FromCloudFormation.getString(properties.State):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEntityPropertyGroupPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("groupType",cdk().validateString)(properties.groupType)),errors.collect(cdk().propertyValidator("propertyNames",cdk().listValidator(cdk().validateString))(properties.propertyNames)),errors.wrap('supplied properties not correct for "PropertyGroupProperty"')}function convertCfnEntityPropertyGroupPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEntityPropertyGroupPropertyValidator(properties).assertSuccess(),{GroupType:cdk().stringToCloudFormation(properties.groupType),PropertyNames:cdk().listMapper(cdk().stringToCloudFormation)(properties.propertyNames)}):properties}function CfnEntityPropertyGroupPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("groupType","GroupType",properties.GroupType!=null?cfn_parse().FromCloudFormation.getString(properties.GroupType):void 0),ret.addPropertyResult("propertyNames","PropertyNames",properties.PropertyNames!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.PropertyNames):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEntityDataValuePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("booleanValue",cdk().validateBoolean)(properties.booleanValue)),errors.collect(cdk().propertyValidator("doubleValue",cdk().validateNumber)(properties.doubleValue)),errors.collect(cdk().propertyValidator("expression",cdk().validateString)(properties.expression)),errors.collect(cdk().propertyValidator("integerValue",cdk().validateNumber)(properties.integerValue)),errors.collect(cdk().propertyValidator("listValue",cdk().listValidator(CfnEntityDataValuePropertyValidator))(properties.listValue)),errors.collect(cdk().propertyValidator("longValue",cdk().validateNumber)(properties.longValue)),errors.collect(cdk().propertyValidator("mapValue",cdk().hashValidator(CfnEntityDataValuePropertyValidator))(properties.mapValue)),errors.collect(cdk().propertyValidator("relationshipValue",cdk().validateObject)(properties.relationshipValue)),errors.collect(cdk().propertyValidator("stringValue",cdk().validateString)(properties.stringValue)),errors.wrap('supplied properties not correct for "DataValueProperty"')}function convertCfnEntityDataValuePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEntityDataValuePropertyValidator(properties).assertSuccess(),{BooleanValue:cdk().booleanToCloudFormation(properties.booleanValue),DoubleValue:cdk().numberToCloudFormation(properties.doubleValue),Expression:cdk().stringToCloudFormation(properties.expression),IntegerValue:cdk().numberToCloudFormation(properties.integerValue),ListValue:cdk().listMapper(convertCfnEntityDataValuePropertyToCloudFormation)(properties.listValue),LongValue:cdk().numberToCloudFormation(properties.longValue),MapValue:cdk().hashMapper(convertCfnEntityDataValuePropertyToCloudFormation)(properties.mapValue),RelationshipValue:cdk().objectToCloudFormation(properties.relationshipValue),StringValue:cdk().stringToCloudFormation(properties.stringValue)}):properties}function CfnEntityDataValuePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("booleanValue","BooleanValue",properties.BooleanValue!=null?cfn_parse().FromCloudFormation.getBoolean(properties.BooleanValue):void 0),ret.addPropertyResult("doubleValue","DoubleValue",properties.DoubleValue!=null?cfn_parse().FromCloudFormation.getNumber(properties.DoubleValue):void 0),ret.addPropertyResult("expression","Expression",properties.Expression!=null?cfn_parse().FromCloudFormation.getString(properties.Expression):void 0),ret.addPropertyResult("integerValue","IntegerValue",properties.IntegerValue!=null?cfn_parse().FromCloudFormation.getNumber(properties.IntegerValue):void 0),ret.addPropertyResult("listValue","ListValue",properties.ListValue!=null?cfn_parse().FromCloudFormation.getArray(CfnEntityDataValuePropertyFromCloudFormation)(properties.ListValue):void 0),ret.addPropertyResult("longValue","LongValue",properties.LongValue!=null?cfn_parse().FromCloudFormation.getNumber(properties.LongValue):void 0),ret.addPropertyResult("mapValue","MapValue",properties.MapValue!=null?cfn_parse().FromCloudFormation.getMap(CfnEntityDataValuePropertyFromCloudFormation)(properties.MapValue):void 0),ret.addPropertyResult("relationshipValue","RelationshipValue",properties.RelationshipValue!=null?cfn_parse().FromCloudFormation.getAny(properties.RelationshipValue):void 0),ret.addPropertyResult("stringValue","StringValue",properties.StringValue!=null?cfn_parse().FromCloudFormation.getString(properties.StringValue):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEntityPropertyPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("definition",cdk().validateObject)(properties.definition)),errors.collect(cdk().propertyValidator("value",CfnEntityDataValuePropertyValidator)(properties.value)),errors.wrap('supplied properties not correct for "PropertyProperty"')}function convertCfnEntityPropertyPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEntityPropertyPropertyValidator(properties).assertSuccess(),{Definition:cdk().objectToCloudFormation(properties.definition),Value:convertCfnEntityDataValuePropertyToCloudFormation(properties.value)}):properties}function CfnEntityPropertyPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("definition","Definition",properties.Definition!=null?cfn_parse().FromCloudFormation.getAny(properties.Definition):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?CfnEntityDataValuePropertyFromCloudFormation(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEntityComponentPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("componentName",cdk().validateString)(properties.componentName)),errors.collect(cdk().propertyValidator("componentTypeId",cdk().validateString)(properties.componentTypeId)),errors.collect(cdk().propertyValidator("definedIn",cdk().validateString)(properties.definedIn)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("properties",cdk().hashValidator(CfnEntityPropertyPropertyValidator))(properties.properties)),errors.collect(cdk().propertyValidator("propertyGroups",cdk().hashValidator(CfnEntityPropertyGroupPropertyValidator))(properties.propertyGroups)),errors.collect(cdk().propertyValidator("status",CfnEntityStatusPropertyValidator)(properties.status)),errors.wrap('supplied properties not correct for "ComponentProperty"')}function convertCfnEntityComponentPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEntityComponentPropertyValidator(properties).assertSuccess(),{ComponentName:cdk().stringToCloudFormation(properties.componentName),ComponentTypeId:cdk().stringToCloudFormation(properties.componentTypeId),DefinedIn:cdk().stringToCloudFormation(properties.definedIn),Description:cdk().stringToCloudFormation(properties.description),Properties:cdk().hashMapper(convertCfnEntityPropertyPropertyToCloudFormation)(properties.properties),PropertyGroups:cdk().hashMapper(convertCfnEntityPropertyGroupPropertyToCloudFormation)(properties.propertyGroups),Status:convertCfnEntityStatusPropertyToCloudFormation(properties.status)}):properties}function CfnEntityComponentPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("componentName","ComponentName",properties.ComponentName!=null?cfn_parse().FromCloudFormation.getString(properties.ComponentName):void 0),ret.addPropertyResult("componentTypeId","ComponentTypeId",properties.ComponentTypeId!=null?cfn_parse().FromCloudFormation.getString(properties.ComponentTypeId):void 0),ret.addPropertyResult("definedIn","DefinedIn",properties.DefinedIn!=null?cfn_parse().FromCloudFormation.getString(properties.DefinedIn):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("properties","Properties",properties.Properties!=null?cfn_parse().FromCloudFormation.getMap(CfnEntityPropertyPropertyFromCloudFormation)(properties.Properties):void 0),ret.addPropertyResult("propertyGroups","PropertyGroups",properties.PropertyGroups!=null?cfn_parse().FromCloudFormation.getMap(CfnEntityPropertyGroupPropertyFromCloudFormation)(properties.PropertyGroups):void 0),ret.addPropertyResult("status","Status",properties.Status!=null?CfnEntityStatusPropertyFromCloudFormation(properties.Status):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEntityCompositeComponentPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("componentName",cdk().validateString)(properties.componentName)),errors.collect(cdk().propertyValidator("componentPath",cdk().validateString)(properties.componentPath)),errors.collect(cdk().propertyValidator("componentTypeId",cdk().validateString)(properties.componentTypeId)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("properties",cdk().hashValidator(CfnEntityPropertyPropertyValidator))(properties.properties)),errors.collect(cdk().propertyValidator("propertyGroups",cdk().hashValidator(CfnEntityPropertyGroupPropertyValidator))(properties.propertyGroups)),errors.collect(cdk().propertyValidator("status",CfnEntityStatusPropertyValidator)(properties.status)),errors.wrap('supplied properties not correct for "CompositeComponentProperty"')}function convertCfnEntityCompositeComponentPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEntityCompositeComponentPropertyValidator(properties).assertSuccess(),{ComponentName:cdk().stringToCloudFormation(properties.componentName),ComponentPath:cdk().stringToCloudFormation(properties.componentPath),ComponentTypeId:cdk().stringToCloudFormation(properties.componentTypeId),Description:cdk().stringToCloudFormation(properties.description),Properties:cdk().hashMapper(convertCfnEntityPropertyPropertyToCloudFormation)(properties.properties),PropertyGroups:cdk().hashMapper(convertCfnEntityPropertyGroupPropertyToCloudFormation)(properties.propertyGroups),Status:convertCfnEntityStatusPropertyToCloudFormation(properties.status)}):properties}function CfnEntityCompositeComponentPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("componentName","ComponentName",properties.ComponentName!=null?cfn_parse().FromCloudFormation.getString(properties.ComponentName):void 0),ret.addPropertyResult("componentPath","ComponentPath",properties.ComponentPath!=null?cfn_parse().FromCloudFormation.getString(properties.ComponentPath):void 0),ret.addPropertyResult("componentTypeId","ComponentTypeId",properties.ComponentTypeId!=null?cfn_parse().FromCloudFormation.getString(properties.ComponentTypeId):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("properties","Properties",properties.Properties!=null?cfn_parse().FromCloudFormation.getMap(CfnEntityPropertyPropertyFromCloudFormation)(properties.Properties):void 0),ret.addPropertyResult("propertyGroups","PropertyGroups",properties.PropertyGroups!=null?cfn_parse().FromCloudFormation.getMap(CfnEntityPropertyGroupPropertyFromCloudFormation)(properties.PropertyGroups):void 0),ret.addPropertyResult("status","Status",properties.Status!=null?CfnEntityStatusPropertyFromCloudFormation(properties.Status):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEntityErrorPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("code",cdk().validateString)(properties.code)),errors.collect(cdk().propertyValidator("message",cdk().validateString)(properties.message)),errors.wrap('supplied properties not correct for "ErrorProperty"')}function convertCfnEntityErrorPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEntityErrorPropertyValidator(properties).assertSuccess(),{Code:cdk().stringToCloudFormation(properties.code),Message:cdk().stringToCloudFormation(properties.message)}):properties}function CfnEntityErrorPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("code","Code",properties.Code!=null?cfn_parse().FromCloudFormation.getString(properties.Code):void 0),ret.addPropertyResult("message","Message",properties.Message!=null?cfn_parse().FromCloudFormation.getString(properties.Message):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEntityPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("components",cdk().hashValidator(CfnEntityComponentPropertyValidator))(properties.components)),errors.collect(cdk().propertyValidator("compositeComponents",cdk().hashValidator(CfnEntityCompositeComponentPropertyValidator))(properties.compositeComponents)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("entityId",cdk().validateString)(properties.entityId)),errors.collect(cdk().propertyValidator("entityName",cdk().requiredValidator)(properties.entityName)),errors.collect(cdk().propertyValidator("entityName",cdk().validateString)(properties.entityName)),errors.collect(cdk().propertyValidator("parentEntityId",cdk().validateString)(properties.parentEntityId)),errors.collect(cdk().propertyValidator("tags",cdk().hashValidator(cdk().validateString))(properties.tags)),errors.collect(cdk().propertyValidator("workspaceId",cdk().requiredValidator)(properties.workspaceId)),errors.collect(cdk().propertyValidator("workspaceId",cdk().validateString)(properties.workspaceId)),errors.wrap('supplied properties not correct for "CfnEntityProps"')}function convertCfnEntityPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEntityPropsValidator(properties).assertSuccess(),{Components:cdk().hashMapper(convertCfnEntityComponentPropertyToCloudFormation)(properties.components),CompositeComponents:cdk().hashMapper(convertCfnEntityCompositeComponentPropertyToCloudFormation)(properties.compositeComponents),Description:cdk().stringToCloudFormation(properties.description),EntityId:cdk().stringToCloudFormation(properties.entityId),EntityName:cdk().stringToCloudFormation(properties.entityName),ParentEntityId:cdk().stringToCloudFormation(properties.parentEntityId),Tags:cdk().hashMapper(cdk().stringToCloudFormation)(properties.tags),WorkspaceId:cdk().stringToCloudFormation(properties.workspaceId)}):properties}function CfnEntityPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("components","Components",properties.Components!=null?cfn_parse().FromCloudFormation.getMap(CfnEntityComponentPropertyFromCloudFormation)(properties.Components):void 0),ret.addPropertyResult("compositeComponents","CompositeComponents",properties.CompositeComponents!=null?cfn_parse().FromCloudFormation.getMap(CfnEntityCompositeComponentPropertyFromCloudFormation)(properties.CompositeComponents):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("entityId","EntityId",properties.EntityId!=null?cfn_parse().FromCloudFormation.getString(properties.EntityId):void 0),ret.addPropertyResult("entityName","EntityName",properties.EntityName!=null?cfn_parse().FromCloudFormation.getString(properties.EntityName):void 0),ret.addPropertyResult("parentEntityId","ParentEntityId",properties.ParentEntityId!=null?cfn_parse().FromCloudFormation.getString(properties.ParentEntityId):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Tags):void 0),ret.addPropertyResult("workspaceId","WorkspaceId",properties.WorkspaceId!=null?cfn_parse().FromCloudFormation.getString(properties.WorkspaceId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEntityRelationshipPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("relationshipType",cdk().validateString)(properties.relationshipType)),errors.collect(cdk().propertyValidator("targetComponentTypeId",cdk().validateString)(properties.targetComponentTypeId)),errors.wrap('supplied properties not correct for "RelationshipProperty"')}function convertCfnEntityRelationshipPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEntityRelationshipPropertyValidator(properties).assertSuccess(),{RelationshipType:cdk().stringToCloudFormation(properties.relationshipType),TargetComponentTypeId:cdk().stringToCloudFormation(properties.targetComponentTypeId)}):properties}function CfnEntityRelationshipPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("relationshipType","RelationshipType",properties.RelationshipType!=null?cfn_parse().FromCloudFormation.getString(properties.RelationshipType):void 0),ret.addPropertyResult("targetComponentTypeId","TargetComponentTypeId",properties.TargetComponentTypeId!=null?cfn_parse().FromCloudFormation.getString(properties.TargetComponentTypeId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEntityDataTypePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("allowedValues",cdk().listValidator(CfnEntityDataValuePropertyValidator))(properties.allowedValues)),errors.collect(cdk().propertyValidator("nestedType",CfnEntityDataTypePropertyValidator)(properties.nestedType)),errors.collect(cdk().propertyValidator("relationship",CfnEntityRelationshipPropertyValidator)(properties.relationship)),errors.collect(cdk().propertyValidator("type",cdk().validateString)(properties.type)),errors.collect(cdk().propertyValidator("unitOfMeasure",cdk().validateString)(properties.unitOfMeasure)),errors.wrap('supplied properties not correct for "DataTypeProperty"')}function convertCfnEntityDataTypePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEntityDataTypePropertyValidator(properties).assertSuccess(),{AllowedValues:cdk().listMapper(convertCfnEntityDataValuePropertyToCloudFormation)(properties.allowedValues),NestedType:convertCfnEntityDataTypePropertyToCloudFormation(properties.nestedType),Relationship:convertCfnEntityRelationshipPropertyToCloudFormation(properties.relationship),Type:cdk().stringToCloudFormation(properties.type),UnitOfMeasure:cdk().stringToCloudFormation(properties.unitOfMeasure)}):properties}function CfnEntityDataTypePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("allowedValues","AllowedValues",properties.AllowedValues!=null?cfn_parse().FromCloudFormation.getArray(CfnEntityDataValuePropertyFromCloudFormation)(properties.AllowedValues):void 0),ret.addPropertyResult("nestedType","NestedType",properties.NestedType!=null?CfnEntityDataTypePropertyFromCloudFormation(properties.NestedType):void 0),ret.addPropertyResult("relationship","Relationship",properties.Relationship!=null?CfnEntityRelationshipPropertyFromCloudFormation(properties.Relationship):void 0),ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addPropertyResult("unitOfMeasure","UnitOfMeasure",properties.UnitOfMeasure!=null?cfn_parse().FromCloudFormation.getString(properties.UnitOfMeasure):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEntityDefinitionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("configuration",cdk().hashValidator(cdk().validateString))(properties.configuration)),errors.collect(cdk().propertyValidator("dataType",CfnEntityDataTypePropertyValidator)(properties.dataType)),errors.collect(cdk().propertyValidator("defaultValue",CfnEntityDataValuePropertyValidator)(properties.defaultValue)),errors.collect(cdk().propertyValidator("isExternalId",cdk().validateBoolean)(properties.isExternalId)),errors.collect(cdk().propertyValidator("isFinal",cdk().validateBoolean)(properties.isFinal)),errors.collect(cdk().propertyValidator("isImported",cdk().validateBoolean)(properties.isImported)),errors.collect(cdk().propertyValidator("isInherited",cdk().validateBoolean)(properties.isInherited)),errors.collect(cdk().propertyValidator("isRequiredInEntity",cdk().validateBoolean)(properties.isRequiredInEntity)),errors.collect(cdk().propertyValidator("isStoredExternally",cdk().validateBoolean)(properties.isStoredExternally)),errors.collect(cdk().propertyValidator("isTimeSeries",cdk().validateBoolean)(properties.isTimeSeries)),errors.wrap('supplied properties not correct for "DefinitionProperty"')}function convertCfnEntityDefinitionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEntityDefinitionPropertyValidator(properties).assertSuccess(),{Configuration:cdk().hashMapper(cdk().stringToCloudFormation)(properties.configuration),DataType:convertCfnEntityDataTypePropertyToCloudFormation(properties.dataType),DefaultValue:convertCfnEntityDataValuePropertyToCloudFormation(properties.defaultValue),IsExternalId:cdk().booleanToCloudFormation(properties.isExternalId),IsFinal:cdk().booleanToCloudFormation(properties.isFinal),IsImported:cdk().booleanToCloudFormation(properties.isImported),IsInherited:cdk().booleanToCloudFormation(properties.isInherited),IsRequiredInEntity:cdk().booleanToCloudFormation(properties.isRequiredInEntity),IsStoredExternally:cdk().booleanToCloudFormation(properties.isStoredExternally),IsTimeSeries:cdk().booleanToCloudFormation(properties.isTimeSeries)}):properties}function CfnEntityDefinitionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("configuration","Configuration",properties.Configuration!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Configuration):void 0),ret.addPropertyResult("dataType","DataType",properties.DataType!=null?CfnEntityDataTypePropertyFromCloudFormation(properties.DataType):void 0),ret.addPropertyResult("defaultValue","DefaultValue",properties.DefaultValue!=null?CfnEntityDataValuePropertyFromCloudFormation(properties.DefaultValue):void 0),ret.addPropertyResult("isExternalId","IsExternalId",properties.IsExternalId!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IsExternalId):void 0),ret.addPropertyResult("isFinal","IsFinal",properties.IsFinal!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IsFinal):void 0),ret.addPropertyResult("isImported","IsImported",properties.IsImported!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IsImported):void 0),ret.addPropertyResult("isInherited","IsInherited",properties.IsInherited!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IsInherited):void 0),ret.addPropertyResult("isRequiredInEntity","IsRequiredInEntity",properties.IsRequiredInEntity!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IsRequiredInEntity):void 0),ret.addPropertyResult("isStoredExternally","IsStoredExternally",properties.IsStoredExternally!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IsStoredExternally):void 0),ret.addPropertyResult("isTimeSeries","IsTimeSeries",properties.IsTimeSeries!=null?cfn_parse().FromCloudFormation.getBoolean(properties.IsTimeSeries):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnEntityRelationshipValuePropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("targetComponentName",cdk().validateString)(properties.targetComponentName)),errors.collect(cdk().propertyValidator("targetEntityId",cdk().validateString)(properties.targetEntityId)),errors.wrap('supplied properties not correct for "RelationshipValueProperty"')}function convertCfnEntityRelationshipValuePropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnEntityRelationshipValuePropertyValidator(properties).assertSuccess(),{TargetComponentName:cdk().stringToCloudFormation(properties.targetComponentName),TargetEntityId:cdk().stringToCloudFormation(properties.targetEntityId)}):properties}function CfnEntityRelationshipValuePropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("targetComponentName","TargetComponentName",properties.TargetComponentName!=null?cfn_parse().FromCloudFormation.getString(properties.TargetComponentName):void 0),ret.addPropertyResult("targetEntityId","TargetEntityId",properties.TargetEntityId!=null?cfn_parse().FromCloudFormation.getString(properties.TargetEntityId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnScene extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iottwinmaker.CfnScene",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoTTwinMaker::Scene";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnScenePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnScene(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnScene(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnScene.CFN_RESOURCE_TYPE_NAME}static arnForScene(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iottwinmaker_ISceneRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForScene),error}return resource.sceneRef.sceneArn}_capabilities;_contentLocation;_description;_sceneId;_sceneMetadata;tags;_tagsRaw;_workspaceId;cfnPropertyNames={capabilities:"Capabilities",contentLocation:"ContentLocation",description:"Description",sceneId:"SceneId",sceneMetadata:"SceneMetadata",tags:"Tags",workspaceId:"WorkspaceId"};constructor(scope,id,props){super(scope,id,{type:CfnScene.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iottwinmaker_CfnSceneProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnScene),error}cdk().requireProperty(props,"contentLocation",this),cdk().requireProperty(props,"sceneId",this),cdk().requireProperty(props,"workspaceId",this),this._capabilities=props.capabilities,this._contentLocation=props.contentLocation,this._description=props.description,this._sceneId=props.sceneId,this._sceneMetadata=props.sceneMetadata,this.tags=new(cdk()).TagManager(cdk().TagType.MAP,"AWS::IoTTwinMaker::Scene",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._workspaceId=props.workspaceId}get sceneRef(){return{workspaceId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),sceneId:cdk().Fn.select(1,cdk().Fn.split("|",this.ref)),sceneArn:this.attrArn}}get capabilities(){return this._capabilities}set capabilities(value){cdk().traceProperty(this.node,"Capabilities"),this._capabilities=value}get contentLocation(){return this._contentLocation}set contentLocation(value){cdk().traceProperty(this.node,"ContentLocation"),this._contentLocation=value}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get sceneId(){return this._sceneId}set sceneId(value){cdk().traceProperty(this.node,"SceneId"),this._sceneId=value}get sceneMetadata(){return this._sceneMetadata}set sceneMetadata(value){cdk().traceProperty(this.node,"SceneMetadata"),this._sceneMetadata=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get workspaceId(){return this._workspaceId}set workspaceId(value){cdk().traceProperty(this.node,"WorkspaceId"),this._workspaceId=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrCreationDateTime(){return cdk().Token.asString(this.getAtt("CreationDateTime",cdk().ResolutionTypeHint.STRING))}get attrGeneratedSceneMetadata(){return this.getAtt("GeneratedSceneMetadata")}get attrUpdateDateTime(){return cdk().Token.asString(this.getAtt("UpdateDateTime",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{capabilities:this._capabilities,contentLocation:this._contentLocation,description:this._description,sceneId:this._sceneId,sceneMetadata:this._sceneMetadata,tags:this.tags.renderTags(),workspaceId:this._workspaceId}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnScene.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnScenePropsToCloudFormation(props)}}exports.CfnScene=CfnScene;function CfnScenePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("capabilities",cdk().listValidator(cdk().validateString))(properties.capabilities)),errors.collect(cdk().propertyValidator("contentLocation",cdk().requiredValidator)(properties.contentLocation)),errors.collect(cdk().propertyValidator("contentLocation",cdk().validateString)(properties.contentLocation)),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("sceneId",cdk().requiredValidator)(properties.sceneId)),errors.collect(cdk().propertyValidator("sceneId",cdk().validateString)(properties.sceneId)),errors.collect(cdk().propertyValidator("sceneMetadata",cdk().hashValidator(cdk().validateString))(properties.sceneMetadata)),errors.collect(cdk().propertyValidator("tags",cdk().hashValidator(cdk().validateString))(properties.tags)),errors.collect(cdk().propertyValidator("workspaceId",cdk().requiredValidator)(properties.workspaceId)),errors.collect(cdk().propertyValidator("workspaceId",cdk().validateString)(properties.workspaceId)),errors.wrap('supplied properties not correct for "CfnSceneProps"')}function convertCfnScenePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnScenePropsValidator(properties).assertSuccess(),{Capabilities:cdk().listMapper(cdk().stringToCloudFormation)(properties.capabilities),ContentLocation:cdk().stringToCloudFormation(properties.contentLocation),Description:cdk().stringToCloudFormation(properties.description),SceneId:cdk().stringToCloudFormation(properties.sceneId),SceneMetadata:cdk().hashMapper(cdk().stringToCloudFormation)(properties.sceneMetadata),Tags:cdk().hashMapper(cdk().stringToCloudFormation)(properties.tags),WorkspaceId:cdk().stringToCloudFormation(properties.workspaceId)}):properties}function CfnScenePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("capabilities","Capabilities",properties.Capabilities!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Capabilities):void 0),ret.addPropertyResult("contentLocation","ContentLocation",properties.ContentLocation!=null?cfn_parse().FromCloudFormation.getString(properties.ContentLocation):void 0),ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("sceneId","SceneId",properties.SceneId!=null?cfn_parse().FromCloudFormation.getString(properties.SceneId):void 0),ret.addPropertyResult("sceneMetadata","SceneMetadata",properties.SceneMetadata!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.SceneMetadata):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Tags):void 0),ret.addPropertyResult("workspaceId","WorkspaceId",properties.WorkspaceId!=null?cfn_parse().FromCloudFormation.getString(properties.WorkspaceId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnSyncJob extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iottwinmaker.CfnSyncJob",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoTTwinMaker::SyncJob";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnSyncJobPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnSyncJob(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnSyncJob(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnSyncJob.CFN_RESOURCE_TYPE_NAME}static arnForSyncJob(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iottwinmaker_ISyncJobRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForSyncJob),error}return resource.syncJobRef.syncJobArn}_syncRole;_syncSource;tags;_tagsRaw;_workspaceId;cfnPropertyNames={syncRole:"SyncRole",syncSource:"SyncSource",tags:"Tags",workspaceId:"WorkspaceId"};constructor(scope,id,props){super(scope,id,{type:CfnSyncJob.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iottwinmaker_CfnSyncJobProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnSyncJob),error}cdk().requireProperty(props,"syncRole",this),cdk().requireProperty(props,"syncSource",this),cdk().requireProperty(props,"workspaceId",this),this._syncRole=props.syncRole,this._syncSource=props.syncSource,this.tags=new(cdk()).TagManager(cdk().TagType.MAP,"AWS::IoTTwinMaker::SyncJob",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._workspaceId=props.workspaceId}get syncJobRef(){return{workspaceId:cdk().Fn.select(0,cdk().Fn.split("|",this.ref)),syncSource:cdk().Fn.select(1,cdk().Fn.split("|",this.ref)),syncJobArn:this.attrArn}}get syncRole(){return this._syncRole}set syncRole(value){cdk().traceProperty(this.node,"SyncRole"),this._syncRole=value}get syncSource(){return this._syncSource}set syncSource(value){cdk().traceProperty(this.node,"SyncSource"),this._syncSource=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get workspaceId(){return this._workspaceId}set workspaceId(value){cdk().traceProperty(this.node,"WorkspaceId"),this._workspaceId=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrCreationDateTime(){return cdk().Token.asString(this.getAtt("CreationDateTime",cdk().ResolutionTypeHint.STRING))}get attrState(){return cdk().Token.asString(this.getAtt("State",cdk().ResolutionTypeHint.STRING))}get attrUpdateDateTime(){return cdk().Token.asString(this.getAtt("UpdateDateTime",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{syncRole:this._syncRole,syncSource:this._syncSource,tags:this.tags.renderTags(),workspaceId:this._workspaceId}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnSyncJob.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnSyncJobPropsToCloudFormation(props)}}exports.CfnSyncJob=CfnSyncJob;function CfnSyncJobPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("syncRole",cdk().requiredValidator)(properties.syncRole)),errors.collect(cdk().propertyValidator("syncRole",cdk().validateString)(properties.syncRole)),errors.collect(cdk().propertyValidator("syncSource",cdk().requiredValidator)(properties.syncSource)),errors.collect(cdk().propertyValidator("syncSource",cdk().validateString)(properties.syncSource)),errors.collect(cdk().propertyValidator("tags",cdk().hashValidator(cdk().validateString))(properties.tags)),errors.collect(cdk().propertyValidator("workspaceId",cdk().requiredValidator)(properties.workspaceId)),errors.collect(cdk().propertyValidator("workspaceId",cdk().validateString)(properties.workspaceId)),errors.wrap('supplied properties not correct for "CfnSyncJobProps"')}function convertCfnSyncJobPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnSyncJobPropsValidator(properties).assertSuccess(),{SyncRole:cdk().stringToCloudFormation(properties.syncRole),SyncSource:cdk().stringToCloudFormation(properties.syncSource),Tags:cdk().hashMapper(cdk().stringToCloudFormation)(properties.tags),WorkspaceId:cdk().stringToCloudFormation(properties.workspaceId)}):properties}function CfnSyncJobPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("syncRole","SyncRole",properties.SyncRole!=null?cfn_parse().FromCloudFormation.getString(properties.SyncRole):void 0),ret.addPropertyResult("syncSource","SyncSource",properties.SyncSource!=null?cfn_parse().FromCloudFormation.getString(properties.SyncSource):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Tags):void 0),ret.addPropertyResult("workspaceId","WorkspaceId",properties.WorkspaceId!=null?cfn_parse().FromCloudFormation.getString(properties.WorkspaceId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnWorkspace extends cdk().CfnResource{static[JSII_RTTI_SYMBOL_1]={fqn:"aws-cdk-lib.aws_iottwinmaker.CfnWorkspace",version:"2.252.0"};static CFN_RESOURCE_TYPE_NAME="AWS::IoTTwinMaker::Workspace";static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnWorkspacePropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError(cfn_parse().lit`UnexpectedIResolvable`,"Unexpected IResolvable",scope);const ret=new CfnWorkspace(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}static isCfnWorkspace(x){return cdk().CfnResource.isCfnResource(x)&&x.cfnResourceType===CfnWorkspace.CFN_RESOURCE_TYPE_NAME}static fromWorkspaceArn(scope,id,arn){class Import extends cdk().Resource{workspaceRef;constructor(scope2,id2,arn2){super(scope2,id2,{environmentFromArn:arn2});const variables=new(cfn_parse()).TemplateString("arn:${Partition}:iottwinmaker:${Region}:${Account}:workspace/${WorkspaceId}").parse(arn2);this.workspaceRef={workspaceId:variables.WorkspaceId,workspaceArn:arn2}}}return new Import(scope,id,arn)}static fromWorkspaceId(scope,id,workspaceId){class Import extends cdk().Resource{workspaceRef;constructor(scope2,id2,workspaceId2){const arn=new(cfn_parse()).TemplateString("arn:${Partition}:iottwinmaker:${Region}:${Account}:workspace/${WorkspaceId}").interpolate({Partition:cdk().Stack.of(scope2).partition,Region:cdk().Stack.of(scope2).region,Account:cdk().Stack.of(scope2).account,WorkspaceId:workspaceId2});super(scope2,id2,{environmentFromArn:arn}),this.workspaceRef={workspaceId:workspaceId2,workspaceArn:arn}}}return new Import(scope,id,workspaceId)}static arnForWorkspace(resource){try{jsiiDeprecationWarnings().aws_cdk_lib_interfaces_aws_iottwinmaker_IWorkspaceRef(resource)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.arnForWorkspace),error}return resource.workspaceRef.workspaceArn}_description;_role;_s3Location;tags;_tagsRaw;_workspaceId;cfnPropertyNames={description:"Description",role:"Role",s3Location:"S3Location",tags:"Tags",workspaceId:"WorkspaceId"};constructor(scope,id,props){super(scope,id,{type:CfnWorkspace.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings().aws_cdk_lib_aws_iottwinmaker_CfnWorkspaceProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnWorkspace),error}cdk().requireProperty(props,"role",this),cdk().requireProperty(props,"s3Location",this),cdk().requireProperty(props,"workspaceId",this),this._description=props.description,this._role=cdk().getRefProperty(props.role?.roleRef,"roleArn")??cdk().ensureStringOrUndefined(props.role,"role","iam.IRoleRef | string"),this._s3Location=cdk().getRefProperty(props.s3Location?.bucketRef,"bucketArn")??cdk().ensureStringOrUndefined(props.s3Location,"s3Location","s3.IBucketRef | string"),this.tags=new(cdk()).TagManager(cdk().TagType.MAP,"AWS::IoTTwinMaker::Workspace",props.tags,{tagPropertyName:"tags"}),this._tagsRaw=props.tags,this._workspaceId=props.workspaceId}get workspaceRef(){return{workspaceId:this.ref,workspaceArn:this.attrArn}}get description(){return this._description}set description(value){cdk().traceProperty(this.node,"Description"),this._description=value}get role(){return this._role}set role(value){cdk().traceProperty(this.node,"Role"),this._role=value}get s3Location(){return this._s3Location}set s3Location(value){cdk().traceProperty(this.node,"S3Location"),this._s3Location=value}get tagsRaw(){return this._tagsRaw}set tagsRaw(value){cdk().traceProperty(this.node,"Tags"),this._tagsRaw=value}get workspaceId(){return this._workspaceId}set workspaceId(value){cdk().traceProperty(this.node,"WorkspaceId"),this._workspaceId=value}get attrArn(){return cdk().Token.asString(this.getAtt("Arn",cdk().ResolutionTypeHint.STRING))}get attrCreationDateTime(){return cdk().Token.asString(this.getAtt("CreationDateTime",cdk().ResolutionTypeHint.STRING))}get attrUpdateDateTime(){return cdk().Token.asString(this.getAtt("UpdateDateTime",cdk().ResolutionTypeHint.STRING))}get cfnProperties(){return{description:this._description,role:this._role,s3Location:this._s3Location,tags:this.tags.renderTags(),workspaceId:this._workspaceId}}inspect(inspector){try{jsiiDeprecationWarnings().aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnWorkspace.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:logicalId",this._synthesizeLogicalId()),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}renderProperties(props){return convertCfnWorkspacePropsToCloudFormation(props)}}exports.CfnWorkspace=CfnWorkspace;function CfnWorkspacePropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("description",cdk().validateString)(properties.description)),errors.collect(cdk().propertyValidator("role",cdk().requiredValidator)(properties.role)),errors.collect(cdk().propertyValidator("role",cdk().validateString)(properties.role)),errors.collect(cdk().propertyValidator("s3Location",cdk().requiredValidator)(properties.s3Location)),errors.collect(cdk().propertyValidator("s3Location",cdk().validateString)(properties.s3Location)),errors.collect(cdk().propertyValidator("tags",cdk().hashValidator(cdk().validateString))(properties.tags)),errors.collect(cdk().propertyValidator("workspaceId",cdk().requiredValidator)(properties.workspaceId)),errors.collect(cdk().propertyValidator("workspaceId",cdk().validateString)(properties.workspaceId)),errors.wrap('supplied properties not correct for "CfnWorkspaceProps"')}function convertCfnWorkspacePropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnWorkspacePropsValidator(properties).assertSuccess(),{Description:cdk().stringToCloudFormation(properties.description),Role:cdk().stringToCloudFormation(properties.role),S3Location:cdk().stringToCloudFormation(properties.s3Location),Tags:cdk().hashMapper(cdk().stringToCloudFormation)(properties.tags),WorkspaceId:cdk().stringToCloudFormation(properties.workspaceId)}):properties}function CfnWorkspacePropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("description","Description",properties.Description!=null?cfn_parse().FromCloudFormation.getString(properties.Description):void 0),ret.addPropertyResult("role","Role",properties.Role!=null?cfn_parse().FromCloudFormation.getString(properties.Role):void 0),ret.addPropertyResult("s3Location","S3Location",properties.S3Location!=null?cfn_parse().FromCloudFormation.getString(properties.S3Location):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?cfn_parse().FromCloudFormation.getMap(cfn_parse().FromCloudFormation.getString)(properties.Tags):void 0),ret.addPropertyResult("workspaceId","WorkspaceId",properties.WorkspaceId!=null?cfn_parse().FromCloudFormation.getString(properties.WorkspaceId):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}