{
    "smithy": "1.0",
    "metadata": {
        "suppressions": [
            {
                "id": "HttpMethodSemantics",
                "namespace": "*"
            },
            {
                "id": "HttpResponseCodeSemantics",
                "namespace": "*"
            },
            {
                "id": "PaginatedTrait",
                "namespace": "*"
            },
            {
                "id": "HttpHeaderTrait",
                "namespace": "*"
            },
            {
                "id": "HttpUriConflict",
                "namespace": "*"
            },
            {
                "id": "Service",
                "namespace": "*"
            }
        ]
    },
    "shapes": {
        "com.amazonaws.iotsitewise#ARN": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 1600
                },
                "smithy.api#pattern": ".*"
            }
        },
        "com.amazonaws.iotsitewise#AWSIoTSiteWise": {
            "type": "service",
            "version": "2019-12-02",
            "operations": [
                {
                    "target": "com.amazonaws.iotsitewise#AssociateAssets"
                },
                {
                    "target": "com.amazonaws.iotsitewise#BatchAssociateProjectAssets"
                },
                {
                    "target": "com.amazonaws.iotsitewise#BatchDisassociateProjectAssets"
                },
                {
                    "target": "com.amazonaws.iotsitewise#BatchPutAssetPropertyValue"
                },
                {
                    "target": "com.amazonaws.iotsitewise#CreateAccessPolicy"
                },
                {
                    "target": "com.amazonaws.iotsitewise#CreateAsset"
                },
                {
                    "target": "com.amazonaws.iotsitewise#CreateAssetModel"
                },
                {
                    "target": "com.amazonaws.iotsitewise#CreateDashboard"
                },
                {
                    "target": "com.amazonaws.iotsitewise#CreateGateway"
                },
                {
                    "target": "com.amazonaws.iotsitewise#CreatePortal"
                },
                {
                    "target": "com.amazonaws.iotsitewise#CreateProject"
                },
                {
                    "target": "com.amazonaws.iotsitewise#DeleteAccessPolicy"
                },
                {
                    "target": "com.amazonaws.iotsitewise#DeleteAsset"
                },
                {
                    "target": "com.amazonaws.iotsitewise#DeleteAssetModel"
                },
                {
                    "target": "com.amazonaws.iotsitewise#DeleteDashboard"
                },
                {
                    "target": "com.amazonaws.iotsitewise#DeleteGateway"
                },
                {
                    "target": "com.amazonaws.iotsitewise#DeletePortal"
                },
                {
                    "target": "com.amazonaws.iotsitewise#DeleteProject"
                },
                {
                    "target": "com.amazonaws.iotsitewise#DescribeAccessPolicy"
                },
                {
                    "target": "com.amazonaws.iotsitewise#DescribeAsset"
                },
                {
                    "target": "com.amazonaws.iotsitewise#DescribeAssetModel"
                },
                {
                    "target": "com.amazonaws.iotsitewise#DescribeAssetProperty"
                },
                {
                    "target": "com.amazonaws.iotsitewise#DescribeDashboard"
                },
                {
                    "target": "com.amazonaws.iotsitewise#DescribeDefaultEncryptionConfiguration"
                },
                {
                    "target": "com.amazonaws.iotsitewise#DescribeGateway"
                },
                {
                    "target": "com.amazonaws.iotsitewise#DescribeGatewayCapabilityConfiguration"
                },
                {
                    "target": "com.amazonaws.iotsitewise#DescribeLoggingOptions"
                },
                {
                    "target": "com.amazonaws.iotsitewise#DescribePortal"
                },
                {
                    "target": "com.amazonaws.iotsitewise#DescribeProject"
                },
                {
                    "target": "com.amazonaws.iotsitewise#DisassociateAssets"
                },
                {
                    "target": "com.amazonaws.iotsitewise#GetAssetPropertyAggregates"
                },
                {
                    "target": "com.amazonaws.iotsitewise#GetAssetPropertyValue"
                },
                {
                    "target": "com.amazonaws.iotsitewise#GetAssetPropertyValueHistory"
                },
                {
                    "target": "com.amazonaws.iotsitewise#GetInterpolatedAssetPropertyValues"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ListAccessPolicies"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ListAssetModels"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ListAssetRelationships"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ListAssets"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ListAssociatedAssets"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ListDashboards"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ListGateways"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ListPortals"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ListProjectAssets"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ListProjects"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ListTagsForResource"
                },
                {
                    "target": "com.amazonaws.iotsitewise#PutDefaultEncryptionConfiguration"
                },
                {
                    "target": "com.amazonaws.iotsitewise#PutLoggingOptions"
                },
                {
                    "target": "com.amazonaws.iotsitewise#TagResource"
                },
                {
                    "target": "com.amazonaws.iotsitewise#UntagResource"
                },
                {
                    "target": "com.amazonaws.iotsitewise#UpdateAccessPolicy"
                },
                {
                    "target": "com.amazonaws.iotsitewise#UpdateAsset"
                },
                {
                    "target": "com.amazonaws.iotsitewise#UpdateAssetModel"
                },
                {
                    "target": "com.amazonaws.iotsitewise#UpdateAssetProperty"
                },
                {
                    "target": "com.amazonaws.iotsitewise#UpdateDashboard"
                },
                {
                    "target": "com.amazonaws.iotsitewise#UpdateGateway"
                },
                {
                    "target": "com.amazonaws.iotsitewise#UpdateGatewayCapabilityConfiguration"
                },
                {
                    "target": "com.amazonaws.iotsitewise#UpdatePortal"
                },
                {
                    "target": "com.amazonaws.iotsitewise#UpdateProject"
                }
            ],
            "traits": {
                "aws.api#service": {
                    "sdkId": "IoTSiteWise",
                    "arnNamespace": "iotsitewise",
                    "cloudFormationName": "IoTSiteWise",
                    "cloudTrailEventSource": "iotsitewise.amazonaws.com",
                    "endpointPrefix": "iotsitewise"
                },
                "aws.auth#sigv4": {
                    "name": "iotsitewise"
                },
                "aws.protocols#restJson1": {},
                "smithy.api#documentation": "<p>Welcome to the AWS IoT SiteWise API Reference. AWS IoT SiteWise is an AWS service that connects <a href=\"https://en.wikipedia.org/wiki/Internet_of_things#Industrial_applications\">Industrial Internet of Things (IIoT)</a> devices to the power of the AWS Cloud. For more information, see the\n      <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/\">AWS IoT SiteWise User Guide</a>. For information about AWS IoT SiteWise quotas, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
                "smithy.api#title": "AWS IoT SiteWise"
            }
        },
        "com.amazonaws.iotsitewise#AccessPolicySummaries": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#AccessPolicySummary"
            }
        },
        "com.amazonaws.iotsitewise#AccessPolicySummary": {
            "type": "structure",
            "members": {
                "id": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the access policy.</p>",
                        "smithy.api#required": {}
                    }
                },
                "identity": {
                    "target": "com.amazonaws.iotsitewise#Identity",
                    "traits": {
                        "smithy.api#documentation": "<p>The identity (an AWS SSO user, an AWS SSO group, or an IAM user).</p>",
                        "smithy.api#required": {}
                    }
                },
                "resource": {
                    "target": "com.amazonaws.iotsitewise#Resource",
                    "traits": {
                        "smithy.api#documentation": "<p>The AWS IoT SiteWise Monitor resource (a portal or project).</p>",
                        "smithy.api#required": {}
                    }
                },
                "permission": {
                    "target": "com.amazonaws.iotsitewise#Permission",
                    "traits": {
                        "smithy.api#documentation": "<p>The permissions for the access policy. Note that a project <code>ADMINISTRATOR</code> is\n      also known as a project owner.</p>",
                        "smithy.api#required": {}
                    }
                },
                "creationDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the access policy was created, in Unix epoch time.</p>"
                    }
                },
                "lastUpdateDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the access policy was last updated, in Unix epoch time.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains an access policy that defines an identity's access to an AWS IoT SiteWise Monitor\n      resource.</p>"
            }
        },
        "com.amazonaws.iotsitewise#AggregateType": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "AVERAGE",
                        "name": "AVERAGE"
                    },
                    {
                        "value": "COUNT",
                        "name": "COUNT"
                    },
                    {
                        "value": "MAXIMUM",
                        "name": "MAXIMUM"
                    },
                    {
                        "value": "MINIMUM",
                        "name": "MINIMUM"
                    },
                    {
                        "value": "SUM",
                        "name": "SUM"
                    },
                    {
                        "value": "STANDARD_DEVIATION",
                        "name": "STANDARD_DEVIATION"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#AggregateTypes": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#AggregateType"
            },
            "traits": {
                "smithy.api#length": {
                    "min": 1
                }
            }
        },
        "com.amazonaws.iotsitewise#AggregatedDoubleValue": {
            "type": "double",
            "traits": {
                "smithy.api#box": {}
            }
        },
        "com.amazonaws.iotsitewise#AggregatedValue": {
            "type": "structure",
            "members": {
                "timestamp": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the aggregating computations occurred, in Unix epoch time.</p>",
                        "smithy.api#required": {}
                    }
                },
                "quality": {
                    "target": "com.amazonaws.iotsitewise#Quality",
                    "traits": {
                        "smithy.api#documentation": "<p>The quality of the aggregated data.</p>"
                    }
                },
                "value": {
                    "target": "com.amazonaws.iotsitewise#Aggregates",
                    "traits": {
                        "smithy.api#documentation": "<p>The value of the aggregates.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains aggregated asset property values (for example, average, minimum, and\n      maximum).</p>"
            }
        },
        "com.amazonaws.iotsitewise#AggregatedValues": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#AggregatedValue"
            }
        },
        "com.amazonaws.iotsitewise#Aggregates": {
            "type": "structure",
            "members": {
                "average": {
                    "target": "com.amazonaws.iotsitewise#AggregatedDoubleValue",
                    "traits": {
                        "smithy.api#documentation": "<p>The average (mean) value of the time series over a time interval window.</p>"
                    }
                },
                "count": {
                    "target": "com.amazonaws.iotsitewise#AggregatedDoubleValue",
                    "traits": {
                        "smithy.api#documentation": "<p>The count of data points in the time series over a time interval window.</p>"
                    }
                },
                "maximum": {
                    "target": "com.amazonaws.iotsitewise#AggregatedDoubleValue",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum value of the time series over a time interval window.</p>"
                    }
                },
                "minimum": {
                    "target": "com.amazonaws.iotsitewise#AggregatedDoubleValue",
                    "traits": {
                        "smithy.api#documentation": "<p>The minimum value of the time series over a time interval window.</p>"
                    }
                },
                "sum": {
                    "target": "com.amazonaws.iotsitewise#AggregatedDoubleValue",
                    "traits": {
                        "smithy.api#documentation": "<p>The sum of the time series over a time interval window.</p>"
                    }
                },
                "standardDeviation": {
                    "target": "com.amazonaws.iotsitewise#AggregatedDoubleValue",
                    "traits": {
                        "smithy.api#documentation": "<p>The standard deviation of the time series over a time interval window.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains the (pre-calculated) aggregate values for an asset property.</p>"
            }
        },
        "com.amazonaws.iotsitewise#AmazonResourceName": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 1011
                }
            }
        },
        "com.amazonaws.iotsitewise#AssetCompositeModel": {
            "type": "structure",
            "members": {
                "name": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the composite model.</p>",
                        "smithy.api#required": {}
                    }
                },
                "description": {
                    "target": "com.amazonaws.iotsitewise#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>The description of the composite model.</p>"
                    }
                },
                "type": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The type of the composite model. For alarm composite models, this type is\n        <code>AWS/ALARM</code>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "properties": {
                    "target": "com.amazonaws.iotsitewise#AssetProperties",
                    "traits": {
                        "smithy.api#documentation": "<p>The asset properties that this composite model defines.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains information about a composite model in an asset. This object contains the asset's\n      properties that you define in the composite model.</p>"
            }
        },
        "com.amazonaws.iotsitewise#AssetCompositeModels": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#AssetCompositeModel"
            }
        },
        "com.amazonaws.iotsitewise#AssetErrorCode": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "INTERNAL_FAILURE",
                        "name": "INTERNAL_FAILURE"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#AssetErrorDetails": {
            "type": "structure",
            "members": {
                "assetId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset.</p>",
                        "smithy.api#required": {}
                    }
                },
                "code": {
                    "target": "com.amazonaws.iotsitewise#AssetErrorCode",
                    "traits": {
                        "smithy.api#documentation": "<p>The error code.</p>",
                        "smithy.api#required": {}
                    }
                },
                "message": {
                    "target": "com.amazonaws.iotsitewise#AssetErrorMessage",
                    "traits": {
                        "smithy.api#documentation": "<p>The error message.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains error details for the requested associate project asset action.</p>"
            }
        },
        "com.amazonaws.iotsitewise#AssetErrorMessage": {
            "type": "string"
        },
        "com.amazonaws.iotsitewise#AssetHierarchies": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#AssetHierarchy"
            }
        },
        "com.amazonaws.iotsitewise#AssetHierarchy": {
            "type": "structure",
            "members": {
                "id": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the hierarchy. This ID is a <code>hierarchyId</code>.</p>"
                    }
                },
                "name": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The hierarchy name provided in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a>\n      API operation.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Describes an asset hierarchy that contains a hierarchy's name and ID.</p>"
            }
        },
        "com.amazonaws.iotsitewise#AssetHierarchyInfo": {
            "type": "structure",
            "members": {
                "parentAssetId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the parent asset in this asset relationship.</p>"
                    }
                },
                "childAssetId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the child asset in this asset relationship.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains information about a parent asset and a child asset that are related through an\n      asset hierarchy.</p>"
            }
        },
        "com.amazonaws.iotsitewise#AssetIDs": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#ID"
            }
        },
        "com.amazonaws.iotsitewise#AssetModelCompositeModel": {
            "type": "structure",
            "members": {
                "name": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the composite model.</p>",
                        "smithy.api#required": {}
                    }
                },
                "description": {
                    "target": "com.amazonaws.iotsitewise#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>The description of the composite model.</p>"
                    }
                },
                "type": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The type of the composite model. For alarm composite models, this type is\n      <code>AWS/ALARM</code>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "properties": {
                    "target": "com.amazonaws.iotsitewise#AssetModelProperties",
                    "traits": {
                        "smithy.api#documentation": "<p>The asset property definitions for this composite model.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains information about a composite model in an asset model. This object contains the\n      asset property definitions that you define in the composite model.</p>"
            }
        },
        "com.amazonaws.iotsitewise#AssetModelCompositeModelDefinition": {
            "type": "structure",
            "members": {
                "name": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the composite model.</p>",
                        "smithy.api#required": {}
                    }
                },
                "description": {
                    "target": "com.amazonaws.iotsitewise#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>The description of the composite model.</p>"
                    }
                },
                "type": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The type of the composite model. For alarm composite models, this type is\n      <code>AWS/ALARM</code>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "properties": {
                    "target": "com.amazonaws.iotsitewise#AssetModelPropertyDefinitions",
                    "traits": {
                        "smithy.api#documentation": "<p>The asset property definitions for this composite model.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains a composite model definition in an asset model. This composite model definition\n      is applied to all assets created from the asset model.</p>"
            }
        },
        "com.amazonaws.iotsitewise#AssetModelCompositeModelDefinitions": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#AssetModelCompositeModelDefinition"
            }
        },
        "com.amazonaws.iotsitewise#AssetModelCompositeModels": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#AssetModelCompositeModel"
            }
        },
        "com.amazonaws.iotsitewise#AssetModelHierarchies": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#AssetModelHierarchy"
            }
        },
        "com.amazonaws.iotsitewise#AssetModelHierarchy": {
            "type": "structure",
            "members": {
                "id": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset model hierarchy. This ID is a <code>hierarchyId</code>.</p>"
                    }
                },
                "name": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the asset model hierarchy that you specify by using the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or\n        <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation.</p>",
                        "smithy.api#required": {}
                    }
                },
                "childAssetModelId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset model. All assets in this hierarchy must be instances of the\n        <code>childAssetModelId</code> asset model.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Describes an asset hierarchy that contains a hierarchy's name, ID, and child asset model\n      ID that specifies the type of asset that can be in this hierarchy.</p>"
            }
        },
        "com.amazonaws.iotsitewise#AssetModelHierarchyDefinition": {
            "type": "structure",
            "members": {
                "name": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the asset model hierarchy definition (as specified in the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html\">CreateAssetModel</a> or\n        <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html\">UpdateAssetModel</a> API operation).</p>",
                        "smithy.api#required": {}
                    }
                },
                "childAssetModelId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of an asset model for this hierarchy.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains an asset model hierarchy used in asset model creation. An asset model hierarchy\n      determines the kind (or type) of asset that can belong to a hierarchy.</p>"
            }
        },
        "com.amazonaws.iotsitewise#AssetModelHierarchyDefinitions": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#AssetModelHierarchyDefinition"
            }
        },
        "com.amazonaws.iotsitewise#AssetModelProperties": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#AssetModelProperty"
            }
        },
        "com.amazonaws.iotsitewise#AssetModelProperty": {
            "type": "structure",
            "members": {
                "id": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset model property.</p>"
                    }
                },
                "name": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the asset model property.</p>",
                        "smithy.api#required": {}
                    }
                },
                "dataType": {
                    "target": "com.amazonaws.iotsitewise#PropertyDataType",
                    "traits": {
                        "smithy.api#documentation": "<p>The data type of the asset model property.</p>",
                        "smithy.api#required": {}
                    }
                },
                "dataTypeSpec": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The data type of the structure for this property. This parameter exists on properties that\n      have the <code>STRUCT</code> data type.</p>"
                    }
                },
                "unit": {
                    "target": "com.amazonaws.iotsitewise#PropertyUnit",
                    "traits": {
                        "smithy.api#documentation": "<p>The unit of the asset model property, such as <code>Newtons</code> or\n      <code>RPM</code>.</p>"
                    }
                },
                "type": {
                    "target": "com.amazonaws.iotsitewise#PropertyType",
                    "traits": {
                        "smithy.api#documentation": "<p>The property type (see <code>PropertyType</code>).</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains information about an asset model property.</p>"
            }
        },
        "com.amazonaws.iotsitewise#AssetModelPropertyDefinition": {
            "type": "structure",
            "members": {
                "name": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the property definition.</p>",
                        "smithy.api#required": {}
                    }
                },
                "dataType": {
                    "target": "com.amazonaws.iotsitewise#PropertyDataType",
                    "traits": {
                        "smithy.api#documentation": "<p>The data type of the property definition.</p>\n         <p>If you specify <code>STRUCT</code>, you must also specify <code>dataTypeSpec</code> to\n      identify the type of the structure for this property.</p>",
                        "smithy.api#required": {}
                    }
                },
                "dataTypeSpec": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The data type of the structure for this property. This parameter is required on properties\n      that have the <code>STRUCT</code> data type.</p>\n         <p>The options for this parameter depend on the type of the composite model in which you\n      define this property. Use <code>AWS/ALARM_STATE</code> for alarm state in alarm composite\n      models.</p>"
                    }
                },
                "unit": {
                    "target": "com.amazonaws.iotsitewise#PropertyUnit",
                    "traits": {
                        "smithy.api#documentation": "<p>The unit of the property definition, such as <code>Newtons</code> or\n      <code>RPM</code>.</p>"
                    }
                },
                "type": {
                    "target": "com.amazonaws.iotsitewise#PropertyType",
                    "traits": {
                        "smithy.api#documentation": "<p>The property definition type (see <code>PropertyType</code>). You can only specify one\n      type in a property definition.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains an asset model property definition. This property definition is applied to all\n      assets created from the asset model.</p>"
            }
        },
        "com.amazonaws.iotsitewise#AssetModelPropertyDefinitions": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#AssetModelPropertyDefinition"
            }
        },
        "com.amazonaws.iotsitewise#AssetModelState": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "CREATING",
                        "name": "CREATING"
                    },
                    {
                        "value": "ACTIVE",
                        "name": "ACTIVE"
                    },
                    {
                        "value": "UPDATING",
                        "name": "UPDATING"
                    },
                    {
                        "value": "PROPAGATING",
                        "name": "PROPAGATING"
                    },
                    {
                        "value": "DELETING",
                        "name": "DELETING"
                    },
                    {
                        "value": "FAILED",
                        "name": "FAILED"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#AssetModelStatus": {
            "type": "structure",
            "members": {
                "state": {
                    "target": "com.amazonaws.iotsitewise#AssetModelState",
                    "traits": {
                        "smithy.api#documentation": "<p>The current state of the asset model.</p>",
                        "smithy.api#required": {}
                    }
                },
                "error": {
                    "target": "com.amazonaws.iotsitewise#ErrorDetails",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains associated error information, if any.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains current status information for an asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-and-model-states.html\">Asset and model\n        states</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>"
            }
        },
        "com.amazonaws.iotsitewise#AssetModelSummaries": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#AssetModelSummary"
            }
        },
        "com.amazonaws.iotsitewise#AssetModelSummary": {
            "type": "structure",
            "members": {
                "id": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset model (used with AWS IoT SiteWise APIs).</p>",
                        "smithy.api#required": {}
                    }
                },
                "arn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p>\n        <p>\n            <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                },
                "name": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the asset model.</p>",
                        "smithy.api#required": {}
                    }
                },
                "description": {
                    "target": "com.amazonaws.iotsitewise#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>The asset model description.</p>",
                        "smithy.api#required": {}
                    }
                },
                "creationDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the asset model was created, in Unix epoch time.</p>",
                        "smithy.api#required": {}
                    }
                },
                "lastUpdateDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the asset model was last updated, in Unix epoch time.</p>",
                        "smithy.api#required": {}
                    }
                },
                "status": {
                    "target": "com.amazonaws.iotsitewise#AssetModelStatus",
                    "traits": {
                        "smithy.api#documentation": "<p>The current status of the asset model.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains a summary of an asset model.</p>"
            }
        },
        "com.amazonaws.iotsitewise#AssetProperties": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#AssetProperty"
            }
        },
        "com.amazonaws.iotsitewise#AssetProperty": {
            "type": "structure",
            "members": {
                "id": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset property.</p>",
                        "smithy.api#required": {}
                    }
                },
                "name": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the property.</p>",
                        "smithy.api#required": {}
                    }
                },
                "alias": {
                    "target": "com.amazonaws.iotsitewise#PropertyAlias",
                    "traits": {
                        "smithy.api#documentation": "<p>The property alias that identifies the property, such as an OPC-UA server data stream path\n        (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see\n        <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the\n        <i>AWS IoT SiteWise User Guide</i>.</p>"
                    }
                },
                "notification": {
                    "target": "com.amazonaws.iotsitewise#PropertyNotification",
                    "traits": {
                        "smithy.api#documentation": "<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>"
                    }
                },
                "dataType": {
                    "target": "com.amazonaws.iotsitewise#PropertyDataType",
                    "traits": {
                        "smithy.api#documentation": "<p>The data type of the asset property.</p>",
                        "smithy.api#required": {}
                    }
                },
                "dataTypeSpec": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The data type of the structure for this property. This parameter exists on properties that\n      have the <code>STRUCT</code> data type.</p>"
                    }
                },
                "unit": {
                    "target": "com.amazonaws.iotsitewise#PropertyUnit",
                    "traits": {
                        "smithy.api#documentation": "<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains asset property information.</p>"
            }
        },
        "com.amazonaws.iotsitewise#AssetPropertyAlias": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 2048
                },
                "smithy.api#pattern": "[^\\u0000-\\u001F\\u007F]+"
            }
        },
        "com.amazonaws.iotsitewise#AssetPropertyValue": {
            "type": "structure",
            "members": {
                "value": {
                    "target": "com.amazonaws.iotsitewise#Variant",
                    "traits": {
                        "smithy.api#documentation": "<p>The value of the asset property (see <code>Variant</code>).</p>",
                        "smithy.api#required": {}
                    }
                },
                "timestamp": {
                    "target": "com.amazonaws.iotsitewise#TimeInNanos",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp of the asset property value.</p>",
                        "smithy.api#required": {}
                    }
                },
                "quality": {
                    "target": "com.amazonaws.iotsitewise#Quality",
                    "traits": {
                        "smithy.api#documentation": "<p>The quality of the asset property value.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains asset property value information.</p>"
            }
        },
        "com.amazonaws.iotsitewise#AssetPropertyValueHistory": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#AssetPropertyValue"
            }
        },
        "com.amazonaws.iotsitewise#AssetPropertyValues": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#AssetPropertyValue"
            }
        },
        "com.amazonaws.iotsitewise#AssetRelationshipSummaries": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#AssetRelationshipSummary"
            }
        },
        "com.amazonaws.iotsitewise#AssetRelationshipSummary": {
            "type": "structure",
            "members": {
                "hierarchyInfo": {
                    "target": "com.amazonaws.iotsitewise#AssetHierarchyInfo",
                    "traits": {
                        "smithy.api#documentation": "<p>The assets that are related through an asset hierarchy.</p>\n         <p>This object is present if the <code>relationshipType</code> is\n      <code>HIERARCHY</code>.</p>"
                    }
                },
                "relationshipType": {
                    "target": "com.amazonaws.iotsitewise#AssetRelationshipType",
                    "traits": {
                        "smithy.api#documentation": "<p>The relationship type of the assets in this relationship. This value is one of the\n      following:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>HIERARCHY</code> – The assets are related through an asset hierarchy. If\n          you specify this relationship type, this asset relationship includes the\n            <code>hierarchyInfo</code> object.</p>\n            </li>\n         </ul>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains information about assets that are related to one another.</p>"
            }
        },
        "com.amazonaws.iotsitewise#AssetRelationshipType": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "HIERARCHY",
                        "name": "HIERARCHY"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#AssetState": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "CREATING",
                        "name": "CREATING"
                    },
                    {
                        "value": "ACTIVE",
                        "name": "ACTIVE"
                    },
                    {
                        "value": "UPDATING",
                        "name": "UPDATING"
                    },
                    {
                        "value": "DELETING",
                        "name": "DELETING"
                    },
                    {
                        "value": "FAILED",
                        "name": "FAILED"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#AssetStatus": {
            "type": "structure",
            "members": {
                "state": {
                    "target": "com.amazonaws.iotsitewise#AssetState",
                    "traits": {
                        "smithy.api#documentation": "<p>The current status of the asset.</p>",
                        "smithy.api#required": {}
                    }
                },
                "error": {
                    "target": "com.amazonaws.iotsitewise#ErrorDetails",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains associated error information, if any.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains information about the current status of an asset. For more information, see\n        <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-and-model-states.html\">Asset and model\n        states</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>"
            }
        },
        "com.amazonaws.iotsitewise#AssetSummaries": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#AssetSummary"
            }
        },
        "com.amazonaws.iotsitewise#AssetSummary": {
            "type": "structure",
            "members": {
                "id": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset.</p>",
                        "smithy.api#required": {}
                    }
                },
                "arn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p>\n        <p>\n            <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                },
                "name": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the asset.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetModelId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset model used to create this asset.</p>",
                        "smithy.api#required": {}
                    }
                },
                "creationDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the asset was created, in Unix epoch time.</p>",
                        "smithy.api#required": {}
                    }
                },
                "lastUpdateDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the asset was last updated, in Unix epoch time.</p>",
                        "smithy.api#required": {}
                    }
                },
                "status": {
                    "target": "com.amazonaws.iotsitewise#AssetStatus",
                    "traits": {
                        "smithy.api#documentation": "<p>The current status of the asset.</p>",
                        "smithy.api#required": {}
                    }
                },
                "hierarchies": {
                    "target": "com.amazonaws.iotsitewise#AssetHierarchies",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains a summary of an asset.</p>"
            }
        },
        "com.amazonaws.iotsitewise#AssociateAssets": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#AssociateAssetsRequest"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#ConflictingOperationException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Associates a child asset with the given parent asset through a hierarchy defined in the\n      parent asset's model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/add-associated-assets.html\">Associating assets</a> in the\n        <i>AWS IoT SiteWise User Guide</i>.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "model."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/assets/{assetId}/associate",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#AssociateAssetsRequest": {
            "type": "structure",
            "members": {
                "assetId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the parent asset.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "hierarchyId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings\n      of assets to be formed that all come from the same asset model. For more information, see\n      <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "childAssetId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the child asset to be associated.</p>",
                        "smithy.api#required": {}
                    }
                },
                "clientToken": {
                    "target": "com.amazonaws.iotsitewise#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
                        "smithy.api#idempotencyToken": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#AssociatedAssetsSummaries": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#AssociatedAssetsSummary"
            }
        },
        "com.amazonaws.iotsitewise#AssociatedAssetsSummary": {
            "type": "structure",
            "members": {
                "id": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset.</p>",
                        "smithy.api#required": {}
                    }
                },
                "arn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p>\n        <p>\n            <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                },
                "name": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the asset.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetModelId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset model used to create the asset.</p>",
                        "smithy.api#required": {}
                    }
                },
                "creationDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the asset was created, in Unix epoch time.</p>",
                        "smithy.api#required": {}
                    }
                },
                "lastUpdateDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the asset was last updated, in Unix epoch time.</p>",
                        "smithy.api#required": {}
                    }
                },
                "status": {
                    "target": "com.amazonaws.iotsitewise#AssetStatus",
                    "traits": {
                        "smithy.api#documentation": "<p>The current status of the asset.</p>",
                        "smithy.api#required": {}
                    }
                },
                "hierarchies": {
                    "target": "com.amazonaws.iotsitewise#AssetHierarchies",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains a summary of an associated asset.</p>"
            }
        },
        "com.amazonaws.iotsitewise#Attribute": {
            "type": "structure",
            "members": {
                "defaultValue": {
                    "target": "com.amazonaws.iotsitewise#DefaultValue",
                    "traits": {
                        "smithy.api#documentation": "<p>The default value of the asset model property attribute. All assets that you create from\n      the asset model contain this attribute value. You can update an attribute's value after you\n      create an asset. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html\">Updating attribute values</a> in the\n        <i>AWS IoT SiteWise User Guide</i>.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains an asset attribute property. For more information, see\n      <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html#attributes\">Attributes</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>"
            }
        },
        "com.amazonaws.iotsitewise#AuthMode": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "IAM",
                        "name": "IAM"
                    },
                    {
                        "value": "SSO",
                        "name": "SSO"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#BatchAssociateProjectAssets": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#BatchAssociateProjectAssetsRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#BatchAssociateProjectAssetsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Associates a group (batch) of assets with an AWS IoT SiteWise Monitor project.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "monitor."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/projects/{projectId}/assets/associate",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#BatchAssociateProjectAssetsErrors": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#AssetErrorDetails"
            }
        },
        "com.amazonaws.iotsitewise#BatchAssociateProjectAssetsRequest": {
            "type": "structure",
            "members": {
                "projectId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the project to which to associate the assets.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "assetIds": {
                    "target": "com.amazonaws.iotsitewise#IDs",
                    "traits": {
                        "smithy.api#documentation": "<p>The IDs of the assets to be associated to the project.</p>",
                        "smithy.api#required": {}
                    }
                },
                "clientToken": {
                    "target": "com.amazonaws.iotsitewise#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
                        "smithy.api#idempotencyToken": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#BatchAssociateProjectAssetsResponse": {
            "type": "structure",
            "members": {
                "errors": {
                    "target": "com.amazonaws.iotsitewise#BatchAssociateProjectAssetsErrors",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of associated error information, if any.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#BatchDisassociateProjectAssets": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#BatchDisassociateProjectAssetsRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#BatchDisassociateProjectAssetsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Disassociates a group (batch) of assets from an AWS IoT SiteWise Monitor project.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "monitor."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/projects/{projectId}/assets/disassociate",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#BatchDisassociateProjectAssetsErrors": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#AssetErrorDetails"
            }
        },
        "com.amazonaws.iotsitewise#BatchDisassociateProjectAssetsRequest": {
            "type": "structure",
            "members": {
                "projectId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the project from which to disassociate the assets.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "assetIds": {
                    "target": "com.amazonaws.iotsitewise#IDs",
                    "traits": {
                        "smithy.api#documentation": "<p>The IDs of the assets to be disassociated from the project.</p>",
                        "smithy.api#required": {}
                    }
                },
                "clientToken": {
                    "target": "com.amazonaws.iotsitewise#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
                        "smithy.api#idempotencyToken": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#BatchDisassociateProjectAssetsResponse": {
            "type": "structure",
            "members": {
                "errors": {
                    "target": "com.amazonaws.iotsitewise#BatchDisassociateProjectAssetsErrors",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of associated error information, if any.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#BatchPutAssetPropertyError": {
            "type": "structure",
            "members": {
                "errorCode": {
                    "target": "com.amazonaws.iotsitewise#BatchPutAssetPropertyValueErrorCode",
                    "traits": {
                        "smithy.api#documentation": "<p>The error code.</p>",
                        "smithy.api#required": {}
                    }
                },
                "errorMessage": {
                    "target": "com.amazonaws.iotsitewise#ErrorMessage",
                    "traits": {
                        "smithy.api#documentation": "<p>The associated error message.</p>",
                        "smithy.api#required": {}
                    }
                },
                "timestamps": {
                    "target": "com.amazonaws.iotsitewise#Timestamps",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of timestamps for each  error, if any.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains error information from updating a batch of asset property values.</p>"
            }
        },
        "com.amazonaws.iotsitewise#BatchPutAssetPropertyErrorEntries": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#BatchPutAssetPropertyErrorEntry"
            }
        },
        "com.amazonaws.iotsitewise#BatchPutAssetPropertyErrorEntry": {
            "type": "structure",
            "members": {
                "entryId": {
                    "target": "com.amazonaws.iotsitewise#EntryId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the failed entry.</p>",
                        "smithy.api#required": {}
                    }
                },
                "errors": {
                    "target": "com.amazonaws.iotsitewise#BatchPutAssetPropertyErrors",
                    "traits": {
                        "smithy.api#documentation": "<p>The list of update property value errors.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains error information for asset property value entries that are associated with the\n        <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_BatchPutAssetPropertyValue.html\">BatchPutAssetPropertyValue</a> API.</p>"
            }
        },
        "com.amazonaws.iotsitewise#BatchPutAssetPropertyErrors": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#BatchPutAssetPropertyError"
            }
        },
        "com.amazonaws.iotsitewise#BatchPutAssetPropertyValue": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#BatchPutAssetPropertyValueRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#BatchPutAssetPropertyValueResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#ConflictingOperationException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ServiceUnavailableException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Sends a list of asset property values to AWS IoT SiteWise. Each value is a timestamp-quality-value\n      (TQV) data point. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/ingest-api.html\">Ingesting data using the API</a> in the\n        <i>AWS IoT SiteWise User Guide</i>.</p>\n         <p>To identify an asset property, you must specify one of the following:</p>\n         <ul>\n            <li>\n               <p>The <code>assetId</code> and <code>propertyId</code> of an asset property.</p>\n            </li>\n            <li>\n               <p>A <code>propertyAlias</code>, which is a data stream alias (for example,\n          <code>/company/windfarm/3/turbine/7/temperature</code>). To define an asset property's alias, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>\n            </li>\n         </ul>\n         <important>\n            <p>With respect to Unix epoch time, AWS IoT SiteWise accepts only TQVs that have a timestamp of no more\n        than 7 days in the past and no more than 10 minutes in the future. AWS IoT SiteWise rejects timestamps\n        outside of the inclusive range of [-7 days, +10 minutes] and returns a\n          <code>TimestampOutOfRangeException</code> error.</p>\n            <p>For each asset property, AWS IoT SiteWise overwrites TQVs with duplicate timestamps unless the newer\n        TQV has a different quality. For example, if you store a TQV <code>{T1, GOOD, V1}</code>,\n        then storing <code>{T1, GOOD, V2}</code> replaces the existing TQV.</p>\n         </important>\n         <p>AWS IoT SiteWise authorizes access to each <code>BatchPutAssetPropertyValue</code> entry individually.\n      For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies-batchputassetpropertyvalue-action\">BatchPutAssetPropertyValue authorization</a> in the\n      <i>AWS IoT SiteWise User Guide</i>.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "data."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/properties",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#BatchPutAssetPropertyValueErrorCode": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "ResourceNotFoundException",
                        "name": "ResourceNotFoundException"
                    },
                    {
                        "value": "InvalidRequestException",
                        "name": "InvalidRequestException"
                    },
                    {
                        "value": "InternalFailureException",
                        "name": "InternalFailureException"
                    },
                    {
                        "value": "ServiceUnavailableException",
                        "name": "ServiceUnavailableException"
                    },
                    {
                        "value": "ThrottlingException",
                        "name": "ThrottlingException"
                    },
                    {
                        "value": "LimitExceededException",
                        "name": "LimitExceededException"
                    },
                    {
                        "value": "ConflictingOperationException",
                        "name": "ConflictingOperationException"
                    },
                    {
                        "value": "TimestampOutOfRangeException",
                        "name": "TimestampOutOfRangeException"
                    },
                    {
                        "value": "AccessDeniedException",
                        "name": "AccessDeniedException"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#BatchPutAssetPropertyValueRequest": {
            "type": "structure",
            "members": {
                "entries": {
                    "target": "com.amazonaws.iotsitewise#PutAssetPropertyValueEntries",
                    "traits": {
                        "smithy.api#documentation": "<p>The list of asset property value entries for the batch put request. You can specify up to\n      10 entries per request.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#BatchPutAssetPropertyValueResponse": {
            "type": "structure",
            "members": {
                "errorEntries": {
                    "target": "com.amazonaws.iotsitewise#BatchPutAssetPropertyErrorEntries",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of the errors (if any) associated with the batch put request. Each error entry\n      contains the <code>entryId</code> of the entry that failed.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#CapabilityConfiguration": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 104857600
                }
            }
        },
        "com.amazonaws.iotsitewise#CapabilityNamespace": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 512
                },
                "smithy.api#pattern": "^[a-zA-Z]+:[a-zA-Z]+:[0-9]+$"
            }
        },
        "com.amazonaws.iotsitewise#CapabilitySyncStatus": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "IN_SYNC",
                        "name": "IN_SYNC"
                    },
                    {
                        "value": "OUT_OF_SYNC",
                        "name": "OUT_OF_SYNC"
                    },
                    {
                        "value": "SYNC_FAILED",
                        "name": "SYNC_FAILED"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#ClientToken": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 36,
                    "max": 64
                },
                "smithy.api#pattern": "\\S{36,64}"
            }
        },
        "com.amazonaws.iotsitewise#CompositeModelProperty": {
            "type": "structure",
            "members": {
                "name": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the property.</p>",
                        "smithy.api#required": {}
                    }
                },
                "type": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The type of the composite model that defines this property.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetProperty": {
                    "target": "com.amazonaws.iotsitewise#Property",
                    "traits": {
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains information about a composite model property on an asset.</p>"
            }
        },
        "com.amazonaws.iotsitewise#ConfigurationErrorDetails": {
            "type": "structure",
            "members": {
                "code": {
                    "target": "com.amazonaws.iotsitewise#ErrorCode",
                    "traits": {
                        "smithy.api#documentation": "<p>The error code.</p>",
                        "smithy.api#required": {}
                    }
                },
                "message": {
                    "target": "com.amazonaws.iotsitewise#ErrorMessage",
                    "traits": {
                        "smithy.api#documentation": "<p>The error message.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains the details of an AWS IoT SiteWise configuration error.</p>"
            }
        },
        "com.amazonaws.iotsitewise#ConfigurationState": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "ACTIVE",
                        "name": "ACTIVE"
                    },
                    {
                        "value": "UPDATE_IN_PROGRESS",
                        "name": "UPDATE_IN_PROGRESS"
                    },
                    {
                        "value": "UPDATE_FAILED",
                        "name": "UPDATE_FAILED"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#ConfigurationStatus": {
            "type": "structure",
            "members": {
                "state": {
                    "target": "com.amazonaws.iotsitewise#ConfigurationState",
                    "traits": {
                        "smithy.api#documentation": "<p>The current state of the configuration.</p>",
                        "smithy.api#required": {}
                    }
                },
                "error": {
                    "target": "com.amazonaws.iotsitewise#ConfigurationErrorDetails",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains associated error information, if any.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains current status information for the configuration.</p>"
            }
        },
        "com.amazonaws.iotsitewise#ConflictingOperationException": {
            "type": "structure",
            "members": {
                "message": {
                    "target": "com.amazonaws.iotsitewise#ErrorMessage",
                    "traits": {
                        "smithy.api#required": {}
                    }
                },
                "resourceId": {
                    "target": "com.amazonaws.iotsitewise#ResourceId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the resource that conflicts with this operation.</p>",
                        "smithy.api#required": {}
                    }
                },
                "resourceArn": {
                    "target": "com.amazonaws.iotsitewise#ResourceArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the resource that conflicts with this operation.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Your request has conflicting operations. This can occur if you're trying to perform more\n      than one operation on the same resource at the same time.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 409
            }
        },
        "com.amazonaws.iotsitewise#CreateAccessPolicy": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#CreateAccessPolicyRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#CreateAccessPolicyResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Creates an access policy that grants the specified identity (AWS SSO user, AWS SSO group, or\n      IAM user) access to the specified AWS IoT SiteWise Monitor portal or project resource.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "monitor."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/access-policies",
                    "code": 201
                }
            }
        },
        "com.amazonaws.iotsitewise#CreateAccessPolicyRequest": {
            "type": "structure",
            "members": {
                "accessPolicyIdentity": {
                    "target": "com.amazonaws.iotsitewise#Identity",
                    "traits": {
                        "smithy.api#documentation": "<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>",
                        "smithy.api#required": {}
                    }
                },
                "accessPolicyResource": {
                    "target": "com.amazonaws.iotsitewise#Resource",
                    "traits": {
                        "smithy.api#documentation": "<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>",
                        "smithy.api#required": {}
                    }
                },
                "accessPolicyPermission": {
                    "target": "com.amazonaws.iotsitewise#Permission",
                    "traits": {
                        "smithy.api#documentation": "<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>",
                        "smithy.api#required": {}
                    }
                },
                "clientToken": {
                    "target": "com.amazonaws.iotsitewise#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
                        "smithy.api#idempotencyToken": {}
                    }
                },
                "tags": {
                    "target": "com.amazonaws.iotsitewise#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of key-value pairs that contain metadata for the access policy. For more\n      information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your\n        AWS IoT SiteWise resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#CreateAccessPolicyResponse": {
            "type": "structure",
            "members": {
                "accessPolicyId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the access policy.</p>",
                        "smithy.api#required": {}
                    }
                },
                "accessPolicyArn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p>\n        <p>\n            <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#CreateAsset": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#CreateAssetRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#CreateAssetResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#ConflictingOperationException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceAlreadyExistsException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Creates an asset from an existing asset model. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-assets.html\">Creating assets</a> in the\n        <i>AWS IoT SiteWise User Guide</i>.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "model."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/assets",
                    "code": 202
                }
            }
        },
        "com.amazonaws.iotsitewise#CreateAssetModel": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#CreateAssetModelRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#CreateAssetModelResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#ConflictingOperationException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceAlreadyExistsException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Creates an asset model from specified property and hierarchy definitions. You create\n      assets from asset models. With asset models, you can easily create assets of the same type\n      that have standardized definitions. Each asset created from a model inherits the asset model's\n      property and hierarchy definitions. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/define-models.html\">Defining asset models</a> in the\n        <i>AWS IoT SiteWise User Guide</i>.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "model."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/asset-models",
                    "code": 202
                }
            }
        },
        "com.amazonaws.iotsitewise#CreateAssetModelRequest": {
            "type": "structure",
            "members": {
                "assetModelName": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique, friendly name for the asset model.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetModelDescription": {
                    "target": "com.amazonaws.iotsitewise#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>A description for the asset model.</p>"
                    }
                },
                "assetModelProperties": {
                    "target": "com.amazonaws.iotsitewise#AssetModelPropertyDefinitions",
                    "traits": {
                        "smithy.api#documentation": "<p>The property definitions of the asset model. For more information, see\n      <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n         <p>You can specify up to 200 properties per asset model. For more\n      information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>"
                    }
                },
                "assetModelHierarchies": {
                    "target": "com.amazonaws.iotsitewise#AssetModelHierarchyDefinitions",
                    "traits": {
                        "smithy.api#documentation": "<p>The hierarchy definitions of the asset model. Each hierarchy specifies an asset model\n      whose assets can be children of any other assets created from this asset model. For more\n      information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n         <p>You can specify up to 10 hierarchies per asset model. For more\n      information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>"
                    }
                },
                "assetModelCompositeModels": {
                    "target": "com.amazonaws.iotsitewise#AssetModelCompositeModelDefinitions",
                    "traits": {
                        "smithy.api#documentation": "<p>The composite asset models that are part of this asset model.\n      Composite asset models are asset models that contain specific properties. Each composite model\n      has a type that defines the properties that the composite model supports. Use composite asset\n      models to define alarms on this asset model.</p>"
                    }
                },
                "clientToken": {
                    "target": "com.amazonaws.iotsitewise#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
                        "smithy.api#idempotencyToken": {}
                    }
                },
                "tags": {
                    "target": "com.amazonaws.iotsitewise#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of key-value pairs that contain metadata for the asset model. For more information,\n      see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise\n        resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#CreateAssetModelResponse": {
            "type": "structure",
            "members": {
                "assetModelId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset model. You can use this ID when you call other AWS IoT SiteWise APIs.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetModelArn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p>\n        <p>\n            <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                },
                "assetModelStatus": {
                    "target": "com.amazonaws.iotsitewise#AssetModelStatus",
                    "traits": {
                        "smithy.api#documentation": "<p>The status of the asset model, which contains a state (<code>CREATING</code> after\n      successfully calling this operation) and any error message.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#CreateAssetRequest": {
            "type": "structure",
            "members": {
                "assetName": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique, friendly name for the asset.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetModelId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset model from which to create the asset.</p>",
                        "smithy.api#required": {}
                    }
                },
                "clientToken": {
                    "target": "com.amazonaws.iotsitewise#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
                        "smithy.api#idempotencyToken": {}
                    }
                },
                "tags": {
                    "target": "com.amazonaws.iotsitewise#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of key-value pairs that contain metadata for the asset. For more information, see\n        <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise\n        resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#CreateAssetResponse": {
            "type": "structure",
            "members": {
                "assetId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset. This ID uniquely identifies the asset within AWS IoT SiteWise and can be used with other\n      AWS IoT SiteWise APIs.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetArn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p>\n        <p>\n            <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                },
                "assetStatus": {
                    "target": "com.amazonaws.iotsitewise#AssetStatus",
                    "traits": {
                        "smithy.api#documentation": "<p>The status of the asset, which contains a state (<code>CREATING</code> after successfully\n      calling this operation) and any error message.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#CreateDashboard": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#CreateDashboardRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#CreateDashboardResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Creates a dashboard in an AWS IoT SiteWise Monitor project.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "monitor."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/dashboards",
                    "code": 201
                }
            }
        },
        "com.amazonaws.iotsitewise#CreateDashboardRequest": {
            "type": "structure",
            "members": {
                "projectId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the project in which to create the dashboard.</p>",
                        "smithy.api#required": {}
                    }
                },
                "dashboardName": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>A friendly name for the dashboard.</p>",
                        "smithy.api#required": {}
                    }
                },
                "dashboardDescription": {
                    "target": "com.amazonaws.iotsitewise#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>A description for the dashboard.</p>"
                    }
                },
                "dashboardDefinition": {
                    "target": "com.amazonaws.iotsitewise#DashboardDefinition",
                    "traits": {
                        "smithy.api#documentation": "<p>The dashboard definition specified in a JSON literal. For detailed information, see\n      <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "clientToken": {
                    "target": "com.amazonaws.iotsitewise#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
                        "smithy.api#idempotencyToken": {}
                    }
                },
                "tags": {
                    "target": "com.amazonaws.iotsitewise#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of key-value pairs that contain metadata for the dashboard. For more information,\n      see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise\n        resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#CreateDashboardResponse": {
            "type": "structure",
            "members": {
                "dashboardId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the dashboard.</p>",
                        "smithy.api#required": {}
                    }
                },
                "dashboardArn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p>\n        <p>\n            <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#CreateGateway": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#CreateGatewayRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#CreateGatewayResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceAlreadyExistsException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Creates a gateway, which is a virtual or edge device that delivers industrial data streams\n      from local servers to AWS IoT SiteWise. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/gateway-connector.html\">Ingesting data using a gateway</a> in the\n        <i>AWS IoT SiteWise User Guide</i>.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "edge."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/20200301/gateways",
                    "code": 201
                }
            }
        },
        "com.amazonaws.iotsitewise#CreateGatewayRequest": {
            "type": "structure",
            "members": {
                "gatewayName": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique, friendly name for the gateway.</p>",
                        "smithy.api#required": {}
                    }
                },
                "gatewayPlatform": {
                    "target": "com.amazonaws.iotsitewise#GatewayPlatform",
                    "traits": {
                        "smithy.api#documentation": "<p>The gateway's platform. You can only specify one platform in a gateway.</p>",
                        "smithy.api#required": {}
                    }
                },
                "tags": {
                    "target": "com.amazonaws.iotsitewise#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of key-value pairs that contain metadata for the gateway. For more information, see\n        <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise\n        resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#CreateGatewayResponse": {
            "type": "structure",
            "members": {
                "gatewayId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the gateway device. You can use this ID when you call other AWS IoT SiteWise APIs.</p>",
                        "smithy.api#required": {}
                    }
                },
                "gatewayArn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p>\n        <p>\n            <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#CreatePortal": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#CreatePortalRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#CreatePortalResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Creates a portal, which can contain projects and dashboards. AWS IoT SiteWise Monitor uses AWS SSO or IAM\n      to authenticate portal users and manage user permissions.</p>\n         <note>\n            <p>Before you can sign in to a new portal, you must add at least one identity to that\n        portal. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/administer-portals.html#portal-change-admins\">Adding or removing portal\n          administrators</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n         </note>",
                "smithy.api#endpoint": {
                    "hostPrefix": "monitor."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/portals",
                    "code": 202
                }
            }
        },
        "com.amazonaws.iotsitewise#CreatePortalRequest": {
            "type": "structure",
            "members": {
                "portalName": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>A friendly name for the portal.</p>",
                        "smithy.api#required": {}
                    }
                },
                "portalDescription": {
                    "target": "com.amazonaws.iotsitewise#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>A description for the portal.</p>"
                    }
                },
                "portalContactEmail": {
                    "target": "com.amazonaws.iotsitewise#Email",
                    "traits": {
                        "smithy.api#documentation": "<p>The AWS administrator's contact email address.</p>",
                        "smithy.api#required": {}
                    }
                },
                "clientToken": {
                    "target": "com.amazonaws.iotsitewise#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
                        "smithy.api#idempotencyToken": {}
                    }
                },
                "portalLogoImageFile": {
                    "target": "com.amazonaws.iotsitewise#ImageFile",
                    "traits": {
                        "smithy.api#documentation": "<p>A logo image to display in the portal. Upload a square, high-resolution image. The\n      image is displayed on a dark background.</p>"
                    }
                },
                "roleArn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise\n      resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the\n        <i>AWS IoT SiteWise User Guide</i>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "tags": {
                    "target": "com.amazonaws.iotsitewise#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of key-value pairs that contain metadata for the portal. For more information, see\n        <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise\n        resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>"
                    }
                },
                "portalAuthMode": {
                    "target": "com.amazonaws.iotsitewise#AuthMode",
                    "traits": {
                        "smithy.api#documentation": "<p>The service to use to authenticate users to the portal. Choose from the following\n      options:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>SSO</code> – The portal uses AWS Single Sign-On to authenticate users and manage\n          user permissions. Before you can create a portal that uses AWS SSO, you must enable AWS SSO.\n          For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-get-started.html#mon-gs-sso\">Enabling AWS SSO</a> in the\n            <i>AWS IoT SiteWise User Guide</i>. This option is only available in AWS Regions other than\n          the China Regions.</p>\n            </li>\n            <li>\n               <p>\n                  <code>IAM</code> – The portal uses AWS Identity and Access Management (IAM) to authenticate users and manage\n          user permissions. This option is only available in the China Regions.</p>\n            </li>\n         </ul>\n         <p>You can't change this value after you create a portal.</p>\n         <p>Default: <code>SSO</code>\n         </p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#CreatePortalResponse": {
            "type": "structure",
            "members": {
                "portalId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the created portal.</p>",
                        "smithy.api#required": {}
                    }
                },
                "portalArn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p>\n        <p>\n            <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                },
                "portalStartUrl": {
                    "target": "com.amazonaws.iotsitewise#Url",
                    "traits": {
                        "smithy.api#documentation": "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that\n      use AWS SSO for authentication. For portals that use IAM for authentication, you must use the \n      AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>",
                        "smithy.api#required": {}
                    }
                },
                "portalStatus": {
                    "target": "com.amazonaws.iotsitewise#PortalStatus",
                    "traits": {
                        "smithy.api#documentation": "<p>The status of the portal, which contains a state (<code>CREATING</code> after successfully\n      calling this operation) and any error message.</p>",
                        "smithy.api#required": {}
                    }
                },
                "ssoApplicationId": {
                    "target": "com.amazonaws.iotsitewise#SSOApplicationId",
                    "traits": {
                        "smithy.api#documentation": "<p>The associated AWS SSO application ID, if the portal uses AWS SSO.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#CreateProject": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#CreateProjectRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#CreateProjectResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Creates a project in the specified portal.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "monitor."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/projects",
                    "code": 201
                }
            }
        },
        "com.amazonaws.iotsitewise#CreateProjectRequest": {
            "type": "structure",
            "members": {
                "portalId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the portal in which to create the project.</p>",
                        "smithy.api#required": {}
                    }
                },
                "projectName": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>A friendly name for the project.</p>",
                        "smithy.api#required": {}
                    }
                },
                "projectDescription": {
                    "target": "com.amazonaws.iotsitewise#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>A description for the project.</p>"
                    }
                },
                "clientToken": {
                    "target": "com.amazonaws.iotsitewise#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
                        "smithy.api#idempotencyToken": {}
                    }
                },
                "tags": {
                    "target": "com.amazonaws.iotsitewise#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of key-value pairs that contain metadata for the project. For more information, see\n        <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise\n        resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#CreateProjectResponse": {
            "type": "structure",
            "members": {
                "projectId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the project.</p>",
                        "smithy.api#required": {}
                    }
                },
                "projectArn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p>\n        <p>\n            <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DashboardDefinition": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 0,
                    "max": 204800
                },
                "smithy.api#pattern": ".+"
            }
        },
        "com.amazonaws.iotsitewise#DashboardSummaries": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#DashboardSummary"
            }
        },
        "com.amazonaws.iotsitewise#DashboardSummary": {
            "type": "structure",
            "members": {
                "id": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the dashboard.</p>",
                        "smithy.api#required": {}
                    }
                },
                "name": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the dashboard</p>",
                        "smithy.api#required": {}
                    }
                },
                "description": {
                    "target": "com.amazonaws.iotsitewise#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>The dashboard's description.</p>"
                    }
                },
                "creationDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the dashboard was created, in Unix epoch time.</p>"
                    }
                },
                "lastUpdateDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the dashboard was last updated, in Unix epoch time.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains a dashboard summary.</p>"
            }
        },
        "com.amazonaws.iotsitewise#DefaultValue": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 1024
                },
                "smithy.api#pattern": "[^\\u0000-\\u001F\\u007F]+"
            }
        },
        "com.amazonaws.iotsitewise#DeleteAccessPolicy": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#DeleteAccessPolicyRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#DeleteAccessPolicyResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes an access policy that grants the specified identity access to the specified\n      AWS IoT SiteWise Monitor resource. You can use this operation to revoke access to an AWS IoT SiteWise Monitor\n      resource.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "monitor."
                },
                "smithy.api#http": {
                    "method": "DELETE",
                    "uri": "/access-policies/{accessPolicyId}",
                    "code": 204
                }
            }
        },
        "com.amazonaws.iotsitewise#DeleteAccessPolicyRequest": {
            "type": "structure",
            "members": {
                "accessPolicyId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the access policy to be deleted.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "clientToken": {
                    "target": "com.amazonaws.iotsitewise#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
                        "smithy.api#httpQuery": "clientToken",
                        "smithy.api#idempotencyToken": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DeleteAccessPolicyResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.iotsitewise#DeleteAsset": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#DeleteAssetRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#DeleteAssetResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#ConflictingOperationException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes an asset. This action can't be undone. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/delete-assets-and-models.html\">Deleting assets and\n        models</a> in the <i>AWS IoT SiteWise User Guide</i>.\n      </p>\n         <note>\n            <p>You can't delete an asset that's associated to another asset. For more information, see\n          <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DisassociateAssets.html\">DisassociateAssets</a>.</p>\n         </note>",
                "smithy.api#endpoint": {
                    "hostPrefix": "model."
                },
                "smithy.api#http": {
                    "method": "DELETE",
                    "uri": "/assets/{assetId}",
                    "code": 202
                }
            }
        },
        "com.amazonaws.iotsitewise#DeleteAssetModel": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#DeleteAssetModelRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#DeleteAssetModelResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#ConflictingOperationException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes an asset model. This action can't be undone. You must delete all assets created\n      from an asset model before you can delete the model. Also, you can't delete an asset model if\n      a parent asset model exists that contains a property formula expression that depends on the\n      asset model that you want to delete. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/delete-assets-and-models.html\">Deleting assets and models</a> in the\n        <i>AWS IoT SiteWise User Guide</i>.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "model."
                },
                "smithy.api#http": {
                    "method": "DELETE",
                    "uri": "/asset-models/{assetModelId}",
                    "code": 202
                }
            }
        },
        "com.amazonaws.iotsitewise#DeleteAssetModelRequest": {
            "type": "structure",
            "members": {
                "assetModelId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset model to delete.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "clientToken": {
                    "target": "com.amazonaws.iotsitewise#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
                        "smithy.api#httpQuery": "clientToken",
                        "smithy.api#idempotencyToken": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DeleteAssetModelResponse": {
            "type": "structure",
            "members": {
                "assetModelStatus": {
                    "target": "com.amazonaws.iotsitewise#AssetModelStatus",
                    "traits": {
                        "smithy.api#documentation": "<p>The status of the asset model, which contains a state (<code>DELETING</code> after\n      successfully calling this operation) and any error message.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DeleteAssetRequest": {
            "type": "structure",
            "members": {
                "assetId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset to delete.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "clientToken": {
                    "target": "com.amazonaws.iotsitewise#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
                        "smithy.api#httpQuery": "clientToken",
                        "smithy.api#idempotencyToken": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DeleteAssetResponse": {
            "type": "structure",
            "members": {
                "assetStatus": {
                    "target": "com.amazonaws.iotsitewise#AssetStatus",
                    "traits": {
                        "smithy.api#documentation": "<p>The status of the asset, which contains a state (<code>DELETING</code> after successfully\n      calling this operation) and any error message.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DeleteDashboard": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#DeleteDashboardRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#DeleteDashboardResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes a dashboard from AWS IoT SiteWise Monitor.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "monitor."
                },
                "smithy.api#http": {
                    "method": "DELETE",
                    "uri": "/dashboards/{dashboardId}",
                    "code": 204
                }
            }
        },
        "com.amazonaws.iotsitewise#DeleteDashboardRequest": {
            "type": "structure",
            "members": {
                "dashboardId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the dashboard to delete.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "clientToken": {
                    "target": "com.amazonaws.iotsitewise#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
                        "smithy.api#httpQuery": "clientToken",
                        "smithy.api#idempotencyToken": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DeleteDashboardResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.iotsitewise#DeleteGateway": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#DeleteGatewayRequest"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes a gateway from AWS IoT SiteWise. When you delete a gateway, some of the gateway's files remain\n      in your gateway's file system.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "edge."
                },
                "smithy.api#http": {
                    "method": "DELETE",
                    "uri": "/20200301/gateways/{gatewayId}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#DeleteGatewayRequest": {
            "type": "structure",
            "members": {
                "gatewayId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the gateway to delete.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DeletePortal": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#DeletePortalRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#DeletePortalResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#ConflictingOperationException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes a portal from AWS IoT SiteWise Monitor.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "monitor."
                },
                "smithy.api#http": {
                    "method": "DELETE",
                    "uri": "/portals/{portalId}",
                    "code": 202
                }
            }
        },
        "com.amazonaws.iotsitewise#DeletePortalRequest": {
            "type": "structure",
            "members": {
                "portalId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the portal to delete.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "clientToken": {
                    "target": "com.amazonaws.iotsitewise#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
                        "smithy.api#httpQuery": "clientToken",
                        "smithy.api#idempotencyToken": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DeletePortalResponse": {
            "type": "structure",
            "members": {
                "portalStatus": {
                    "target": "com.amazonaws.iotsitewise#PortalStatus",
                    "traits": {
                        "smithy.api#documentation": "<p>The status of the portal, which contains a state (<code>DELETING</code> after successfully\n      calling this operation) and any error message.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DeleteProject": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#DeleteProjectRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#DeleteProjectResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes a project from AWS IoT SiteWise Monitor.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "monitor."
                },
                "smithy.api#http": {
                    "method": "DELETE",
                    "uri": "/projects/{projectId}",
                    "code": 204
                }
            }
        },
        "com.amazonaws.iotsitewise#DeleteProjectRequest": {
            "type": "structure",
            "members": {
                "projectId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the project.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "clientToken": {
                    "target": "com.amazonaws.iotsitewise#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
                        "smithy.api#httpQuery": "clientToken",
                        "smithy.api#idempotencyToken": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DeleteProjectResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.iotsitewise#DescribeAccessPolicy": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#DescribeAccessPolicyRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#DescribeAccessPolicyResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Describes an access policy, which specifies an identity's access to an AWS IoT SiteWise Monitor portal or\n      project.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "monitor."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/access-policies/{accessPolicyId}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeAccessPolicyRequest": {
            "type": "structure",
            "members": {
                "accessPolicyId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the access policy.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeAccessPolicyResponse": {
            "type": "structure",
            "members": {
                "accessPolicyId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the access policy.</p>",
                        "smithy.api#required": {}
                    }
                },
                "accessPolicyArn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the access policy, which has the following format.</p>\n        <p>\n            <code>arn:${Partition}:iotsitewise:${Region}:${Account}:access-policy/${AccessPolicyId}</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                },
                "accessPolicyIdentity": {
                    "target": "com.amazonaws.iotsitewise#Identity",
                    "traits": {
                        "smithy.api#documentation": "<p>The identity (AWS SSO user, AWS SSO group, or IAM user) to which this access policy\n      applies.</p>",
                        "smithy.api#required": {}
                    }
                },
                "accessPolicyResource": {
                    "target": "com.amazonaws.iotsitewise#Resource",
                    "traits": {
                        "smithy.api#documentation": "<p>The AWS IoT SiteWise Monitor resource (portal or project) to which this access policy provides\n      access.</p>",
                        "smithy.api#required": {}
                    }
                },
                "accessPolicyPermission": {
                    "target": "com.amazonaws.iotsitewise#Permission",
                    "traits": {
                        "smithy.api#documentation": "<p>The access policy permission. Note that a project <code>ADMINISTRATOR</code> is also known\n      as a project owner.</p>",
                        "smithy.api#required": {}
                    }
                },
                "accessPolicyCreationDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the access policy was created, in Unix epoch time.</p>",
                        "smithy.api#required": {}
                    }
                },
                "accessPolicyLastUpdateDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the access policy was last updated, in Unix epoch time.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeAsset": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#DescribeAssetRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#DescribeAssetResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves information about an asset.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "model."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/assets/{assetId}",
                    "code": 200
                },
                "smithy.waiters#waitable": {
                    "AssetActive": {
                        "acceptors": [
                            {
                                "state": "success",
                                "matcher": {
                                    "output": {
                                        "path": "assetStatus.state",
                                        "expected": "ACTIVE",
                                        "comparator": "stringEquals"
                                    }
                                }
                            },
                            {
                                "state": "failure",
                                "matcher": {
                                    "output": {
                                        "path": "assetStatus.state",
                                        "expected": "FAILED",
                                        "comparator": "stringEquals"
                                    }
                                }
                            }
                        ],
                        "minDelay": 3
                    },
                    "AssetNotExists": {
                        "acceptors": [
                            {
                                "state": "success",
                                "matcher": {
                                    "errorType": "ResourceNotFoundException"
                                }
                            }
                        ],
                        "minDelay": 3
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeAssetModel": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#DescribeAssetModelRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#DescribeAssetModelResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves information about an asset model.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "model."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/asset-models/{assetModelId}",
                    "code": 200
                },
                "smithy.waiters#waitable": {
                    "AssetModelActive": {
                        "acceptors": [
                            {
                                "state": "success",
                                "matcher": {
                                    "output": {
                                        "path": "assetModelStatus.state",
                                        "expected": "ACTIVE",
                                        "comparator": "stringEquals"
                                    }
                                }
                            },
                            {
                                "state": "failure",
                                "matcher": {
                                    "output": {
                                        "path": "assetModelStatus.state",
                                        "expected": "FAILED",
                                        "comparator": "stringEquals"
                                    }
                                }
                            }
                        ],
                        "minDelay": 3
                    },
                    "AssetModelNotExists": {
                        "acceptors": [
                            {
                                "state": "success",
                                "matcher": {
                                    "errorType": "ResourceNotFoundException"
                                }
                            }
                        ],
                        "minDelay": 3
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeAssetModelRequest": {
            "type": "structure",
            "members": {
                "assetModelId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset model.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeAssetModelResponse": {
            "type": "structure",
            "members": {
                "assetModelId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset model.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetModelArn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset model, which has the following format.</p>\n        <p>\n            <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset-model/${AssetModelId}</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                },
                "assetModelName": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the asset model.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetModelDescription": {
                    "target": "com.amazonaws.iotsitewise#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>The asset model's description.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetModelProperties": {
                    "target": "com.amazonaws.iotsitewise#AssetModelProperties",
                    "traits": {
                        "smithy.api#documentation": "<p>The list of asset properties for the asset model.</p>\n         <p>This object doesn't include properties that you define in composite models. You can find\n      composite model properties in the <code>assetModelCompositeModels</code> object.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetModelHierarchies": {
                    "target": "com.amazonaws.iotsitewise#AssetModelHierarchies",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of asset model hierarchies that each contain a <code>childAssetModelId</code> and a\n        <code>hierarchyId</code> (named <code>id</code>). A hierarchy specifies allowed parent/child\n      asset relationships for an asset model.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetModelCompositeModels": {
                    "target": "com.amazonaws.iotsitewise#AssetModelCompositeModels",
                    "traits": {
                        "smithy.api#documentation": "<p>The list of composite asset models for the asset model.</p>"
                    }
                },
                "assetModelCreationDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the asset model was created, in Unix epoch time.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetModelLastUpdateDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the asset model was last updated, in Unix epoch time.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetModelStatus": {
                    "target": "com.amazonaws.iotsitewise#AssetModelStatus",
                    "traits": {
                        "smithy.api#documentation": "<p>The current status of the asset model, which contains a state and any error\n      message.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeAssetProperty": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#DescribeAssetPropertyRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#DescribeAssetPropertyResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves information about an asset property.</p>\n         <note>\n            <p>When you call this operation for an attribute property, this response includes the\n        default attribute value that you define in the asset model. If you update the default value\n        in the model, this operation's response includes the new default value.</p>\n         </note>\n         <p>This operation doesn't return the value of the asset property. To get the value of an\n      asset property, use <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_GetAssetPropertyValue.html\">GetAssetPropertyValue</a>.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "model."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/assets/{assetId}/properties/{propertyId}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeAssetPropertyRequest": {
            "type": "structure",
            "members": {
                "assetId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "propertyId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset property.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeAssetPropertyResponse": {
            "type": "structure",
            "members": {
                "assetId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetName": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the asset.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetModelId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset model.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetProperty": {
                    "target": "com.amazonaws.iotsitewise#Property",
                    "traits": {
                        "smithy.api#documentation": "<p>The asset property's definition, alias, and notification state.</p>\n         <p>This response includes this object for normal asset properties. If you describe an asset\n      property in a composite model, this response includes the asset property information in\n        <code>compositeModel</code>.</p>"
                    }
                },
                "compositeModel": {
                    "target": "com.amazonaws.iotsitewise#CompositeModelProperty",
                    "traits": {
                        "smithy.api#documentation": "<p>The composite asset model that declares this asset property, if this asset property exists\n      in a composite model.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeAssetRequest": {
            "type": "structure",
            "members": {
                "assetId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeAssetResponse": {
            "type": "structure",
            "members": {
                "assetId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetArn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the asset, which has the following format.</p>\n        <p>\n            <code>arn:${Partition}:iotsitewise:${Region}:${Account}:asset/${AssetId}</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                },
                "assetName": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the asset.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetModelId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset model that was used to create the asset.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetProperties": {
                    "target": "com.amazonaws.iotsitewise#AssetProperties",
                    "traits": {
                        "smithy.api#documentation": "<p>The list of asset properties for the asset.</p>\n         <p>This object doesn't include properties that you define in composite models. You can find\n      composite model properties in the <code>assetCompositeModels</code> object.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetHierarchies": {
                    "target": "com.amazonaws.iotsitewise#AssetHierarchies",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of asset hierarchies that each contain a <code>hierarchyId</code>. A hierarchy specifies allowed parent/child asset relationships.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetCompositeModels": {
                    "target": "com.amazonaws.iotsitewise#AssetCompositeModels",
                    "traits": {
                        "smithy.api#documentation": "<p>The composite models for the asset.</p>"
                    }
                },
                "assetCreationDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the asset was created, in Unix epoch time.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetLastUpdateDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the asset was last updated, in Unix epoch time.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetStatus": {
                    "target": "com.amazonaws.iotsitewise#AssetStatus",
                    "traits": {
                        "smithy.api#documentation": "<p>The current status of the asset, which contains a state and any error message.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeDashboard": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#DescribeDashboardRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#DescribeDashboardResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves information about a dashboard.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "monitor."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/dashboards/{dashboardId}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeDashboardRequest": {
            "type": "structure",
            "members": {
                "dashboardId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the dashboard.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeDashboardResponse": {
            "type": "structure",
            "members": {
                "dashboardId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the dashboard.</p>",
                        "smithy.api#required": {}
                    }
                },
                "dashboardArn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the dashboard, which has the following format.</p>\n        <p>\n            <code>arn:${Partition}:iotsitewise:${Region}:${Account}:dashboard/${DashboardId}</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                },
                "dashboardName": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the dashboard.</p>",
                        "smithy.api#required": {}
                    }
                },
                "projectId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the project that the dashboard is in.</p>",
                        "smithy.api#required": {}
                    }
                },
                "dashboardDescription": {
                    "target": "com.amazonaws.iotsitewise#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>The dashboard's description.</p>"
                    }
                },
                "dashboardDefinition": {
                    "target": "com.amazonaws.iotsitewise#DashboardDefinition",
                    "traits": {
                        "smithy.api#documentation": "<p>The dashboard's definition JSON literal. For detailed information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating\n        dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "dashboardCreationDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the dashboard was created, in Unix epoch time.</p>",
                        "smithy.api#required": {}
                    }
                },
                "dashboardLastUpdateDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the dashboard was last updated, in Unix epoch time.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeDefaultEncryptionConfiguration": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#DescribeDefaultEncryptionConfigurationRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#DescribeDefaultEncryptionConfigurationResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves information about the default encryption configuration for the\n      AWS account in the default or specified region. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/key-management.html\">Key management</a>\n      in the <i>AWS IoT SiteWise User Guide</i>.</p>",
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/configuration/account/encryption",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeDefaultEncryptionConfigurationRequest": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.iotsitewise#DescribeDefaultEncryptionConfigurationResponse": {
            "type": "structure",
            "members": {
                "encryptionType": {
                    "target": "com.amazonaws.iotsitewise#EncryptionType",
                    "traits": {
                        "smithy.api#documentation": "<p>The type of encryption used for the encryption configuration.</p>",
                        "smithy.api#required": {}
                    }
                },
                "kmsKeyArn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The key ARN of the customer managed customer master key (CMK) used for AWS KMS encryption\n      if you use <code>KMS_BASED_ENCRYPTION</code>.</p>"
                    }
                },
                "configurationStatus": {
                    "target": "com.amazonaws.iotsitewise#ConfigurationStatus",
                    "traits": {
                        "smithy.api#documentation": "<p>The status of the account configuration. This contains the\n      <code>ConfigurationState</code>. If\n      there's an error, it also contains the <code>ErrorDetails</code>.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeGateway": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#DescribeGatewayRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#DescribeGatewayResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves information about a gateway.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "edge."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/20200301/gateways/{gatewayId}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeGatewayCapabilityConfiguration": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#DescribeGatewayCapabilityConfigurationRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#DescribeGatewayCapabilityConfigurationResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves information about a gateway capability configuration.\n      Each gateway capability defines data sources for a gateway. A capability configuration\n      can contain multiple data source configurations. If you define OPC-UA sources for a gateway in\n      the AWS IoT SiteWise console, all of your OPC-UA sources are stored in one capability configuration. To\n      list all capability configurations for a gateway, use <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeGateway.html\">DescribeGateway</a>.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "edge."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/20200301/gateways/{gatewayId}/capability/{capabilityNamespace}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeGatewayCapabilityConfigurationRequest": {
            "type": "structure",
            "members": {
                "gatewayId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the gateway that defines the capability configuration.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "capabilityNamespace": {
                    "target": "com.amazonaws.iotsitewise#CapabilityNamespace",
                    "traits": {
                        "smithy.api#documentation": "<p>The namespace of the capability configuration.\n      For example, if you configure OPC-UA\n      sources from the AWS IoT SiteWise console, your OPC-UA capability configuration has the namespace\n        <code>iotsitewise:opcuacollector:version</code>, where <code>version</code> is a number such as\n        <code>1</code>.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeGatewayCapabilityConfigurationResponse": {
            "type": "structure",
            "members": {
                "gatewayId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the gateway that defines the capability configuration.</p>",
                        "smithy.api#required": {}
                    }
                },
                "capabilityNamespace": {
                    "target": "com.amazonaws.iotsitewise#CapabilityNamespace",
                    "traits": {
                        "smithy.api#documentation": "<p>The namespace of the gateway capability.</p>",
                        "smithy.api#required": {}
                    }
                },
                "capabilityConfiguration": {
                    "target": "com.amazonaws.iotsitewise#CapabilityConfiguration",
                    "traits": {
                        "smithy.api#documentation": "<p>The JSON document that defines the gateway capability's configuration. For more\n      information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/configure-sources.html#configure-source-cli\">Configuring data sources (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "capabilitySyncStatus": {
                    "target": "com.amazonaws.iotsitewise#CapabilitySyncStatus",
                    "traits": {
                        "smithy.api#documentation": "<p>The synchronization status of the capability configuration. The sync status can be one of the following:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>IN_SYNC</code> – The gateway is running the capability configuration.</p>\n            </li>\n            <li>\n               <p>\n                  <code>OUT_OF_SYNC</code> – The gateway hasn't received the capability configuration.</p>\n            </li>\n            <li>\n               <p>\n                  <code>SYNC_FAILED</code> – The gateway rejected the capability configuration.</p>\n            </li>\n         </ul>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeGatewayRequest": {
            "type": "structure",
            "members": {
                "gatewayId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the gateway device.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeGatewayResponse": {
            "type": "structure",
            "members": {
                "gatewayId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the gateway device.</p>",
                        "smithy.api#required": {}
                    }
                },
                "gatewayName": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the gateway.</p>",
                        "smithy.api#required": {}
                    }
                },
                "gatewayArn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the gateway, which has the following format.</p>\n        <p>\n            <code>arn:${Partition}:iotsitewise:${Region}:${Account}:gateway/${GatewayId}</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                },
                "gatewayPlatform": {
                    "target": "com.amazonaws.iotsitewise#GatewayPlatform",
                    "traits": {
                        "smithy.api#documentation": "<p>The gateway's platform.</p>"
                    }
                },
                "gatewayCapabilitySummaries": {
                    "target": "com.amazonaws.iotsitewise#GatewayCapabilitySummaries",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of gateway capability summaries that each contain a namespace and status. Each\n      gateway capability defines data sources for the gateway. To retrieve a capability\n      configuration's definition, use <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeGatewayCapabilityConfiguration.html\">DescribeGatewayCapabilityConfiguration</a>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "creationDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the gateway was created, in Unix epoch time.</p>",
                        "smithy.api#required": {}
                    }
                },
                "lastUpdateDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the gateway was last updated, in Unix epoch time.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeLoggingOptions": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#DescribeLoggingOptionsRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#DescribeLoggingOptionsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves the current AWS IoT SiteWise logging options.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "model."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/logging",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeLoggingOptionsRequest": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.iotsitewise#DescribeLoggingOptionsResponse": {
            "type": "structure",
            "members": {
                "loggingOptions": {
                    "target": "com.amazonaws.iotsitewise#LoggingOptions",
                    "traits": {
                        "smithy.api#documentation": "<p>The current logging options.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribePortal": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#DescribePortalRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#DescribePortalResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves information about a portal.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "monitor."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/portals/{portalId}",
                    "code": 200
                },
                "smithy.waiters#waitable": {
                    "PortalActive": {
                        "acceptors": [
                            {
                                "state": "success",
                                "matcher": {
                                    "output": {
                                        "path": "portalStatus.state",
                                        "expected": "ACTIVE",
                                        "comparator": "stringEquals"
                                    }
                                }
                            }
                        ],
                        "minDelay": 3
                    },
                    "PortalNotExists": {
                        "acceptors": [
                            {
                                "state": "success",
                                "matcher": {
                                    "errorType": "ResourceNotFoundException"
                                }
                            }
                        ],
                        "minDelay": 3
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribePortalRequest": {
            "type": "structure",
            "members": {
                "portalId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the portal.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribePortalResponse": {
            "type": "structure",
            "members": {
                "portalId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the portal.</p>",
                        "smithy.api#required": {}
                    }
                },
                "portalArn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the portal, which has the following format.</p>\n        <p>\n            <code>arn:${Partition}:iotsitewise:${Region}:${Account}:portal/${PortalId}</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                },
                "portalName": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the portal.</p>",
                        "smithy.api#required": {}
                    }
                },
                "portalDescription": {
                    "target": "com.amazonaws.iotsitewise#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>The portal's description.</p>"
                    }
                },
                "portalClientId": {
                    "target": "com.amazonaws.iotsitewise#PortalClientId",
                    "traits": {
                        "smithy.api#documentation": "<p>The AWS SSO application generated client ID (used with AWS SSO APIs). AWS IoT SiteWise includes\n        <code>portalClientId</code> for only portals that use AWS SSO to authenticate users.</p>",
                        "smithy.api#required": {}
                    }
                },
                "portalStartUrl": {
                    "target": "com.amazonaws.iotsitewise#Url",
                    "traits": {
                        "smithy.api#documentation": "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that\n      use AWS SSO for authentication. For portals that use IAM for authentication, you must use the \n      AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>",
                        "smithy.api#required": {}
                    }
                },
                "portalContactEmail": {
                    "target": "com.amazonaws.iotsitewise#Email",
                    "traits": {
                        "smithy.api#documentation": "<p>The AWS administrator's contact email address.</p>",
                        "smithy.api#required": {}
                    }
                },
                "portalStatus": {
                    "target": "com.amazonaws.iotsitewise#PortalStatus",
                    "traits": {
                        "smithy.api#documentation": "<p>The current status of the portal, which contains a state and any error message.</p>",
                        "smithy.api#required": {}
                    }
                },
                "portalCreationDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the portal was created, in Unix epoch time.</p>",
                        "smithy.api#required": {}
                    }
                },
                "portalLastUpdateDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the portal was last updated, in Unix epoch time.</p>",
                        "smithy.api#required": {}
                    }
                },
                "portalLogoImageLocation": {
                    "target": "com.amazonaws.iotsitewise#ImageLocation",
                    "traits": {
                        "smithy.api#documentation": "<p>The portal's logo image, which is available at a URL.</p>"
                    }
                },
                "roleArn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the service role that allows the portal's users to access your AWS IoT SiteWise\n      resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the\n        <i>AWS IoT SiteWise User Guide</i>.</p>"
                    }
                },
                "portalAuthMode": {
                    "target": "com.amazonaws.iotsitewise#AuthMode",
                    "traits": {
                        "smithy.api#documentation": "<p>The service to use to authenticate users to the portal.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeProject": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#DescribeProjectRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#DescribeProjectResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves information about a project.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "monitor."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/projects/{projectId}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeProjectRequest": {
            "type": "structure",
            "members": {
                "projectId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the project.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#DescribeProjectResponse": {
            "type": "structure",
            "members": {
                "projectId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the project.</p>",
                        "smithy.api#required": {}
                    }
                },
                "projectArn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the project, which has the following format.</p>\n        <p>\n            <code>arn:${Partition}:iotsitewise:${Region}:${Account}:project/${ProjectId}</code>\n         </p>",
                        "smithy.api#required": {}
                    }
                },
                "projectName": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the project.</p>",
                        "smithy.api#required": {}
                    }
                },
                "portalId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the portal that the project is in.</p>",
                        "smithy.api#required": {}
                    }
                },
                "projectDescription": {
                    "target": "com.amazonaws.iotsitewise#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>The project's description.</p>"
                    }
                },
                "projectCreationDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the project was created, in Unix epoch time.</p>",
                        "smithy.api#required": {}
                    }
                },
                "projectLastUpdateDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the project was last updated, in Unix epoch time.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#Description": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 2048
                },
                "smithy.api#pattern": "[^\\u0000-\\u001F\\u007F]+"
            }
        },
        "com.amazonaws.iotsitewise#DisassociateAssets": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#DisassociateAssetsRequest"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#ConflictingOperationException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Disassociates a child asset from the given parent asset through a hierarchy defined in the\n      parent asset's model.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "model."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/assets/{assetId}/disassociate",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#DisassociateAssetsRequest": {
            "type": "structure",
            "members": {
                "assetId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the parent asset from which to disassociate the child asset.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "hierarchyId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of a hierarchy in the parent asset's model. Hierarchies allow different groupings\n      of assets to be formed that all come from the same asset model. You can use the hierarchy ID\n      to identify the correct asset to disassociate. For more information, see\n      <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "childAssetId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the child asset to disassociate.</p>",
                        "smithy.api#required": {}
                    }
                },
                "clientToken": {
                    "target": "com.amazonaws.iotsitewise#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
                        "smithy.api#idempotencyToken": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#Email": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 255
                },
                "smithy.api#pattern": "[^@]+@[^@]+"
            }
        },
        "com.amazonaws.iotsitewise#EncryptionType": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "SITEWISE_DEFAULT_ENCRYPTION",
                        "name": "SITEWISE_DEFAULT_ENCRYPTION"
                    },
                    {
                        "value": "KMS_BASED_ENCRYPTION",
                        "name": "KMS_BASED_ENCRYPTION"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#EntryId": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 64
                },
                "smithy.api#pattern": "^[a-zA-Z0-9_-]+$"
            }
        },
        "com.amazonaws.iotsitewise#ErrorCode": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "VALIDATION_ERROR",
                        "name": "VALIDATION_ERROR"
                    },
                    {
                        "value": "INTERNAL_FAILURE",
                        "name": "INTERNAL_FAILURE"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#ErrorDetails": {
            "type": "structure",
            "members": {
                "code": {
                    "target": "com.amazonaws.iotsitewise#ErrorCode",
                    "traits": {
                        "smithy.api#documentation": "<p>The error code.</p>",
                        "smithy.api#required": {}
                    }
                },
                "message": {
                    "target": "com.amazonaws.iotsitewise#ErrorMessage",
                    "traits": {
                        "smithy.api#documentation": "<p>The error message.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains the details of an AWS IoT SiteWise error.</p>"
            }
        },
        "com.amazonaws.iotsitewise#ErrorMessage": {
            "type": "string"
        },
        "com.amazonaws.iotsitewise#ExceptionMessage": {
            "type": "string"
        },
        "com.amazonaws.iotsitewise#Expression": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 1024
                }
            }
        },
        "com.amazonaws.iotsitewise#ExpressionVariable": {
            "type": "structure",
            "members": {
                "name": {
                    "target": "com.amazonaws.iotsitewise#VariableName",
                    "traits": {
                        "smithy.api#documentation": "<p>The friendly name of the variable to be used in the expression.</p>",
                        "smithy.api#required": {}
                    }
                },
                "value": {
                    "target": "com.amazonaws.iotsitewise#VariableValue",
                    "traits": {
                        "smithy.api#documentation": "<p>The variable that identifies an asset property from which to use values.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains expression variable information.</p>"
            }
        },
        "com.amazonaws.iotsitewise#ExpressionVariables": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#ExpressionVariable"
            }
        },
        "com.amazonaws.iotsitewise#GatewayCapabilitySummaries": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#GatewayCapabilitySummary"
            }
        },
        "com.amazonaws.iotsitewise#GatewayCapabilitySummary": {
            "type": "structure",
            "members": {
                "capabilityNamespace": {
                    "target": "com.amazonaws.iotsitewise#CapabilityNamespace",
                    "traits": {
                        "smithy.api#documentation": "<p>The namespace of the capability configuration.\n      For example, if you configure OPC-UA\n      sources from the AWS IoT SiteWise console, your OPC-UA capability configuration has the namespace\n        <code>iotsitewise:opcuacollector:version</code>, where <code>version</code> is a number such as\n        <code>1</code>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "capabilitySyncStatus": {
                    "target": "com.amazonaws.iotsitewise#CapabilitySyncStatus",
                    "traits": {
                        "smithy.api#documentation": "<p>The synchronization status of the capability configuration. The sync status can be one of the following:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>IN_SYNC</code> – The gateway is running the capability configuration.</p>\n            </li>\n            <li>\n               <p>\n                  <code>OUT_OF_SYNC</code> – The gateway hasn't received the capability configuration.</p>\n            </li>\n            <li>\n               <p>\n                  <code>SYNC_FAILED</code> – The gateway rejected the capability configuration.</p>\n            </li>\n         </ul>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains a summary of a gateway capability configuration.</p>"
            }
        },
        "com.amazonaws.iotsitewise#GatewayPlatform": {
            "type": "structure",
            "members": {
                "greengrass": {
                    "target": "com.amazonaws.iotsitewise#Greengrass",
                    "traits": {
                        "smithy.api#documentation": "<p>A gateway that runs on AWS IoT Greengrass.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains a gateway's platform information.</p>"
            }
        },
        "com.amazonaws.iotsitewise#GatewaySummaries": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#GatewaySummary"
            }
        },
        "com.amazonaws.iotsitewise#GatewaySummary": {
            "type": "structure",
            "members": {
                "gatewayId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the gateway device.</p>",
                        "smithy.api#required": {}
                    }
                },
                "gatewayName": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the asset.</p>",
                        "smithy.api#required": {}
                    }
                },
                "gatewayCapabilitySummaries": {
                    "target": "com.amazonaws.iotsitewise#GatewayCapabilitySummaries",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of gateway capability summaries that each contain a namespace and status. Each\n      gateway capability defines data sources for the gateway. To retrieve a capability\n      configuration's definition, use <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeGatewayCapabilityConfiguration.html\">DescribeGatewayCapabilityConfiguration</a>.</p>"
                    }
                },
                "creationDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the gateway was created, in Unix epoch time.</p>",
                        "smithy.api#required": {}
                    }
                },
                "lastUpdateDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the gateway was last updated, in Unix epoch time.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains a summary of a gateway.</p>"
            }
        },
        "com.amazonaws.iotsitewise#GetAssetPropertyAggregates": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#GetAssetPropertyAggregatesRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#GetAssetPropertyAggregatesResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ServiceUnavailableException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Gets aggregated values for an asset property. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/query-industrial-data.html#aggregates\">Querying\n        aggregates</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n         <p>To identify an asset property, you must specify one of the following:</p>\n         <ul>\n            <li>\n               <p>The <code>assetId</code> and <code>propertyId</code> of an asset property.</p>\n            </li>\n            <li>\n               <p>A <code>propertyAlias</code>, which is a data stream alias (for example,\n          <code>/company/windfarm/3/turbine/7/temperature</code>). To define an asset property's alias, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>\n            </li>\n         </ul>",
                "smithy.api#endpoint": {
                    "hostPrefix": "data."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/properties/aggregates",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "nextToken",
                    "outputToken": "nextToken",
                    "pageSize": "maxResults"
                }
            }
        },
        "com.amazonaws.iotsitewise#GetAssetPropertyAggregatesRequest": {
            "type": "structure",
            "members": {
                "assetId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset.</p>",
                        "smithy.api#httpQuery": "assetId"
                    }
                },
                "propertyId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset property.</p>",
                        "smithy.api#httpQuery": "propertyId"
                    }
                },
                "propertyAlias": {
                    "target": "com.amazonaws.iotsitewise#AssetPropertyAlias",
                    "traits": {
                        "smithy.api#documentation": "<p>The property alias that identifies the property, such as an OPC-UA server data stream path\n        (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see\n        <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the\n        <i>AWS IoT SiteWise User Guide</i>.</p>",
                        "smithy.api#httpQuery": "propertyAlias"
                    }
                },
                "aggregateTypes": {
                    "target": "com.amazonaws.iotsitewise#AggregateTypes",
                    "traits": {
                        "smithy.api#documentation": "<p>The data aggregating function.</p>",
                        "smithy.api#httpQuery": "aggregateTypes",
                        "smithy.api#required": {}
                    }
                },
                "resolution": {
                    "target": "com.amazonaws.iotsitewise#Resolution",
                    "traits": {
                        "smithy.api#documentation": "<p>The time interval over which to aggregate data.</p>",
                        "smithy.api#httpQuery": "resolution",
                        "smithy.api#required": {}
                    }
                },
                "qualities": {
                    "target": "com.amazonaws.iotsitewise#Qualities",
                    "traits": {
                        "smithy.api#documentation": "<p>The quality by which to filter asset data.</p>",
                        "smithy.api#httpQuery": "qualities"
                    }
                },
                "startDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The exclusive start of the range from which to query historical data, expressed in seconds in Unix epoch time.</p>",
                        "smithy.api#httpQuery": "startDate",
                        "smithy.api#required": {}
                    }
                },
                "endDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The inclusive end of the range from which to query historical data, expressed in seconds in Unix epoch time.</p>",
                        "smithy.api#httpQuery": "endDate",
                        "smithy.api#required": {}
                    }
                },
                "timeOrdering": {
                    "target": "com.amazonaws.iotsitewise#TimeOrdering",
                    "traits": {
                        "smithy.api#documentation": "<p>The chronological sorting order of the requested information.</p>\n         <p>Default: <code>ASCENDING</code>\n         </p>",
                        "smithy.api#httpQuery": "timeOrdering"
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token to be used for the next set of paginated results.</p>",
                        "smithy.api#httpQuery": "nextToken"
                    }
                },
                "maxResults": {
                    "target": "com.amazonaws.iotsitewise#MaxResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to be returned per paginated request.</p>\n         <p>Default: 100</p>",
                        "smithy.api#httpQuery": "maxResults"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#GetAssetPropertyAggregatesResponse": {
            "type": "structure",
            "members": {
                "aggregatedValues": {
                    "target": "com.amazonaws.iotsitewise#AggregatedValues",
                    "traits": {
                        "smithy.api#documentation": "<p>The requested aggregated values.</p>",
                        "smithy.api#required": {}
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token for the next set of results, or null if there are no additional results.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#GetAssetPropertyValue": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#GetAssetPropertyValueRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#GetAssetPropertyValueResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ServiceUnavailableException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Gets an asset property's current value. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/query-industrial-data.html#current-values\">Querying\n        current values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n         <p>To identify an asset property, you must specify one of the following:</p>\n         <ul>\n            <li>\n               <p>The <code>assetId</code> and <code>propertyId</code> of an asset property.</p>\n            </li>\n            <li>\n               <p>A <code>propertyAlias</code>, which is a data stream alias (for example,\n          <code>/company/windfarm/3/turbine/7/temperature</code>). To define an asset property's alias, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>\n            </li>\n         </ul>",
                "smithy.api#endpoint": {
                    "hostPrefix": "data."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/properties/latest",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#GetAssetPropertyValueHistory": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#GetAssetPropertyValueHistoryRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#GetAssetPropertyValueHistoryResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ServiceUnavailableException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Gets the history of an asset property's values. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/query-industrial-data.html#historical-values\">Querying\n        historical values</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n         <p>To identify an asset property, you must specify one of the following:</p>\n         <ul>\n            <li>\n               <p>The <code>assetId</code> and <code>propertyId</code> of an asset property.</p>\n            </li>\n            <li>\n               <p>A <code>propertyAlias</code>, which is a data stream alias (for example,\n          <code>/company/windfarm/3/turbine/7/temperature</code>). To define an asset property's alias, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>\n            </li>\n         </ul>",
                "smithy.api#endpoint": {
                    "hostPrefix": "data."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/properties/history",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "nextToken",
                    "outputToken": "nextToken",
                    "pageSize": "maxResults"
                }
            }
        },
        "com.amazonaws.iotsitewise#GetAssetPropertyValueHistoryRequest": {
            "type": "structure",
            "members": {
                "assetId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset.</p>",
                        "smithy.api#httpQuery": "assetId"
                    }
                },
                "propertyId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset property.</p>",
                        "smithy.api#httpQuery": "propertyId"
                    }
                },
                "propertyAlias": {
                    "target": "com.amazonaws.iotsitewise#AssetPropertyAlias",
                    "traits": {
                        "smithy.api#documentation": "<p>The property alias that identifies the property, such as an OPC-UA server data stream path\n        (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see\n        <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the\n        <i>AWS IoT SiteWise User Guide</i>.</p>",
                        "smithy.api#httpQuery": "propertyAlias"
                    }
                },
                "startDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The exclusive start of the range from which to query historical data, expressed in seconds in Unix epoch time.</p>",
                        "smithy.api#httpQuery": "startDate"
                    }
                },
                "endDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The inclusive end of the range from which to query historical data, expressed in seconds in Unix epoch time.</p>",
                        "smithy.api#httpQuery": "endDate"
                    }
                },
                "qualities": {
                    "target": "com.amazonaws.iotsitewise#Qualities",
                    "traits": {
                        "smithy.api#documentation": "<p>The quality by which to filter asset data.</p>",
                        "smithy.api#httpQuery": "qualities"
                    }
                },
                "timeOrdering": {
                    "target": "com.amazonaws.iotsitewise#TimeOrdering",
                    "traits": {
                        "smithy.api#documentation": "<p>The chronological sorting order of the requested information.</p>\n         <p>Default: <code>ASCENDING</code>\n         </p>",
                        "smithy.api#httpQuery": "timeOrdering"
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token to be used for the next set of paginated results.</p>",
                        "smithy.api#httpQuery": "nextToken"
                    }
                },
                "maxResults": {
                    "target": "com.amazonaws.iotsitewise#MaxResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to be returned per paginated request.</p>\n         <p>Default: 100</p>",
                        "smithy.api#httpQuery": "maxResults"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#GetAssetPropertyValueHistoryResponse": {
            "type": "structure",
            "members": {
                "assetPropertyValueHistory": {
                    "target": "com.amazonaws.iotsitewise#AssetPropertyValueHistory",
                    "traits": {
                        "smithy.api#documentation": "<p>The asset property's value history.</p>",
                        "smithy.api#required": {}
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token for the next set of results, or null if there are no additional results.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#GetAssetPropertyValueRequest": {
            "type": "structure",
            "members": {
                "assetId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset.</p>",
                        "smithy.api#httpQuery": "assetId"
                    }
                },
                "propertyId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset property.</p>",
                        "smithy.api#httpQuery": "propertyId"
                    }
                },
                "propertyAlias": {
                    "target": "com.amazonaws.iotsitewise#AssetPropertyAlias",
                    "traits": {
                        "smithy.api#documentation": "<p>The property alias that identifies the property, such as an OPC-UA server data stream path\n        (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see\n        <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the\n        <i>AWS IoT SiteWise User Guide</i>.</p>",
                        "smithy.api#httpQuery": "propertyAlias"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#GetAssetPropertyValueResponse": {
            "type": "structure",
            "members": {
                "propertyValue": {
                    "target": "com.amazonaws.iotsitewise#AssetPropertyValue",
                    "traits": {
                        "smithy.api#documentation": "<p>The current asset property value.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#GetInterpolatedAssetPropertyValues": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#GetInterpolatedAssetPropertyValuesRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#GetInterpolatedAssetPropertyValuesResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ServiceUnavailableException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Get interpolated values for an asset property for a specified time interval, during a\n      period of time. For example, you can use the this operation to return the interpolated temperature values for a wind turbine every 24 hours \n      over a duration of 7 days.</p>\n         <note>\n            <p>This API isn't available in China (Beijing).</p>\n         </note>\n         <p>To identify an asset property, you must specify one of the following:</p>\n         <ul>\n            <li>\n               <p>The <code>assetId</code> and <code>propertyId</code> of an asset property.</p>\n            </li>\n            <li>\n               <p>A <code>propertyAlias</code>, which is a data stream alias (for example,\n          <code>/company/windfarm/3/turbine/7/temperature</code>). To define an asset property's alias, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>\n            </li>\n         </ul>",
                "smithy.api#endpoint": {
                    "hostPrefix": "data."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/properties/interpolated",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "nextToken",
                    "outputToken": "nextToken",
                    "pageSize": "maxResults"
                }
            }
        },
        "com.amazonaws.iotsitewise#GetInterpolatedAssetPropertyValuesRequest": {
            "type": "structure",
            "members": {
                "assetId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset.</p>",
                        "smithy.api#httpQuery": "assetId"
                    }
                },
                "propertyId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset property.</p>",
                        "smithy.api#httpQuery": "propertyId"
                    }
                },
                "propertyAlias": {
                    "target": "com.amazonaws.iotsitewise#AssetPropertyAlias",
                    "traits": {
                        "smithy.api#documentation": "<p>The property alias that identifies the property, such as an OPC-UA server data stream path\n        (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see\n        <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the\n        <i>AWS IoT SiteWise User Guide</i>.</p>",
                        "smithy.api#httpQuery": "propertyAlias"
                    }
                },
                "startTimeInSeconds": {
                    "target": "com.amazonaws.iotsitewise#TimeInSeconds",
                    "traits": {
                        "smithy.api#documentation": "<p>The exclusive start of the range from which to interpolate data, expressed in seconds in\n      Unix epoch time.</p>",
                        "smithy.api#httpQuery": "startTimeInSeconds",
                        "smithy.api#required": {}
                    }
                },
                "startTimeOffsetInNanos": {
                    "target": "com.amazonaws.iotsitewise#OffsetInNanos",
                    "traits": {
                        "smithy.api#documentation": "<p>The nanosecond offset converted from <code>startTimeInSeconds</code>.</p>",
                        "smithy.api#httpQuery": "startTimeOffsetInNanos"
                    }
                },
                "endTimeInSeconds": {
                    "target": "com.amazonaws.iotsitewise#TimeInSeconds",
                    "traits": {
                        "smithy.api#documentation": "<p>The inclusive end of the range from which to interpolate data, expressed in seconds in\n      Unix epoch time.</p>",
                        "smithy.api#httpQuery": "endTimeInSeconds",
                        "smithy.api#required": {}
                    }
                },
                "endTimeOffsetInNanos": {
                    "target": "com.amazonaws.iotsitewise#OffsetInNanos",
                    "traits": {
                        "smithy.api#documentation": "<p>The nanosecond offset converted from <code>endTimeInSeconds</code>.</p>",
                        "smithy.api#httpQuery": "endTimeOffsetInNanos"
                    }
                },
                "quality": {
                    "target": "com.amazonaws.iotsitewise#Quality",
                    "traits": {
                        "smithy.api#documentation": "<p>The quality of the asset property value. You can use this parameter as a filter to choose\n      only the asset property values that have a specific quality.</p>",
                        "smithy.api#httpQuery": "quality",
                        "smithy.api#required": {}
                    }
                },
                "intervalInSeconds": {
                    "target": "com.amazonaws.iotsitewise#IntervalInSeconds",
                    "traits": {
                        "smithy.api#documentation": "<p>The time interval in seconds over which to interpolate data. Each interval starts when the\n      previous one ends.</p>",
                        "smithy.api#httpQuery": "intervalInSeconds",
                        "smithy.api#required": {}
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token to be used for the next set of paginated results.</p>",
                        "smithy.api#httpQuery": "nextToken"
                    }
                },
                "maxResults": {
                    "target": "com.amazonaws.iotsitewise#MaxInterpolatedResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to be returned per paginated request. \n      If not specified, the default value is 10.</p>",
                        "smithy.api#httpQuery": "maxResults"
                    }
                },
                "type": {
                    "target": "com.amazonaws.iotsitewise#InterpolationType",
                    "traits": {
                        "smithy.api#documentation": "<p>The interpolation type.</p>\n         <p>Valid values: <code>LINEAR_INTERPOLATION</code>\n         </p>",
                        "smithy.api#httpQuery": "type",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#GetInterpolatedAssetPropertyValuesResponse": {
            "type": "structure",
            "members": {
                "interpolatedAssetPropertyValues": {
                    "target": "com.amazonaws.iotsitewise#InterpolatedAssetPropertyValues",
                    "traits": {
                        "smithy.api#documentation": "<p>The requested interpolated values.</p>",
                        "smithy.api#required": {}
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token for the next set of results, or null if there are no additional results.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#Greengrass": {
            "type": "structure",
            "members": {
                "groupArn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the Greengrass group. For more information about how to find a group's\n      ARN, see <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/listgroups-get.html\">ListGroups</a> and <a href=\"https://docs.aws.amazon.com/greengrass/latest/apireference/getgroup-get.html\">GetGroup</a> in the\n        <i>AWS IoT Greengrass API Reference</i>.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains details for a gateway that runs on AWS IoT Greengrass. To create a gateway that runs on AWS IoT Greengrass,\n      you must add the IoT SiteWise connector to a Greengrass group and deploy it. Your Greengrass\n      group must also have permissions to upload data to AWS IoT SiteWise. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/gateway-connector.html\">Ingesting data using a\n        gateway</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>"
            }
        },
        "com.amazonaws.iotsitewise#GroupIdentity": {
            "type": "structure",
            "members": {
                "id": {
                    "target": "com.amazonaws.iotsitewise#IdentityId",
                    "traits": {
                        "smithy.api#documentation": "<p>The AWS SSO ID of the group.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains information for a group identity in an access policy.</p>"
            }
        },
        "com.amazonaws.iotsitewise#IAMRoleIdentity": {
            "type": "structure",
            "members": {
                "arn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the IAM role. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the\n      <i>IAM User Guide</i>.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains information about an AWS Identity and Access Management (IAM) role. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html\">IAM roles</a> in the\n      <i>IAM User Guide</i>.</p>"
            }
        },
        "com.amazonaws.iotsitewise#IAMUserIdentity": {
            "type": "structure",
            "members": {
                "arn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the\n      <i>IAM User Guide</i>.</p>\n         <note>\n            <p>If you delete the IAM user, access policies that contain this identity include an\n        empty <code>arn</code>. You can delete the access policy for the IAM user that no longer\n        exists.</p>\n         </note>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains information about an AWS Identity and Access Management (IAM) user.</p>"
            }
        },
        "com.amazonaws.iotsitewise#ID": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 36,
                    "max": 36
                },
                "smithy.api#pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
            }
        },
        "com.amazonaws.iotsitewise#IDs": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#ID"
            },
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 100
                }
            }
        },
        "com.amazonaws.iotsitewise#Identity": {
            "type": "structure",
            "members": {
                "user": {
                    "target": "com.amazonaws.iotsitewise#UserIdentity",
                    "traits": {
                        "smithy.api#documentation": "<p>An AWS SSO user identity.</p>"
                    }
                },
                "group": {
                    "target": "com.amazonaws.iotsitewise#GroupIdentity",
                    "traits": {
                        "smithy.api#documentation": "<p>An AWS SSO group identity.</p>"
                    }
                },
                "iamUser": {
                    "target": "com.amazonaws.iotsitewise#IAMUserIdentity",
                    "traits": {
                        "smithy.api#documentation": "<p>An IAM user identity.</p>"
                    }
                },
                "iamRole": {
                    "target": "com.amazonaws.iotsitewise#IAMRoleIdentity",
                    "traits": {
                        "smithy.api#documentation": "<p>An IAM role identity.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains an identity that can access an AWS IoT SiteWise Monitor resource.</p>\n         <note>\n            <p>Currently, you can't use AWS APIs to retrieve AWS SSO identity IDs. You can find the\n        AWS SSO identity IDs in the URL of user and group pages in the <a href=\"https://console.aws.amazon.com/singlesignon\">AWS SSO console</a>.</p>\n         </note>"
            }
        },
        "com.amazonaws.iotsitewise#IdentityId": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 256
                },
                "smithy.api#pattern": "\\S+"
            }
        },
        "com.amazonaws.iotsitewise#IdentityType": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "USER",
                        "name": "USER"
                    },
                    {
                        "value": "GROUP",
                        "name": "GROUP"
                    },
                    {
                        "value": "IAM",
                        "name": "IAM"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#Image": {
            "type": "structure",
            "members": {
                "id": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of an existing image. Specify this parameter to keep an existing image.</p>"
                    }
                },
                "file": {
                    "target": "com.amazonaws.iotsitewise#ImageFile"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains an image that is one of the following:</p>\n         <ul>\n            <li>\n               <p>An image file. Choose this option to upload a new image.</p>\n            </li>\n            <li>\n               <p>The ID of an existing image. Choose this option to keep an existing image.</p>\n            </li>\n         </ul>"
            }
        },
        "com.amazonaws.iotsitewise#ImageFile": {
            "type": "structure",
            "members": {
                "data": {
                    "target": "com.amazonaws.iotsitewise#ImageFileData",
                    "traits": {
                        "smithy.api#documentation": "<p>The image file contents, represented as a base64-encoded string. The file size must be\n      less than 1 MB.</p>",
                        "smithy.api#required": {}
                    }
                },
                "type": {
                    "target": "com.amazonaws.iotsitewise#ImageFileType",
                    "traits": {
                        "smithy.api#documentation": "<p>The file type of the image.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains an image file.</p>"
            }
        },
        "com.amazonaws.iotsitewise#ImageFileData": {
            "type": "blob",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 1500000
                }
            }
        },
        "com.amazonaws.iotsitewise#ImageFileType": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "PNG",
                        "name": "PNG"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#ImageLocation": {
            "type": "structure",
            "members": {
                "id": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the image.</p>",
                        "smithy.api#required": {}
                    }
                },
                "url": {
                    "target": "com.amazonaws.iotsitewise#Url",
                    "traits": {
                        "smithy.api#documentation": "<p>The URL where the image is available. The URL is valid for 15 minutes so that you can view\n      and download the image</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains an image that is uploaded to AWS IoT SiteWise and available at a URL.</p>"
            }
        },
        "com.amazonaws.iotsitewise#InternalFailureException": {
            "type": "structure",
            "members": {
                "message": {
                    "target": "com.amazonaws.iotsitewise#ErrorMessage",
                    "traits": {
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>AWS IoT SiteWise can't process your request right now. Try again later.</p>",
                "smithy.api#error": "server",
                "smithy.api#httpError": 500
            }
        },
        "com.amazonaws.iotsitewise#InterpolatedAssetPropertyValue": {
            "type": "structure",
            "members": {
                "timestamp": {
                    "target": "com.amazonaws.iotsitewise#TimeInNanos",
                    "traits": {
                        "smithy.api#required": {}
                    }
                },
                "value": {
                    "target": "com.amazonaws.iotsitewise#Variant",
                    "traits": {
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains information about an interpolated asset property value.</p>"
            }
        },
        "com.amazonaws.iotsitewise#InterpolatedAssetPropertyValues": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#InterpolatedAssetPropertyValue"
            }
        },
        "com.amazonaws.iotsitewise#InterpolationType": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 256
                }
            }
        },
        "com.amazonaws.iotsitewise#Interval": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 2,
                    "max": 3
                },
                "smithy.api#pattern": "1w|1d|1h|15m|5m|1m"
            }
        },
        "com.amazonaws.iotsitewise#IntervalInSeconds": {
            "type": "long",
            "traits": {
                "smithy.api#box": {},
                "smithy.api#range": {
                    "min": 1,
                    "max": 320000000
                }
            }
        },
        "com.amazonaws.iotsitewise#InvalidRequestException": {
            "type": "structure",
            "members": {
                "message": {
                    "target": "com.amazonaws.iotsitewise#ErrorMessage",
                    "traits": {
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The request isn't valid. This can occur if your request contains malformed JSON or\n      unsupported characters. Check your request and try again.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.iotsitewise#KmsKeyId": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 2048
                }
            }
        },
        "com.amazonaws.iotsitewise#LimitExceededException": {
            "type": "structure",
            "members": {
                "message": {
                    "target": "com.amazonaws.iotsitewise#ErrorMessage",
                    "traits": {
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>You've reached the limit for a resource. For example, this can occur if you're trying to\n      associate more than the allowed number of child assets or attempting to create more than the\n      allowed number of properties for an asset model.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 410
            }
        },
        "com.amazonaws.iotsitewise#ListAccessPolicies": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#ListAccessPoliciesRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#ListAccessPoliciesResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves a paginated list of access policies for an identity (an AWS SSO user, an AWS SSO\n      group, or an IAM user) or an AWS IoT SiteWise Monitor resource (a portal or project).</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "monitor."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/access-policies",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "nextToken",
                    "outputToken": "nextToken",
                    "pageSize": "maxResults"
                }
            }
        },
        "com.amazonaws.iotsitewise#ListAccessPoliciesRequest": {
            "type": "structure",
            "members": {
                "identityType": {
                    "target": "com.amazonaws.iotsitewise#IdentityType",
                    "traits": {
                        "smithy.api#documentation": "<p>The type of identity (AWS SSO user, AWS SSO group, or IAM user). This parameter is required\n      if you specify <code>identityId</code>.</p>",
                        "smithy.api#httpQuery": "identityType"
                    }
                },
                "identityId": {
                    "target": "com.amazonaws.iotsitewise#IdentityId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the identity. This parameter is required if you specify <code>USER</code> or\n        <code>GROUP</code> for <code>identityType</code>.</p>",
                        "smithy.api#httpQuery": "identityId"
                    }
                },
                "resourceType": {
                    "target": "com.amazonaws.iotsitewise#ResourceType",
                    "traits": {
                        "smithy.api#documentation": "<p>The type of resource (portal or project). This parameter is required if you specify\n        <code>resourceId</code>.</p>",
                        "smithy.api#httpQuery": "resourceType"
                    }
                },
                "resourceId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the resource. This parameter is required if you specify\n        <code>resourceType</code>.</p>",
                        "smithy.api#httpQuery": "resourceId"
                    }
                },
                "iamArn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the IAM user. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html\">IAM ARNs</a> in the\n        <i>IAM User Guide</i>. This parameter is required if you specify\n        <code>IAM</code> for <code>identityType</code>.</p>",
                        "smithy.api#httpQuery": "iamArn"
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token to be used for the next set of paginated results.</p>",
                        "smithy.api#httpQuery": "nextToken"
                    }
                },
                "maxResults": {
                    "target": "com.amazonaws.iotsitewise#MaxResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to be returned per paginated request.</p>\n         <p>Default: 50</p>",
                        "smithy.api#httpQuery": "maxResults"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#ListAccessPoliciesResponse": {
            "type": "structure",
            "members": {
                "accessPolicySummaries": {
                    "target": "com.amazonaws.iotsitewise#AccessPolicySummaries",
                    "traits": {
                        "smithy.api#documentation": "<p>A list that summarizes each access policy.</p>",
                        "smithy.api#required": {}
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token for the next set of results, or null if there are no additional results.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#ListAssetModels": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#ListAssetModelsRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#ListAssetModelsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves a paginated list of summaries of all asset models.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "model."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/asset-models",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "nextToken",
                    "outputToken": "nextToken",
                    "pageSize": "maxResults"
                }
            }
        },
        "com.amazonaws.iotsitewise#ListAssetModelsRequest": {
            "type": "structure",
            "members": {
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token to be used for the next set of paginated results.</p>",
                        "smithy.api#httpQuery": "nextToken"
                    }
                },
                "maxResults": {
                    "target": "com.amazonaws.iotsitewise#MaxResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to be returned per paginated request.</p>\n         <p>Default: 50</p>",
                        "smithy.api#httpQuery": "maxResults"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#ListAssetModelsResponse": {
            "type": "structure",
            "members": {
                "assetModelSummaries": {
                    "target": "com.amazonaws.iotsitewise#AssetModelSummaries",
                    "traits": {
                        "smithy.api#documentation": "<p>A list that summarizes each asset model.</p>",
                        "smithy.api#required": {}
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token for the next set of results, or null if there are no additional results.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#ListAssetRelationships": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#ListAssetRelationshipsRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#ListAssetRelationshipsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves a paginated list of asset relationships for an asset. You can use this operation\n      to identify an asset's root asset and all associated assets between that asset and its\n      root.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "model."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/assets/{assetId}/assetRelationships",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "nextToken",
                    "outputToken": "nextToken",
                    "pageSize": "maxResults"
                }
            }
        },
        "com.amazonaws.iotsitewise#ListAssetRelationshipsRequest": {
            "type": "structure",
            "members": {
                "assetId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "traversalType": {
                    "target": "com.amazonaws.iotsitewise#TraversalType",
                    "traits": {
                        "smithy.api#documentation": "<p>The type of traversal to use to identify asset relationships. Choose the following\n      option:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>PATH_TO_ROOT</code> – Identify the asset's parent assets up to the root\n          asset. The asset that you specify in <code>assetId</code> is the first result in the list\n          of <code>assetRelationshipSummaries</code>, and the root asset is the last result.</p>\n            </li>\n         </ul>",
                        "smithy.api#httpQuery": "traversalType",
                        "smithy.api#required": {}
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token to be used for the next set of paginated results.</p>",
                        "smithy.api#httpQuery": "nextToken"
                    }
                },
                "maxResults": {
                    "target": "com.amazonaws.iotsitewise#MaxResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to be returned per paginated request.</p>",
                        "smithy.api#httpQuery": "maxResults"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#ListAssetRelationshipsResponse": {
            "type": "structure",
            "members": {
                "assetRelationshipSummaries": {
                    "target": "com.amazonaws.iotsitewise#AssetRelationshipSummaries",
                    "traits": {
                        "smithy.api#documentation": "<p>A list that summarizes each asset relationship.</p>",
                        "smithy.api#required": {}
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token for the next set of results, or null if there are no additional results.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#ListAssets": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#ListAssetsRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#ListAssetsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves a paginated list of asset summaries.</p>\n         <p>You can use this operation to do the following:</p>\n         <ul>\n            <li>\n               <p>List assets based on a specific asset model.</p>\n            </li>\n            <li>\n               <p>List top-level assets.</p>\n            </li>\n         </ul>\n         <p>You can't use this operation to list all assets. To retrieve summaries for all of your\n      assets, use <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ListAssetModels.html\">ListAssetModels</a> to get all of your asset model IDs. Then, use ListAssets to get all\n      assets for each asset model.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "model."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/assets",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "nextToken",
                    "outputToken": "nextToken",
                    "pageSize": "maxResults"
                }
            }
        },
        "com.amazonaws.iotsitewise#ListAssetsFilter": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "ALL",
                        "name": "ALL"
                    },
                    {
                        "value": "TOP_LEVEL",
                        "name": "TOP_LEVEL"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#ListAssetsRequest": {
            "type": "structure",
            "members": {
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token to be used for the next set of paginated results.</p>",
                        "smithy.api#httpQuery": "nextToken"
                    }
                },
                "maxResults": {
                    "target": "com.amazonaws.iotsitewise#MaxResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to be returned per paginated request.</p>\n         <p>Default: 50</p>",
                        "smithy.api#httpQuery": "maxResults"
                    }
                },
                "assetModelId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset model by which to filter the list of assets. This parameter is\n      required if you choose <code>ALL</code> for <code>filter</code>.</p>",
                        "smithy.api#httpQuery": "assetModelId"
                    }
                },
                "filter": {
                    "target": "com.amazonaws.iotsitewise#ListAssetsFilter",
                    "traits": {
                        "smithy.api#documentation": "<p>The filter for the requested list of assets. Choose one of the following options:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>ALL</code> – The list includes all assets for a given asset model ID. The\n            <code>assetModelId</code> parameter is required if you filter by\n          <code>ALL</code>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>TOP_LEVEL</code> – The list includes only top-level assets in the asset\n          hierarchy tree.</p>\n            </li>\n         </ul>\n         <p>Default: <code>ALL</code>\n         </p>",
                        "smithy.api#httpQuery": "filter"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#ListAssetsResponse": {
            "type": "structure",
            "members": {
                "assetSummaries": {
                    "target": "com.amazonaws.iotsitewise#AssetSummaries",
                    "traits": {
                        "smithy.api#documentation": "<p>A list that summarizes each asset.</p>",
                        "smithy.api#required": {}
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token for the next set of results, or null if there are no additional results.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#ListAssociatedAssets": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#ListAssociatedAssetsRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#ListAssociatedAssetsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves a paginated list of associated assets.</p>\n         <p>You can use this operation to do the following:</p>\n         <ul>\n            <li>\n               <p>List child assets associated to a parent asset by a hierarchy that you specify.</p>\n            </li>\n            <li>\n               <p>List an asset's parent asset.</p>\n            </li>\n         </ul>",
                "smithy.api#endpoint": {
                    "hostPrefix": "model."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/assets/{assetId}/hierarchies",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "nextToken",
                    "outputToken": "nextToken",
                    "pageSize": "maxResults"
                }
            }
        },
        "com.amazonaws.iotsitewise#ListAssociatedAssetsRequest": {
            "type": "structure",
            "members": {
                "assetId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset to query.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "hierarchyId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the hierarchy by which child assets are associated to the asset. To find a\n      hierarchy ID, use the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAsset.html\">DescribeAsset</a> or <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAssetModel.html\">DescribeAssetModel</a> operations. This\n      parameter is required if you choose <code>CHILD</code> for\n      <code>traversalDirection</code>.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
                        "smithy.api#httpQuery": "hierarchyId"
                    }
                },
                "traversalDirection": {
                    "target": "com.amazonaws.iotsitewise#TraversalDirection",
                    "traits": {
                        "smithy.api#documentation": "<p>The direction to list associated assets. Choose one of the following options:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>CHILD</code> – The list includes all child assets associated to the\n          asset. The <code>hierarchyId</code> parameter is required if you choose\n          <code>CHILD</code>.</p>\n            </li>\n            <li>\n               <p>\n                  <code>PARENT</code> – The list includes the asset's parent asset.</p>\n            </li>\n         </ul>\n         <p>Default: <code>CHILD</code>\n         </p>",
                        "smithy.api#httpQuery": "traversalDirection"
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token to be used for the next set of paginated results.</p>",
                        "smithy.api#httpQuery": "nextToken"
                    }
                },
                "maxResults": {
                    "target": "com.amazonaws.iotsitewise#MaxResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to be returned per paginated request.</p>\n         <p>Default: 50</p>",
                        "smithy.api#httpQuery": "maxResults"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#ListAssociatedAssetsResponse": {
            "type": "structure",
            "members": {
                "assetSummaries": {
                    "target": "com.amazonaws.iotsitewise#AssociatedAssetsSummaries",
                    "traits": {
                        "smithy.api#documentation": "<p>A list that summarizes the associated assets.</p>",
                        "smithy.api#required": {}
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token for the next set of results, or null if there are no additional results.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#ListDashboards": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#ListDashboardsRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#ListDashboardsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves a paginated list of dashboards for an AWS IoT SiteWise Monitor project.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "monitor."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/dashboards",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "nextToken",
                    "outputToken": "nextToken",
                    "pageSize": "maxResults"
                }
            }
        },
        "com.amazonaws.iotsitewise#ListDashboardsRequest": {
            "type": "structure",
            "members": {
                "projectId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the project.</p>",
                        "smithy.api#httpQuery": "projectId",
                        "smithy.api#required": {}
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token to be used for the next set of paginated results.</p>",
                        "smithy.api#httpQuery": "nextToken"
                    }
                },
                "maxResults": {
                    "target": "com.amazonaws.iotsitewise#MaxResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to be returned per paginated request.</p>\n         <p>Default: 50</p>",
                        "smithy.api#httpQuery": "maxResults"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#ListDashboardsResponse": {
            "type": "structure",
            "members": {
                "dashboardSummaries": {
                    "target": "com.amazonaws.iotsitewise#DashboardSummaries",
                    "traits": {
                        "smithy.api#documentation": "<p>A list that summarizes each dashboard in the project.</p>",
                        "smithy.api#required": {}
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token for the next set of results, or null if there are no additional results.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#ListGateways": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#ListGatewaysRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#ListGatewaysResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves a paginated list of gateways.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "edge."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/20200301/gateways",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "nextToken",
                    "outputToken": "nextToken",
                    "pageSize": "maxResults"
                }
            }
        },
        "com.amazonaws.iotsitewise#ListGatewaysRequest": {
            "type": "structure",
            "members": {
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token to be used for the next set of paginated results.</p>",
                        "smithy.api#httpQuery": "nextToken"
                    }
                },
                "maxResults": {
                    "target": "com.amazonaws.iotsitewise#MaxResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to be returned per paginated request.</p>\n         <p>Default: 50</p>",
                        "smithy.api#httpQuery": "maxResults"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#ListGatewaysResponse": {
            "type": "structure",
            "members": {
                "gatewaySummaries": {
                    "target": "com.amazonaws.iotsitewise#GatewaySummaries",
                    "traits": {
                        "smithy.api#documentation": "<p>A list that summarizes each gateway.</p>",
                        "smithy.api#required": {}
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token for the next set of results, or null if there are no additional results.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#ListPortals": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#ListPortalsRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#ListPortalsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves a paginated list of AWS IoT SiteWise Monitor portals.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "monitor."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/portals",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "nextToken",
                    "outputToken": "nextToken",
                    "pageSize": "maxResults"
                }
            }
        },
        "com.amazonaws.iotsitewise#ListPortalsRequest": {
            "type": "structure",
            "members": {
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token to be used for the next set of paginated results.</p>",
                        "smithy.api#httpQuery": "nextToken"
                    }
                },
                "maxResults": {
                    "target": "com.amazonaws.iotsitewise#MaxResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to be returned per paginated request.</p>\n         <p>Default: 50</p>",
                        "smithy.api#httpQuery": "maxResults"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#ListPortalsResponse": {
            "type": "structure",
            "members": {
                "portalSummaries": {
                    "target": "com.amazonaws.iotsitewise#PortalSummaries",
                    "traits": {
                        "smithy.api#documentation": "<p>A list that summarizes each portal.</p>"
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token for the next set of results, or null if there are no additional results.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#ListProjectAssets": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#ListProjectAssetsRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#ListProjectAssetsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves a paginated list of assets associated with an AWS IoT SiteWise Monitor project.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "monitor."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/projects/{projectId}/assets",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "nextToken",
                    "outputToken": "nextToken",
                    "pageSize": "maxResults"
                }
            }
        },
        "com.amazonaws.iotsitewise#ListProjectAssetsRequest": {
            "type": "structure",
            "members": {
                "projectId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the project.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token to be used for the next set of paginated results.</p>",
                        "smithy.api#httpQuery": "nextToken"
                    }
                },
                "maxResults": {
                    "target": "com.amazonaws.iotsitewise#MaxResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to be returned per paginated request.</p>\n         <p>Default: 50</p>",
                        "smithy.api#httpQuery": "maxResults"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#ListProjectAssetsResponse": {
            "type": "structure",
            "members": {
                "assetIds": {
                    "target": "com.amazonaws.iotsitewise#AssetIDs",
                    "traits": {
                        "smithy.api#documentation": "<p>A list that contains the IDs of each asset associated with the project.</p>",
                        "smithy.api#required": {}
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token for the next set of results, or null if there are no additional results.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#ListProjects": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#ListProjectsRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#ListProjectsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves a paginated list of projects for an AWS IoT SiteWise Monitor portal.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "monitor."
                },
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/projects",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "nextToken",
                    "outputToken": "nextToken",
                    "pageSize": "maxResults"
                }
            }
        },
        "com.amazonaws.iotsitewise#ListProjectsRequest": {
            "type": "structure",
            "members": {
                "portalId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the portal.</p>",
                        "smithy.api#httpQuery": "portalId",
                        "smithy.api#required": {}
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token to be used for the next set of paginated results.</p>",
                        "smithy.api#httpQuery": "nextToken"
                    }
                },
                "maxResults": {
                    "target": "com.amazonaws.iotsitewise#MaxResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to be returned per paginated request.</p>\n         <p>Default: 50</p>",
                        "smithy.api#httpQuery": "maxResults"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#ListProjectsResponse": {
            "type": "structure",
            "members": {
                "projectSummaries": {
                    "target": "com.amazonaws.iotsitewise#ProjectSummaries",
                    "traits": {
                        "smithy.api#documentation": "<p>A list that summarizes each project in the portal.</p>",
                        "smithy.api#required": {}
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotsitewise#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token for the next set of results, or null if there are no additional results.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#ListTagsForResource": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#ListTagsForResourceRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#ListTagsForResourceResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#ConflictingOperationException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#UnauthorizedException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves the list of tags for an AWS IoT SiteWise resource.</p>",
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/tags",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#ListTagsForResourceRequest": {
            "type": "structure",
            "members": {
                "resourceArn": {
                    "target": "com.amazonaws.iotsitewise#AmazonResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the resource.</p>",
                        "smithy.api#httpQuery": "resourceArn",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#ListTagsForResourceResponse": {
            "type": "structure",
            "members": {
                "tags": {
                    "target": "com.amazonaws.iotsitewise#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The list of key-value pairs that contain metadata for the resource. For more information,\n      see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise\n        resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#LoggingLevel": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "ERROR",
                        "name": "ERROR"
                    },
                    {
                        "value": "INFO",
                        "name": "INFO"
                    },
                    {
                        "value": "OFF",
                        "name": "OFF"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#LoggingOptions": {
            "type": "structure",
            "members": {
                "level": {
                    "target": "com.amazonaws.iotsitewise#LoggingLevel",
                    "traits": {
                        "smithy.api#documentation": "<p>The AWS IoT SiteWise logging verbosity level.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains logging options.</p>"
            }
        },
        "com.amazonaws.iotsitewise#Macro": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 256
                },
                "smithy.api#pattern": "[^\\u0000-\\u001F\\u007F]+"
            }
        },
        "com.amazonaws.iotsitewise#MaxInterpolatedResults": {
            "type": "integer",
            "traits": {
                "smithy.api#box": {},
                "smithy.api#range": {
                    "min": 1
                }
            }
        },
        "com.amazonaws.iotsitewise#MaxResults": {
            "type": "integer",
            "traits": {
                "smithy.api#box": {},
                "smithy.api#range": {
                    "min": 1,
                    "max": 250
                }
            }
        },
        "com.amazonaws.iotsitewise#Measurement": {
            "type": "structure",
            "members": {},
            "traits": {
                "smithy.api#documentation": "<p>Contains an asset measurement property. For more information, see\n      <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html#measurements\">Measurements</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>"
            }
        },
        "com.amazonaws.iotsitewise#Metric": {
            "type": "structure",
            "members": {
                "expression": {
                    "target": "com.amazonaws.iotsitewise#Expression",
                    "traits": {
                        "smithy.api#documentation": "<p>The mathematical expression that defines the metric aggregation function. You can specify\n      up to 10 variables per expression. You can specify up to 10 functions\n      per expression. </p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "variables": {
                    "target": "com.amazonaws.iotsitewise#ExpressionVariables",
                    "traits": {
                        "smithy.api#documentation": "<p>The list of variables used in the expression.</p>",
                        "smithy.api#required": {}
                    }
                },
                "window": {
                    "target": "com.amazonaws.iotsitewise#MetricWindow",
                    "traits": {
                        "smithy.api#documentation": "<p>The window (time interval) over which AWS IoT SiteWise computes the metric's aggregation expression.\n      AWS IoT SiteWise computes one data point per <code>window</code>.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains an asset metric property. With metrics, you can calculate aggregate functions,\n      such as an average, maximum, or minimum, as specified through an expression. A metric maps\n      several values to a single value (such as a sum).</p>\n         <p>The maximum number of dependent/cascading variables used in any one metric calculation is\n      10. Therefore, a <i>root</i> metric can have\n      up to 10 cascading metrics in its computational dependency\n      tree. Additionally, a metric can only have a data type of <code>DOUBLE</code> and consume\n      properties with data types of <code>INTEGER</code> or <code>DOUBLE</code>.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html#metrics\">Metrics</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>"
            }
        },
        "com.amazonaws.iotsitewise#MetricWindow": {
            "type": "structure",
            "members": {
                "tumbling": {
                    "target": "com.amazonaws.iotsitewise#TumblingWindow",
                    "traits": {
                        "smithy.api#documentation": "<p>The tumbling time interval window.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains a time interval window used for data aggregate computations (for example,\n      average, sum, count, and so on).</p>"
            }
        },
        "com.amazonaws.iotsitewise#MonitorErrorCode": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "INTERNAL_FAILURE",
                        "name": "INTERNAL_FAILURE"
                    },
                    {
                        "value": "VALIDATION_ERROR",
                        "name": "VALIDATION_ERROR"
                    },
                    {
                        "value": "LIMIT_EXCEEDED",
                        "name": "LIMIT_EXCEEDED"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#MonitorErrorDetails": {
            "type": "structure",
            "members": {
                "code": {
                    "target": "com.amazonaws.iotsitewise#MonitorErrorCode",
                    "traits": {
                        "smithy.api#documentation": "<p>The error code.</p>"
                    }
                },
                "message": {
                    "target": "com.amazonaws.iotsitewise#MonitorErrorMessage",
                    "traits": {
                        "smithy.api#documentation": "<p>The error message.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains AWS IoT SiteWise Monitor error details.</p>"
            }
        },
        "com.amazonaws.iotsitewise#MonitorErrorMessage": {
            "type": "string"
        },
        "com.amazonaws.iotsitewise#Name": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 256
                },
                "smithy.api#pattern": "[^\\u0000-\\u001F\\u007F]+"
            }
        },
        "com.amazonaws.iotsitewise#NextToken": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 4096
                },
                "smithy.api#pattern": "[A-Za-z0-9+/=]+"
            }
        },
        "com.amazonaws.iotsitewise#OffsetInNanos": {
            "type": "integer",
            "traits": {
                "smithy.api#box": {},
                "smithy.api#range": {
                    "min": 0,
                    "max": 999999999
                }
            }
        },
        "com.amazonaws.iotsitewise#Permission": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "ADMINISTRATOR",
                        "name": "ADMINISTRATOR"
                    },
                    {
                        "value": "VIEWER",
                        "name": "VIEWER"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#PortalClientId": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 256
                },
                "smithy.api#pattern": "^[!-~]*"
            }
        },
        "com.amazonaws.iotsitewise#PortalResource": {
            "type": "structure",
            "members": {
                "id": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the portal.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Identifies an AWS IoT SiteWise Monitor portal.</p>"
            }
        },
        "com.amazonaws.iotsitewise#PortalState": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "CREATING",
                        "name": "CREATING"
                    },
                    {
                        "value": "UPDATING",
                        "name": "UPDATING"
                    },
                    {
                        "value": "DELETING",
                        "name": "DELETING"
                    },
                    {
                        "value": "ACTIVE",
                        "name": "ACTIVE"
                    },
                    {
                        "value": "FAILED",
                        "name": "FAILED"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#PortalStatus": {
            "type": "structure",
            "members": {
                "state": {
                    "target": "com.amazonaws.iotsitewise#PortalState",
                    "traits": {
                        "smithy.api#documentation": "<p>The current state of the portal.</p>",
                        "smithy.api#required": {}
                    }
                },
                "error": {
                    "target": "com.amazonaws.iotsitewise#MonitorErrorDetails",
                    "traits": {
                        "smithy.api#documentation": "<p>Contains associated error information, if any.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains information about the current status of a portal.</p>"
            }
        },
        "com.amazonaws.iotsitewise#PortalSummaries": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#PortalSummary"
            }
        },
        "com.amazonaws.iotsitewise#PortalSummary": {
            "type": "structure",
            "members": {
                "id": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the portal.</p>",
                        "smithy.api#required": {}
                    }
                },
                "name": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the portal.</p>",
                        "smithy.api#required": {}
                    }
                },
                "description": {
                    "target": "com.amazonaws.iotsitewise#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>The portal's description.</p>"
                    }
                },
                "startUrl": {
                    "target": "com.amazonaws.iotsitewise#Url",
                    "traits": {
                        "smithy.api#documentation": "<p>The URL for the AWS IoT SiteWise Monitor portal. You can use this URL to access portals that\n      use AWS SSO for authentication. For portals that use IAM for authentication, you must use the \n      AWS IoT SiteWise console to get a URL that you can use to access the portal.</p>",
                        "smithy.api#required": {}
                    }
                },
                "creationDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the portal was created, in Unix epoch time.</p>"
                    }
                },
                "lastUpdateDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the portal was last updated, in Unix epoch time.</p>"
                    }
                },
                "roleArn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the service role that allows the portal's users to access your AWS IoT SiteWise\n      resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the\n        <i>AWS IoT SiteWise User Guide</i>.</p>"
                    }
                },
                "status": {
                    "target": "com.amazonaws.iotsitewise#PortalStatus",
                    "traits": {
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains a portal summary.</p>"
            }
        },
        "com.amazonaws.iotsitewise#ProjectResource": {
            "type": "structure",
            "members": {
                "id": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the project.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Identifies a specific AWS IoT SiteWise Monitor project.</p>"
            }
        },
        "com.amazonaws.iotsitewise#ProjectSummaries": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#ProjectSummary"
            }
        },
        "com.amazonaws.iotsitewise#ProjectSummary": {
            "type": "structure",
            "members": {
                "id": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the project.</p>",
                        "smithy.api#required": {}
                    }
                },
                "name": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the project.</p>",
                        "smithy.api#required": {}
                    }
                },
                "description": {
                    "target": "com.amazonaws.iotsitewise#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>The project's description.</p>"
                    }
                },
                "creationDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the project was created, in Unix epoch time.</p>"
                    }
                },
                "lastUpdateDate": {
                    "target": "com.amazonaws.iotsitewise#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The date the project was last updated, in Unix epoch time.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains project summary information.</p>"
            }
        },
        "com.amazonaws.iotsitewise#Property": {
            "type": "structure",
            "members": {
                "id": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset property.</p>",
                        "smithy.api#required": {}
                    }
                },
                "name": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the property.</p>",
                        "smithy.api#required": {}
                    }
                },
                "alias": {
                    "target": "com.amazonaws.iotsitewise#PropertyAlias",
                    "traits": {
                        "smithy.api#documentation": "<p>The property alias that identifies the property, such as an OPC-UA server data stream path\n        (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see\n        <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the\n        <i>AWS IoT SiteWise User Guide</i>.</p>"
                    }
                },
                "notification": {
                    "target": "com.amazonaws.iotsitewise#PropertyNotification",
                    "traits": {
                        "smithy.api#documentation": "<p>The asset property's notification topic and state. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetProperty.html\">UpdateAssetProperty</a>.</p>"
                    }
                },
                "dataType": {
                    "target": "com.amazonaws.iotsitewise#PropertyDataType",
                    "traits": {
                        "smithy.api#documentation": "<p>The property data type.</p>",
                        "smithy.api#required": {}
                    }
                },
                "unit": {
                    "target": "com.amazonaws.iotsitewise#PropertyUnit",
                    "traits": {
                        "smithy.api#documentation": "<p>The unit (such as <code>Newtons</code> or <code>RPM</code>) of the asset property.</p>"
                    }
                },
                "type": {
                    "target": "com.amazonaws.iotsitewise#PropertyType",
                    "traits": {
                        "smithy.api#documentation": "<p>The property type (see <code>PropertyType</code>). A property contains one type.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains asset property information.</p>"
            }
        },
        "com.amazonaws.iotsitewise#PropertyAlias": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1
                },
                "smithy.api#pattern": "[^\\u0000-\\u001F\\u007F]+"
            }
        },
        "com.amazonaws.iotsitewise#PropertyDataType": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "STRING",
                        "name": "STRING"
                    },
                    {
                        "value": "INTEGER",
                        "name": "INTEGER"
                    },
                    {
                        "value": "DOUBLE",
                        "name": "DOUBLE"
                    },
                    {
                        "value": "BOOLEAN",
                        "name": "BOOLEAN"
                    },
                    {
                        "value": "STRUCT",
                        "name": "STRUCT"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#PropertyNotification": {
            "type": "structure",
            "members": {
                "topic": {
                    "target": "com.amazonaws.iotsitewise#PropertyNotificationTopic",
                    "traits": {
                        "smithy.api#documentation": "<p>The MQTT topic to which AWS IoT SiteWise publishes property value update notifications.</p>",
                        "smithy.api#required": {}
                    }
                },
                "state": {
                    "target": "com.amazonaws.iotsitewise#PropertyNotificationState",
                    "traits": {
                        "smithy.api#documentation": "<p>The current notification state.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains asset property value notification information. When the notification state is enabled, AWS IoT SiteWise publishes property value\n      updates to a unique MQTT topic. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/interact-with-other-services.html\">Interacting with other services</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>"
            }
        },
        "com.amazonaws.iotsitewise#PropertyNotificationState": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "ENABLED",
                        "name": "ENABLED"
                    },
                    {
                        "value": "DISABLED",
                        "name": "DISABLED"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#PropertyNotificationTopic": {
            "type": "string"
        },
        "com.amazonaws.iotsitewise#PropertyType": {
            "type": "structure",
            "members": {
                "attribute": {
                    "target": "com.amazonaws.iotsitewise#Attribute",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies an asset attribute property. An attribute generally contains static information,\n      such as the serial number of an <a href=\"https://en.wikipedia.org/wiki/Internet_of_things#Industrial_applications\">IIoT</a> wind turbine.</p>"
                    }
                },
                "measurement": {
                    "target": "com.amazonaws.iotsitewise#Measurement",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies an asset measurement property. A measurement represents a device's raw sensor\n      data stream, such as timestamped temperature values or timestamped power values.</p>"
                    }
                },
                "transform": {
                    "target": "com.amazonaws.iotsitewise#Transform",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies an asset transform property. A transform contains a mathematical expression that\n      maps a property's data points from one form to another, such as a unit conversion from Celsius\n      to Fahrenheit.</p>"
                    }
                },
                "metric": {
                    "target": "com.amazonaws.iotsitewise#Metric",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies an asset metric property. A metric contains a mathematical expression that uses\n      aggregate functions to process all input data points over a time interval and output a single\n      data point, such as to calculate the average hourly temperature.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains a property type, which can be one of <code>attribute</code>,\n        <code>measurement</code>, <code>metric</code>, or <code>transform</code>.</p>"
            }
        },
        "com.amazonaws.iotsitewise#PropertyUnit": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 256
                },
                "smithy.api#pattern": "[^\\u0000-\\u001F\\u007F]+"
            }
        },
        "com.amazonaws.iotsitewise#PropertyValueBooleanValue": {
            "type": "boolean",
            "traits": {
                "smithy.api#box": {}
            }
        },
        "com.amazonaws.iotsitewise#PropertyValueDoubleValue": {
            "type": "double",
            "traits": {
                "smithy.api#box": {}
            }
        },
        "com.amazonaws.iotsitewise#PropertyValueIntegerValue": {
            "type": "integer",
            "traits": {
                "smithy.api#box": {}
            }
        },
        "com.amazonaws.iotsitewise#PropertyValueStringValue": {
            "type": "string",
            "traits": {
                "smithy.api#pattern": "[^\\u0000-\\u001F\\u007F]+"
            }
        },
        "com.amazonaws.iotsitewise#PutAssetPropertyValueEntries": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#PutAssetPropertyValueEntry"
            }
        },
        "com.amazonaws.iotsitewise#PutAssetPropertyValueEntry": {
            "type": "structure",
            "members": {
                "entryId": {
                    "target": "com.amazonaws.iotsitewise#EntryId",
                    "traits": {
                        "smithy.api#documentation": "<p>The user specified ID for the entry. You can use this ID to identify which entries\n      failed.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset to update.</p>"
                    }
                },
                "propertyId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset property for this entry.</p>"
                    }
                },
                "propertyAlias": {
                    "target": "com.amazonaws.iotsitewise#AssetPropertyAlias",
                    "traits": {
                        "smithy.api#documentation": "<p>The property alias that identifies the property, such as an OPC-UA server data stream path\n        (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see\n        <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the\n        <i>AWS IoT SiteWise User Guide</i>.</p>"
                    }
                },
                "propertyValues": {
                    "target": "com.amazonaws.iotsitewise#AssetPropertyValues",
                    "traits": {
                        "smithy.api#documentation": "<p>The list of property values to upload. You can specify up to 10\n        <code>propertyValues</code> array elements. </p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains a list of value updates for an asset property in the list of asset entries\n      consumed by the <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_BatchPutAssetPropertyValue.html\">BatchPutAssetPropertyValue</a> API\n      operation.</p>"
            }
        },
        "com.amazonaws.iotsitewise#PutDefaultEncryptionConfiguration": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#PutDefaultEncryptionConfigurationRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#PutDefaultEncryptionConfigurationResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#ConflictingOperationException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Sets the default encryption configuration for the AWS\n      account. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/key-management.html\">Key management</a>\n      in the <i>AWS IoT SiteWise User Guide</i>.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/configuration/account/encryption",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#PutDefaultEncryptionConfigurationRequest": {
            "type": "structure",
            "members": {
                "encryptionType": {
                    "target": "com.amazonaws.iotsitewise#EncryptionType",
                    "traits": {
                        "smithy.api#documentation": "<p>The type of encryption used for the encryption configuration.</p>",
                        "smithy.api#required": {}
                    }
                },
                "kmsKeyId": {
                    "target": "com.amazonaws.iotsitewise#KmsKeyId",
                    "traits": {
                        "smithy.api#documentation": "<p>The Key ID of the customer managed customer master key (CMK) used for AWS KMS encryption. This is required if you use\n      <code>KMS_BASED_ENCRYPTION</code>.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#PutDefaultEncryptionConfigurationResponse": {
            "type": "structure",
            "members": {
                "encryptionType": {
                    "target": "com.amazonaws.iotsitewise#EncryptionType",
                    "traits": {
                        "smithy.api#documentation": "<p>The type of encryption used for the encryption configuration.</p>",
                        "smithy.api#required": {}
                    }
                },
                "kmsKeyArn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The Key ARN of the AWS KMS CMK used for AWS KMS encryption if you use \n      <code>KMS_BASED_ENCRYPTION</code>.</p>"
                    }
                },
                "configurationStatus": {
                    "target": "com.amazonaws.iotsitewise#ConfigurationStatus",
                    "traits": {
                        "smithy.api#documentation": "<p>The status of the account configuration. This contains the\n      <code>ConfigurationState</code>. If there is an error, it also contains the\n        <code>ErrorDetails</code>.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#PutLoggingOptions": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#PutLoggingOptionsRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#PutLoggingOptionsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#ConflictingOperationException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Sets logging options for AWS IoT SiteWise.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "model."
                },
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/logging",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#PutLoggingOptionsRequest": {
            "type": "structure",
            "members": {
                "loggingOptions": {
                    "target": "com.amazonaws.iotsitewise#LoggingOptions",
                    "traits": {
                        "smithy.api#documentation": "<p>The logging options to set.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#PutLoggingOptionsResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.iotsitewise#Qualities": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#Quality"
            },
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 1
                }
            }
        },
        "com.amazonaws.iotsitewise#Quality": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "GOOD",
                        "name": "GOOD"
                    },
                    {
                        "value": "BAD",
                        "name": "BAD"
                    },
                    {
                        "value": "UNCERTAIN",
                        "name": "UNCERTAIN"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#Resolution": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 2,
                    "max": 2
                },
                "smithy.api#pattern": "1m|1h|1d"
            }
        },
        "com.amazonaws.iotsitewise#Resource": {
            "type": "structure",
            "members": {
                "portal": {
                    "target": "com.amazonaws.iotsitewise#PortalResource",
                    "traits": {
                        "smithy.api#documentation": "<p>A portal resource.</p>"
                    }
                },
                "project": {
                    "target": "com.amazonaws.iotsitewise#ProjectResource",
                    "traits": {
                        "smithy.api#documentation": "<p>A project resource.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains an AWS IoT SiteWise Monitor resource ID for a portal or project.</p>"
            }
        },
        "com.amazonaws.iotsitewise#ResourceAlreadyExistsException": {
            "type": "structure",
            "members": {
                "message": {
                    "target": "com.amazonaws.iotsitewise#ErrorMessage",
                    "traits": {
                        "smithy.api#required": {}
                    }
                },
                "resourceId": {
                    "target": "com.amazonaws.iotsitewise#ResourceId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the resource that already exists.</p>",
                        "smithy.api#required": {}
                    }
                },
                "resourceArn": {
                    "target": "com.amazonaws.iotsitewise#ResourceArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the resource that already exists.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The resource already exists.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 409
            }
        },
        "com.amazonaws.iotsitewise#ResourceArn": {
            "type": "string"
        },
        "com.amazonaws.iotsitewise#ResourceId": {
            "type": "string"
        },
        "com.amazonaws.iotsitewise#ResourceNotFoundException": {
            "type": "structure",
            "members": {
                "message": {
                    "target": "com.amazonaws.iotsitewise#ErrorMessage",
                    "traits": {
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The requested resource can't be found.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 404
            }
        },
        "com.amazonaws.iotsitewise#ResourceType": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "PORTAL",
                        "name": "PORTAL"
                    },
                    {
                        "value": "PROJECT",
                        "name": "PROJECT"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#SSOApplicationId": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 64
                },
                "smithy.api#pattern": "^[!-~]*"
            }
        },
        "com.amazonaws.iotsitewise#ServiceUnavailableException": {
            "type": "structure",
            "members": {
                "message": {
                    "target": "com.amazonaws.iotsitewise#ErrorMessage",
                    "traits": {
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The requested service is unavailable.</p>",
                "smithy.api#error": "server",
                "smithy.api#httpError": 503
            }
        },
        "com.amazonaws.iotsitewise#TagKey": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 128
                }
            }
        },
        "com.amazonaws.iotsitewise#TagKeyList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#TagKey"
            },
            "traits": {
                "smithy.api#length": {
                    "min": 0,
                    "max": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#TagMap": {
            "type": "map",
            "key": {
                "target": "com.amazonaws.iotsitewise#TagKey"
            },
            "value": {
                "target": "com.amazonaws.iotsitewise#TagValue"
            },
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 50
                }
            }
        },
        "com.amazonaws.iotsitewise#TagResource": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#TagResourceRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#TagResourceResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#ConflictingOperationException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#TooManyTagsException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#UnauthorizedException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Adds tags to an AWS IoT SiteWise resource. If a tag already exists for the resource, this operation\n      updates the tag's value.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/tags",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#TagResourceRequest": {
            "type": "structure",
            "members": {
                "resourceArn": {
                    "target": "com.amazonaws.iotsitewise#AmazonResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the resource to tag.</p>",
                        "smithy.api#httpQuery": "resourceArn",
                        "smithy.api#required": {}
                    }
                },
                "tags": {
                    "target": "com.amazonaws.iotsitewise#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of key-value pairs that contain metadata for the resource. For more information,\n      see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/tag-resources.html\">Tagging your AWS IoT SiteWise\n        resources</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#TagResourceResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.iotsitewise#TagValue": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 0,
                    "max": 256
                }
            }
        },
        "com.amazonaws.iotsitewise#ThrottlingException": {
            "type": "structure",
            "members": {
                "message": {
                    "target": "com.amazonaws.iotsitewise#ErrorMessage",
                    "traits": {
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Your request exceeded a rate limit. For example, you might have exceeded the number of\n      AWS IoT SiteWise assets that can be created per second, the allowed number of messages per second, and so\n      on.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 429
            }
        },
        "com.amazonaws.iotsitewise#TimeInNanos": {
            "type": "structure",
            "members": {
                "timeInSeconds": {
                    "target": "com.amazonaws.iotsitewise#TimeInSeconds",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp date, in seconds, in the Unix epoch format. Fractional nanosecond data is\n      provided by <code>offsetInNanos</code>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "offsetInNanos": {
                    "target": "com.amazonaws.iotsitewise#OffsetInNanos",
                    "traits": {
                        "smithy.api#documentation": "<p>The nanosecond offset from <code>timeInSeconds</code>.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains a timestamp with optional nanosecond granularity.</p>"
            }
        },
        "com.amazonaws.iotsitewise#TimeInSeconds": {
            "type": "long",
            "traits": {
                "smithy.api#box": {},
                "smithy.api#range": {
                    "min": 1,
                    "max": 31556889864403199
                }
            }
        },
        "com.amazonaws.iotsitewise#TimeOrdering": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "ASCENDING",
                        "name": "ASCENDING"
                    },
                    {
                        "value": "DESCENDING",
                        "name": "DESCENDING"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#Timestamp": {
            "type": "timestamp"
        },
        "com.amazonaws.iotsitewise#Timestamps": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotsitewise#TimeInNanos"
            }
        },
        "com.amazonaws.iotsitewise#TooManyTagsException": {
            "type": "structure",
            "members": {
                "message": {
                    "target": "com.amazonaws.iotsitewise#ExceptionMessage"
                },
                "resourceName": {
                    "target": "com.amazonaws.iotsitewise#AmazonResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the resource with too many tags.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>You've reached the limit for the number of tags allowed for a resource. For more\n      information, see <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html#tag-conventions\">Tag naming limits and\n        requirements</a> in the <i>AWS General Reference</i>.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.iotsitewise#Transform": {
            "type": "structure",
            "members": {
                "expression": {
                    "target": "com.amazonaws.iotsitewise#Expression",
                    "traits": {
                        "smithy.api#documentation": "<p>The mathematical expression that defines the transformation function. You can specify up\n      to 10 variables per expression. You can specify up to 10 functions per\n      expression. </p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "variables": {
                    "target": "com.amazonaws.iotsitewise#ExpressionVariables",
                    "traits": {
                        "smithy.api#documentation": "<p>The list of variables used in the expression.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains an asset transform property. A transform is a one-to-one mapping of a property's\n      data points from one form to another. For example, you can use a transform to convert a\n      Celsius data stream to Fahrenheit by applying the transformation expression to each data point\n      of the Celsius stream. A transform can only have a data type of <code>DOUBLE</code> and\n      consume properties with data types of <code>INTEGER</code> or <code>DOUBLE</code>.</p>\n         <p>For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html#transforms\">Transforms</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>"
            }
        },
        "com.amazonaws.iotsitewise#TraversalDirection": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "PARENT",
                        "name": "PARENT"
                    },
                    {
                        "value": "CHILD",
                        "name": "CHILD"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#TraversalType": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "PATH_TO_ROOT",
                        "name": "PATH_TO_ROOT"
                    }
                ]
            }
        },
        "com.amazonaws.iotsitewise#TumblingWindow": {
            "type": "structure",
            "members": {
                "interval": {
                    "target": "com.amazonaws.iotsitewise#Interval",
                    "traits": {
                        "smithy.api#documentation": "<p>The time interval for the tumbling window. Note that <code>w</code> represents weeks,\n        <code>d</code> represents days, <code>h</code> represents hours, and <code>m</code>\n      represents minutes. AWS IoT SiteWise computes the <code>1w</code> interval the end of Sunday at midnight\n      each week (UTC), the <code>1d</code> interval at the end of each day at midnight (UTC), the\n        <code>1h</code> interval at the end of each hour, and so on. </p>\n         <p>When AWS IoT SiteWise aggregates data points for metric computations, the start of each interval is\n      exclusive and the end of each interval is inclusive. AWS IoT SiteWise places the computed data point at\n      the end of the interval.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains a tumbling window, which is a repeating fixed-sized, non-overlapping, and\n      contiguous time interval. This window is used in metric and aggregation computations.</p>"
            }
        },
        "com.amazonaws.iotsitewise#UnauthorizedException": {
            "type": "structure",
            "members": {
                "message": {
                    "target": "com.amazonaws.iotsitewise#ErrorMessage",
                    "traits": {
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>You are not authorized.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 401
            }
        },
        "com.amazonaws.iotsitewise#UntagResource": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#UntagResourceRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#UntagResourceResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#ConflictingOperationException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#UnauthorizedException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Removes a tag from an AWS IoT SiteWise resource.</p>",
                "smithy.api#http": {
                    "method": "DELETE",
                    "uri": "/tags",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#UntagResourceRequest": {
            "type": "structure",
            "members": {
                "resourceArn": {
                    "target": "com.amazonaws.iotsitewise#AmazonResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of the resource to untag.</p>",
                        "smithy.api#httpQuery": "resourceArn",
                        "smithy.api#required": {}
                    }
                },
                "tagKeys": {
                    "target": "com.amazonaws.iotsitewise#TagKeyList",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of keys for tags to remove from the resource.</p>",
                        "smithy.api#httpQuery": "tagKeys",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#UntagResourceResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.iotsitewise#UpdateAccessPolicy": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#UpdateAccessPolicyRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#UpdateAccessPolicyResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Updates an existing access policy that specifies an identity's access to an AWS IoT SiteWise Monitor\n      portal or project resource.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "monitor."
                },
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/access-policies/{accessPolicyId}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#UpdateAccessPolicyRequest": {
            "type": "structure",
            "members": {
                "accessPolicyId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the access policy.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "accessPolicyIdentity": {
                    "target": "com.amazonaws.iotsitewise#Identity",
                    "traits": {
                        "smithy.api#documentation": "<p>The identity for this access policy. Choose an AWS SSO user, an AWS SSO group, or an IAM user.</p>",
                        "smithy.api#required": {}
                    }
                },
                "accessPolicyResource": {
                    "target": "com.amazonaws.iotsitewise#Resource",
                    "traits": {
                        "smithy.api#documentation": "<p>The AWS IoT SiteWise Monitor resource for this access policy. Choose either a portal or a project.</p>",
                        "smithy.api#required": {}
                    }
                },
                "accessPolicyPermission": {
                    "target": "com.amazonaws.iotsitewise#Permission",
                    "traits": {
                        "smithy.api#documentation": "<p>The permission level for this access policy. Note that a project <code>ADMINISTRATOR</code> is also known as a project owner.</p>",
                        "smithy.api#required": {}
                    }
                },
                "clientToken": {
                    "target": "com.amazonaws.iotsitewise#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
                        "smithy.api#idempotencyToken": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#UpdateAccessPolicyResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.iotsitewise#UpdateAsset": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#UpdateAssetRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#UpdateAssetResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#ConflictingOperationException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceAlreadyExistsException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Updates an asset's name. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-assets-and-models.html\">Updating assets and models</a> in the\n        <i>AWS IoT SiteWise User Guide</i>.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "model."
                },
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/assets/{assetId}",
                    "code": 202
                }
            }
        },
        "com.amazonaws.iotsitewise#UpdateAssetModel": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#UpdateAssetModelRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#UpdateAssetModelResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#ConflictingOperationException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceAlreadyExistsException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Updates an asset model and all of the assets that were created from the model. Each asset\n      created from the model inherits the updated asset model's property and hierarchy definitions.\n      For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-assets-and-models.html\">Updating assets and models</a> in the\n        <i>AWS IoT SiteWise User Guide</i>.</p>\n         <important>\n            <p>This operation overwrites the existing model with the provided model. To avoid deleting\n        your asset model's properties or hierarchies, you must include their IDs and definitions in\n        the updated asset model payload. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAssetModel.html\">DescribeAssetModel</a>.</p>\n            <p>If you remove a property from an asset model, AWS IoT SiteWise deletes all previous data for that\n        property. If you remove a hierarchy definition from an asset model, AWS IoT SiteWise disassociates every\n        asset associated with that hierarchy. You can't change the type or data type of an existing\n        property.</p>\n         </important>",
                "smithy.api#endpoint": {
                    "hostPrefix": "model."
                },
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/asset-models/{assetModelId}",
                    "code": 202
                }
            }
        },
        "com.amazonaws.iotsitewise#UpdateAssetModelRequest": {
            "type": "structure",
            "members": {
                "assetModelId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset model to update.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "assetModelName": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique, friendly name for the asset model.</p>",
                        "smithy.api#required": {}
                    }
                },
                "assetModelDescription": {
                    "target": "com.amazonaws.iotsitewise#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>A description for the asset model.</p>"
                    }
                },
                "assetModelProperties": {
                    "target": "com.amazonaws.iotsitewise#AssetModelProperties",
                    "traits": {
                        "smithy.api#documentation": "<p>The updated property definitions of the asset model. For more information, see\n      <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-properties.html\">Asset properties</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n         <p>You can specify up to 200 properties per asset model. For more\n      information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>"
                    }
                },
                "assetModelHierarchies": {
                    "target": "com.amazonaws.iotsitewise#AssetModelHierarchies",
                    "traits": {
                        "smithy.api#documentation": "<p>The updated hierarchy definitions of the asset model. Each hierarchy specifies an asset\n      model whose assets can be children of any other assets created from this asset model. For more\n      information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n         <p>You can specify up to 10 hierarchies per asset model. For more\n      information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html\">Quotas</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>"
                    }
                },
                "assetModelCompositeModels": {
                    "target": "com.amazonaws.iotsitewise#AssetModelCompositeModels",
                    "traits": {
                        "smithy.api#documentation": "<p>The composite asset models that are part of this asset model.\n      Composite asset models are asset models that contain specific properties. Each composite model\n      has a type that defines the properties that the composite model supports. Use composite asset\n      models to define alarms on this asset model.</p>"
                    }
                },
                "clientToken": {
                    "target": "com.amazonaws.iotsitewise#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
                        "smithy.api#idempotencyToken": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#UpdateAssetModelResponse": {
            "type": "structure",
            "members": {
                "assetModelStatus": {
                    "target": "com.amazonaws.iotsitewise#AssetModelStatus",
                    "traits": {
                        "smithy.api#documentation": "<p>The status of the asset model, which contains a state (<code>UPDATING</code> after\n      successfully calling this operation) and any error message.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#UpdateAssetProperty": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#UpdateAssetPropertyRequest"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#ConflictingOperationException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Updates an asset property's alias and notification state.</p>\n         <important>\n            <p>This operation overwrites the property's existing alias and notification state. To keep\n        your existing property's alias or notification state, you must include the existing values\n        in the UpdateAssetProperty request. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAssetProperty.html\">DescribeAssetProperty</a>.</p>\n         </important>",
                "smithy.api#endpoint": {
                    "hostPrefix": "model."
                },
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/assets/{assetId}/properties/{propertyId}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#UpdateAssetPropertyRequest": {
            "type": "structure",
            "members": {
                "assetId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset to be updated.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "propertyId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset property to be updated.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "propertyAlias": {
                    "target": "com.amazonaws.iotsitewise#PropertyAlias",
                    "traits": {
                        "smithy.api#documentation": "<p>The property alias that identifies the property, such as an OPC-UA server data stream path\n        (for example, <code>/company/windfarm/3/turbine/7/temperature</code>). For more information, see\n        <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/connect-data-streams.html\">Mapping industrial data streams to asset properties</a> in the\n        <i>AWS IoT SiteWise User Guide</i>.</p>\n         <p>If you omit this parameter, the alias is removed from the property.</p>"
                    }
                },
                "propertyNotificationState": {
                    "target": "com.amazonaws.iotsitewise#PropertyNotificationState",
                    "traits": {
                        "smithy.api#documentation": "<p>The MQTT notification state (enabled or disabled) for this asset property.\n      When the notification state is enabled, AWS IoT SiteWise publishes property value\n      updates to a unique MQTT topic. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/interact-with-other-services.html\">Interacting with other services</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>\n         <p>If you omit this parameter, the notification state is set to <code>DISABLED</code>.</p>"
                    }
                },
                "clientToken": {
                    "target": "com.amazonaws.iotsitewise#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
                        "smithy.api#idempotencyToken": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#UpdateAssetRequest": {
            "type": "structure",
            "members": {
                "assetId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the asset to update.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "assetName": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique, friendly name for the asset.</p>",
                        "smithy.api#required": {}
                    }
                },
                "clientToken": {
                    "target": "com.amazonaws.iotsitewise#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
                        "smithy.api#idempotencyToken": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#UpdateAssetResponse": {
            "type": "structure",
            "members": {
                "assetStatus": {
                    "target": "com.amazonaws.iotsitewise#AssetStatus",
                    "traits": {
                        "smithy.api#documentation": "<p>The status of the asset, which contains a state (<code>UPDATING</code> after successfully\n      calling this operation) and any error message.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#UpdateDashboard": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#UpdateDashboardRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#UpdateDashboardResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Updates an AWS IoT SiteWise Monitor dashboard.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "monitor."
                },
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/dashboards/{dashboardId}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#UpdateDashboardRequest": {
            "type": "structure",
            "members": {
                "dashboardId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the dashboard to update.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "dashboardName": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>A new friendly name for the dashboard.</p>",
                        "smithy.api#required": {}
                    }
                },
                "dashboardDescription": {
                    "target": "com.amazonaws.iotsitewise#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>A new description for the dashboard.</p>"
                    }
                },
                "dashboardDefinition": {
                    "target": "com.amazonaws.iotsitewise#DashboardDefinition",
                    "traits": {
                        "smithy.api#documentation": "<p>The new dashboard definition, as specified in a JSON literal. For detailed information,\n      see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-dashboards-using-aws-cli.html\">Creating dashboards (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "clientToken": {
                    "target": "com.amazonaws.iotsitewise#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
                        "smithy.api#idempotencyToken": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#UpdateDashboardResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.iotsitewise#UpdateGateway": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#UpdateGatewayRequest"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#ConflictingOperationException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Updates a gateway's name.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "edge."
                },
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/20200301/gateways/{gatewayId}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#UpdateGatewayCapabilityConfiguration": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#UpdateGatewayCapabilityConfigurationRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#UpdateGatewayCapabilityConfigurationResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#ConflictingOperationException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Updates a gateway capability configuration or defines a new capability configuration.\n      Each gateway capability defines data sources for a gateway. A capability configuration\n      can contain multiple data source configurations. If you define OPC-UA sources for a gateway in\n      the AWS IoT SiteWise console, all of your OPC-UA sources are stored in one capability configuration. To\n      list all capability configurations for a gateway, use <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeGateway.html\">DescribeGateway</a>.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "edge."
                },
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/20200301/gateways/{gatewayId}/capability",
                    "code": 201
                }
            }
        },
        "com.amazonaws.iotsitewise#UpdateGatewayCapabilityConfigurationRequest": {
            "type": "structure",
            "members": {
                "gatewayId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the gateway to be updated.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "capabilityNamespace": {
                    "target": "com.amazonaws.iotsitewise#CapabilityNamespace",
                    "traits": {
                        "smithy.api#documentation": "<p>The namespace of the gateway capability configuration to be updated.\n      For example, if you configure OPC-UA\n      sources from the AWS IoT SiteWise console, your OPC-UA capability configuration has the namespace\n        <code>iotsitewise:opcuacollector:version</code>, where <code>version</code> is a number such as\n        <code>1</code>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "capabilityConfiguration": {
                    "target": "com.amazonaws.iotsitewise#CapabilityConfiguration",
                    "traits": {
                        "smithy.api#documentation": "<p>The JSON document that defines the configuration for the gateway capability. For more\n      information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/configure-sources.html#configure-source-cli\">Configuring data sources (CLI)</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#UpdateGatewayCapabilityConfigurationResponse": {
            "type": "structure",
            "members": {
                "capabilityNamespace": {
                    "target": "com.amazonaws.iotsitewise#CapabilityNamespace",
                    "traits": {
                        "smithy.api#documentation": "<p>The namespace of the gateway capability.</p>",
                        "smithy.api#required": {}
                    }
                },
                "capabilitySyncStatus": {
                    "target": "com.amazonaws.iotsitewise#CapabilitySyncStatus",
                    "traits": {
                        "smithy.api#documentation": "<p>The synchronization status of the capability configuration. The sync status can be one of the following:</p>\n         <ul>\n            <li>\n               <p>\n                  <code>IN_SYNC</code> – The gateway is running the capability configuration.</p>\n            </li>\n            <li>\n               <p>\n                  <code>OUT_OF_SYNC</code> – The gateway hasn't received the capability configuration.</p>\n            </li>\n            <li>\n               <p>\n                  <code>SYNC_FAILED</code> – The gateway rejected the capability configuration.</p>\n            </li>\n         </ul>\n         <p>After you update a capability configuration, its sync status is <code>OUT_OF_SYNC</code>\n      until the gateway receives and applies or rejects the updated configuration.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#UpdateGatewayRequest": {
            "type": "structure",
            "members": {
                "gatewayId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the gateway to update.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "gatewayName": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique, friendly name for the gateway.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#UpdatePortal": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#UpdatePortalRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#UpdatePortalResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#ConflictingOperationException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Updates an AWS IoT SiteWise Monitor portal.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "monitor."
                },
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/portals/{portalId}",
                    "code": 202
                }
            }
        },
        "com.amazonaws.iotsitewise#UpdatePortalRequest": {
            "type": "structure",
            "members": {
                "portalId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the portal to update.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "portalName": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>A new friendly name for the portal.</p>",
                        "smithy.api#required": {}
                    }
                },
                "portalDescription": {
                    "target": "com.amazonaws.iotsitewise#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>A new description for the portal.</p>"
                    }
                },
                "portalContactEmail": {
                    "target": "com.amazonaws.iotsitewise#Email",
                    "traits": {
                        "smithy.api#documentation": "<p>The AWS administrator's contact email address.</p>",
                        "smithy.api#required": {}
                    }
                },
                "portalLogoImage": {
                    "target": "com.amazonaws.iotsitewise#Image"
                },
                "roleArn": {
                    "target": "com.amazonaws.iotsitewise#ARN",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">ARN</a> of a service role that allows the portal's users to access your AWS IoT SiteWise\n      resources on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/monitor-service-role.html\">Using service roles for AWS IoT SiteWise Monitor</a> in the\n        <i>AWS IoT SiteWise User Guide</i>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "clientToken": {
                    "target": "com.amazonaws.iotsitewise#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
                        "smithy.api#idempotencyToken": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#UpdatePortalResponse": {
            "type": "structure",
            "members": {
                "portalStatus": {
                    "target": "com.amazonaws.iotsitewise#PortalStatus",
                    "traits": {
                        "smithy.api#documentation": "<p>The status of the portal, which contains a state (<code>UPDATING</code> after successfully\n      calling this operation) and any error message.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#UpdateProject": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotsitewise#UpdateProjectRequest"
            },
            "output": {
                "target": "com.amazonaws.iotsitewise#UpdateProjectResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotsitewise#InternalFailureException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#InvalidRequestException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotsitewise#ThrottlingException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Updates an AWS IoT SiteWise Monitor project.</p>",
                "smithy.api#endpoint": {
                    "hostPrefix": "monitor."
                },
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/projects/{projectId}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotsitewise#UpdateProjectRequest": {
            "type": "structure",
            "members": {
                "projectId": {
                    "target": "com.amazonaws.iotsitewise#ID",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the project to update.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "projectName": {
                    "target": "com.amazonaws.iotsitewise#Name",
                    "traits": {
                        "smithy.api#documentation": "<p>A new friendly name for the project.</p>",
                        "smithy.api#required": {}
                    }
                },
                "projectDescription": {
                    "target": "com.amazonaws.iotsitewise#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>A new description for the project.</p>"
                    }
                },
                "clientToken": {
                    "target": "com.amazonaws.iotsitewise#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique case-sensitive identifier that you can provide to ensure the idempotency of the request. Don't reuse this client token if a new idempotent request is required.</p>",
                        "smithy.api#idempotencyToken": {}
                    }
                }
            }
        },
        "com.amazonaws.iotsitewise#UpdateProjectResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.iotsitewise#Url": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 256
                },
                "smithy.api#pattern": "^(http|https)\\://\\S+"
            }
        },
        "com.amazonaws.iotsitewise#UserIdentity": {
            "type": "structure",
            "members": {
                "id": {
                    "target": "com.amazonaws.iotsitewise#IdentityId",
                    "traits": {
                        "smithy.api#documentation": "<p>The AWS SSO ID of the user.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains information for a user identity in an access policy.</p>"
            }
        },
        "com.amazonaws.iotsitewise#VariableName": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 64
                },
                "smithy.api#pattern": "^[a-z][a-z0-9_]*$"
            }
        },
        "com.amazonaws.iotsitewise#VariableValue": {
            "type": "structure",
            "members": {
                "propertyId": {
                    "target": "com.amazonaws.iotsitewise#Macro",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the property to use as the variable. You can use the property <code>name</code>\n      if it's from the same asset model.</p>",
                        "smithy.api#required": {}
                    }
                },
                "hierarchyId": {
                    "target": "com.amazonaws.iotsitewise#Macro",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the hierarchy to query for the property ID. You can use the hierarchy's name\n      instead of the hierarchy's ID.</p>\n         <p>You use a hierarchy ID instead of a model ID because you can have several hierarchies\n      using the same model and therefore the same <code>propertyId</code>. For example, you might\n      have separately grouped assets that come from the same asset model. For more information, see\n      <a href=\"https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html\">Asset hierarchies</a> in the <i>AWS IoT SiteWise User Guide</i>.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Identifies a property value used in an expression.</p>"
            }
        },
        "com.amazonaws.iotsitewise#Variant": {
            "type": "structure",
            "members": {
                "stringValue": {
                    "target": "com.amazonaws.iotsitewise#PropertyValueStringValue",
                    "traits": {
                        "smithy.api#documentation": "<p>Asset property data of type string (sequence of characters).</p>"
                    }
                },
                "integerValue": {
                    "target": "com.amazonaws.iotsitewise#PropertyValueIntegerValue",
                    "traits": {
                        "smithy.api#documentation": "<p>Asset property data of type integer (whole number).</p>"
                    }
                },
                "doubleValue": {
                    "target": "com.amazonaws.iotsitewise#PropertyValueDoubleValue",
                    "traits": {
                        "smithy.api#documentation": "<p>Asset property data of type double (floating point number).</p>"
                    }
                },
                "booleanValue": {
                    "target": "com.amazonaws.iotsitewise#PropertyValueBooleanValue",
                    "traits": {
                        "smithy.api#documentation": "<p>Asset property data of type Boolean (true or false).</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains an asset property value (of a single type only).</p>"
            }
        }
    }
}
