{
    "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.iotdeviceadvisor#AmazonResourceName": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 20,
                    "max": 2048
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#ConflictException": {
            "type": "structure",
            "members": {
                "message": {
                    "target": "com.amazonaws.iotdeviceadvisor#Message",
                    "traits": {
                        "smithy.api#documentation": "<p>Sends Conflict Exception message.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Sends Conflict Exception.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.iotdeviceadvisor#CreateSuiteDefinition": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotdeviceadvisor#CreateSuiteDefinitionRequest"
            },
            "output": {
                "target": "com.amazonaws.iotdeviceadvisor#CreateSuiteDefinitionResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotdeviceadvisor#InternalServerException"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Creates a Device Advisor test suite.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/suiteDefinitions",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#CreateSuiteDefinitionRequest": {
            "type": "structure",
            "members": {
                "suiteDefinitionConfiguration": {
                    "target": "com.amazonaws.iotdeviceadvisor#SuiteDefinitionConfiguration",
                    "traits": {
                        "smithy.api#documentation": "<p>Creates a Device Advisor test suite with suite definition configuration.</p>"
                    }
                },
                "tags": {
                    "target": "com.amazonaws.iotdeviceadvisor#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The tags to be attached to the suite definition.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#CreateSuiteDefinitionResponse": {
            "type": "structure",
            "members": {
                "suiteDefinitionId": {
                    "target": "com.amazonaws.iotdeviceadvisor#UUID",
                    "traits": {
                        "smithy.api#documentation": "<p>Creates a Device Advisor test suite with suite UUID.</p>"
                    }
                },
                "suiteDefinitionArn": {
                    "target": "com.amazonaws.iotdeviceadvisor#AmazonResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>Creates a Device Advisor test suite with Amazon Resource name.</p>"
                    }
                },
                "suiteDefinitionName": {
                    "target": "com.amazonaws.iotdeviceadvisor#SuiteDefinitionName",
                    "traits": {
                        "smithy.api#documentation": "<p>Creates a Device Advisor test suite with suite definition name.</p>"
                    }
                },
                "createdAt": {
                    "target": "com.amazonaws.iotdeviceadvisor#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>Creates a Device Advisor test suite with TimeStamp of when it was created.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#DeleteSuiteDefinition": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotdeviceadvisor#DeleteSuiteDefinitionRequest"
            },
            "output": {
                "target": "com.amazonaws.iotdeviceadvisor#DeleteSuiteDefinitionResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotdeviceadvisor#InternalServerException"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes a Device Advisor test suite.</p>",
                "smithy.api#http": {
                    "method": "DELETE",
                    "uri": "/suiteDefinitions/{suiteDefinitionId}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#DeleteSuiteDefinitionRequest": {
            "type": "structure",
            "members": {
                "suiteDefinitionId": {
                    "target": "com.amazonaws.iotdeviceadvisor#UUID",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite definition Id of the test suite to be deleted.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#DeleteSuiteDefinitionResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.iotdeviceadvisor#DeviceUnderTest": {
            "type": "structure",
            "members": {
                "thingArn": {
                    "target": "com.amazonaws.iotdeviceadvisor#AmazonResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>Lists devices thing arn</p>"
                    }
                },
                "certificateArn": {
                    "target": "com.amazonaws.iotdeviceadvisor#AmazonResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>Lists devices certificate arn</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Lists all the devices under test</p>"
            }
        },
        "com.amazonaws.iotdeviceadvisor#DeviceUnderTestList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotdeviceadvisor#DeviceUnderTest"
            },
            "traits": {
                "smithy.api#length": {
                    "min": 0,
                    "max": 2
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#ErrorReason": {
            "type": "string"
        },
        "com.amazonaws.iotdeviceadvisor#Failure": {
            "type": "string"
        },
        "com.amazonaws.iotdeviceadvisor#GetSuiteDefinition": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotdeviceadvisor#GetSuiteDefinitionRequest"
            },
            "output": {
                "target": "com.amazonaws.iotdeviceadvisor#GetSuiteDefinitionResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotdeviceadvisor#InternalServerException"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Gets information about a Device Advisor test suite.</p>",
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/suiteDefinitions/{suiteDefinitionId}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#GetSuiteDefinitionRequest": {
            "type": "structure",
            "members": {
                "suiteDefinitionId": {
                    "target": "com.amazonaws.iotdeviceadvisor#UUID",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite definition Id of the test suite to get.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "suiteDefinitionVersion": {
                    "target": "com.amazonaws.iotdeviceadvisor#SuiteDefinitionVersion",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite definition version of the test suite to get.</p>",
                        "smithy.api#httpQuery": "suiteDefinitionVersion"
                    }
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#GetSuiteDefinitionResponse": {
            "type": "structure",
            "members": {
                "suiteDefinitionId": {
                    "target": "com.amazonaws.iotdeviceadvisor#UUID",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite definition Id of the suite definition.</p>"
                    }
                },
                "suiteDefinitionArn": {
                    "target": "com.amazonaws.iotdeviceadvisor#AmazonResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the suite definition.</p>"
                    }
                },
                "suiteDefinitionVersion": {
                    "target": "com.amazonaws.iotdeviceadvisor#SuiteDefinitionVersion",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite definition version of the suite definition.</p>"
                    }
                },
                "latestVersion": {
                    "target": "com.amazonaws.iotdeviceadvisor#SuiteDefinitionVersion",
                    "traits": {
                        "smithy.api#documentation": "<p>Latest suite definition version of the suite definition.</p>"
                    }
                },
                "suiteDefinitionConfiguration": {
                    "target": "com.amazonaws.iotdeviceadvisor#SuiteDefinitionConfiguration",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite configuration of the suite definition.</p>"
                    }
                },
                "createdAt": {
                    "target": "com.amazonaws.iotdeviceadvisor#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>Date (in Unix epoch time) when the suite definition was created.</p>"
                    }
                },
                "lastModifiedAt": {
                    "target": "com.amazonaws.iotdeviceadvisor#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>Date (in Unix epoch time) when the suite definition was last modified.</p>"
                    }
                },
                "tags": {
                    "target": "com.amazonaws.iotdeviceadvisor#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>Tags attached to the suite definition.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#GetSuiteRun": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotdeviceadvisor#GetSuiteRunRequest"
            },
            "output": {
                "target": "com.amazonaws.iotdeviceadvisor#GetSuiteRunResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotdeviceadvisor#InternalServerException"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Gets information about a Device Advisor test suite run.</p>",
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/suiteDefinitions/{suiteDefinitionId}/suiteRuns/{suiteRunId}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#GetSuiteRunReport": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotdeviceadvisor#GetSuiteRunReportRequest"
            },
            "output": {
                "target": "com.amazonaws.iotdeviceadvisor#GetSuiteRunReportResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotdeviceadvisor#InternalServerException"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Gets a report download link for a successful Device Advisor qualifying test suite run.</p>",
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/suiteDefinitions/{suiteDefinitionId}/suiteRuns/{suiteRunId}/report",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#GetSuiteRunReportRequest": {
            "type": "structure",
            "members": {
                "suiteDefinitionId": {
                    "target": "com.amazonaws.iotdeviceadvisor#UUID",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite definition Id of the test suite.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "suiteRunId": {
                    "target": "com.amazonaws.iotdeviceadvisor#UUID",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite run Id of the test suite run.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#GetSuiteRunReportResponse": {
            "type": "structure",
            "members": {
                "qualificationReportDownloadUrl": {
                    "target": "com.amazonaws.iotdeviceadvisor#QualificationReportDownloadUrl",
                    "traits": {
                        "smithy.api#documentation": "<p>Download URL of the qualification report.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#GetSuiteRunRequest": {
            "type": "structure",
            "members": {
                "suiteDefinitionId": {
                    "target": "com.amazonaws.iotdeviceadvisor#UUID",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite definition Id for the test suite run.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "suiteRunId": {
                    "target": "com.amazonaws.iotdeviceadvisor#UUID",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite run Id for the test suite run.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#GetSuiteRunResponse": {
            "type": "structure",
            "members": {
                "suiteDefinitionId": {
                    "target": "com.amazonaws.iotdeviceadvisor#UUID",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite definition Id for the test suite run.</p>"
                    }
                },
                "suiteDefinitionVersion": {
                    "target": "com.amazonaws.iotdeviceadvisor#SuiteDefinitionVersion",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite definition version for the test suite run.</p>"
                    }
                },
                "suiteRunId": {
                    "target": "com.amazonaws.iotdeviceadvisor#UUID",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite run Id for the test suite run.</p>"
                    }
                },
                "suiteRunArn": {
                    "target": "com.amazonaws.iotdeviceadvisor#AmazonResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the suite run.</p>"
                    }
                },
                "suiteRunConfiguration": {
                    "target": "com.amazonaws.iotdeviceadvisor#SuiteRunConfiguration",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite run configuration for the test suite run.</p>"
                    }
                },
                "testResult": {
                    "target": "com.amazonaws.iotdeviceadvisor#TestResult",
                    "traits": {
                        "smithy.api#documentation": "<p>Test results for the test suite run.</p>"
                    }
                },
                "startTime": {
                    "target": "com.amazonaws.iotdeviceadvisor#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>Date (in Unix epoch time) when the test suite run was started.</p>"
                    }
                },
                "endTime": {
                    "target": "com.amazonaws.iotdeviceadvisor#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>Date (in Unix epoch time) when the test suite run ended.</p>"
                    }
                },
                "status": {
                    "target": "com.amazonaws.iotdeviceadvisor#SuiteRunStatus",
                    "traits": {
                        "smithy.api#documentation": "<p>Status for the test suite run.</p>"
                    }
                },
                "errorReason": {
                    "target": "com.amazonaws.iotdeviceadvisor#ErrorReason",
                    "traits": {
                        "smithy.api#documentation": "<p>Error reason for any test suite run failure.</p>"
                    }
                },
                "tags": {
                    "target": "com.amazonaws.iotdeviceadvisor#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The tags attached to the suite run.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#GroupName": {
            "type": "string"
        },
        "com.amazonaws.iotdeviceadvisor#GroupResult": {
            "type": "structure",
            "members": {
                "groupId": {
                    "target": "com.amazonaws.iotdeviceadvisor#UUID",
                    "traits": {
                        "smithy.api#documentation": "<p>Group result Id.</p>"
                    }
                },
                "groupName": {
                    "target": "com.amazonaws.iotdeviceadvisor#GroupName",
                    "traits": {
                        "smithy.api#documentation": "<p>Group Result Name.</p>"
                    }
                },
                "tests": {
                    "target": "com.amazonaws.iotdeviceadvisor#TestCaseRuns",
                    "traits": {
                        "smithy.api#documentation": "<p>Tests under Group Result.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Show Group Result.</p>"
            }
        },
        "com.amazonaws.iotdeviceadvisor#GroupResultList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotdeviceadvisor#GroupResult"
            },
            "traits": {
                "smithy.api#documentation": "<p>Group Result list.</p>"
            }
        },
        "com.amazonaws.iotdeviceadvisor#IntendedForQualificationBoolean": {
            "type": "boolean"
        },
        "com.amazonaws.iotdeviceadvisor#InternalServerException": {
            "type": "structure",
            "members": {
                "message": {
                    "target": "com.amazonaws.iotdeviceadvisor#Message",
                    "traits": {
                        "smithy.api#documentation": "<p>Sends Internal Failure Exception message.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Sends Internal Failure Exception.</p>",
                "smithy.api#error": "server",
                "smithy.api#httpError": 500
            }
        },
        "com.amazonaws.iotdeviceadvisor#IotSenateService": {
            "type": "service",
            "version": "2020-09-18",
            "operations": [
                {
                    "target": "com.amazonaws.iotdeviceadvisor#CreateSuiteDefinition"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#DeleteSuiteDefinition"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#GetSuiteDefinition"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#GetSuiteRun"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#GetSuiteRunReport"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#ListSuiteDefinitions"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#ListSuiteRuns"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#ListTagsForResource"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#StartSuiteRun"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#StopSuiteRun"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#TagResource"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#UntagResource"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#UpdateSuiteDefinition"
                }
            ],
            "traits": {
                "aws.api#service": {
                    "sdkId": "IotDeviceAdvisor",
                    "arnNamespace": "iotdeviceadvisor",
                    "cloudFormationName": "IotDeviceAdvisor",
                    "cloudTrailEventSource": "iotdeviceadvisor.amazonaws.com",
                    "endpointPrefix": "api.iotdeviceadvisor"
                },
                "aws.auth#sigv4": {
                    "name": "iotdeviceadvisor"
                },
                "aws.protocols#restJson1": {},
                "smithy.api#documentation": "<p>AWS IoT Core Device Advisor is a cloud-based, fully managed test capability for validating IoT devices during device software development. Device Advisor provides pre-built tests that you can use to validate IoT devices for reliable and secure connectivity with AWS IoT Core before deploying devices to production. By using Device Advisor, you can confirm that your devices can connect to AWS IoT Core, follow security best practices and, if applicable, receive software updates from IoT Device Management. You can also download signed qualification reports to submit to the AWS Partner Network to get your device qualified for the AWS Partner Device Catalog without the need to send your device in and wait for it to be tested.</p>",
                "smithy.api#title": "AWS IoT Core Device Advisor"
            }
        },
        "com.amazonaws.iotdeviceadvisor#ListSuiteDefinitions": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotdeviceadvisor#ListSuiteDefinitionsRequest"
            },
            "output": {
                "target": "com.amazonaws.iotdeviceadvisor#ListSuiteDefinitionsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotdeviceadvisor#InternalServerException"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists the Device Advisor test suites you have created.</p>",
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/suiteDefinitions",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "nextToken",
                    "outputToken": "nextToken",
                    "pageSize": "maxResults"
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#ListSuiteDefinitionsRequest": {
            "type": "structure",
            "members": {
                "maxResults": {
                    "target": "com.amazonaws.iotdeviceadvisor#MaxResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to return at once.</p>",
                        "smithy.api#httpQuery": "maxResults"
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotdeviceadvisor#Token",
                    "traits": {
                        "smithy.api#documentation": "<p>A token used to get the next set of results.</p>",
                        "smithy.api#httpQuery": "nextToken"
                    }
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#ListSuiteDefinitionsResponse": {
            "type": "structure",
            "members": {
                "suiteDefinitionInformationList": {
                    "target": "com.amazonaws.iotdeviceadvisor#SuiteDefinitionInformationList",
                    "traits": {
                        "smithy.api#documentation": "<p>An array of objects that provide summaries of information about the suite definitions in the list.</p>"
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotdeviceadvisor#Token",
                    "traits": {
                        "smithy.api#documentation": "<p>A token used to get the next set of results.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#ListSuiteRuns": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotdeviceadvisor#ListSuiteRunsRequest"
            },
            "output": {
                "target": "com.amazonaws.iotdeviceadvisor#ListSuiteRunsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotdeviceadvisor#InternalServerException"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists the runs of the specified Device Advisor test suite.\n            You can list all runs of the test suite, or the runs of a specific version of the test suite.</p>",
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/suiteRuns",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "nextToken",
                    "outputToken": "nextToken",
                    "pageSize": "maxResults"
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#ListSuiteRunsRequest": {
            "type": "structure",
            "members": {
                "suiteDefinitionId": {
                    "target": "com.amazonaws.iotdeviceadvisor#UUID",
                    "traits": {
                        "smithy.api#documentation": "<p>Lists the test suite runs of the specified test suite based on suite definition Id.</p>",
                        "smithy.api#httpQuery": "suiteDefinitionId"
                    }
                },
                "suiteDefinitionVersion": {
                    "target": "com.amazonaws.iotdeviceadvisor#SuiteDefinitionVersion",
                    "traits": {
                        "smithy.api#documentation": "<p>Must be passed along with suiteDefinitionId. Lists the test suite runs of the specified test suite based on suite definition version.</p>",
                        "smithy.api#httpQuery": "suiteDefinitionVersion"
                    }
                },
                "maxResults": {
                    "target": "com.amazonaws.iotdeviceadvisor#MaxResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to return at once.</p>",
                        "smithy.api#httpQuery": "maxResults"
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotdeviceadvisor#Token",
                    "traits": {
                        "smithy.api#documentation": "<p>A token to retrieve the next set of results.</p>",
                        "smithy.api#httpQuery": "nextToken"
                    }
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#ListSuiteRunsResponse": {
            "type": "structure",
            "members": {
                "suiteRunsList": {
                    "target": "com.amazonaws.iotdeviceadvisor#SuiteRunsList",
                    "traits": {
                        "smithy.api#documentation": "<p>An array of objects that provide summaries of information about the suite runs in the list.</p>"
                    }
                },
                "nextToken": {
                    "target": "com.amazonaws.iotdeviceadvisor#Token",
                    "traits": {
                        "smithy.api#documentation": "<p>A token to retrieve the next set of results.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#ListTagsForResource": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotdeviceadvisor#ListTagsForResourceRequest"
            },
            "output": {
                "target": "com.amazonaws.iotdeviceadvisor#ListTagsForResourceResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotdeviceadvisor#InternalServerException"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists the tags attached to an IoT Device Advisor resource.</p>",
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/tags/{resourceArn}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#ListTagsForResourceRequest": {
            "type": "structure",
            "members": {
                "resourceArn": {
                    "target": "com.amazonaws.iotdeviceadvisor#AmazonResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the IoT Device Advisor resource.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#ListTagsForResourceResponse": {
            "type": "structure",
            "members": {
                "tags": {
                    "target": "com.amazonaws.iotdeviceadvisor#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The tags attached to the IoT Device Advisor resource.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#LogUrl": {
            "type": "string"
        },
        "com.amazonaws.iotdeviceadvisor#MaxResults": {
            "type": "integer",
            "traits": {
                "smithy.api#range": {
                    "min": 1,
                    "max": 50
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#Message": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 2048
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#QualificationReportDownloadUrl": {
            "type": "string"
        },
        "com.amazonaws.iotdeviceadvisor#ResourceNotFoundException": {
            "type": "structure",
            "members": {
                "message": {
                    "target": "com.amazonaws.iotdeviceadvisor#Message",
                    "traits": {
                        "smithy.api#documentation": "<p>Sends Resource Not Found Exception message.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Sends Resource Not Found Exception.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 404
            }
        },
        "com.amazonaws.iotdeviceadvisor#RootGroup": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 2048
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#SelectedTestList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotdeviceadvisor#UUID"
            },
            "traits": {
                "smithy.api#length": {
                    "min": 0,
                    "max": 100
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#StartSuiteRun": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotdeviceadvisor#StartSuiteRunRequest"
            },
            "output": {
                "target": "com.amazonaws.iotdeviceadvisor#StartSuiteRunResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotdeviceadvisor#ConflictException"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#InternalServerException"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Starts a Device Advisor test suite run.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/suiteDefinitions/{suiteDefinitionId}/suiteRuns",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#StartSuiteRunRequest": {
            "type": "structure",
            "members": {
                "suiteDefinitionId": {
                    "target": "com.amazonaws.iotdeviceadvisor#UUID",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite definition Id of the test suite.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "suiteDefinitionVersion": {
                    "target": "com.amazonaws.iotdeviceadvisor#SuiteDefinitionVersion",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite definition version of the test suite.</p>"
                    }
                },
                "suiteRunConfiguration": {
                    "target": "com.amazonaws.iotdeviceadvisor#SuiteRunConfiguration",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite run configuration.</p>"
                    }
                },
                "tags": {
                    "target": "com.amazonaws.iotdeviceadvisor#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The tags to be attached to the suite run.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#StartSuiteRunResponse": {
            "type": "structure",
            "members": {
                "suiteRunId": {
                    "target": "com.amazonaws.iotdeviceadvisor#UUID",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite Run Id of the started suite run.</p>"
                    }
                },
                "suiteRunArn": {
                    "target": "com.amazonaws.iotdeviceadvisor#AmazonResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>Amazon resource name of the started suite run.</p>"
                    }
                },
                "createdAt": {
                    "target": "com.amazonaws.iotdeviceadvisor#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>Date (in Unix epoch time) when the suite run was created.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#Status": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "PASS",
                        "name": "PASS"
                    },
                    {
                        "value": "FAIL",
                        "name": "FAIL"
                    },
                    {
                        "value": "CANCELED",
                        "name": "CANCELED"
                    },
                    {
                        "value": "PENDING",
                        "name": "PENDING"
                    },
                    {
                        "value": "RUNNING",
                        "name": "RUNNING"
                    },
                    {
                        "value": "STOPPING",
                        "name": "STOPPING"
                    },
                    {
                        "value": "STOPPED",
                        "name": "STOPPED"
                    },
                    {
                        "value": "PASS_WITH_WARNINGS",
                        "name": "PASS_WITH_WARNINGS"
                    },
                    {
                        "value": "ERROR",
                        "name": "ERROR"
                    }
                ]
            }
        },
        "com.amazonaws.iotdeviceadvisor#StopSuiteRun": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotdeviceadvisor#StopSuiteRunRequest"
            },
            "output": {
                "target": "com.amazonaws.iotdeviceadvisor#StopSuiteRunResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotdeviceadvisor#InternalServerException"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Stops a Device Advisor test suite run that is currently running.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/suiteDefinitions/{suiteDefinitionId}/suiteRuns/{suiteRunId}/stop",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#StopSuiteRunRequest": {
            "type": "structure",
            "members": {
                "suiteDefinitionId": {
                    "target": "com.amazonaws.iotdeviceadvisor#UUID",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite definition Id of the test suite run to be stopped.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "suiteRunId": {
                    "target": "com.amazonaws.iotdeviceadvisor#UUID",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite run Id of the test suite run to be stopped.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#StopSuiteRunResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.iotdeviceadvisor#String128": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 128
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#String256": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 256
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#SuiteDefinitionConfiguration": {
            "type": "structure",
            "members": {
                "suiteDefinitionName": {
                    "target": "com.amazonaws.iotdeviceadvisor#SuiteDefinitionName",
                    "traits": {
                        "smithy.api#documentation": "<p>Gets Suite Definition Configuration name.</p>"
                    }
                },
                "devices": {
                    "target": "com.amazonaws.iotdeviceadvisor#DeviceUnderTestList",
                    "traits": {
                        "smithy.api#documentation": "<p>Gets the devices configured.</p>"
                    }
                },
                "intendedForQualification": {
                    "target": "com.amazonaws.iotdeviceadvisor#IntendedForQualificationBoolean",
                    "traits": {
                        "smithy.api#documentation": "<p>Gets the tests intended for qualification in a suite.</p>"
                    }
                },
                "rootGroup": {
                    "target": "com.amazonaws.iotdeviceadvisor#RootGroup",
                    "traits": {
                        "smithy.api#documentation": "<p>Gets test suite root group.</p>"
                    }
                },
                "devicePermissionRoleArn": {
                    "target": "com.amazonaws.iotdeviceadvisor#AmazonResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>Gets device permission arn.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Gets Suite Definition Configuration.</p>"
            }
        },
        "com.amazonaws.iotdeviceadvisor#SuiteDefinitionInformation": {
            "type": "structure",
            "members": {
                "suiteDefinitionId": {
                    "target": "com.amazonaws.iotdeviceadvisor#UUID",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite definition Id of the test suite.</p>"
                    }
                },
                "suiteDefinitionName": {
                    "target": "com.amazonaws.iotdeviceadvisor#SuiteDefinitionName",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite name of the test suite.</p>"
                    }
                },
                "defaultDevices": {
                    "target": "com.amazonaws.iotdeviceadvisor#DeviceUnderTestList",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies the devices under test for the test suite.</p>"
                    }
                },
                "intendedForQualification": {
                    "target": "com.amazonaws.iotdeviceadvisor#IntendedForQualificationBoolean",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies if the test suite is intended for qualification.</p>"
                    }
                },
                "createdAt": {
                    "target": "com.amazonaws.iotdeviceadvisor#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>Date (in Unix epoch time) when the test suite was created.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Information about the suite definition.</p>"
            }
        },
        "com.amazonaws.iotdeviceadvisor#SuiteDefinitionInformationList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotdeviceadvisor#SuiteDefinitionInformation"
            }
        },
        "com.amazonaws.iotdeviceadvisor#SuiteDefinitionName": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 256
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#SuiteDefinitionVersion": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 2,
                    "max": 255
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#SuiteRunConfiguration": {
            "type": "structure",
            "members": {
                "primaryDevice": {
                    "target": "com.amazonaws.iotdeviceadvisor#DeviceUnderTest",
                    "traits": {
                        "smithy.api#documentation": "<p>Gets the primary device for suite run.</p>"
                    }
                },
                "selectedTestList": {
                    "target": "com.amazonaws.iotdeviceadvisor#SelectedTestList",
                    "traits": {
                        "smithy.api#documentation": "<p>Gets test case list.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Gets suite run configuration.</p>"
            }
        },
        "com.amazonaws.iotdeviceadvisor#SuiteRunInformation": {
            "type": "structure",
            "members": {
                "suiteDefinitionId": {
                    "target": "com.amazonaws.iotdeviceadvisor#UUID",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite definition Id of the suite run.</p>"
                    }
                },
                "suiteDefinitionVersion": {
                    "target": "com.amazonaws.iotdeviceadvisor#SuiteDefinitionVersion",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite definition version of the suite run.</p>"
                    }
                },
                "suiteDefinitionName": {
                    "target": "com.amazonaws.iotdeviceadvisor#SuiteDefinitionName",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite definition name of the suite run.</p>"
                    }
                },
                "suiteRunId": {
                    "target": "com.amazonaws.iotdeviceadvisor#UUID",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite run Id of the suite run.</p>"
                    }
                },
                "createdAt": {
                    "target": "com.amazonaws.iotdeviceadvisor#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>Date (in Unix epoch time) when the suite run was created.</p>"
                    }
                },
                "startedAt": {
                    "target": "com.amazonaws.iotdeviceadvisor#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>Date (in Unix epoch time) when the suite run was started.</p>"
                    }
                },
                "endAt": {
                    "target": "com.amazonaws.iotdeviceadvisor#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>Date (in Unix epoch time) when the suite run ended.</p>"
                    }
                },
                "status": {
                    "target": "com.amazonaws.iotdeviceadvisor#SuiteRunStatus",
                    "traits": {
                        "smithy.api#documentation": "<p>Status of the suite run.</p>"
                    }
                },
                "passed": {
                    "target": "com.amazonaws.iotdeviceadvisor#SuiteRunResultCount",
                    "traits": {
                        "smithy.api#documentation": "<p>Number of test cases that passed in the suite run.</p>"
                    }
                },
                "failed": {
                    "target": "com.amazonaws.iotdeviceadvisor#SuiteRunResultCount",
                    "traits": {
                        "smithy.api#documentation": "<p>Number of test cases that failed in the suite run.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Information about the suite run.</p>"
            }
        },
        "com.amazonaws.iotdeviceadvisor#SuiteRunResultCount": {
            "type": "integer",
            "traits": {
                "smithy.api#range": {
                    "min": 0,
                    "max": 500
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#SuiteRunStatus": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "PASS",
                        "name": "PASS"
                    },
                    {
                        "value": "FAIL",
                        "name": "FAIL"
                    },
                    {
                        "value": "CANCELED",
                        "name": "CANCELED"
                    },
                    {
                        "value": "PENDING",
                        "name": "PENDING"
                    },
                    {
                        "value": "RUNNING",
                        "name": "RUNNING"
                    },
                    {
                        "value": "STOPPING",
                        "name": "STOPPING"
                    },
                    {
                        "value": "STOPPED",
                        "name": "STOPPED"
                    },
                    {
                        "value": "PASS_WITH_WARNINGS",
                        "name": "PASS_WITH_WARNINGS"
                    },
                    {
                        "value": "ERROR",
                        "name": "ERROR"
                    }
                ]
            }
        },
        "com.amazonaws.iotdeviceadvisor#SuiteRunsList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotdeviceadvisor#SuiteRunInformation"
            }
        },
        "com.amazonaws.iotdeviceadvisor#TagKeyList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotdeviceadvisor#String128"
            },
            "traits": {
                "smithy.api#length": {
                    "min": 0,
                    "max": 50
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#TagMap": {
            "type": "map",
            "key": {
                "target": "com.amazonaws.iotdeviceadvisor#String128"
            },
            "value": {
                "target": "com.amazonaws.iotdeviceadvisor#String256"
            },
            "traits": {
                "smithy.api#length": {
                    "min": 0,
                    "max": 50
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#TagResource": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotdeviceadvisor#TagResourceRequest"
            },
            "output": {
                "target": "com.amazonaws.iotdeviceadvisor#TagResourceResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotdeviceadvisor#InternalServerException"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Adds to and modifies existing tags of an IoT Device Advisor resource.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/tags/{resourceArn}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#TagResourceRequest": {
            "type": "structure",
            "members": {
                "resourceArn": {
                    "target": "com.amazonaws.iotdeviceadvisor#AmazonResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The resource ARN of an IoT Device Advisor resource.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "tags": {
                    "target": "com.amazonaws.iotdeviceadvisor#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The tags to be attached to the IoT Device Advisor resource.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#TagResourceResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.iotdeviceadvisor#TestCaseDefinitionName": {
            "type": "string"
        },
        "com.amazonaws.iotdeviceadvisor#TestCaseRun": {
            "type": "structure",
            "members": {
                "testCaseRunId": {
                    "target": "com.amazonaws.iotdeviceadvisor#UUID",
                    "traits": {
                        "smithy.api#documentation": "<p>Provides test case run Id.</p>"
                    }
                },
                "testCaseDefinitionId": {
                    "target": "com.amazonaws.iotdeviceadvisor#UUID",
                    "traits": {
                        "smithy.api#documentation": "<p>Provides test case run definition Id.</p>"
                    }
                },
                "testCaseDefinitionName": {
                    "target": "com.amazonaws.iotdeviceadvisor#TestCaseDefinitionName",
                    "traits": {
                        "smithy.api#documentation": "<p>Provides test case run definition Name.</p>"
                    }
                },
                "status": {
                    "target": "com.amazonaws.iotdeviceadvisor#Status",
                    "traits": {
                        "smithy.api#documentation": "<p>Provides test case run status.</p>"
                    }
                },
                "startTime": {
                    "target": "com.amazonaws.iotdeviceadvisor#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>Provides test case run start time.</p>"
                    }
                },
                "endTime": {
                    "target": "com.amazonaws.iotdeviceadvisor#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>Provides test case run end time.</p>"
                    }
                },
                "logUrl": {
                    "target": "com.amazonaws.iotdeviceadvisor#LogUrl",
                    "traits": {
                        "smithy.api#documentation": "<p>Provides test case run log Url.</p>"
                    }
                },
                "warnings": {
                    "target": "com.amazonaws.iotdeviceadvisor#Warnings",
                    "traits": {
                        "smithy.api#documentation": "<p>Provides test case run warnings.</p>"
                    }
                },
                "failure": {
                    "target": "com.amazonaws.iotdeviceadvisor#Failure",
                    "traits": {
                        "smithy.api#documentation": "<p>Provides test case run failure result.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Provides test case run.</p>"
            }
        },
        "com.amazonaws.iotdeviceadvisor#TestCaseRuns": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.iotdeviceadvisor#TestCaseRun"
            },
            "traits": {
                "smithy.api#documentation": "<p>Tests under each group result.</p>"
            }
        },
        "com.amazonaws.iotdeviceadvisor#TestResult": {
            "type": "structure",
            "members": {
                "groups": {
                    "target": "com.amazonaws.iotdeviceadvisor#GroupResultList",
                    "traits": {
                        "smithy.api#documentation": "<p>Show each group of test results.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Show each group result.</p>"
            }
        },
        "com.amazonaws.iotdeviceadvisor#Timestamp": {
            "type": "timestamp"
        },
        "com.amazonaws.iotdeviceadvisor#Token": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 0,
                    "max": 2000
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#UUID": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 12,
                    "max": 36
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#UntagResource": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotdeviceadvisor#UntagResourceRequest"
            },
            "output": {
                "target": "com.amazonaws.iotdeviceadvisor#UntagResourceResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotdeviceadvisor#InternalServerException"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Removes tags from an IoT Device Advisor resource.</p>",
                "smithy.api#http": {
                    "method": "DELETE",
                    "uri": "/tags/{resourceArn}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#UntagResourceRequest": {
            "type": "structure",
            "members": {
                "resourceArn": {
                    "target": "com.amazonaws.iotdeviceadvisor#AmazonResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The resource ARN of an IoT Device Advisor resource.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "tagKeys": {
                    "target": "com.amazonaws.iotdeviceadvisor#TagKeyList",
                    "traits": {
                        "smithy.api#documentation": "<p>List of tag keys to remove from the IoT Device Advisor resource.</p>",
                        "smithy.api#httpQuery": "tagKeys",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#UntagResourceResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.iotdeviceadvisor#UpdateSuiteDefinition": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.iotdeviceadvisor#UpdateSuiteDefinitionRequest"
            },
            "output": {
                "target": "com.amazonaws.iotdeviceadvisor#UpdateSuiteDefinitionResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.iotdeviceadvisor#InternalServerException"
                },
                {
                    "target": "com.amazonaws.iotdeviceadvisor#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Updates a Device Advisor test suite.</p>",
                "smithy.api#http": {
                    "method": "PATCH",
                    "uri": "/suiteDefinitions/{suiteDefinitionId}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#UpdateSuiteDefinitionRequest": {
            "type": "structure",
            "members": {
                "suiteDefinitionId": {
                    "target": "com.amazonaws.iotdeviceadvisor#UUID",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite definition Id of the test suite to be updated.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "suiteDefinitionConfiguration": {
                    "target": "com.amazonaws.iotdeviceadvisor#SuiteDefinitionConfiguration",
                    "traits": {
                        "smithy.api#documentation": "<p>Updates a Device Advisor test suite with suite definition configuration.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#UpdateSuiteDefinitionResponse": {
            "type": "structure",
            "members": {
                "suiteDefinitionId": {
                    "target": "com.amazonaws.iotdeviceadvisor#UUID",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite definition Id of the updated test suite.</p>"
                    }
                },
                "suiteDefinitionArn": {
                    "target": "com.amazonaws.iotdeviceadvisor#AmazonResourceName",
                    "traits": {
                        "smithy.api#documentation": "<p>Amazon Resource name of the updated test suite.</p>"
                    }
                },
                "suiteDefinitionName": {
                    "target": "com.amazonaws.iotdeviceadvisor#SuiteDefinitionName",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite definition name of the updated test suite.</p>"
                    }
                },
                "suiteDefinitionVersion": {
                    "target": "com.amazonaws.iotdeviceadvisor#SuiteDefinitionVersion",
                    "traits": {
                        "smithy.api#documentation": "<p>Suite definition version of the updated test suite.</p>"
                    }
                },
                "createdAt": {
                    "target": "com.amazonaws.iotdeviceadvisor#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>Timestamp of when the test suite was created.</p>"
                    }
                },
                "lastUpdatedAt": {
                    "target": "com.amazonaws.iotdeviceadvisor#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>Timestamp of when the test suite was updated.</p>"
                    }
                }
            }
        },
        "com.amazonaws.iotdeviceadvisor#ValidationException": {
            "type": "structure",
            "members": {
                "message": {
                    "target": "com.amazonaws.iotdeviceadvisor#Message",
                    "traits": {
                        "smithy.api#documentation": "<p>Sends invalid request exception message.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Sends invalid request exception.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.iotdeviceadvisor#Warnings": {
            "type": "string"
        }
    }
}
