{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2026-02-17",
    "auth":["aws.auth#sigv4"],
    "endpointPrefix":"resiliencehub",
    "protocol":"rest-json",
    "protocols":["rest-json"],
    "serviceFullName":"AWS Resilience Hub V2",
    "serviceId":"resiliencehubv2",
    "signatureVersion":"v4",
    "signingName":"resiliencehub",
    "uid":"resiliencehubv2-2026-02-17"
  },
  "operations":{
    "CreateAssertion":{
      "name":"CreateAssertion",
      "http":{
        "method":"POST",
        "requestUri":"/v2/create-assertion",
        "responseCode":200
      },
      "input":{"shape":"CreateAssertionRequest"},
      "output":{"shape":"CreateAssertionResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Creates a resilience assertion for a service.</p>"
    },
    "CreateInputSource":{
      "name":"CreateInputSource",
      "http":{
        "method":"POST",
        "requestUri":"/v2/create-input-source",
        "responseCode":200
      },
      "input":{"shape":"CreateInputSourceRequest"},
      "output":{"shape":"CreateInputSourceResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Creates an input source for a service.</p>"
    },
    "CreatePolicy":{
      "name":"CreatePolicy",
      "http":{
        "method":"POST",
        "requestUri":"/v2/create-policy",
        "responseCode":200
      },
      "input":{"shape":"CreatePolicyRequest"},
      "output":{"shape":"CreatePolicyResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Creates a resilience policy that defines availability and disaster recovery requirements.</p>"
    },
    "CreateReport":{
      "name":"CreateReport",
      "http":{
        "method":"POST",
        "requestUri":"/v2/create-report",
        "responseCode":200
      },
      "input":{"shape":"CreateReportRequest"},
      "output":{"shape":"CreateReportResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>On-demand report creation. Idempotent — duplicate requests with same clientToken return existing result.</p>"
    },
    "CreateService":{
      "name":"CreateService",
      "http":{
        "method":"POST",
        "requestUri":"/v2/create-service",
        "responseCode":200
      },
      "input":{"shape":"CreateServiceRequest"},
      "output":{"shape":"CreateServiceResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Creates a service.</p>"
    },
    "CreateServiceFunction":{
      "name":"CreateServiceFunction",
      "http":{
        "method":"POST",
        "requestUri":"/v2/create-service-function",
        "responseCode":200
      },
      "input":{"shape":"CreateServiceFunctionRequest"},
      "output":{"shape":"CreateServiceFunctionResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Creates a service function within a service.</p>"
    },
    "CreateServiceFunctionResources":{
      "name":"CreateServiceFunctionResources",
      "http":{
        "method":"POST",
        "requestUri":"/v2/create-service-function-resources",
        "responseCode":200
      },
      "input":{"shape":"CreateServiceFunctionResourcesRequest"},
      "output":{"shape":"CreateServiceFunctionResourcesResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Associates resources with a service function.</p>"
    },
    "CreateSystem":{
      "name":"CreateSystem",
      "http":{
        "method":"POST",
        "requestUri":"/v2/create-system",
        "responseCode":200
      },
      "input":{"shape":"CreateSystemRequest"},
      "output":{"shape":"CreateSystemResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Creates a system that represents a logical grouping of services.</p>"
    },
    "CreateTest":{
      "name":"CreateTest",
      "http":{
        "method":"POST",
        "requestUri":"/v2/create-test",
        "responseCode":200
      },
      "input":{"shape":"CreateTestRequest"},
      "output":{"shape":"CreateTestResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Creates a test for a service by configuring a test template. Each service has one test per template.</p>"
    },
    "CreateUserJourney":{
      "name":"CreateUserJourney",
      "http":{
        "method":"POST",
        "requestUri":"/v2/create-user-journey",
        "responseCode":200
      },
      "input":{"shape":"CreateUserJourneyRequest"},
      "output":{"shape":"CreateUserJourneyResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Creates a user journey within a system.</p>"
    },
    "DeleteAssertion":{
      "name":"DeleteAssertion",
      "http":{
        "method":"POST",
        "requestUri":"/v2/delete-assertion",
        "responseCode":200
      },
      "input":{"shape":"DeleteAssertionRequest"},
      "output":{"shape":"DeleteAssertionResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Deletes a resilience assertion from a service.</p>"
    },
    "DeleteInputSource":{
      "name":"DeleteInputSource",
      "http":{
        "method":"POST",
        "requestUri":"/v2/delete-input-source",
        "responseCode":200
      },
      "input":{"shape":"DeleteInputSourceRequest"},
      "output":{"shape":"DeleteInputSourceResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Deletes an input source.</p>"
    },
    "DeletePolicy":{
      "name":"DeletePolicy",
      "http":{
        "method":"POST",
        "requestUri":"/v2/delete-policy",
        "responseCode":200
      },
      "input":{"shape":"DeletePolicyRequest"},
      "output":{"shape":"DeletePolicyResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Deletes a resilience policy.</p>"
    },
    "DeleteService":{
      "name":"DeleteService",
      "http":{
        "method":"POST",
        "requestUri":"/v2/delete-service",
        "responseCode":200
      },
      "input":{"shape":"DeleteServiceRequest"},
      "output":{"shape":"DeleteServiceResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Deletes a service.</p>"
    },
    "DeleteServiceFunction":{
      "name":"DeleteServiceFunction",
      "http":{
        "method":"POST",
        "requestUri":"/v2/delete-function",
        "responseCode":200
      },
      "input":{"shape":"DeleteServiceFunctionRequest"},
      "output":{"shape":"DeleteServiceFunctionResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Deletes a service function.</p>"
    },
    "DeleteServiceFunctionResources":{
      "name":"DeleteServiceFunctionResources",
      "http":{
        "method":"POST",
        "requestUri":"/v2/delete-service-function-resources",
        "responseCode":200
      },
      "input":{"shape":"DeleteServiceFunctionResourcesRequest"},
      "output":{"shape":"DeleteServiceFunctionResourcesResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Removes resources from a service function.</p>"
    },
    "DeleteSystem":{
      "name":"DeleteSystem",
      "http":{
        "method":"POST",
        "requestUri":"/v2/delete-system",
        "responseCode":200
      },
      "input":{"shape":"DeleteSystemRequest"},
      "output":{"shape":"DeleteSystemResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Deletes a system.</p>"
    },
    "DeleteTest":{
      "name":"DeleteTest",
      "http":{
        "method":"POST",
        "requestUri":"/v2/delete-test",
        "responseCode":200
      },
      "input":{"shape":"DeleteTestRequest"},
      "output":{"shape":"DeleteTestResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Deletes a test.</p>"
    },
    "DeleteTestSources":{
      "name":"DeleteTestSources",
      "http":{
        "method":"POST",
        "requestUri":"/v2/delete-test-sources",
        "responseCode":200
      },
      "input":{"shape":"DeleteTestSourcesRequest"},
      "output":{"shape":"DeleteTestSourcesResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Removes monitoring sources from a test. The operation is transactional and idempotent — removing a source that is not attached is a no-op.</p>"
    },
    "DeleteUserJourney":{
      "name":"DeleteUserJourney",
      "http":{
        "method":"POST",
        "requestUri":"/v2/delete-user-journey",
        "responseCode":200
      },
      "input":{"shape":"DeleteUserJourneyRequest"},
      "output":{"shape":"DeleteUserJourneyResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Deletes a user journey.</p>"
    },
    "GetFailureModeFinding":{
      "name":"GetFailureModeFinding",
      "http":{
        "method":"GET",
        "requestUri":"/v2/get-failure-mode-finding",
        "responseCode":200
      },
      "input":{"shape":"GetFailureModeFindingRequest"},
      "output":{"shape":"GetFailureModeFindingResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves a finding by findingId.</p>",
      "readonly":true
    },
    "GetPolicy":{
      "name":"GetPolicy",
      "http":{
        "method":"GET",
        "requestUri":"/v2/get-policy",
        "responseCode":200
      },
      "input":{"shape":"GetPolicyRequest"},
      "output":{"shape":"GetPolicyResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves a resilience policy by ARN.</p>",
      "readonly":true
    },
    "GetService":{
      "name":"GetService",
      "http":{
        "method":"GET",
        "requestUri":"/v2/get-service",
        "responseCode":200
      },
      "input":{"shape":"GetServiceRequest"},
      "output":{"shape":"GetServiceResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves a service by ARN.</p>",
      "readonly":true
    },
    "GetSystem":{
      "name":"GetSystem",
      "http":{
        "method":"GET",
        "requestUri":"/v2/get-system",
        "responseCode":200
      },
      "input":{"shape":"GetSystemRequest"},
      "output":{"shape":"GetSystemResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves a system by ARN.</p>",
      "readonly":true
    },
    "GetTest":{
      "name":"GetTest",
      "http":{
        "method":"GET",
        "requestUri":"/v2/get-test",
        "responseCode":200
      },
      "input":{"shape":"GetTestRequest"},
      "output":{"shape":"GetTestResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves a test by ID.</p>",
      "readonly":true
    },
    "GetTestRun":{
      "name":"GetTestRun",
      "http":{
        "method":"GET",
        "requestUri":"/v2/get-test-run",
        "responseCode":200
      },
      "input":{"shape":"GetTestRunRequest"},
      "output":{"shape":"GetTestRunResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves a test run by ID, including its status, results, and the configuration snapshotted when the run started.</p>",
      "readonly":true
    },
    "GetTestTemplate":{
      "name":"GetTestTemplate",
      "http":{
        "method":"GET",
        "requestUri":"/v2/get-test-template",
        "responseCode":200
      },
      "input":{"shape":"GetTestTemplateRequest"},
      "output":{"shape":"GetTestTemplateResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves a resilience test template by ARN, including the parameters it accepts and the fault actions it runs.</p>",
      "readonly":true
    },
    "GetUserJourney":{
      "name":"GetUserJourney",
      "http":{
        "method":"GET",
        "requestUri":"/v2/get-user-journey",
        "responseCode":200
      },
      "input":{"shape":"GetUserJourneyRequest"},
      "output":{"shape":"GetUserJourneyResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves a user journey.</p>",
      "readonly":true
    },
    "ImportApp":{
      "name":"ImportApp",
      "http":{
        "method":"POST",
        "requestUri":"/v2/import-app",
        "responseCode":200
      },
      "input":{"shape":"ImportAppRequest"},
      "output":{"shape":"ImportAppResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Imports a V1 app into the V2 resource model, creating a service with the same name.</p>"
    },
    "ImportPolicy":{
      "name":"ImportPolicy",
      "http":{
        "method":"POST",
        "requestUri":"/v2/import-policy",
        "responseCode":200
      },
      "input":{"shape":"ImportPolicyRequest"},
      "output":{"shape":"ImportPolicyResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Imports a V1 policy into V2, mapping RTO/RPO values from V1 scenarios.</p>"
    },
    "ListAssertions":{
      "name":"ListAssertions",
      "http":{
        "method":"GET",
        "requestUri":"/v2/list-assertions",
        "responseCode":200
      },
      "input":{"shape":"ListAssertionsRequest"},
      "output":{"shape":"ListAssertionsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists resilience assertions for a service.</p>",
      "readonly":true
    },
    "ListDependencies":{
      "name":"ListDependencies",
      "http":{
        "method":"GET",
        "requestUri":"/v2/list-dependencies",
        "responseCode":200
      },
      "input":{"shape":"ListDependenciesRequest"},
      "output":{"shape":"ListDependenciesResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists dependencies discovered for services.</p>",
      "readonly":true
    },
    "ListFailureModeAssessments":{
      "name":"ListFailureModeAssessments",
      "http":{
        "method":"GET",
        "requestUri":"/v2/list-failure-mode-assessments",
        "responseCode":200
      },
      "input":{"shape":"ListFailureModeAssessmentsRequest"},
      "output":{"shape":"ListFailureModeAssessmentsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists failure mode assessments.</p>",
      "readonly":true
    },
    "ListFailureModeFindings":{
      "name":"ListFailureModeFindings",
      "http":{
        "method":"GET",
        "requestUri":"/v2/list-failure-mode-findings",
        "responseCode":200
      },
      "input":{"shape":"ListFailureModeFindingsRequest"},
      "output":{"shape":"ListFailureModeFindingsResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>List findings.</p>",
      "readonly":true
    },
    "ListInputSources":{
      "name":"ListInputSources",
      "http":{
        "method":"GET",
        "requestUri":"/v2/list-input-sources",
        "responseCode":200
      },
      "input":{"shape":"ListInputSourcesRequest"},
      "output":{"shape":"ListInputSourcesResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists input sources for a service.</p>",
      "readonly":true
    },
    "ListPolicies":{
      "name":"ListPolicies",
      "http":{
        "method":"GET",
        "requestUri":"/v2/list-policies",
        "responseCode":200
      },
      "input":{"shape":"ListPoliciesRequest"},
      "output":{"shape":"ListPoliciesResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists resilience policies.</p>",
      "readonly":true
    },
    "ListReports":{
      "name":"ListReports",
      "http":{
        "method":"GET",
        "requestUri":"/v2/list-reports",
        "responseCode":200
      },
      "input":{"shape":"ListReportsRequest"},
      "output":{"shape":"ListReportsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>List reports for a service, or all reports owned by the account if serviceArn is not provided.</p>",
      "readonly":true
    },
    "ListResolvedTestRunTargetResources":{
      "name":"ListResolvedTestRunTargetResources",
      "http":{
        "method":"GET",
        "requestUri":"/v2/test-runs/{testRunId}/resolved-target-resources",
        "responseCode":200
      },
      "input":{"shape":"ListResolvedTestRunTargetResourcesRequest"},
      "output":{"shape":"ListResolvedTestRunTargetResourcesResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists the AWS resources that AWS Fault Injection Service (AWS FIS) resolved as targets for a test run.</p>",
      "readonly":true
    },
    "ListResources":{
      "name":"ListResources",
      "http":{
        "method":"GET",
        "requestUri":"/v2/list-resources",
        "responseCode":200
      },
      "input":{"shape":"ListResourcesRequest"},
      "output":{"shape":"ListResourcesResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>List resources.</p>",
      "readonly":true
    },
    "ListServiceEvents":{
      "name":"ListServiceEvents",
      "http":{
        "method":"GET",
        "requestUri":"/v2/list-service-events",
        "responseCode":200
      },
      "input":{"shape":"ListServiceEventsRequest"},
      "output":{"shape":"ListServiceEventsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists events for a service.</p>",
      "readonly":true
    },
    "ListServiceFunctions":{
      "name":"ListServiceFunctions",
      "http":{
        "method":"GET",
        "requestUri":"/v2/list-functions",
        "responseCode":200
      },
      "input":{"shape":"ListServiceFunctionsRequest"},
      "output":{"shape":"ListServiceFunctionsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists service functions for a service.</p>",
      "readonly":true
    },
    "ListServiceTopologyEdges":{
      "name":"ListServiceTopologyEdges",
      "http":{
        "method":"GET",
        "requestUri":"/v2/list-service-topology-edges",
        "responseCode":200
      },
      "input":{"shape":"ListServiceTopologyEdgesRequest"},
      "output":{"shape":"ListServiceTopologyEdgesResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists topology edges for a service.</p>",
      "readonly":true
    },
    "ListServices":{
      "name":"ListServices",
      "http":{
        "method":"GET",
        "requestUri":"/v2/list-services",
        "responseCode":200
      },
      "input":{"shape":"ListServicesRequest"},
      "output":{"shape":"ListServicesResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists services.</p>",
      "readonly":true
    },
    "ListSystemEvents":{
      "name":"ListSystemEvents",
      "http":{
        "method":"GET",
        "requestUri":"/v2/list-system-events",
        "responseCode":200
      },
      "input":{"shape":"ListSystemEventsRequest"},
      "output":{"shape":"ListSystemEventsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists events for a system.</p>",
      "readonly":true
    },
    "ListSystems":{
      "name":"ListSystems",
      "http":{
        "method":"GET",
        "requestUri":"/v2/list-systems",
        "responseCode":200
      },
      "input":{"shape":"ListSystemsRequest"},
      "output":{"shape":"ListSystemsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists systems.</p>",
      "readonly":true
    },
    "ListTagsForResource":{
      "name":"ListTagsForResource",
      "http":{
        "method":"GET",
        "requestUri":"/v2/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"ListTagsForResourceRequest"},
      "output":{"shape":"ListTagsForResourceResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists the tags for a resource.</p>",
      "readonly":true
    },
    "ListTestRunEvents":{
      "name":"ListTestRunEvents",
      "http":{
        "method":"GET",
        "requestUri":"/v2/test-runs/{testRunId}/events",
        "responseCode":200
      },
      "input":{"shape":"ListTestRunEventsRequest"},
      "output":{"shape":"ListTestRunEventsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists the events in a test run's timeline.</p>",
      "readonly":true
    },
    "ListTestRunSources":{
      "name":"ListTestRunSources",
      "http":{
        "method":"GET",
        "requestUri":"/v2/test-runs/{testRunId}/sources",
        "responseCode":200
      },
      "input":{"shape":"ListTestRunSourcesRequest"},
      "output":{"shape":"ListTestRunSourcesResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists the monitoring source snapshots captured for a test run, optionally filtered by type.</p>",
      "readonly":true
    },
    "ListTestRuns":{
      "name":"ListTestRuns",
      "http":{
        "method":"GET",
        "requestUri":"/v2/list-test-runs",
        "responseCode":200
      },
      "input":{"shape":"ListTestRunsRequest"},
      "output":{"shape":"ListTestRunsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists the runs of a test, or all test runs for a service.</p>",
      "readonly":true
    },
    "ListTestSources":{
      "name":"ListTestSources",
      "http":{
        "method":"GET",
        "requestUri":"/v2/tests/{testId}/sources",
        "responseCode":200
      },
      "input":{"shape":"ListTestSourcesRequest"},
      "output":{"shape":"ListTestSourcesResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists the monitoring sources attached to a test, optionally filtered by type.</p>",
      "readonly":true
    },
    "ListTestTemplates":{
      "name":"ListTestTemplates",
      "http":{
        "method":"GET",
        "requestUri":"/v2/list-test-templates",
        "responseCode":200
      },
      "input":{"shape":"ListTestTemplatesRequest"},
      "output":{"shape":"ListTestTemplatesResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists the available resilience test templates. A test template is a pre-configured, AWS recommended test that defines which resilience capability to validate.</p>",
      "readonly":true
    },
    "ListTests":{
      "name":"ListTests",
      "http":{
        "method":"GET",
        "requestUri":"/v2/list-tests",
        "responseCode":200
      },
      "input":{"shape":"ListTestsRequest"},
      "output":{"shape":"ListTestsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists the tests configured for a service.</p>",
      "readonly":true
    },
    "ListUserJourneys":{
      "name":"ListUserJourneys",
      "http":{
        "method":"GET",
        "requestUri":"/v2/list-user-journeys",
        "responseCode":200
      },
      "input":{"shape":"ListUserJourneysRequest"},
      "output":{"shape":"ListUserJourneysResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists user journeys for a system.</p>",
      "readonly":true
    },
    "PutTestSources":{
      "name":"PutTestSources",
      "http":{
        "method":"POST",
        "requestUri":"/v2/put-test-sources",
        "responseCode":200
      },
      "input":{"shape":"PutTestSourcesRequest"},
      "output":{"shape":"PutTestSourcesResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Adds or updates the monitoring sources on a test. The operation is transactional — either every source is written or the call fails and nothing is written.</p>"
    },
    "StartFailureModeAssessment":{
      "name":"StartFailureModeAssessment",
      "http":{
        "method":"POST",
        "requestUri":"/v2/start-failure-mode-assessment",
        "responseCode":200
      },
      "input":{"shape":"StartFailureModeAssessmentRequest"},
      "output":{"shape":"StartFailureModeAssessmentResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Starts a failure mode assessment.</p>"
    },
    "StartTestRun":{
      "name":"StartTestRun",
      "http":{
        "method":"POST",
        "requestUri":"/v2/start-test-run",
        "responseCode":200
      },
      "input":{"shape":"StartTestRunRequest"},
      "output":{"shape":"StartTestRunResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Starts a run of a test. Each run scopes to the current resources in the service and produces a pass or fail outcome.</p>"
    },
    "StopTestRun":{
      "name":"StopTestRun",
      "http":{
        "method":"POST",
        "requestUri":"/v2/stop-test-run",
        "responseCode":200
      },
      "input":{"shape":"StopTestRunRequest"},
      "output":{"shape":"StopTestRunResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Stops an in-progress test run.</p>"
    },
    "TagResource":{
      "name":"TagResource",
      "http":{
        "method":"POST",
        "requestUri":"/v2/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"TagResourceRequest"},
      "output":{"shape":"TagResourceResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Adds tags to a resource.</p>"
    },
    "UntagResource":{
      "name":"UntagResource",
      "http":{
        "method":"DELETE",
        "requestUri":"/v2/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"UntagResourceRequest"},
      "output":{"shape":"UntagResourceResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Removes tags from a resource.</p>",
      "idempotent":true
    },
    "UpdateAssertion":{
      "name":"UpdateAssertion",
      "http":{
        "method":"POST",
        "requestUri":"/v2/update-assertion",
        "responseCode":200
      },
      "input":{"shape":"UpdateAssertionRequest"},
      "output":{"shape":"UpdateAssertionResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Updates a resilience assertion.</p>"
    },
    "UpdateDependency":{
      "name":"UpdateDependency",
      "http":{
        "method":"POST",
        "requestUri":"/v2/update-dependency",
        "responseCode":200
      },
      "input":{"shape":"UpdateDependencyRequest"},
      "output":{"shape":"UpdateDependencyResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Updates a dependency classification.</p>"
    },
    "UpdateFailureModeFinding":{
      "name":"UpdateFailureModeFinding",
      "http":{
        "method":"POST",
        "requestUri":"/v2/update-failure-mode-finding",
        "responseCode":200
      },
      "input":{"shape":"UpdateFailureModeFindingRequest"},
      "output":{"shape":"UpdateFailureModeFindingResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Updates an existing finding.</p>"
    },
    "UpdatePolicy":{
      "name":"UpdatePolicy",
      "http":{
        "method":"POST",
        "requestUri":"/v2/update-policy",
        "responseCode":200
      },
      "input":{"shape":"UpdatePolicyRequest"},
      "output":{"shape":"UpdatePolicyResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Updates an existing resilience policy.</p>"
    },
    "UpdateService":{
      "name":"UpdateService",
      "http":{
        "method":"POST",
        "requestUri":"/v2/update-service",
        "responseCode":200
      },
      "input":{"shape":"UpdateServiceRequest"},
      "output":{"shape":"UpdateServiceResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Updates an existing service.</p>"
    },
    "UpdateServiceFunction":{
      "name":"UpdateServiceFunction",
      "http":{
        "method":"POST",
        "requestUri":"/v2/update-function",
        "responseCode":200
      },
      "input":{"shape":"UpdateServiceFunctionRequest"},
      "output":{"shape":"UpdateServiceFunctionResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Updates a service function.</p>"
    },
    "UpdateSystem":{
      "name":"UpdateSystem",
      "http":{
        "method":"POST",
        "requestUri":"/v2/update-system",
        "responseCode":200
      },
      "input":{"shape":"UpdateSystemRequest"},
      "output":{"shape":"UpdateSystemResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Updates an existing system.</p>"
    },
    "UpdateTest":{
      "name":"UpdateTest",
      "http":{
        "method":"POST",
        "requestUri":"/v2/update-test",
        "responseCode":200
      },
      "input":{"shape":"UpdateTestRequest"},
      "output":{"shape":"UpdateTestResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Updates the configuration of an existing test.</p>"
    },
    "UpdateUserJourney":{
      "name":"UpdateUserJourney",
      "http":{
        "method":"POST",
        "requestUri":"/v2/update-user-journey",
        "responseCode":200
      },
      "input":{"shape":"UpdateUserJourneyRequest"},
      "output":{"shape":"UpdateUserJourneyResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Updates an existing user journey.</p>"
    }
  },
  "shapes":{
    "AccessDeniedException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>Access denied — caller lacks required permissions.</p>",
      "error":{
        "httpStatusCode":403,
        "senderFault":true
      },
      "exception":true
    },
    "AccountId":{
      "type":"string",
      "max":12,
      "min":12,
      "pattern":"[0-9]{12}"
    },
    "AccountTargeting":{
      "type":"string",
      "documentation":"<p>Whether a test run targets resources in a single AWS account or across multiple accounts.</p>",
      "enum":[
        "SINGLE_ACCOUNT",
        "MULTI_ACCOUNT"
      ]
    },
    "Achievability":{
      "type":"structure",
      "members":{
        "availabilitySlo":{
          "shape":"AchievabilityStatus",
          "documentation":"<p>The achievability status of the availability SLO target for the service.</p>"
        },
        "multiAzRtoRpo":{
          "shape":"AchievabilityStatus",
          "documentation":"<p>The achievability status of the multi-AZ RTO and RPO targets for the service.</p>"
        },
        "multiRegionRtoRpo":{
          "shape":"AchievabilityStatus",
          "documentation":"<p>The achievability status of the multi-Region RTO and RPO targets for the service.</p>"
        },
        "dataRecoveryTimeBetweenBackups":{
          "shape":"AchievabilityStatus",
          "documentation":"<p>The achievability status of the data recovery time between backups for the service.</p>"
        }
      },
      "documentation":"<p>Describes the achievability status of a service's resilience targets based on the most recent assessment.</p>"
    },
    "AchievabilityStatus":{
      "type":"string",
      "enum":[
        "ACHIEVABLE",
        "NOT_ACHIEVABLE"
      ]
    },
    "ActorType":{
      "type":"string",
      "enum":[
        "USER",
        "SYSTEM"
      ]
    },
    "Arn":{
      "type":"string",
      "documentation":"<p>ARN identifier.</p>",
      "min":31,
      "pattern":"arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:([a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]):[0-9]{12}:[A-Za-z0-9/][A-Za-z0-9:_/+.-]{0,1023}"
    },
    "ArnList":{
      "type":"list",
      "member":{"shape":"Arn"}
    },
    "Assertion":{
      "type":"structure",
      "required":[
        "serviceArn",
        "assertionId",
        "text",
        "source"
      ],
      "members":{
        "serviceArn":{"shape":"Arn"},
        "assertionId":{
          "shape":"Uuid",
          "documentation":"<p>The unique identifier of the assertion.</p>"
        },
        "text":{
          "shape":"AssertionText",
          "documentation":"<p>The text content of the assertion.</p>"
        },
        "source":{
          "shape":"AssertionSource",
          "documentation":"<p>The source of the assertion, indicating whether it was AI-generated or created by a user.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the assertion was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the assertion was last updated.</p>"
        }
      },
      "documentation":"<p>Represents a resilience assertion for a service.</p>"
    },
    "AssertionCreatedMetadata":{
      "type":"structure",
      "members":{
        "assertionId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the created assertion.</p>"
        },
        "assertionName":{
          "shape":"String",
          "documentation":"<p>The name of the created assertion.</p>"
        }
      },
      "documentation":"<p>Metadata for an assertion created event.</p>"
    },
    "AssertionDeletedMetadata":{
      "type":"structure",
      "members":{
        "assertionId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the deleted assertion.</p>"
        },
        "assertionName":{
          "shape":"String",
          "documentation":"<p>The name of the deleted assertion.</p>"
        }
      },
      "documentation":"<p>Metadata for an assertion deleted event.</p>"
    },
    "AssertionList":{
      "type":"list",
      "member":{"shape":"Assertion"}
    },
    "AssertionSource":{
      "type":"string",
      "enum":[
        "AI_GENERATED",
        "USER"
      ]
    },
    "AssertionText":{
      "type":"string",
      "max":1000,
      "min":1
    },
    "AssertionUpdatedMetadata":{
      "type":"structure",
      "members":{
        "assertionId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the updated assertion.</p>"
        },
        "assertionName":{
          "shape":"String",
          "documentation":"<p>The name of the updated assertion.</p>"
        }
      },
      "documentation":"<p>Metadata for an assertion updated event.</p>"
    },
    "AssessmentCost":{
      "type":"structure",
      "members":{
        "amount":{
          "shape":"Double",
          "documentation":"<p>The cost amount for the assessment.</p>"
        },
        "currency":{
          "shape":"CostCurrency",
          "documentation":"<p>The currency of the assessment cost.</p>"
        }
      },
      "documentation":"<p>Represents the cost of running a failure mode assessment.</p>"
    },
    "AssessmentErrorCode":{
      "type":"string",
      "enum":[
        "INVALID_PERMISSIONS",
        "CMK_ACCESS_DENIED",
        "AGENT_ERROR",
        "INTERNAL_ERROR",
        "DESIGN_FILE_ACCESS_DENIED"
      ]
    },
    "AssessmentSortField":{
      "type":"string",
      "documentation":"<p>The field by which to sort failure mode assessment results.</p>",
      "enum":["STARTED_AT"]
    },
    "AssessmentStatus":{
      "type":"string",
      "enum":[
        "NOT_STARTED",
        "PENDING",
        "IN_PROGRESS",
        "FAILED",
        "SUCCESS"
      ]
    },
    "AssessmentStatusList":{
      "type":"list",
      "member":{"shape":"AssessmentStatus"},
      "max":5,
      "min":0
    },
    "AssessmentStep":{
      "type":"string",
      "enum":[
        "TOPOLOGY_GENERATION",
        "INPUT_VALIDATION",
        "DESIGN_ANALYSIS",
        "TOPOLOGY_ENHANCEMENT",
        "SERVICE_FUNCTION_GENERATION",
        "POLICY_VALIDATION",
        "RESILIENCE_ASSESSMENT",
        "FAILURE_MODE_FINDINGS_CONSOLIDATION",
        "FAILURE_MODE_FINDINGS_ENRICHMENT"
      ]
    },
    "AssessmentSummary":{
      "type":"structure",
      "required":[
        "assessmentId",
        "serviceArn"
      ],
      "members":{
        "assessmentId":{
          "shape":"Uuid",
          "documentation":"<p>The unique identifier of the assessment.</p>"
        },
        "serviceArn":{"shape":"Arn"},
        "assessmentStatus":{
          "shape":"AssessmentStatus",
          "documentation":"<p>The current status of the assessment.</p>"
        },
        "assessmentStep":{
          "shape":"AssessmentStep",
          "documentation":"<p>The current step of the assessment process.</p>"
        },
        "totalFindings":{
          "shape":"Integer",
          "documentation":"<p>The total number of findings generated by the assessment.</p>"
        },
        "startedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the assessment started.</p>"
        },
        "endedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the assessment ended.</p>"
        },
        "errorMessage":{
          "shape":"String",
          "documentation":"<p>A message describing the error if the assessment failed.</p>"
        },
        "errorCode":{
          "shape":"AssessmentErrorCode",
          "documentation":"<p>The error code if the assessment failed.</p>"
        },
        "assessmentCost":{
          "shape":"AssessmentCost",
          "documentation":"<p>The cost of the assessment.</p>"
        },
        "billableAssessmentUnitCount":{
          "shape":"Integer",
          "documentation":"<p>The number of billable assessment units consumed by the assessment.</p>"
        },
        "achievability":{
          "shape":"Achievability",
          "documentation":"<p>The achievability results from the assessment.</p>"
        }
      },
      "documentation":"<p>Contains summary information about a failure mode assessment.</p>"
    },
    "AssessmentSummaryList":{
      "type":"list",
      "member":{"shape":"AssessmentSummary"}
    },
    "AssociatedSystem":{
      "type":"structure",
      "required":["systemArn"],
      "members":{
        "systemArn":{"shape":"Arn"},
        "systemName":{"shape":"EntityName"},
        "userJourneyIds":{
          "shape":"UserJourneyIdList",
          "documentation":"<p>The list of user journey identifiers that associate this system with the service.</p>"
        }
      },
      "documentation":"<p>Represents a system associated with a service.</p>"
    },
    "AssociatedSystemList":{
      "type":"list",
      "member":{"shape":"AssociatedSystem"},
      "max":20,
      "min":0
    },
    "AvailabilitySlo":{
      "type":"structure",
      "members":{
        "target":{
          "shape":"AvailabilitySloTargetDouble",
          "documentation":"<p>The target availability percentage, expressed as a value between 0 and 100.</p>"
        }
      },
      "documentation":"<p>Defines the availability service level objective (SLO) for a resilience policy.</p>"
    },
    "AvailabilitySloTargetDouble":{
      "type":"double",
      "box":true,
      "max":100,
      "min":0
    },
    "AwsAccountId":{
      "type":"string",
      "max":12,
      "min":12,
      "pattern":"\\d{12}"
    },
    "AwsRegion":{
      "type":"string",
      "min":6,
      "pattern":"[a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]"
    },
    "Boolean":{
      "type":"boolean",
      "box":true
    },
    "ClientToken":{
      "type":"string",
      "documentation":"<p>Idempotency token.</p>",
      "max":63,
      "min":1,
      "pattern":"[A-Za-z0-9_.-]{0,63}"
    },
    "CloudWatchAlarmArn":{
      "type":"string",
      "documentation":"<p>The ARN of a CloudWatch alarm.</p>",
      "max":1024,
      "min":31,
      "pattern":"arn:aws[a-zA-Z-]*:cloudwatch:[a-z]{2}(-[a-z]+)+-\\d{1}:\\d{12}:alarm:.+"
    },
    "ConflictException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>Conflict — resource already exists.</p>",
      "error":{
        "httpStatusCode":409,
        "senderFault":true
      },
      "exception":true
    },
    "CostCurrency":{
      "type":"string",
      "enum":["USD"]
    },
    "CreateAssertionRequest":{
      "type":"structure",
      "required":[
        "serviceArn",
        "text"
      ],
      "members":{
        "serviceArn":{"shape":"Arn"},
        "text":{
          "shape":"AssertionText",
          "documentation":"<p>The text content of the assertion.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "idempotencyToken":true
        }
      }
    },
    "CreateAssertionResponse":{
      "type":"structure",
      "required":["assertion"],
      "members":{
        "assertion":{
          "shape":"Assertion",
          "documentation":"<p>The created assertion.</p>"
        }
      }
    },
    "CreateInputSourceRequest":{
      "type":"structure",
      "required":[
        "serviceArn",
        "resourceConfiguration"
      ],
      "members":{
        "serviceArn":{"shape":"Arn"},
        "resourceConfiguration":{"shape":"ResourceConfiguration"},
        "clientToken":{
          "shape":"ClientToken",
          "idempotencyToken":true
        }
      }
    },
    "CreateInputSourceResponse":{
      "type":"structure",
      "required":[
        "serviceArn",
        "inputSourceId"
      ],
      "members":{
        "serviceArn":{"shape":"Arn"},
        "inputSourceId":{
          "shape":"InputSourceId",
          "documentation":"<p>The unique identifier assigned to the created input source.</p>"
        }
      }
    },
    "CreatePolicyRequest":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{"shape":"EntityName"},
        "description":{"shape":"LongDescription"},
        "availabilitySlo":{
          "shape":"AvailabilitySlo",
          "documentation":"<p>The availability SLO for the resilience policy.</p>"
        },
        "multiAz":{
          "shape":"MultiAzTargets",
          "documentation":"<p>The multi-AZ disaster recovery targets for the resilience policy.</p>"
        },
        "multiRegion":{
          "shape":"MultiRegionTargets",
          "documentation":"<p>The multi-Region disaster recovery targets for the resilience policy.</p>"
        },
        "dataRecovery":{
          "shape":"DataRecoveryTargets",
          "documentation":"<p>The data recovery targets for the resilience policy.</p>"
        },
        "kmsKeyId":{"shape":"KmsKeyId"},
        "tags":{"shape":"TagMap"},
        "clientToken":{
          "shape":"ClientToken",
          "idempotencyToken":true
        }
      }
    },
    "CreatePolicyResponse":{
      "type":"structure",
      "required":["policy"],
      "members":{
        "policy":{
          "shape":"Policy",
          "documentation":"<p>The created resilience policy.</p>"
        }
      }
    },
    "CreateReportRequest":{
      "type":"structure",
      "required":[
        "serviceArn",
        "reportType"
      ],
      "members":{
        "serviceArn":{"shape":"Arn"},
        "reportType":{
          "shape":"ReportType",
          "documentation":"<p>The type of report to generate.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "idempotencyToken":true
        }
      }
    },
    "CreateReportResponse":{
      "type":"structure",
      "required":["reportGenerationResult"],
      "members":{
        "reportGenerationResult":{
          "shape":"ReportGenerationResult",
          "documentation":"<p>The result of the report generation request.</p>"
        }
      }
    },
    "CreateServiceFunctionRequest":{
      "type":"structure",
      "required":[
        "name",
        "serviceArn",
        "criticality"
      ],
      "members":{
        "name":{"shape":"EntityLabel"},
        "serviceArn":{"shape":"Arn"},
        "description":{"shape":"EntityDescription"},
        "criticality":{
          "shape":"ServiceFunctionCriticality",
          "documentation":"<p>The criticality level of the service function.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "idempotencyToken":true
        }
      }
    },
    "CreateServiceFunctionResourcesRequest":{
      "type":"structure",
      "required":[
        "serviceArn",
        "serviceFunctionId",
        "resources"
      ],
      "members":{
        "serviceArn":{"shape":"Arn"},
        "serviceFunctionId":{
          "shape":"EntityId",
          "documentation":"<p>The identifier of the service function to associate resources with.</p>"
        },
        "resources":{
          "shape":"ResourceList",
          "documentation":"<p>The list of resources to associate with the service function.</p>"
        }
      }
    },
    "CreateServiceFunctionResourcesResponse":{
      "type":"structure",
      "members":{
        "serviceArn":{"shape":"Arn"},
        "serviceFunctionId":{
          "shape":"EntityId",
          "documentation":"<p>The identifier of the service function.</p>"
        },
        "resources":{
          "shape":"ResourceList",
          "documentation":"<p>The list of resources that were associated.</p>"
        }
      }
    },
    "CreateServiceFunctionResponse":{
      "type":"structure",
      "required":["serviceFunction"],
      "members":{
        "serviceFunction":{
          "shape":"ServiceFunction",
          "documentation":"<p>The created service function.</p>"
        }
      }
    },
    "CreateServiceRequest":{
      "type":"structure",
      "required":[
        "name",
        "regions",
        "permissionModel"
      ],
      "members":{
        "name":{"shape":"EntityName"},
        "description":{"shape":"LongDescription"},
        "associatedSystems":{
          "shape":"AssociatedSystemList",
          "documentation":"<p>The systems to associate with the service.</p>"
        },
        "policyArn":{"shape":"Arn"},
        "regions":{
          "shape":"RegionList",
          "documentation":"<p>The Regions where the service operates.</p>"
        },
        "permissionModel":{
          "shape":"PermissionModel",
          "documentation":"<p>The permission model for the service.</p>"
        },
        "dependencyDiscovery":{"shape":"DependencyDiscoveryInput"},
        "reportConfiguration":{"shape":"ServiceReportConfiguration"},
        "kmsKeyId":{"shape":"KmsKeyId"},
        "tags":{"shape":"TagMap"},
        "clientToken":{
          "shape":"ClientToken",
          "idempotencyToken":true
        }
      }
    },
    "CreateServiceResponse":{
      "type":"structure",
      "required":["service"],
      "members":{
        "service":{
          "shape":"Service",
          "documentation":"<p>The created service.</p>"
        }
      }
    },
    "CreateSystemRequest":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{"shape":"EntityName"},
        "description":{"shape":"EntityDescription"},
        "sharingEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether cross-account sharing is enabled for the system.</p>"
        },
        "kmsKeyId":{"shape":"KmsKeyId"},
        "tags":{"shape":"TagMap"},
        "clientToken":{
          "shape":"ClientToken",
          "idempotencyToken":true
        }
      }
    },
    "CreateSystemResponse":{
      "type":"structure",
      "required":["system"],
      "members":{
        "system":{
          "shape":"System",
          "documentation":"<p>The created system.</p>"
        }
      }
    },
    "CreateTestRequest":{
      "type":"structure",
      "required":[
        "serviceArn",
        "testTemplateArn"
      ],
      "members":{
        "serviceArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the service to create the test for.</p>"
        },
        "testTemplateArn":{
          "shape":"ServiceOwnedArn",
          "documentation":"<p>The ARN of the test template to configure.</p>"
        },
        "loggingConfiguration":{
          "shape":"LoggingConfiguration",
          "documentation":"<p>The logging configuration for the test.</p>"
        },
        "stopConditions":{
          "shape":"StopConditionList",
          "documentation":"<p>The stop conditions for the test.</p>"
        },
        "roleName":{
          "shape":"EntityName",
          "documentation":"<p>The name of the IAM execution role to use when running the test.</p>"
        },
        "parameters":{
          "shape":"TestParameters",
          "documentation":"<p>The parameter values for the test.</p>"
        }
      }
    },
    "CreateTestResponse":{
      "type":"structure",
      "required":["test"],
      "members":{
        "test":{
          "shape":"Test",
          "documentation":"<p>The created test.</p>"
        }
      }
    },
    "CreateUserJourneyRequest":{
      "type":"structure",
      "required":[
        "systemArn",
        "name"
      ],
      "members":{
        "systemArn":{"shape":"Arn"},
        "name":{"shape":"EntityLabel"},
        "description":{"shape":"EntityDescription"},
        "policyArn":{"shape":"Arn"},
        "clientToken":{
          "shape":"ClientToken",
          "idempotencyToken":true
        }
      }
    },
    "CreateUserJourneyResponse":{
      "type":"structure",
      "required":["userJourney"],
      "members":{
        "userJourney":{
          "shape":"UserJourney",
          "documentation":"<p>The created user journey.</p>"
        }
      }
    },
    "CrossAccountRole":{
      "type":"structure",
      "required":["crossAccountRoleArn"],
      "members":{
        "crossAccountRoleArn":{"shape":"IamRoleArn"},
        "externalId":{
          "shape":"CrossAccountRoleExternalIdString",
          "documentation":"<p>The external ID used for assuming the cross-account role.</p>"
        }
      },
      "documentation":"<p>Specifies a cross-account IAM role ARN and optional external ID.</p>"
    },
    "CrossAccountRoleExternalIdString":{
      "type":"string",
      "max":1224,
      "min":2
    },
    "CrossAccountRoleList":{
      "type":"list",
      "member":{"shape":"CrossAccountRole"},
      "max":5,
      "min":0
    },
    "DataRecoveryTargets":{
      "type":"structure",
      "members":{
        "timeBetweenBackupsInMinutes":{
          "shape":"DataRecoveryTargetsTimeBetweenBackupsInMinutesInteger",
          "documentation":"<p>The target time between backups, in minutes.</p>"
        }
      },
      "documentation":"<p>Defines data recovery targets for a resilience policy.</p>"
    },
    "DataRecoveryTargetsTimeBetweenBackupsInMinutesInteger":{
      "type":"integer",
      "box":true,
      "min":0
    },
    "DeleteAssertionRequest":{
      "type":"structure",
      "required":[
        "serviceArn",
        "assertionId"
      ],
      "members":{
        "serviceArn":{"shape":"Arn"},
        "assertionId":{
          "shape":"Uuid",
          "documentation":"<p>The unique identifier of the assertion to delete.</p>"
        }
      }
    },
    "DeleteAssertionResponse":{
      "type":"structure",
      "members":{
        "assertionId":{
          "shape":"Uuid",
          "documentation":"<p>The unique identifier of the deleted assertion.</p>"
        }
      }
    },
    "DeleteInputSourceRequest":{
      "type":"structure",
      "required":[
        "serviceArn",
        "inputSourceId"
      ],
      "members":{
        "serviceArn":{"shape":"Arn"},
        "inputSourceId":{
          "shape":"InputSourceId",
          "documentation":"<p>The identifier of the input source to delete.</p>"
        }
      }
    },
    "DeleteInputSourceResponse":{
      "type":"structure",
      "required":[
        "serviceArn",
        "inputSourceId"
      ],
      "members":{
        "serviceArn":{"shape":"Arn"},
        "inputSourceId":{
          "shape":"InputSourceId",
          "documentation":"<p>The identifier of the deleted input source.</p>"
        }
      }
    },
    "DeletePolicyRequest":{
      "type":"structure",
      "required":["policyArn"],
      "members":{
        "policyArn":{"shape":"Arn"}
      }
    },
    "DeletePolicyResponse":{
      "type":"structure",
      "required":["policyArn"],
      "members":{
        "policyArn":{"shape":"Arn"}
      }
    },
    "DeleteServiceFunctionRequest":{
      "type":"structure",
      "required":[
        "serviceArn",
        "serviceFunctionId"
      ],
      "members":{
        "serviceArn":{"shape":"Arn"},
        "serviceFunctionId":{
          "shape":"EntityId",
          "documentation":"<p>The identifier of the service function to delete.</p>"
        }
      }
    },
    "DeleteServiceFunctionResourcesRequest":{
      "type":"structure",
      "required":[
        "serviceArn",
        "serviceFunctionId",
        "resources"
      ],
      "members":{
        "serviceArn":{"shape":"Arn"},
        "serviceFunctionId":{
          "shape":"EntityId",
          "documentation":"<p>The identifier of the service function to remove resources from.</p>"
        },
        "resources":{
          "shape":"ResourceList",
          "documentation":"<p>The list of resources to remove from the service function.</p>"
        }
      }
    },
    "DeleteServiceFunctionResourcesResponse":{
      "type":"structure",
      "members":{
        "serviceArn":{"shape":"Arn"},
        "serviceFunctionId":{
          "shape":"EntityId",
          "documentation":"<p>The identifier of the service function.</p>"
        },
        "resources":{
          "shape":"ResourceList",
          "documentation":"<p>The list of resources that were removed.</p>"
        }
      }
    },
    "DeleteServiceFunctionResponse":{
      "type":"structure",
      "members":{
        "serviceFunctionId":{
          "shape":"EntityId",
          "documentation":"<p>The identifier of the deleted service function.</p>"
        }
      }
    },
    "DeleteServiceRequest":{
      "type":"structure",
      "required":["serviceArn"],
      "members":{
        "serviceArn":{"shape":"Arn"}
      }
    },
    "DeleteServiceResponse":{
      "type":"structure",
      "required":["serviceArn"],
      "members":{
        "serviceArn":{"shape":"Arn"}
      }
    },
    "DeleteSystemRequest":{
      "type":"structure",
      "required":["systemArn"],
      "members":{
        "systemArn":{"shape":"Arn"}
      }
    },
    "DeleteSystemResponse":{
      "type":"structure",
      "required":["systemArn"],
      "members":{
        "systemArn":{"shape":"Arn"}
      }
    },
    "DeleteTestRequest":{
      "type":"structure",
      "required":[
        "testId",
        "serviceArn"
      ],
      "members":{
        "testId":{
          "shape":"TestId",
          "documentation":"<p>The identifier of the test to delete.</p>"
        },
        "serviceArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the service the test belongs to.</p>"
        }
      }
    },
    "DeleteTestResponse":{
      "type":"structure",
      "required":["testId"],
      "members":{
        "testId":{
          "shape":"TestId",
          "documentation":"<p>The identifier of the deleted test.</p>"
        }
      }
    },
    "DeleteTestSourcesRequest":{
      "type":"structure",
      "required":[
        "testId",
        "serviceArn",
        "testSources"
      ],
      "members":{
        "testId":{
          "shape":"TestId",
          "documentation":"<p>The identifier of the test to remove sources from.</p>"
        },
        "serviceArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the service the test belongs to.</p>"
        },
        "testSources":{
          "shape":"TestSourceInputList",
          "documentation":"<p>The monitoring sources to remove.</p>"
        }
      }
    },
    "DeleteTestSourcesResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteUserJourneyRequest":{
      "type":"structure",
      "required":[
        "systemArn",
        "userJourneyId"
      ],
      "members":{
        "systemArn":{"shape":"Arn"},
        "userJourneyId":{
          "shape":"UserJourneyId",
          "documentation":"<p>The identifier of the user journey to delete.</p>"
        }
      }
    },
    "DeleteUserJourneyResponse":{
      "type":"structure",
      "required":["userJourneyId"],
      "members":{
        "userJourneyId":{
          "shape":"UserJourneyId",
          "documentation":"<p>The identifier of the deleted user journey.</p>"
        }
      }
    },
    "DependencyCriticality":{
      "type":"string",
      "enum":[
        "HARD",
        "SOFT",
        "UNKNOWN"
      ]
    },
    "DependencyDiscoveryConfig":{
      "type":"structure",
      "required":["status"],
      "members":{
        "status":{
          "shape":"DependencyDiscoveryStatus",
          "documentation":"<p>The current status of dependency discovery.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when dependency discovery was last updated.</p>"
        },
        "eligibleResourceCount":{
          "shape":"DependencyDiscoveryConfigEligibleResourceCountInteger",
          "documentation":"<p>The count of resources eligible for dependency attribution.</p>"
        },
        "message":{
          "shape":"DependencyDiscoveryConfigMessageString",
          "documentation":"<p>A status message for dependency discovery, displayed during the initialization state.</p>"
        }
      },
      "documentation":"<p>Configuration for dependency discovery on a service.</p>"
    },
    "DependencyDiscoveryConfigEligibleResourceCountInteger":{
      "type":"integer",
      "box":true,
      "min":0
    },
    "DependencyDiscoveryConfigMessageString":{
      "type":"string",
      "max":1024,
      "min":0
    },
    "DependencyDiscoveryInput":{
      "type":"string",
      "documentation":"<p>Caller-settable values for dependency discovery. INITIALIZING is system-managed.</p>",
      "enum":[
        "ENABLED",
        "DISABLED"
      ]
    },
    "DependencyDiscoveryStatus":{
      "type":"string",
      "enum":[
        "ENABLED",
        "INITIALIZING",
        "DISABLED"
      ]
    },
    "DependencySummary":{
      "type":"structure",
      "required":[
        "dependencyId",
        "serviceArn",
        "dependencyName",
        "dnsName",
        "location",
        "lastDetectedTime",
        "sourceRegions",
        "queryRange",
        "criticality"
      ],
      "members":{
        "dependencyId":{
          "shape":"Uuid",
          "documentation":"<p>The unique identifier of the dependency.</p>"
        },
        "serviceArn":{"shape":"Arn"},
        "dependencyName":{
          "shape":"String",
          "documentation":"<p>The name of the dependency.</p>"
        },
        "dnsName":{
          "shape":"String",
          "documentation":"<p>The DNS name associated with the dependency.</p>"
        },
        "location":{
          "shape":"String",
          "documentation":"<p>The location of the dependency.</p>"
        },
        "lastDetectedTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the dependency was last detected.</p>"
        },
        "sourceRegions":{
          "shape":"RegionList",
          "documentation":"<p>The source Regions from which the dependency was detected.</p>"
        },
        "provider":{
          "shape":"String",
          "documentation":"<p>The provider of the dependency.</p>"
        },
        "queryRange":{
          "shape":"QueryRange",
          "documentation":"<p>The query range data for the dependency.</p>"
        },
        "criticality":{
          "shape":"DependencyCriticality",
          "documentation":"<p>The criticality level of the dependency.</p>"
        },
        "comment":{
          "shape":"String",
          "documentation":"<p>A user-provided comment about the dependency.</p>"
        }
      },
      "documentation":"<p>Contains summary information about a discovered dependency.</p>"
    },
    "DependencySummaryList":{
      "type":"list",
      "member":{"shape":"DependencySummary"}
    },
    "DisasterRecoverySource":{
      "type":"structure",
      "members":{
        "value":{
          "shape":"String",
          "documentation":"<p>The disaster recovery approach value.</p>"
        },
        "policyName":{"shape":"EntityName"},
        "source":{
          "shape":"PolicyValueSource",
          "documentation":"<p>Indicates whether the value comes from the service's own account or a cross-account policy.</p>"
        }
      },
      "documentation":"<p>Contains the effective disaster recovery approach value for a service.</p>"
    },
    "Double":{
      "type":"double",
      "box":true
    },
    "EdgePropertyList":{
      "type":"list",
      "member":{"shape":"EdgePropertySummary"},
      "max":3,
      "min":0
    },
    "EdgePropertySummary":{
      "type":"structure",
      "members":{
        "topologyType":{
          "shape":"TopologyType",
          "documentation":"<p>The topology type of the edge.</p>"
        },
        "label":{
          "shape":"String",
          "documentation":"<p>Human-readable relationship description. Only present for LLM-inferred edges.</p>"
        }
      },
      "documentation":"<p>Contains property information for a service topology edge.</p>"
    },
    "EffectivePolicyValues":{
      "type":"structure",
      "members":{
        "availabilitySlo":{
          "shape":"SloSource",
          "documentation":"<p>The effective availability SLO value for the service.</p>"
        },
        "multiAzRto":{
          "shape":"TargetSource",
          "documentation":"<p>The effective multi-AZ RTO value for the service, in minutes.</p>"
        },
        "multiAzRpo":{
          "shape":"TargetSource",
          "documentation":"<p>The effective multi-AZ RPO value for the service, in minutes.</p>"
        },
        "multiAzDrApproach":{
          "shape":"DisasterRecoverySource",
          "documentation":"<p>The effective multi-AZ disaster recovery approach for the service.</p>"
        },
        "multiRegionRto":{
          "shape":"TargetSource",
          "documentation":"<p>The effective multi-Region RTO value for the service, in minutes.</p>"
        },
        "multiRegionRpo":{
          "shape":"TargetSource",
          "documentation":"<p>The effective multi-Region RPO value for the service, in minutes.</p>"
        },
        "multiRegionDrApproach":{
          "shape":"DisasterRecoverySource",
          "documentation":"<p>The effective multi-Region disaster recovery approach for the service.</p>"
        },
        "dataRecoveryTimeBetweenBackups":{
          "shape":"TargetSource",
          "documentation":"<p>The effective data recovery time between backups value for the service.</p>"
        }
      },
      "documentation":"<p>Contains the effective resilience policy values for a service.</p>"
    },
    "EksNamespace":{
      "type":"string",
      "documentation":"<p>Kubernetes namespace name (RFC 1123 Label).</p>",
      "max":63,
      "min":1,
      "pattern":"[a-z0-9]([-a-z0-9]*[a-z0-9])?"
    },
    "EksSource":{
      "type":"structure",
      "required":[
        "clusterArn",
        "namespaces"
      ],
      "members":{
        "clusterArn":{"shape":"Arn"},
        "namespaces":{
          "shape":"EksSourceNamespacesList",
          "documentation":"<p>The list of Kubernetes namespaces within the EKS cluster.</p>"
        }
      },
      "documentation":"<p>Defines an Amazon EKS cluster and its namespaces as an input source for resource discovery.</p>"
    },
    "EksSourceNamespacesList":{
      "type":"list",
      "member":{"shape":"EksNamespace"},
      "max":10,
      "min":1
    },
    "EntityDescription":{
      "type":"string",
      "documentation":"<p>Resource description.</p>",
      "max":500,
      "min":0
    },
    "EntityId":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"\\S{1,255}"
    },
    "EntityLabel":{
      "type":"string",
      "documentation":"<p>Entity label (not part of ARN — spaces allowed).</p>",
      "max":60,
      "min":2,
      "pattern":"[A-Za-z0-9][A-Za-z0-9 _\\-]{1,59}"
    },
    "EntityName":{
      "type":"string",
      "documentation":"<p>Resource name (used in ARN — no spaces allowed).</p>",
      "max":60,
      "min":2,
      "pattern":"[A-Za-z0-9][A-Za-z0-9_\\-]{1,59}"
    },
    "EventActor":{
      "type":"structure",
      "required":[
        "type",
        "principalId"
      ],
      "members":{
        "type":{
          "shape":"ActorType",
          "documentation":"<p>The type of actor, either USER or SYSTEM.</p>"
        },
        "principalId":{
          "shape":"String",
          "documentation":"<p>The principal ID of the actor.</p>"
        },
        "accountId":{
          "shape":"String",
          "documentation":"<p>The AWS account ID of the actor.</p>"
        },
        "userName":{
          "shape":"String",
          "documentation":"<p>The user name of the actor.</p>"
        }
      },
      "documentation":"<p>Identifies the actor that triggered an event.</p>"
    },
    "ExperimentArnList":{
      "type":"list",
      "member":{"shape":"Arn"}
    },
    "ExperimentDetails":{
      "type":"structure",
      "required":["experimentArn"],
      "members":{
        "experimentArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the AWS FIS experiment.</p>"
        },
        "details":{
          "shape":"String",
          "documentation":"<p>Additional details about the experiment.</p>"
        }
      },
      "documentation":"<p>Details about an AWS Fault Injection Service (AWS FIS) experiment run as part of a test run.</p>"
    },
    "ExperimentDetailsList":{
      "type":"list",
      "member":{"shape":"ExperimentDetails"}
    },
    "FailedReportOutput":{
      "type":"structure",
      "required":["errorCode"],
      "members":{
        "errorCode":{
          "shape":"ReportGenerationErrorCode",
          "documentation":"<p>The error code describing why the report generation failed.</p>"
        },
        "errorMessage":{
          "shape":"String",
          "documentation":"<p>The error message describing why the report generation failed.</p>"
        }
      },
      "documentation":"<p>Details when report generation failed.</p>"
    },
    "FailureCategory":{
      "type":"string",
      "enum":[
        "SHARED_FATE",
        "EXCESSIVE_LOAD",
        "EXCESSIVE_LATENCY",
        "MISCONFIGURATION_AND_BUGS",
        "SINGLE_POINT_OF_FAILURE"
      ]
    },
    "Finding":{
      "type":"structure",
      "members":{
        "findingId":{
          "shape":"Uuid",
          "documentation":"<p>The unique identifier of the finding.</p>"
        },
        "name":{
          "shape":"String",
          "documentation":"<p>The name of the finding.</p>"
        },
        "description":{"shape":"EntityDescription"},
        "failureCategory":{
          "shape":"FailureCategory",
          "documentation":"<p>The failure category of the finding.</p>"
        },
        "status":{
          "shape":"FindingStatus",
          "documentation":"<p>The current status of the finding.</p>"
        },
        "reasoning":{
          "shape":"String",
          "documentation":"<p>The reasoning behind the finding.</p>"
        },
        "comment":{
          "shape":"FindingCommentString",
          "documentation":"<p>A user-provided comment about the finding.</p>"
        },
        "severity":{
          "shape":"FindingSeverity",
          "documentation":"<p>The severity of the finding.</p>"
        },
        "serviceFunctions":{
          "shape":"FunctionsList",
          "documentation":"<p>The service functions associated with the finding.</p>"
        },
        "policyComponent":{
          "shape":"PolicyComponent",
          "documentation":"<p>The policy component associated with the finding.</p>"
        },
        "infrastructureAndCodeRecommendations":{
          "shape":"InfrastructureAndCodeRecommendationsList",
          "documentation":"<p>Infrastructure and code recommendations to address the finding.</p>"
        },
        "observabilityRecommendations":{
          "shape":"ObservabilityRecommendationsList",
          "documentation":"<p>Observability recommendations to address the finding.</p>"
        },
        "testingRecommendations":{
          "shape":"TestingRecommendationsList",
          "documentation":"<p>Testing recommendations to address the finding.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the finding was last updated.</p>"
        }
      },
      "documentation":"<p>Represents a resilience finding from a failure mode assessment.</p>"
    },
    "FindingCommentString":{
      "type":"string",
      "max":2048,
      "min":0
    },
    "FindingSeverity":{
      "type":"string",
      "enum":[
        "LOW",
        "MEDIUM",
        "HIGH"
      ]
    },
    "FindingStatus":{
      "type":"string",
      "enum":[
        "OPEN",
        "RESOLVED",
        "IRRELEVANT"
      ]
    },
    "FindingSummary":{
      "type":"structure",
      "members":{
        "serviceArn":{"shape":"Arn"},
        "findingId":{
          "shape":"Uuid",
          "documentation":"<p>The unique identifier of the finding.</p>"
        },
        "name":{
          "shape":"String",
          "documentation":"<p>The name of the finding.</p>"
        },
        "description":{"shape":"EntityDescription"},
        "failureCategory":{
          "shape":"FailureCategory",
          "documentation":"<p>The failure category of the finding.</p>"
        },
        "severity":{
          "shape":"FindingSeverity",
          "documentation":"<p>The severity of the finding.</p>"
        },
        "status":{
          "shape":"FindingStatus",
          "documentation":"<p>The current status of the finding.</p>"
        },
        "policyComponent":{
          "shape":"PolicyComponent",
          "documentation":"<p>The policy component associated with the finding.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the finding was last updated.</p>"
        }
      },
      "documentation":"<p>Contains summary information about a finding.</p>"
    },
    "FindingsList":{
      "type":"list",
      "member":{"shape":"FindingSummary"}
    },
    "FunctionsList":{
      "type":"list",
      "member":{"shape":"EntityId"},
      "max":20,
      "min":0
    },
    "GetFailureModeFindingRequest":{
      "type":"structure",
      "required":[
        "findingId",
        "serviceArn"
      ],
      "members":{
        "findingId":{
          "shape":"Uuid",
          "documentation":"<p>The unique identifier of the finding to retrieve.</p>",
          "location":"querystring",
          "locationName":"findingId"
        },
        "serviceArn":{
          "shape":"Arn",
          "location":"querystring",
          "locationName":"serviceArn"
        }
      }
    },
    "GetFailureModeFindingResponse":{
      "type":"structure",
      "members":{
        "finding":{
          "shape":"Finding",
          "documentation":"<p>The requested finding.</p>"
        }
      }
    },
    "GetPolicyRequest":{
      "type":"structure",
      "required":["policyArn"],
      "members":{
        "policyArn":{
          "shape":"Arn",
          "location":"querystring",
          "locationName":"policyArn"
        }
      }
    },
    "GetPolicyResponse":{
      "type":"structure",
      "required":["policy"],
      "members":{
        "policy":{
          "shape":"Policy",
          "documentation":"<p>The requested resilience policy.</p>"
        }
      }
    },
    "GetServiceRequest":{
      "type":"structure",
      "required":["serviceArn"],
      "members":{
        "serviceArn":{
          "shape":"Arn",
          "location":"querystring",
          "locationName":"serviceArn"
        }
      }
    },
    "GetServiceResponse":{
      "type":"structure",
      "required":["service"],
      "members":{
        "service":{
          "shape":"Service",
          "documentation":"<p>The requested service.</p>"
        }
      }
    },
    "GetSystemRequest":{
      "type":"structure",
      "required":["systemArn"],
      "members":{
        "systemArn":{
          "shape":"Arn",
          "location":"querystring",
          "locationName":"systemArn"
        }
      }
    },
    "GetSystemResponse":{
      "type":"structure",
      "required":["system"],
      "members":{
        "system":{
          "shape":"System",
          "documentation":"<p>The requested system.</p>"
        }
      }
    },
    "GetTestRequest":{
      "type":"structure",
      "required":[
        "testId",
        "serviceArn"
      ],
      "members":{
        "testId":{
          "shape":"TestId",
          "documentation":"<p>The identifier of the test to retrieve.</p>",
          "location":"querystring",
          "locationName":"testId"
        },
        "serviceArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the service the test belongs to.</p>",
          "location":"querystring",
          "locationName":"serviceArn"
        }
      }
    },
    "GetTestResponse":{
      "type":"structure",
      "required":["test"],
      "members":{
        "test":{
          "shape":"Test",
          "documentation":"<p>The requested test.</p>"
        }
      }
    },
    "GetTestRunRequest":{
      "type":"structure",
      "required":[
        "testRunId",
        "serviceArn"
      ],
      "members":{
        "testRunId":{
          "shape":"TestRunId",
          "documentation":"<p>The identifier of the test run to retrieve.</p>",
          "location":"querystring",
          "locationName":"testRunId"
        },
        "serviceArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the service the test run belongs to.</p>",
          "location":"querystring",
          "locationName":"serviceArn"
        }
      }
    },
    "GetTestRunResponse":{
      "type":"structure",
      "required":["testRun"],
      "members":{
        "testRun":{
          "shape":"TestRun",
          "documentation":"<p>The requested test run.</p>"
        }
      }
    },
    "GetTestTemplateRequest":{
      "type":"structure",
      "required":["testTemplateArn"],
      "members":{
        "testTemplateArn":{
          "shape":"ServiceOwnedArn",
          "documentation":"<p>The ARN of the test template to retrieve.</p>",
          "location":"querystring",
          "locationName":"testTemplateArn"
        }
      }
    },
    "GetTestTemplateResponse":{
      "type":"structure",
      "required":["testTemplate"],
      "members":{
        "testTemplate":{
          "shape":"TestTemplate",
          "documentation":"<p>The requested test template.</p>"
        }
      }
    },
    "GetUserJourneyRequest":{
      "type":"structure",
      "required":[
        "systemArn",
        "userJourneyId"
      ],
      "members":{
        "systemArn":{
          "shape":"Arn",
          "location":"querystring",
          "locationName":"systemArn"
        },
        "userJourneyId":{
          "shape":"UserJourneyId",
          "documentation":"<p>The identifier of the user journey to retrieve.</p>",
          "location":"querystring",
          "locationName":"userJourneyId"
        }
      }
    },
    "GetUserJourneyResponse":{
      "type":"structure",
      "required":["userJourney"],
      "members":{
        "userJourney":{
          "shape":"UserJourney",
          "documentation":"<p>The requested user journey.</p>"
        }
      }
    },
    "IamRoleArn":{
      "type":"string",
      "documentation":"<p>ARN of the IAM Role for the profile. Null if the permission profile is the 'Admin' profile.</p>",
      "min":32,
      "pattern":"arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):iam::[0-9]{12}:role/(([^/][!-~]+/){1,511})?[A-Za-z0-9_+=,.@-]{1,64}"
    },
    "IamRoleName":{
      "type":"string",
      "documentation":"<p>IAM role name (supports up to 64 characters per IAM limits).</p>",
      "max":576,
      "min":1,
      "pattern":"([A-Za-z0-9_+=,.@\\-]+/)*[A-Za-z0-9_+=,.@\\-]+"
    },
    "ImportAppRequest":{
      "type":"structure",
      "required":["v1AppArn"],
      "members":{
        "v1AppArn":{"shape":"Arn"},
        "policyArn":{"shape":"Arn"},
        "kmsKeyId":{"shape":"KmsKeyId"},
        "skipManuallyAddedResources":{
          "shape":"Boolean",
          "documentation":"<p>Whether to skip manually added resources during import.</p>"
        },
        "associatedSystems":{
          "shape":"AssociatedSystemList",
          "documentation":"<p>The systems to associate with the imported service.</p>"
        },
        "tags":{"shape":"TagMap"},
        "clientToken":{
          "shape":"ClientToken",
          "idempotencyToken":true
        }
      }
    },
    "ImportAppResponse":{
      "type":"structure",
      "required":["service"],
      "members":{
        "service":{
          "shape":"Service",
          "documentation":"<p>The imported service.</p>"
        }
      }
    },
    "ImportPolicyRequest":{
      "type":"structure",
      "required":["v1PolicyArn"],
      "members":{
        "v1PolicyArn":{"shape":"Arn"},
        "kmsKeyId":{"shape":"KmsKeyId"},
        "availabilitySlo":{
          "shape":"AvailabilitySlo",
          "documentation":"<p>The availability SLO to set on the imported policy.</p>"
        },
        "multiAzDisasterRecoveryApproach":{
          "shape":"MultiAzDisasterRecoveryApproach",
          "documentation":"<p>The multi-AZ disaster recovery approach for the imported policy.</p>"
        },
        "multiRegionDisasterRecoveryApproach":{
          "shape":"MultiRegionDisasterRecoveryApproach",
          "documentation":"<p>The multi-Region disaster recovery approach for the imported policy.</p>"
        },
        "tags":{"shape":"TagMap"},
        "clientToken":{
          "shape":"ClientToken",
          "idempotencyToken":true
        }
      }
    },
    "ImportPolicyResponse":{
      "type":"structure",
      "required":["policy"],
      "members":{
        "policy":{
          "shape":"Policy",
          "documentation":"<p>The imported policy.</p>"
        }
      }
    },
    "InfrastructureAndCodeRecommendation":{
      "type":"structure",
      "members":{
        "suggestedChanges":{
          "shape":"SuggestedChangesList",
          "documentation":"<p>The list of suggested changes.</p>"
        }
      },
      "documentation":"<p>An infrastructure and code recommendation to address a finding.</p>"
    },
    "InfrastructureAndCodeRecommendationsList":{
      "type":"list",
      "member":{"shape":"InfrastructureAndCodeRecommendation"},
      "max":5,
      "min":0
    },
    "InputSource":{
      "type":"structure",
      "required":[
        "identifier",
        "type"
      ],
      "members":{
        "identifier":{
          "shape":"String",
          "documentation":"<p>The identifier of the input source.</p>"
        },
        "type":{
          "shape":"InputSourceType",
          "documentation":"<p>The type of the input source.</p>"
        }
      },
      "documentation":"<p>Identifies an input source by its identifier and type.</p>"
    },
    "InputSourceId":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"\\S{1,255}"
    },
    "InputSourceSummary":{
      "type":"structure",
      "required":["inputSourceId"],
      "members":{
        "inputSourceId":{
          "shape":"InputSourceId",
          "documentation":"<p>The unique identifier of the input source.</p>"
        },
        "type":{
          "shape":"InputSourceType",
          "documentation":"<p>The type of the input source.</p>"
        },
        "resourceTags":{
          "shape":"ResourceTagList",
          "documentation":"<p>The resource tags used for discovery, if this input source uses tags.</p>"
        },
        "cfnStackArn":{"shape":"Arn"},
        "tfStateFileUrl":{"shape":"S3Url"},
        "eks":{
          "shape":"EksSource",
          "documentation":"<p>The Amazon EKS configuration, if this input source uses EKS.</p>"
        },
        "designFileS3Url":{"shape":"S3Url"},
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the input source was created.</p>"
        }
      },
      "documentation":"<p>Contains summary information about an input source for a service.</p>"
    },
    "InputSourceSummaryList":{
      "type":"list",
      "member":{"shape":"InputSourceSummary"}
    },
    "InputSourceType":{
      "type":"string",
      "enum":[
        "CFN_STACK",
        "TAGS",
        "EKS",
        "TERRAFORM",
        "DESIGN_FILE",
        "MONITORING"
      ]
    },
    "Integer":{
      "type":"integer",
      "box":true
    },
    "InternalServerException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>Internal service error.</p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true
    },
    "KmsKeyId":{
      "type":"string",
      "documentation":"<p>KMS key identifier — accepts key ID, key ARN, alias name, or alias ARN.</p>",
      "max":2048,
      "min":1
    },
    "ListAssertionsRequest":{
      "type":"structure",
      "required":["serviceArn"],
      "members":{
        "serviceArn":{
          "shape":"Arn",
          "location":"querystring",
          "locationName":"serviceArn"
        },
        "source":{
          "shape":"AssertionSource",
          "documentation":"<p>Filter assertions by source type.</p>",
          "location":"querystring",
          "locationName":"source"
        },
        "maxResults":{
          "shape":"MaxResults",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListAssertionsResponse":{
      "type":"structure",
      "required":["assertions"],
      "members":{
        "assertions":{
          "shape":"AssertionList",
          "documentation":"<p>The list of assertions.</p>"
        },
        "nextToken":{"shape":"NextToken"}
      }
    },
    "ListDependenciesRequest":{
      "type":"structure",
      "members":{
        "serviceArn":{
          "shape":"Arn",
          "location":"querystring",
          "locationName":"serviceArn"
        },
        "queryRangeStartTime":{
          "shape":"Timestamp",
          "documentation":"<p>The start time for the dependency query range.</p>",
          "location":"querystring",
          "locationName":"queryRangeStartTime"
        },
        "queryRangeEndTime":{
          "shape":"Timestamp",
          "documentation":"<p>The end time for the dependency query range.</p>",
          "location":"querystring",
          "locationName":"queryRangeEndTime"
        },
        "queryRangeGranularity":{
          "shape":"QueryGranularity",
          "documentation":"<p>The granularity for the dependency query range.</p>",
          "location":"querystring",
          "locationName":"queryRangeGranularity"
        },
        "maxResults":{
          "shape":"MaxResults",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListDependenciesResponse":{
      "type":"structure",
      "required":["dependencySummaries"],
      "members":{
        "dependencySummaries":{
          "shape":"DependencySummaryList",
          "documentation":"<p>The list of dependency summaries.</p>"
        },
        "nextToken":{"shape":"NextToken"}
      }
    },
    "ListFailureModeAssessmentsRequest":{
      "type":"structure",
      "required":["serviceArn"],
      "members":{
        "serviceArn":{
          "shape":"Arn",
          "location":"querystring",
          "locationName":"serviceArn"
        },
        "assessmentStatuses":{
          "shape":"AssessmentStatusList",
          "documentation":"<p>Specifies the assessment statuses to include in the results.</p>",
          "location":"querystring",
          "locationName":"assessmentStatuses"
        },
        "startedAfter":{
          "shape":"Timestamp",
          "documentation":"<p>Specifies that only assessments that started at or after this timestamp appear in the results.</p>",
          "location":"querystring",
          "locationName":"startedAfter"
        },
        "endedBefore":{
          "shape":"Timestamp",
          "documentation":"<p>Specifies that only assessments that ended at or before this timestamp appear in the results.</p>",
          "location":"querystring",
          "locationName":"endedBefore"
        },
        "sortBy":{
          "shape":"AssessmentSortField",
          "documentation":"<p>The field to use for sorting failure mode assessments.</p>",
          "location":"querystring",
          "locationName":"sortBy"
        },
        "sortOrder":{
          "shape":"SortOrder",
          "documentation":"<p>The sort order for results.</p>",
          "location":"querystring",
          "locationName":"sortOrder"
        },
        "maxResults":{
          "shape":"MaxResults",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListFailureModeAssessmentsResponse":{
      "type":"structure",
      "required":["assessmentSummaries"],
      "members":{
        "assessmentSummaries":{
          "shape":"AssessmentSummaryList",
          "documentation":"<p>The list of assessment summaries.</p>"
        },
        "nextToken":{"shape":"NextToken"}
      }
    },
    "ListFailureModeFindingsRequest":{
      "type":"structure",
      "required":["serviceArn"],
      "members":{
        "serviceArn":{
          "shape":"Arn",
          "location":"querystring",
          "locationName":"serviceArn"
        },
        "severity":{
          "shape":"FindingSeverity",
          "documentation":"<p>Filter findings by severity.</p>",
          "location":"querystring",
          "locationName":"severity"
        },
        "failureCategory":{
          "shape":"FailureCategory",
          "documentation":"<p>Filter findings by failure category.</p>",
          "location":"querystring",
          "locationName":"failureCategory"
        },
        "status":{
          "shape":"FindingStatus",
          "documentation":"<p>Filter findings by status.</p>",
          "location":"querystring",
          "locationName":"status"
        },
        "maxResults":{
          "shape":"MaxResults",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListFailureModeFindingsResponse":{
      "type":"structure",
      "required":["findingsSummary"],
      "members":{
        "findingsSummary":{
          "shape":"FindingsList",
          "documentation":"<p>The list of finding summaries.</p>"
        },
        "nextToken":{"shape":"NextToken"}
      }
    },
    "ListInputSourcesRequest":{
      "type":"structure",
      "required":["serviceArn"],
      "members":{
        "serviceArn":{
          "shape":"Arn",
          "location":"querystring",
          "locationName":"serviceArn"
        },
        "type":{
          "shape":"InputSourceType",
          "documentation":"<p>Filter input sources by type.</p>",
          "location":"querystring",
          "locationName":"type"
        },
        "maxResults":{
          "shape":"MaxResults",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListInputSourcesResponse":{
      "type":"structure",
      "required":["inputSourceSummaries"],
      "members":{
        "inputSourceSummaries":{
          "shape":"InputSourceSummaryList",
          "documentation":"<p>The list of input source summaries.</p>"
        },
        "nextToken":{"shape":"NextToken"}
      }
    },
    "ListPoliciesRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"MaxResults",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListPoliciesResponse":{
      "type":"structure",
      "required":["policySummaries"],
      "members":{
        "policySummaries":{
          "shape":"PolicySummaryList",
          "documentation":"<p>The list of policy summaries.</p>"
        },
        "nextToken":{"shape":"NextToken"}
      }
    },
    "ListReportsRequest":{
      "type":"structure",
      "members":{
        "serviceArn":{
          "shape":"Arn",
          "documentation":"<p>Optional. If not provided, lists all reports owned by the account.</p>",
          "location":"querystring",
          "locationName":"serviceArn"
        },
        "reportType":{
          "shape":"ReportType",
          "documentation":"<p>Filter reports by type.</p>",
          "location":"querystring",
          "locationName":"reportType"
        },
        "testRunId":{
          "shape":"TestRunId",
          "location":"querystring",
          "locationName":"testRunId"
        },
        "maxResults":{
          "shape":"MaxResults",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListReportsResponse":{
      "type":"structure",
      "required":["reportGenerationResults"],
      "members":{
        "reportGenerationResults":{
          "shape":"ReportGenerationResultList",
          "documentation":"<p>The list of report generation results.</p>"
        },
        "nextToken":{"shape":"NextToken"}
      }
    },
    "ListResolvedTestRunTargetResourcesRequest":{
      "type":"structure",
      "required":[
        "testRunId",
        "serviceArn"
      ],
      "members":{
        "testRunId":{
          "shape":"TestRunId",
          "documentation":"<p>The identifier of the test run to list resolved target resources for.</p>",
          "location":"uri",
          "locationName":"testRunId"
        },
        "serviceArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the service the test run belongs to.</p>",
          "location":"querystring",
          "locationName":"serviceArn"
        },
        "maxResults":{
          "shape":"MaxResults",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListResolvedTestRunTargetResourcesResponse":{
      "type":"structure",
      "required":["resolvedTargetResources"],
      "members":{
        "resolvedTargetResources":{
          "shape":"ResolvedTargetResourceList",
          "documentation":"<p>The list of resolved target resources.</p>"
        },
        "nextToken":{"shape":"NextToken"}
      }
    },
    "ListResourcesRequest":{
      "type":"structure",
      "required":["serviceArn"],
      "members":{
        "serviceArn":{
          "shape":"Arn",
          "location":"querystring",
          "locationName":"serviceArn"
        },
        "serviceFunctionId":{
          "shape":"EntityId",
          "documentation":"<p>Filter resources by service function identifier.</p>",
          "location":"querystring",
          "locationName":"serviceFunctionId"
        },
        "awsRegion":{
          "shape":"AwsRegion",
          "documentation":"<p>Filter resources by AWS Region.</p>",
          "location":"querystring",
          "locationName":"awsRegion"
        },
        "resourceTypes":{
          "shape":"ResourceTypeFilterList",
          "documentation":"<p>The CloudFormation resource types to include in the response.</p>",
          "location":"querystring",
          "locationName":"resourceTypes"
        },
        "billable":{
          "shape":"Boolean",
          "documentation":"<p>Specifies whether to filter non-billable resources. When true (the default), the operation returns only billable resources.</p>",
          "location":"querystring",
          "locationName":"billable"
        },
        "maxResults":{
          "shape":"MaxResults",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListResourcesResponse":{
      "type":"structure",
      "members":{
        "serviceFunctionId":{
          "shape":"EntityId",
          "documentation":"<p>The service function identifier for the returned resources.</p>"
        },
        "serviceResources":{
          "shape":"ServiceResourceList",
          "documentation":"<p>The list of service resources.</p>"
        },
        "nextToken":{"shape":"NextToken"}
      }
    },
    "ListServiceEventsRequest":{
      "type":"structure",
      "required":["serviceArn"],
      "members":{
        "serviceArn":{
          "shape":"Arn",
          "location":"querystring",
          "locationName":"serviceArn"
        },
        "eventTypes":{
          "shape":"ServiceEventTypeList",
          "documentation":"<p>Filter events by type.</p>",
          "location":"querystring",
          "locationName":"eventTypes"
        },
        "startTime":{
          "shape":"Timestamp",
          "documentation":"<p>The start time for filtering events.</p>",
          "location":"querystring",
          "locationName":"startTime"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>The end time for filtering events.</p>",
          "location":"querystring",
          "locationName":"endTime"
        },
        "maxResults":{
          "shape":"MaxResults",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListServiceEventsResponse":{
      "type":"structure",
      "required":["events"],
      "members":{
        "events":{
          "shape":"ServiceEventList",
          "documentation":"<p>The list of service events.</p>"
        },
        "nextToken":{"shape":"NextToken"}
      }
    },
    "ListServiceFunctionsRequest":{
      "type":"structure",
      "required":["serviceArn"],
      "members":{
        "serviceArn":{
          "shape":"Arn",
          "location":"querystring",
          "locationName":"serviceArn"
        },
        "maxResults":{
          "shape":"MaxResults",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListServiceFunctionsResponse":{
      "type":"structure",
      "required":["serviceFunctions"],
      "members":{
        "serviceFunctions":{
          "shape":"ServiceFunctionList",
          "documentation":"<p>The list of service functions.</p>"
        },
        "nextToken":{"shape":"NextToken"}
      }
    },
    "ListServiceTopologyEdgesRequest":{
      "type":"structure",
      "required":["serviceArn"],
      "members":{
        "serviceArn":{
          "shape":"Arn",
          "location":"querystring",
          "locationName":"serviceArn"
        },
        "maxResults":{
          "shape":"MaxResults",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListServiceTopologyEdgesResponse":{
      "type":"structure",
      "members":{
        "serviceTopologyEdgeSummaries":{
          "shape":"ServiceTopologyEdgeSummaryList",
          "documentation":"<p>The list of service topology edge summaries.</p>"
        },
        "nextToken":{"shape":"NextToken"}
      }
    },
    "ListServicesRequest":{
      "type":"structure",
      "members":{
        "systemArn":{
          "shape":"Arn",
          "location":"querystring",
          "locationName":"systemArn"
        },
        "userJourneyId":{
          "shape":"UserJourneyId",
          "documentation":"<p>Filter services by user journey identifier.</p>",
          "location":"querystring",
          "locationName":"userJourneyId"
        },
        "ouId":{
          "shape":"OuId",
          "documentation":"<p>Filter services by organizational unit (OU) identifier.</p>",
          "location":"querystring",
          "locationName":"ouId"
        },
        "accountId":{
          "shape":"AccountId",
          "documentation":"<p>Filter services by AWS account ID.</p>",
          "location":"querystring",
          "locationName":"accountId"
        },
        "assessmentStatus":{
          "shape":"AssessmentStatus",
          "documentation":"<p>Filter services by assessment status.</p>",
          "location":"querystring",
          "locationName":"assessmentStatus"
        },
        "policyArn":{
          "shape":"Arn",
          "location":"querystring",
          "locationName":"policyArn"
        },
        "maxResults":{
          "shape":"MaxResults",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListServicesResponse":{
      "type":"structure",
      "required":["serviceSummaries"],
      "members":{
        "serviceSummaries":{
          "shape":"ServiceSummaryList",
          "documentation":"<p>The list of service summaries.</p>"
        },
        "nextToken":{"shape":"NextToken"}
      }
    },
    "ListSystemEventsRequest":{
      "type":"structure",
      "required":["systemArn"],
      "members":{
        "systemArn":{
          "shape":"Arn",
          "location":"querystring",
          "locationName":"systemArn"
        },
        "eventTypes":{
          "shape":"SystemEventTypeList",
          "documentation":"<p>Filter events by type.</p>",
          "location":"querystring",
          "locationName":"eventTypes"
        },
        "startTime":{
          "shape":"Timestamp",
          "documentation":"<p>The start time for filtering events.</p>",
          "location":"querystring",
          "locationName":"startTime"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>The end time for filtering events.</p>",
          "location":"querystring",
          "locationName":"endTime"
        },
        "maxResults":{
          "shape":"MaxResults",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListSystemEventsResponse":{
      "type":"structure",
      "required":["events"],
      "members":{
        "events":{
          "shape":"SystemEventList",
          "documentation":"<p>The list of system events.</p>"
        },
        "nextToken":{"shape":"NextToken"}
      }
    },
    "ListSystemsRequest":{
      "type":"structure",
      "members":{
        "ouId":{
          "shape":"OuId",
          "documentation":"<p>Filter systems by organizational unit (OU) identifier.</p>",
          "location":"querystring",
          "locationName":"ouId"
        },
        "maxResults":{
          "shape":"MaxResults",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListSystemsResponse":{
      "type":"structure",
      "required":["systemSummaries"],
      "members":{
        "systemSummaries":{
          "shape":"SystemSummaryList",
          "documentation":"<p>The list of system summaries.</p>"
        },
        "nextToken":{"shape":"NextToken"}
      }
    },
    "ListTagsForResourceRequest":{
      "type":"structure",
      "required":["resourceArn"],
      "members":{
        "resourceArn":{
          "shape":"Arn",
          "location":"uri",
          "locationName":"resourceArn"
        }
      }
    },
    "ListTagsForResourceResponse":{
      "type":"structure",
      "members":{
        "tags":{"shape":"TagMap"}
      }
    },
    "ListTestRunEventsRequest":{
      "type":"structure",
      "required":[
        "testRunId",
        "serviceArn"
      ],
      "members":{
        "testRunId":{
          "shape":"TestRunId",
          "documentation":"<p>The identifier of the test run to list events for.</p>",
          "location":"uri",
          "locationName":"testRunId"
        },
        "serviceArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the service the test run belongs to.</p>",
          "location":"querystring",
          "locationName":"serviceArn"
        },
        "startedAt":{
          "shape":"Timestamp",
          "documentation":"<p>Return events at or after this timestamp.</p>",
          "location":"querystring",
          "locationName":"startedAt"
        },
        "endedAt":{
          "shape":"Timestamp",
          "documentation":"<p>Return events at or before this timestamp.</p>",
          "location":"querystring",
          "locationName":"endedAt"
        },
        "maxResults":{
          "shape":"MaxResults",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListTestRunEventsResponse":{
      "type":"structure",
      "required":["events"],
      "members":{
        "events":{
          "shape":"TestRunEventList",
          "documentation":"<p>The list of test run events.</p>"
        },
        "nextToken":{"shape":"NextToken"}
      }
    },
    "ListTestRunSourcesRequest":{
      "type":"structure",
      "required":[
        "testRunId",
        "serviceArn"
      ],
      "members":{
        "testRunId":{
          "shape":"TestRunId",
          "documentation":"<p>The identifier of the test run to list sources for.</p>",
          "location":"uri",
          "locationName":"testRunId"
        },
        "serviceArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the service the test run belongs to.</p>",
          "location":"querystring",
          "locationName":"serviceArn"
        },
        "type":{
          "shape":"TestRunSourceType",
          "documentation":"<p>Filter sources by type.</p>",
          "location":"querystring",
          "locationName":"type"
        },
        "maxResults":{
          "shape":"MaxResults",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListTestRunSourcesResponse":{
      "type":"structure",
      "required":["testRunSources"],
      "members":{
        "testRunSources":{
          "shape":"TestRunSourceSummaryList",
          "documentation":"<p>The list of monitoring source snapshots.</p>"
        },
        "nextToken":{"shape":"NextToken"}
      }
    },
    "ListTestRunsRequest":{
      "type":"structure",
      "required":["serviceArn"],
      "members":{
        "serviceArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the service to list test runs for.</p>",
          "location":"querystring",
          "locationName":"serviceArn"
        },
        "testId":{
          "shape":"TestId",
          "documentation":"<p>Filter test runs by test identifier.</p>",
          "location":"querystring",
          "locationName":"testId"
        },
        "maxResults":{
          "shape":"MaxResults",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListTestRunsResponse":{
      "type":"structure",
      "required":["testRuns"],
      "members":{
        "testRuns":{
          "shape":"TestRunSummaryList",
          "documentation":"<p>The list of test run summaries.</p>"
        },
        "nextToken":{"shape":"NextToken"}
      }
    },
    "ListTestSourcesRequest":{
      "type":"structure",
      "required":[
        "testId",
        "serviceArn"
      ],
      "members":{
        "testId":{
          "shape":"TestId",
          "documentation":"<p>The identifier of the test to list sources for.</p>",
          "location":"uri",
          "locationName":"testId"
        },
        "serviceArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the service the test belongs to.</p>",
          "location":"querystring",
          "locationName":"serviceArn"
        },
        "type":{
          "shape":"TestSourceType",
          "documentation":"<p>Filter sources by type.</p>",
          "location":"querystring",
          "locationName":"type"
        },
        "maxResults":{
          "shape":"MaxResults",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListTestSourcesResponse":{
      "type":"structure",
      "required":["testSources"],
      "members":{
        "testSources":{
          "shape":"TestSourceSummaryList",
          "documentation":"<p>The list of configured monitoring sources.</p>"
        },
        "nextToken":{"shape":"NextToken"}
      }
    },
    "ListTestTemplatesRequest":{
      "type":"structure",
      "members":{}
    },
    "ListTestTemplatesResponse":{
      "type":"structure",
      "required":["testTemplates"],
      "members":{
        "testTemplates":{
          "shape":"TestTemplateSummaryList",
          "documentation":"<p>The list of test template summaries.</p>"
        }
      }
    },
    "ListTestsRequest":{
      "type":"structure",
      "required":["serviceArn"],
      "members":{
        "serviceArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the service to list tests for.</p>",
          "location":"querystring",
          "locationName":"serviceArn"
        },
        "maxResults":{
          "shape":"MaxResults",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListTestsResponse":{
      "type":"structure",
      "required":["tests"],
      "members":{
        "tests":{
          "shape":"TestSummaryList",
          "documentation":"<p>The list of test summaries.</p>"
        },
        "nextToken":{"shape":"NextToken"}
      }
    },
    "ListUserJourneysRequest":{
      "type":"structure",
      "required":["systemArn"],
      "members":{
        "systemArn":{
          "shape":"Arn",
          "location":"querystring",
          "locationName":"systemArn"
        },
        "maxResults":{
          "shape":"MaxResults",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListUserJourneysResponse":{
      "type":"structure",
      "required":["userJourneySummaries"],
      "members":{
        "userJourneySummaries":{
          "shape":"UserJourneySummaryList",
          "documentation":"<p>The list of user journey summaries.</p>"
        },
        "nextToken":{"shape":"NextToken"}
      }
    },
    "LoggingConfiguration":{
      "type":"structure",
      "members":{
        "s3BucketName":{
          "shape":"String",
          "documentation":"<p>The name of the S3 bucket for log delivery.</p>"
        },
        "cloudWatchLogGroupArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the CloudWatch Logs log group for log delivery.</p>"
        },
        "logSchemaVersion":{
          "shape":"String",
          "documentation":"<p>The version of the log schema.</p>"
        }
      },
      "documentation":"<p>Configuration for test execution logging destinations.</p>"
    },
    "Long":{
      "type":"long",
      "box":true
    },
    "LongDescription":{
      "type":"string",
      "documentation":"<p>Resource description for services and policies.</p>",
      "max":615,
      "min":0
    },
    "MaxResults":{
      "type":"integer",
      "documentation":"<p>Pagination page size.</p>",
      "box":true,
      "max":100,
      "min":1
    },
    "MultiAzDisasterRecoveryApproach":{
      "type":"string",
      "enum":[
        "ACTIVE_ACTIVE",
        "HOT_STANDBY",
        "WARM_STANDBY",
        "PILOT_LIGHT",
        "BACKUP_AND_RESTORE"
      ]
    },
    "MultiAzTargets":{
      "type":"structure",
      "members":{
        "rtoInMinutes":{
          "shape":"MultiAzTargetsRtoInMinutesInteger",
          "documentation":"<p>The recovery time objective (RTO) target for multi-AZ, in minutes.</p>"
        },
        "rpoInMinutes":{
          "shape":"MultiAzTargetsRpoInMinutesInteger",
          "documentation":"<p>The recovery point objective (RPO) target for multi-AZ, in minutes.</p>"
        },
        "disasterRecoveryApproach":{
          "shape":"MultiAzDisasterRecoveryApproach",
          "documentation":"<p>The disaster recovery approach for multi-AZ.</p>"
        }
      },
      "documentation":"<p>Defines the multi-AZ disaster recovery targets for a resilience policy.</p>"
    },
    "MultiAzTargetsRpoInMinutesInteger":{
      "type":"integer",
      "box":true,
      "min":0
    },
    "MultiAzTargetsRtoInMinutesInteger":{
      "type":"integer",
      "box":true,
      "min":0
    },
    "MultiRegionDisasterRecoveryApproach":{
      "type":"string",
      "enum":[
        "ACTIVE_ACTIVE",
        "HOT_STANDBY",
        "WARM_STANDBY",
        "PILOT_LIGHT",
        "BACKUP_AND_RESTORE"
      ]
    },
    "MultiRegionTargets":{
      "type":"structure",
      "members":{
        "rtoInMinutes":{
          "shape":"MultiRegionTargetsRtoInMinutesInteger",
          "documentation":"<p>The recovery time objective (RTO) target for multi-Region, in minutes.</p>"
        },
        "rpoInMinutes":{
          "shape":"MultiRegionTargetsRpoInMinutesInteger",
          "documentation":"<p>The recovery point objective (RPO) target for multi-Region, in minutes.</p>"
        },
        "disasterRecoveryApproach":{
          "shape":"MultiRegionDisasterRecoveryApproach",
          "documentation":"<p>The disaster recovery approach for multi-Region.</p>"
        }
      },
      "documentation":"<p>Defines the multi-Region disaster recovery targets for a resilience policy.</p>"
    },
    "MultiRegionTargetsRpoInMinutesInteger":{
      "type":"integer",
      "box":true,
      "min":0
    },
    "MultiRegionTargetsRtoInMinutesInteger":{
      "type":"integer",
      "box":true,
      "min":0
    },
    "NextToken":{
      "type":"string",
      "documentation":"<p>Pagination token.</p>",
      "max":2000,
      "min":1,
      "pattern":"\\S{1,2000}"
    },
    "ObservabilityAlarmInput":{
      "type":"structure",
      "required":["alarmArn"],
      "members":{
        "alarmArn":{
          "shape":"CloudWatchAlarmArn",
          "documentation":"<p>The ARN of the CloudWatch alarm.</p>"
        }
      },
      "documentation":"<p>Identifies an observability alarm by its ARN.</p>"
    },
    "ObservabilityAlarmSummary":{
      "type":"structure",
      "required":[
        "alarmArn",
        "alarmName",
        "region",
        "accountId"
      ],
      "members":{
        "alarmArn":{
          "shape":"CloudWatchAlarmArn",
          "documentation":"<p>The ARN of the CloudWatch alarm.</p>"
        },
        "alarmName":{
          "shape":"String",
          "documentation":"<p>The name of the CloudWatch alarm.</p>"
        },
        "region":{
          "shape":"String",
          "documentation":"<p>The Region of the CloudWatch alarm.</p>"
        },
        "accountId":{
          "shape":"String",
          "documentation":"<p>The account ID that owns the CloudWatch alarm.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the source was configured.</p>"
        }
      },
      "documentation":"<p>Summary information about a configured observability alarm.</p>"
    },
    "ObservabilityRecommendation":{
      "type":"structure",
      "members":{
        "suggestedChanges":{
          "shape":"SuggestedChangesList",
          "documentation":"<p>The list of suggested observability changes.</p>"
        }
      },
      "documentation":"<p>An observability recommendation to address a finding.</p>"
    },
    "ObservabilityRecommendationsList":{
      "type":"list",
      "member":{"shape":"ObservabilityRecommendation"},
      "max":5,
      "min":0
    },
    "OrganizationId":{
      "type":"string",
      "max":34,
      "min":12,
      "pattern":"o-[a-z0-9]{10,32}"
    },
    "OuId":{
      "type":"string",
      "max":68,
      "min":16,
      "pattern":"ou-[a-z0-9]{4,32}-[a-z0-9]{8,32}"
    },
    "ParameterKey":{
      "type":"string",
      "documentation":"<p>The key of a test parameter.</p>",
      "max":256,
      "min":1,
      "pattern":"[\\w.-]+"
    },
    "ParameterType":{
      "type":"string",
      "documentation":"<p>The data type of a test template parameter.</p>",
      "enum":[
        "STRING",
        "STRING_LIST",
        "INTEGER"
      ]
    },
    "ParameterValue":{
      "type":"string",
      "documentation":"<p>A value of a test parameter.</p>",
      "max":1024,
      "min":0
    },
    "PermissionModel":{
      "type":"structure",
      "required":["invokerRoleName"],
      "members":{
        "invokerRoleName":{"shape":"IamRoleName"},
        "crossAccountRoles":{
          "shape":"CrossAccountRoleList",
          "documentation":"<p>The list of cross-account IAM role ARNs.</p>"
        }
      },
      "documentation":"<p>Defines the permission model for a service.</p>"
    },
    "Policy":{
      "type":"structure",
      "required":[
        "policyArn",
        "name"
      ],
      "members":{
        "policyArn":{"shape":"Arn"},
        "name":{"shape":"EntityName"},
        "description":{"shape":"LongDescription"},
        "availabilitySlo":{
          "shape":"AvailabilitySlo",
          "documentation":"<p>The availability SLO defined in the policy.</p>"
        },
        "multiAz":{
          "shape":"MultiAzTargets",
          "documentation":"<p>The multi-AZ disaster recovery targets defined in the policy.</p>"
        },
        "multiRegion":{
          "shape":"MultiRegionTargets",
          "documentation":"<p>The multi-Region disaster recovery targets defined in the policy.</p>"
        },
        "dataRecovery":{
          "shape":"DataRecoveryTargets",
          "documentation":"<p>The data recovery targets defined in the policy.</p>"
        },
        "kmsKeyId":{"shape":"KmsKeyId"},
        "tags":{"shape":"TagMap"},
        "associatedServiceCount":{
          "shape":"Integer",
          "documentation":"<p>The number of services associated with this policy.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the policy was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the policy was last updated.</p>"
        }
      },
      "documentation":"<p>Represents a resilience policy that defines availability and disaster recovery requirements.</p>"
    },
    "PolicyComponent":{
      "type":"string",
      "enum":[
        "AVAILABILITY_SLO",
        "MULTI_AZ_DISASTER_RECOVERY",
        "MULTI_REGION_DISASTER_RECOVERY",
        "DATA_RECOVERY"
      ]
    },
    "PolicySummary":{
      "type":"structure",
      "required":[
        "policyArn",
        "name"
      ],
      "members":{
        "policyArn":{"shape":"Arn"},
        "name":{"shape":"EntityName"},
        "availabilitySlo":{
          "shape":"AvailabilitySlo",
          "documentation":"<p>The availability SLO defined in the policy.</p>"
        },
        "multiAz":{
          "shape":"MultiAzTargets",
          "documentation":"<p>The multi-AZ disaster recovery targets defined in the policy.</p>"
        },
        "multiRegion":{
          "shape":"MultiRegionTargets",
          "documentation":"<p>The multi-Region disaster recovery targets defined in the policy.</p>"
        },
        "dataRecovery":{
          "shape":"DataRecoveryTargets",
          "documentation":"<p>The data recovery targets defined in the policy.</p>"
        },
        "associatedServiceCount":{
          "shape":"Integer",
          "documentation":"<p>The number of services associated with this policy.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the policy was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the policy was last updated.</p>"
        }
      },
      "documentation":"<p>Contains summary information about a resilience policy.</p>"
    },
    "PolicySummaryList":{
      "type":"list",
      "member":{"shape":"PolicySummary"}
    },
    "PolicyValueSource":{
      "type":"string",
      "enum":[
        "SELF",
        "CROSS_ACCOUNT"
      ]
    },
    "PutTestSourcesRequest":{
      "type":"structure",
      "required":[
        "testId",
        "serviceArn",
        "testSources"
      ],
      "members":{
        "testId":{
          "shape":"TestId",
          "documentation":"<p>The identifier of the test to add sources to.</p>"
        },
        "serviceArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the service the test belongs to.</p>"
        },
        "testSources":{
          "shape":"TestSourceInputList",
          "documentation":"<p>The monitoring sources to add or update.</p>"
        }
      }
    },
    "PutTestSourcesResponse":{
      "type":"structure",
      "members":{}
    },
    "QueryDataPoint":{
      "type":"structure",
      "required":[
        "timestamp",
        "queryCount"
      ],
      "members":{
        "timestamp":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of the data point.</p>"
        },
        "queryCount":{
          "shape":"Long",
          "documentation":"<p>The number of queries at this data point.</p>"
        }
      },
      "documentation":"<p>A data point in a dependency query range.</p>"
    },
    "QueryDataPointList":{
      "type":"list",
      "member":{"shape":"QueryDataPoint"},
      "max":24,
      "min":7
    },
    "QueryGranularity":{
      "type":"string",
      "enum":[
        "HOURLY",
        "DAILY"
      ]
    },
    "QueryRange":{
      "type":"structure",
      "required":[
        "startTime",
        "endTime",
        "granularity",
        "dataPoints"
      ],
      "members":{
        "startTime":{
          "shape":"Timestamp",
          "documentation":"<p>The start time of the query range.</p>"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>The end time of the query range.</p>"
        },
        "granularity":{
          "shape":"QueryGranularity",
          "documentation":"<p>The granularity of the query range data points.</p>"
        },
        "dataPoints":{
          "shape":"QueryDataPointList",
          "documentation":"<p>The data points within the query range.</p>"
        }
      },
      "documentation":"<p>Defines a time range for dependency query data.</p>"
    },
    "RegionList":{
      "type":"list",
      "member":{"shape":"AwsRegion"},
      "max":5,
      "min":1
    },
    "RegionSwitchExecutionId":{
      "type":"string",
      "documentation":"<p>The identifier of an ARC Region switch plan execution detected during a test run.</p>",
      "max":64,
      "min":1,
      "pattern":"[a-z]{2}(-[a-z]+)+-[0-9]+/[0-9a-fA-F]{16}"
    },
    "ReportGenerationErrorCode":{
      "type":"string",
      "documentation":"<p>Error codes for failed report generation.</p>",
      "enum":[
        "INSUFFICIENT_PERMISSIONS",
        "CONFIGURATION_ERROR",
        "INTERNAL_ERROR"
      ]
    },
    "ReportGenerationResult":{
      "type":"structure",
      "required":[
        "reportType",
        "status"
      ],
      "members":{
        "reportType":{
          "shape":"ReportType",
          "documentation":"<p>The type of the generated report.</p>"
        },
        "status":{
          "shape":"ReportGenerationStatus",
          "documentation":"<p>The status of the report generation.</p>"
        },
        "serviceArn":{
          "shape":"Arn",
          "documentation":"<p>The service this report was generated for.</p>"
        },
        "assessmentId":{
          "shape":"Uuid",
          "documentation":"<p>Present for FAILURE_MODE reports.</p>"
        },
        "testRunId":{"shape":"TestRunId"},
        "testTemplateArn":{"shape":"ServiceOwnedArn"},
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the report was created.</p>"
        },
        "reportOutput":{
          "shape":"ReportOutput",
          "documentation":"<p>Present when status is SUCCEEDED or FAILED.</p>"
        }
      },
      "documentation":"<p>Result of a report generation attempt.</p>"
    },
    "ReportGenerationResultList":{
      "type":"list",
      "member":{"shape":"ReportGenerationResult"}
    },
    "ReportGenerationStatus":{
      "type":"string",
      "documentation":"<p>Status of report generation.</p>",
      "enum":[
        "PENDING",
        "SUCCEEDED",
        "FAILED"
      ]
    },
    "ReportOutput":{
      "type":"structure",
      "members":{
        "s3ReportOutput":{
          "shape":"S3ReportOutput",
          "documentation":"<p>The S3 location where the report was written.</p>"
        },
        "failedReportOutput":{
          "shape":"FailedReportOutput",
          "documentation":"<p>Details when report generation failed.</p>"
        }
      },
      "documentation":"<p>Union of possible report outputs.</p>",
      "union":true
    },
    "ReportOutputConfiguration":{
      "type":"structure",
      "members":{
        "s3":{"shape":"S3ReportOutputConfiguration"}
      },
      "documentation":"<p>Configuration for a report output destination.</p>",
      "union":true
    },
    "ReportOutputConfigurationList":{
      "type":"list",
      "member":{"shape":"ReportOutputConfiguration"},
      "documentation":"<p>List of report output configurations.</p>",
      "max":1,
      "min":1
    },
    "ReportType":{
      "type":"string",
      "enum":[
        "FAILURE_MODE",
        "TESTING"
      ]
    },
    "ResolvedTargetInformation":{
      "type":"map",
      "key":{"shape":"ResolvedTargetInformationKey"},
      "value":{"shape":"ResolvedTargetInformationValue"},
      "max":50,
      "min":0
    },
    "ResolvedTargetInformationKey":{
      "type":"string",
      "documentation":"<p>The key of a resolved target information entry.</p>",
      "max":128,
      "min":1
    },
    "ResolvedTargetInformationValue":{
      "type":"string",
      "documentation":"<p>The value of a resolved target information entry.</p>",
      "max":2048,
      "min":0
    },
    "ResolvedTargetResource":{
      "type":"structure",
      "required":[
        "resourceType",
        "targetName",
        "targetInformation"
      ],
      "members":{
        "resourceType":{
          "shape":"ResolvedTargetResourceResourceTypeString",
          "documentation":"<p>The AWS FIS resource type the target belongs to, such as aws:ec2:instance, aws:ecs:task, or aws:eks:pod.</p>"
        },
        "targetName":{
          "shape":"ResolvedTargetResourceTargetNameString",
          "documentation":"<p>The name of the target in the AWS FIS experiment template.</p>"
        },
        "targetInformation":{
          "shape":"ResolvedTargetInformation",
          "documentation":"<p>The raw target information map as returned by AWS FIS.</p>"
        }
      },
      "documentation":"<p>A single AWS resource that AWS Fault Injection Service (AWS FIS) resolved as a target during a test run.</p>"
    },
    "ResolvedTargetResourceList":{
      "type":"list",
      "member":{"shape":"ResolvedTargetResource"},
      "max":100,
      "min":0
    },
    "ResolvedTargetResourceResourceTypeString":{
      "type":"string",
      "max":256,
      "min":1
    },
    "ResolvedTargetResourceTargetNameString":{
      "type":"string",
      "max":256,
      "min":1
    },
    "Resource":{
      "type":"structure",
      "required":["identifier"],
      "members":{
        "identifier":{
          "shape":"String",
          "documentation":"<p>The identifier of the resource.</p>"
        },
        "awsRegion":{
          "shape":"AwsRegion",
          "documentation":"<p>The AWS Region where the resource is located.</p>"
        },
        "awsAccountId":{
          "shape":"AwsAccountId",
          "documentation":"<p>The AWS account ID that owns the resource.</p>"
        },
        "resourceType":{
          "shape":"String",
          "documentation":"<p>The type of the resource.</p>"
        }
      },
      "documentation":"<p>Represents an AWS resource discovered by Resilience Hub.</p>"
    },
    "ResourceConfiguration":{
      "type":"structure",
      "members":{
        "resourceTags":{
          "shape":"ResourceTagList",
          "documentation":"<p>The resource tags for tag-based resource discovery.</p>"
        },
        "cfnStackArn":{"shape":"Arn"},
        "tfStateFileUrl":{"shape":"S3Url"},
        "eks":{
          "shape":"EksSource",
          "documentation":"<p>The Amazon EKS configuration for resource discovery.</p>"
        },
        "designFileS3Url":{"shape":"S3Url"}
      },
      "documentation":"<p>Resource configuration for an input source. Provide exactly one field.</p>",
      "union":true
    },
    "ResourceDiscoveryErrorCode":{
      "type":"string",
      "enum":[
        "INVALID_PERMISSIONS",
        "STACK_NOT_FOUND",
        "CLUSTER_NOT_FOUND",
        "STATE_FILE_NOT_FOUND",
        "ACCESS_DENIED",
        "UNSUPPORTED_CLUSTER",
        "INTERNAL_ERROR"
      ]
    },
    "ResourceDiscoveryRunStatus":{
      "type":"string",
      "enum":[
        "RUNNING",
        "SUCCEEDED",
        "FAILED",
        "COMPLETED_WITH_FAILURES",
        "NOT_STARTED"
      ]
    },
    "ResourceDiscoveryStatus":{
      "type":"structure",
      "members":{
        "status":{
          "shape":"ResourceDiscoveryRunStatus",
          "documentation":"<p>The current status of resource discovery.</p>"
        },
        "lastRunAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of the last resource discovery run.</p>"
        },
        "errorCode":{
          "shape":"ResourceDiscoveryErrorCode",
          "documentation":"<p>The error code if resource discovery failed.</p>"
        },
        "errorMessage":{
          "shape":"String",
          "documentation":"<p>A message describing the error if resource discovery failed.</p>"
        }
      },
      "documentation":"<p>Contains the status of resource discovery for a service.</p>"
    },
    "ResourceList":{
      "type":"list",
      "member":{"shape":"String"},
      "max":100,
      "min":1
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"},
        "resourceId":{
          "shape":"String",
          "documentation":"<p>The identifier of the resource that was not found.</p>"
        },
        "resourceType":{
          "shape":"String",
          "documentation":"<p>The type of the resource that was not found.</p>"
        }
      },
      "documentation":"<p>Resource not found.</p>",
      "error":{
        "httpStatusCode":404,
        "senderFault":true
      },
      "exception":true
    },
    "ResourceTag":{
      "type":"structure",
      "required":[
        "key",
        "values"
      ],
      "members":{
        "key":{"shape":"TagKey"},
        "values":{
          "shape":"ResourceTagValuesList",
          "documentation":"<p>The list of tag values.</p>"
        }
      },
      "documentation":"<p>A tag key-value pair used for resource discovery.</p>"
    },
    "ResourceTagList":{
      "type":"list",
      "member":{"shape":"ResourceTag"},
      "max":10,
      "min":1
    },
    "ResourceTagValuesList":{
      "type":"list",
      "member":{"shape":"TagValue"},
      "max":10,
      "min":0
    },
    "ResourceTypeFilter":{
      "type":"string",
      "max":256,
      "min":1
    },
    "ResourceTypeFilterList":{
      "type":"list",
      "member":{"shape":"ResourceTypeFilter"},
      "max":5,
      "min":1
    },
    "ResourceTypeList":{
      "type":"list",
      "member":{"shape":"String"}
    },
    "S3BucketPath":{
      "type":"string",
      "documentation":"<p>S3 bucket path (with or without s3:// prefix).</p>",
      "max":512,
      "min":3,
      "pattern":"(s3://)?[a-z0-9][a-z0-9.-]{1,61}[a-z0-9](/.*)?"
    },
    "S3ReportOutput":{
      "type":"structure",
      "required":["s3ObjectKey"],
      "members":{
        "s3ObjectKey":{
          "shape":"String",
          "documentation":"<p>The S3 object key for the generated report.</p>"
        }
      },
      "documentation":"<p>S3 location where report was written.</p>"
    },
    "S3ReportOutputConfiguration":{
      "type":"structure",
      "required":[
        "bucketPath",
        "bucketOwner"
      ],
      "members":{
        "bucketPath":{
          "shape":"S3BucketPath",
          "documentation":"<p>S3 bucket path where reports will be written (e.g., my-bucket/ngrh-reports/).</p>"
        },
        "bucketOwner":{
          "shape":"AwsAccountId",
          "documentation":"<p>Account ID of the bucket owner for cross-account access verification.</p>"
        }
      },
      "documentation":"<p>S3 configuration for report output.</p>"
    },
    "S3Url":{
      "type":"string",
      "documentation":"<p>S3 URL — virtual hosted-style or s3:// URI.</p>",
      "max":2000,
      "min":1,
      "pattern":"((https://([^/]+)\\.s3[^/]*\\.[^/]+)|(s3://([^/]+)))/\\S{1,2000}"
    },
    "Service":{
      "type":"structure",
      "required":[
        "serviceArn",
        "name"
      ],
      "members":{
        "serviceArn":{"shape":"Arn"},
        "name":{"shape":"EntityName"},
        "description":{"shape":"LongDescription"},
        "associatedSystems":{
          "shape":"AssociatedSystemList",
          "documentation":"<p>The systems associated with the service.</p>"
        },
        "policyArn":{"shape":"Arn"},
        "regions":{
          "shape":"RegionList",
          "documentation":"<p>The Regions where the service operates.</p>"
        },
        "permissionModel":{
          "shape":"PermissionModel",
          "documentation":"<p>The permission model for the service.</p>"
        },
        "dependencyDiscovery":{
          "shape":"DependencyDiscoveryConfig",
          "documentation":"<p>The dependency discovery configuration for the service.</p>"
        },
        "effectivePolicyValues":{
          "shape":"EffectivePolicyValues",
          "documentation":"<p>The effective policy values for the service.</p>"
        },
        "achievability":{
          "shape":"Achievability",
          "documentation":"<p>The achievability status of the service's resilience targets.</p>"
        },
        "reportConfiguration":{"shape":"ServiceReportConfiguration"},
        "kmsKeyId":{"shape":"KmsKeyId"},
        "tags":{"shape":"TagMap"},
        "estimatedAssessmentCost":{
          "shape":"AssessmentCost",
          "documentation":"<p>The estimated cost of running an assessment on the service.</p>"
        },
        "resourceDiscovery":{
          "shape":"ResourceDiscoveryStatus",
          "documentation":"<p>The resource discovery status for the service.</p>"
        },
        "assessmentStatus":{
          "shape":"AssessmentStatus",
          "documentation":"<p>The current assessment status of the service.</p>"
        },
        "rerunAssessment":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether the assessment should be rerun.</p>"
        },
        "openFindingsCount":{
          "shape":"Integer",
          "documentation":"<p>The number of open findings for the service.</p>"
        },
        "resolvedFindingsCount":{
          "shape":"Integer",
          "documentation":"<p>The number of resolved findings for the service.</p>"
        },
        "organizationId":{
          "shape":"OrganizationId",
          "documentation":"<p>The AWS Organizations identifier for the service.</p>"
        },
        "ouId":{
          "shape":"OuId",
          "documentation":"<p>The organizational unit (OU) identifier for the service.</p>"
        },
        "accountId":{
          "shape":"AccountId",
          "documentation":"<p>The AWS account ID that owns the service.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the service was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the service was last updated.</p>"
        }
      },
      "documentation":"<p>Represents a service in Resilience Hub. A service is the primary unit of resilience assessment.</p>"
    },
    "ServiceAchievabilityUpdatedMetadata":{
      "type":"structure",
      "members":{
        "assessmentId":{
          "shape":"String",
          "documentation":"<p>The assessment identifier that triggered the update.</p>"
        },
        "availabilitySlo":{
          "shape":"String",
          "documentation":"<p>The updated achievability status of the availability SLO.</p>"
        },
        "multiAzRtoRpo":{
          "shape":"String",
          "documentation":"<p>The updated achievability status of the multi-AZ RTO and RPO targets.</p>"
        },
        "multiRegionRtoRpo":{
          "shape":"String",
          "documentation":"<p>The updated achievability status of the multi-Region RTO and RPO targets.</p>"
        }
      },
      "documentation":"<p>Metadata for a service achievability updated event.</p>"
    },
    "ServiceCreatedMetadata":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Metadata for a service created event.</p>"
    },
    "ServiceDeletedMetadata":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Metadata for a service deleted event.</p>"
    },
    "ServiceEvent":{
      "type":"structure",
      "required":[
        "eventId",
        "timestamp",
        "eventType",
        "serviceArn",
        "actor",
        "eventDetails"
      ],
      "members":{
        "eventId":{
          "shape":"Uuid",
          "documentation":"<p>The unique identifier of the event.</p>"
        },
        "timestamp":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of the event.</p>"
        },
        "eventType":{
          "shape":"ServiceEventType",
          "documentation":"<p>The type of the event.</p>"
        },
        "serviceArn":{"shape":"Arn"},
        "actor":{
          "shape":"EventActor",
          "documentation":"<p>The actor that triggered the event.</p>"
        },
        "eventDetails":{
          "shape":"ServiceEventDetails",
          "documentation":"<p>The details of the event.</p>"
        }
      },
      "documentation":"<p>Represents an event in the service event log.</p>"
    },
    "ServiceEventDetails":{
      "type":"structure",
      "required":[
        "title",
        "description"
      ],
      "members":{
        "title":{
          "shape":"String",
          "documentation":"<p>The title of the event.</p>"
        },
        "description":{
          "shape":"String",
          "documentation":"<p>The description of the event.</p>"
        },
        "eventMetadata":{"shape":"ServiceEventMetadata"}
      },
      "documentation":"<p>Contains the details of a service event.</p>"
    },
    "ServiceEventList":{
      "type":"list",
      "member":{"shape":"ServiceEvent"}
    },
    "ServiceEventMetadata":{
      "type":"structure",
      "members":{
        "serviceCreated":{
          "shape":"ServiceCreatedMetadata",
          "documentation":"<p>Metadata for a service created event.</p>"
        },
        "serviceDeleted":{
          "shape":"ServiceDeletedMetadata",
          "documentation":"<p>Metadata for a service deleted event.</p>"
        },
        "serviceSystemAssociated":{
          "shape":"ServiceSystemAssociatedMetadata",
          "documentation":"<p>Metadata for a service system associated event.</p>"
        },
        "serviceSystemDisassociated":{
          "shape":"ServiceSystemDisassociatedMetadata",
          "documentation":"<p>Metadata for a service system disassociated event.</p>"
        },
        "serviceResourcesAssociated":{
          "shape":"ServiceResourcesAssociatedMetadata",
          "documentation":"<p>Metadata for a service resources associated event.</p>"
        },
        "serviceResourcesDisassociated":{
          "shape":"ServiceResourcesDisassociatedMetadata",
          "documentation":"<p>Metadata for a service resources disassociated event.</p>"
        },
        "serviceWorkflowUpdated":{
          "shape":"ServiceWorkflowUpdatedMetadata",
          "documentation":"<p>Metadata for a service workflow updated event.</p>"
        },
        "serviceInputSourcesUpdated":{
          "shape":"ServiceInputSourcesUpdatedMetadata",
          "documentation":"<p>Metadata for a service input sources updated event.</p>"
        },
        "servicePolicyAssociated":{
          "shape":"ServicePolicyAssociatedMetadata",
          "documentation":"<p>Metadata for a service policy associated event.</p>"
        },
        "servicePolicyDisassociated":{
          "shape":"ServicePolicyDisassociatedMetadata",
          "documentation":"<p>Metadata for a service policy disassociated event.</p>"
        },
        "serviceFunctionCreated":{
          "shape":"ServiceFunctionCreatedMetadata",
          "documentation":"<p>Metadata for a service function created event.</p>"
        },
        "serviceFunctionUpdated":{
          "shape":"ServiceFunctionUpdatedMetadata",
          "documentation":"<p>Metadata for a service function updated event.</p>"
        },
        "serviceFunctionDeleted":{
          "shape":"ServiceFunctionDeletedMetadata",
          "documentation":"<p>Metadata for a service function deleted event.</p>"
        },
        "serviceFunctionResourcesAdded":{
          "shape":"ServiceFunctionResourcesAddedMetadata",
          "documentation":"<p>Metadata for a service function resources added event.</p>"
        },
        "serviceFunctionResourcesRemoved":{
          "shape":"ServiceFunctionResourcesRemovedMetadata",
          "documentation":"<p>Metadata for a service function resources removed event.</p>"
        },
        "serviceAchievabilityUpdated":{
          "shape":"ServiceAchievabilityUpdatedMetadata",
          "documentation":"<p>Metadata for a service achievability updated event.</p>"
        },
        "assertionCreated":{
          "shape":"AssertionCreatedMetadata",
          "documentation":"<p>Metadata for an assertion created event.</p>"
        },
        "assertionUpdated":{
          "shape":"AssertionUpdatedMetadata",
          "documentation":"<p>Metadata for an assertion updated event.</p>"
        },
        "assertionDeleted":{
          "shape":"AssertionDeletedMetadata",
          "documentation":"<p>Metadata for an assertion deleted event.</p>"
        }
      },
      "documentation":"<p>Type-specific metadata for each service event type.</p>",
      "union":true
    },
    "ServiceEventType":{
      "type":"string",
      "enum":[
        "SERVICE_CREATED",
        "SERVICE_DELETED",
        "SERVICE_SYSTEM_ASSOCIATED",
        "SERVICE_SYSTEM_DISASSOCIATED",
        "SERVICE_RESOURCES_ASSOCIATED",
        "SERVICE_RESOURCES_DISASSOCIATED",
        "SERVICE_WORKFLOW_UPDATED",
        "SERVICE_INPUT_SOURCES_UPDATED",
        "SERVICE_POLICY_ASSOCIATED",
        "SERVICE_POLICY_DISASSOCIATED",
        "SERVICE_FUNCTION_CREATED",
        "SERVICE_FUNCTION_UPDATED",
        "SERVICE_FUNCTION_DELETED",
        "SERVICE_FUNCTION_RESOURCES_ADDED",
        "SERVICE_FUNCTION_RESOURCES_REMOVED",
        "SERVICE_ACHIEVABILITY_UPDATED",
        "ASSERTION_CREATED",
        "ASSERTION_UPDATED",
        "ASSERTION_DELETED"
      ]
    },
    "ServiceEventTypeList":{
      "type":"list",
      "member":{"shape":"ServiceEventType"}
    },
    "ServiceFunction":{
      "type":"structure",
      "required":[
        "serviceArn",
        "serviceFunctionId",
        "name",
        "criticality"
      ],
      "members":{
        "serviceArn":{"shape":"Arn"},
        "serviceFunctionId":{
          "shape":"EntityId",
          "documentation":"<p>The unique identifier of the service function.</p>"
        },
        "name":{"shape":"EntityLabel"},
        "description":{"shape":"EntityDescription"},
        "criticality":{
          "shape":"ServiceFunctionCriticality",
          "documentation":"<p>The criticality level of the service function.</p>"
        },
        "resourceCount":{
          "shape":"Integer",
          "documentation":"<p>The number of resources associated with the service function.</p>"
        },
        "source":{
          "shape":"ServiceFunctionSource",
          "documentation":"<p>The source of the service function.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the service function was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the service function was last updated.</p>"
        }
      },
      "documentation":"<p>Represents a logical component of a service.</p>"
    },
    "ServiceFunctionCreatedMetadata":{
      "type":"structure",
      "members":{
        "serviceFunctionId":{
          "shape":"String",
          "documentation":"<p>The identifier of the created service function.</p>"
        },
        "serviceFunctionName":{
          "shape":"String",
          "documentation":"<p>The name of the created service function.</p>"
        }
      },
      "documentation":"<p>Metadata for a service function created event.</p>"
    },
    "ServiceFunctionCriticality":{
      "type":"string",
      "enum":[
        "PRIMARY",
        "SUPPLEMENTAL"
      ]
    },
    "ServiceFunctionDeletedMetadata":{
      "type":"structure",
      "members":{
        "serviceFunctionId":{
          "shape":"String",
          "documentation":"<p>The identifier of the deleted service function.</p>"
        },
        "serviceFunctionName":{
          "shape":"String",
          "documentation":"<p>The name of the deleted service function.</p>"
        }
      },
      "documentation":"<p>Metadata for a service function deleted event.</p>"
    },
    "ServiceFunctionList":{
      "type":"list",
      "member":{"shape":"ServiceFunction"}
    },
    "ServiceFunctionResourcesAddedMetadata":{
      "type":"structure",
      "members":{
        "serviceFunctionId":{
          "shape":"String",
          "documentation":"<p>The identifier of the service function.</p>"
        },
        "serviceFunctionName":{
          "shape":"String",
          "documentation":"<p>The name of the service function.</p>"
        },
        "resourcesAdded":{
          "shape":"ArnList",
          "documentation":"<p>The list of resource ARNs that were added.</p>"
        }
      },
      "documentation":"<p>Metadata for a service function resources added event.</p>"
    },
    "ServiceFunctionResourcesRemovedMetadata":{
      "type":"structure",
      "members":{
        "serviceFunctionId":{
          "shape":"String",
          "documentation":"<p>The identifier of the service function.</p>"
        },
        "serviceFunctionName":{
          "shape":"String",
          "documentation":"<p>The name of the service function.</p>"
        },
        "resourcesRemoved":{
          "shape":"ArnList",
          "documentation":"<p>The list of resource ARNs that were removed.</p>"
        }
      },
      "documentation":"<p>Metadata for a service function resources removed event.</p>"
    },
    "ServiceFunctionSource":{
      "type":"string",
      "enum":[
        "AI_GENERATED",
        "USER"
      ]
    },
    "ServiceFunctionUpdatedMetadata":{
      "type":"structure",
      "members":{
        "serviceFunctionId":{
          "shape":"String",
          "documentation":"<p>The identifier of the service function.</p>"
        },
        "serviceFunctionName":{
          "shape":"String",
          "documentation":"<p>The name of the service function.</p>"
        },
        "resourcesAdded":{
          "shape":"ArnList",
          "documentation":"<p>The list of resource ARNs that were added.</p>"
        },
        "resourcesRemoved":{
          "shape":"ArnList",
          "documentation":"<p>The list of resource ARNs that were removed.</p>"
        }
      },
      "documentation":"<p>Metadata for a service function updated event.</p>"
    },
    "ServiceInputSourcesUpdatedMetadata":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Metadata for a service input sources updated event.</p>"
    },
    "ServiceOwnedArn":{
      "type":"string",
      "documentation":"<p>An ARN owned by the service. Accepts either a standard 12-digit account ID or the literal \"aws\" for AWS-managed resources, such as AWS-managed test templates.</p>",
      "min":31,
      "pattern":"arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):[A-Za-z0-9][A-Za-z0-9_/.-]{0,62}:([a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]):([0-9]{12}|aws):[A-Za-z0-9/][A-Za-z0-9:_/+.-]{0,1023}"
    },
    "ServicePolicyAssociatedMetadata":{
      "type":"structure",
      "members":{
        "policyName":{
          "shape":"String",
          "documentation":"<p>The name of the associated policy.</p>"
        },
        "policyArn":{"shape":"Arn"}
      },
      "documentation":"<p>Metadata for a service policy associated event.</p>"
    },
    "ServicePolicyDisassociatedMetadata":{
      "type":"structure",
      "members":{
        "policyName":{
          "shape":"String",
          "documentation":"<p>The name of the disassociated policy.</p>"
        },
        "policyArn":{"shape":"Arn"}
      },
      "documentation":"<p>Metadata for a service policy disassociated event.</p>"
    },
    "ServiceQuotaExceededException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>Service quota exceeded.</p>",
      "error":{
        "httpStatusCode":402,
        "senderFault":true
      },
      "exception":true
    },
    "ServiceReference":{
      "type":"structure",
      "members":{
        "serviceId":{
          "shape":"String",
          "documentation":"<p>The identifier of the referenced service.</p>"
        },
        "serviceName":{
          "shape":"String",
          "documentation":"<p>The name of the referenced service.</p>"
        }
      },
      "documentation":"<p>A reference to a service by ID and name.</p>"
    },
    "ServiceReferenceChanges":{
      "type":"structure",
      "members":{
        "added":{
          "shape":"ServiceReferenceList",
          "documentation":"<p>The list of service references that were added.</p>"
        },
        "removed":{
          "shape":"ServiceReferenceList",
          "documentation":"<p>The list of service references that were removed.</p>"
        }
      },
      "documentation":"<p>Describes changes to service references.</p>"
    },
    "ServiceReferenceList":{
      "type":"list",
      "member":{"shape":"ServiceReference"}
    },
    "ServiceReportConfiguration":{
      "type":"structure",
      "required":["reportOutputs"],
      "members":{
        "reportOutputs":{
          "shape":"ReportOutputConfigurationList",
          "documentation":"<p>Output destinations for generated reports.</p>"
        }
      },
      "documentation":"<p>Configuration for automatic report generation on a Service.</p>"
    },
    "ServiceResource":{
      "type":"structure",
      "required":[
        "resourceIdentifier",
        "resource"
      ],
      "members":{
        "resourceIdentifier":{
          "shape":"String",
          "documentation":"<p>The identifier of the resource.</p>"
        },
        "inputSource":{
          "shape":"InputSource",
          "documentation":"<p>The input source that discovered the resource.</p>"
        },
        "resource":{
          "shape":"Resource",
          "documentation":"<p>The resource details.</p>"
        }
      },
      "documentation":"<p>Represents a resource associated with a service.</p>"
    },
    "ServiceResourceList":{
      "type":"list",
      "member":{"shape":"ServiceResource"}
    },
    "ServiceResourcesAssociatedMetadata":{
      "type":"structure",
      "members":{
        "resourceCount":{
          "shape":"Integer",
          "documentation":"<p>The number of resources associated.</p>"
        },
        "resourceTypes":{
          "shape":"ResourceTypeList",
          "documentation":"<p>The types of resources associated.</p>"
        }
      },
      "documentation":"<p>Metadata for a service resources associated event.</p>"
    },
    "ServiceResourcesDisassociatedMetadata":{
      "type":"structure",
      "members":{
        "resourceCount":{
          "shape":"Integer",
          "documentation":"<p>The number of resources disassociated.</p>"
        },
        "resourceTypes":{
          "shape":"ResourceTypeList",
          "documentation":"<p>The types of resources disassociated.</p>"
        }
      },
      "documentation":"<p>Metadata for a service resources disassociated event.</p>"
    },
    "ServiceSummary":{
      "type":"structure",
      "required":[
        "serviceArn",
        "name"
      ],
      "members":{
        "serviceArn":{"shape":"Arn"},
        "name":{"shape":"EntityName"},
        "associatedSystems":{
          "shape":"AssociatedSystemList",
          "documentation":"<p>The systems associated with the service.</p>"
        },
        "regions":{
          "shape":"RegionList",
          "documentation":"<p>The Regions where the service operates.</p>"
        },
        "policyArn":{"shape":"Arn"},
        "assessmentStatus":{
          "shape":"AssessmentStatus",
          "documentation":"<p>The current assessment status of the service.</p>"
        },
        "openFindingsCount":{
          "shape":"Integer",
          "documentation":"<p>The number of open findings.</p>"
        },
        "resolvedFindingsCount":{
          "shape":"Integer",
          "documentation":"<p>The number of resolved findings.</p>"
        },
        "dependencyDiscovery":{
          "shape":"DependencyDiscoveryConfig",
          "documentation":"<p>The dependency discovery configuration.</p>"
        },
        "achievability":{
          "shape":"Achievability",
          "documentation":"<p>The achievability status of the service's resilience targets.</p>"
        },
        "organizationId":{
          "shape":"OrganizationId",
          "documentation":"<p>Displayed only if caller has access.</p>"
        },
        "ouId":{
          "shape":"OuId",
          "documentation":"<p>Displayed only if caller has access.</p>"
        },
        "accountId":{
          "shape":"AccountId",
          "documentation":"<p>Displayed only if caller has access.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the service was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the service was last updated.</p>"
        }
      },
      "documentation":"<p>Contains summary information about a service.</p>"
    },
    "ServiceSummaryList":{
      "type":"list",
      "member":{"shape":"ServiceSummary"}
    },
    "ServiceSystemAssociatedMetadata":{
      "type":"structure",
      "members":{
        "systemName":{
          "shape":"String",
          "documentation":"<p>The name of the associated system.</p>"
        },
        "systemArn":{"shape":"Arn"}
      },
      "documentation":"<p>Metadata for a service system associated event.</p>"
    },
    "ServiceSystemDisassociatedMetadata":{
      "type":"structure",
      "members":{
        "systemId":{
          "shape":"String",
          "documentation":"<p>The identifier of the disassociated system.</p>"
        },
        "systemName":{
          "shape":"String",
          "documentation":"<p>The name of the disassociated system.</p>"
        },
        "systemArn":{"shape":"Arn"}
      },
      "documentation":"<p>Metadata for a service system disassociated event.</p>"
    },
    "ServiceTopologyEdgeSummary":{
      "type":"structure",
      "required":[
        "sourceResourceIdentifier",
        "destinationResourceIdentifier"
      ],
      "members":{
        "sourceResourceIdentifier":{
          "shape":"String",
          "documentation":"<p>The identifier of the source resource.</p>"
        },
        "destinationResourceIdentifier":{
          "shape":"String",
          "documentation":"<p>The identifier of the destination resource.</p>"
        },
        "sourceRegion":{
          "shape":"AwsRegion",
          "documentation":"<p>The AWS Region of the source resource.</p>"
        },
        "destinationRegion":{
          "shape":"AwsRegion",
          "documentation":"<p>The AWS Region of the destination resource.</p>"
        },
        "sourceAccount":{
          "shape":"AwsAccountId",
          "documentation":"<p>The AWS account ID of the source resource.</p>"
        },
        "destinationAccount":{
          "shape":"AwsAccountId",
          "documentation":"<p>The AWS account ID of the destination resource.</p>"
        },
        "properties":{
          "shape":"EdgePropertyList",
          "documentation":"<p>The properties of the topology edge.</p>"
        }
      },
      "documentation":"<p>Contains summary information about a service topology edge.</p>"
    },
    "ServiceTopologyEdgeSummaryList":{
      "type":"list",
      "member":{"shape":"ServiceTopologyEdgeSummary"}
    },
    "ServiceWorkflowUpdatedMetadata":{
      "type":"structure",
      "members":{
        "serviceFunctionId":{
          "shape":"String",
          "documentation":"<p>The identifier of the service function.</p>"
        },
        "serviceFunctionName":{
          "shape":"String",
          "documentation":"<p>The name of the service function.</p>"
        }
      },
      "documentation":"<p>Metadata for a service workflow updated event.</p>"
    },
    "SloSource":{
      "type":"structure",
      "members":{
        "value":{
          "shape":"Double",
          "documentation":"<p>The availability SLO percentage value.</p>"
        },
        "policyName":{"shape":"EntityName"},
        "source":{
          "shape":"PolicyValueSource",
          "documentation":"<p>Indicates whether the value comes from the service's own account or a cross-account policy.</p>"
        }
      },
      "documentation":"<p>Contains the effective availability SLO value and its source.</p>"
    },
    "SortOrder":{
      "type":"string",
      "documentation":"<p>The order in which to sort results.</p>",
      "enum":[
        "ASC",
        "DESC"
      ]
    },
    "StartFailureModeAssessmentRequest":{
      "type":"structure",
      "required":["serviceArn"],
      "members":{
        "serviceArn":{"shape":"Arn"},
        "clientToken":{
          "shape":"ClientToken",
          "idempotencyToken":true
        }
      }
    },
    "StartFailureModeAssessmentResponse":{
      "type":"structure",
      "members":{
        "assessmentId":{
          "shape":"Uuid",
          "documentation":"<p>The unique identifier of the started assessment.</p>"
        },
        "serviceArn":{"shape":"Arn"},
        "assessmentStatus":{
          "shape":"AssessmentStatus",
          "documentation":"<p>The status of the started assessment.</p>"
        },
        "startedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the assessment started.</p>"
        }
      }
    },
    "StartTestRunRequest":{
      "type":"structure",
      "required":[
        "testId",
        "serviceArn"
      ],
      "members":{
        "testId":{
          "shape":"TestId",
          "documentation":"<p>The identifier of the test to run.</p>"
        },
        "serviceArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the service the test belongs to.</p>"
        }
      }
    },
    "StartTestRunResponse":{
      "type":"structure",
      "required":[
        "testRunId",
        "status",
        "experimentArns"
      ],
      "members":{
        "testRunId":{
          "shape":"TestRunId",
          "documentation":"<p>The identifier of the started test run.</p>"
        },
        "status":{
          "shape":"TestRunStatus",
          "documentation":"<p>The status of the started test run.</p>"
        },
        "experimentArns":{
          "shape":"ExperimentArnList",
          "documentation":"<p>The ARNs of the AWS Fault Injection Service (AWS FIS) experiments started for the run.</p>"
        }
      }
    },
    "StopCondition":{
      "type":"structure",
      "required":[
        "source",
        "value"
      ],
      "members":{
        "source":{
          "shape":"StopConditionSource",
          "documentation":"<p>The source of the stop condition.</p>"
        },
        "value":{
          "shape":"String",
          "documentation":"<p>The value of the stop condition, such as the ARN of the CloudWatch alarm.</p>"
        }
      },
      "documentation":"<p>A CloudWatch alarm that automatically stops a test run if it breaches its threshold.</p>"
    },
    "StopConditionList":{
      "type":"list",
      "member":{"shape":"StopCondition"}
    },
    "StopConditionSource":{
      "type":"string",
      "documentation":"<p>The source of a test stop condition, matching AWS Fault Injection Service (AWS FIS) stop condition sources.</p>",
      "enum":[
        "aws:cloudwatch:alarm",
        "none"
      ]
    },
    "StopTestRunRequest":{
      "type":"structure",
      "required":[
        "testRunId",
        "serviceArn"
      ],
      "members":{
        "testRunId":{
          "shape":"TestRunId",
          "documentation":"<p>The identifier of the test run to stop.</p>"
        },
        "serviceArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the service the test run belongs to.</p>"
        }
      }
    },
    "StopTestRunResponse":{
      "type":"structure",
      "required":[
        "testRunId",
        "status"
      ],
      "members":{
        "testRunId":{
          "shape":"TestRunId",
          "documentation":"<p>The identifier of the stopped test run.</p>"
        },
        "status":{
          "shape":"TestRunStatus",
          "documentation":"<p>The status of the test run.</p>"
        }
      }
    },
    "String":{"type":"string"},
    "StringChange":{
      "type":"structure",
      "members":{
        "oldValue":{
          "shape":"String",
          "documentation":"<p>The old value.</p>"
        },
        "newValue":{
          "shape":"String",
          "documentation":"<p>The new value.</p>"
        }
      },
      "documentation":"<p>Describes a change from one string value to another.</p>"
    },
    "StringList":{
      "type":"list",
      "member":{"shape":"ParameterValue"},
      "max":10,
      "min":0
    },
    "SuccessCriteriaAlarmInput":{
      "type":"structure",
      "required":["alarmArn"],
      "members":{
        "alarmArn":{
          "shape":"CloudWatchAlarmArn",
          "documentation":"<p>The ARN of the CloudWatch alarm.</p>"
        }
      },
      "documentation":"<p>Identifies a success criteria alarm by its ARN.</p>"
    },
    "SuccessCriteriaAlarmSummary":{
      "type":"structure",
      "required":[
        "alarmArn",
        "alarmName",
        "region",
        "accountId"
      ],
      "members":{
        "alarmArn":{
          "shape":"CloudWatchAlarmArn",
          "documentation":"<p>The ARN of the CloudWatch alarm.</p>"
        },
        "alarmName":{
          "shape":"String",
          "documentation":"<p>The name of the CloudWatch alarm.</p>"
        },
        "region":{
          "shape":"String",
          "documentation":"<p>The Region of the CloudWatch alarm.</p>"
        },
        "accountId":{
          "shape":"String",
          "documentation":"<p>The account ID that owns the CloudWatch alarm.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the source was configured.</p>"
        }
      },
      "documentation":"<p>Summary information about a configured success criteria alarm.</p>"
    },
    "SuggestedChangesList":{
      "type":"list",
      "member":{"shape":"EntityDescription"},
      "max":10,
      "min":0
    },
    "System":{
      "type":"structure",
      "required":[
        "systemArn",
        "systemId",
        "name"
      ],
      "members":{
        "systemArn":{"shape":"Arn"},
        "systemId":{"shape":"SystemId"},
        "name":{"shape":"EntityName"},
        "description":{"shape":"EntityDescription"},
        "sharingEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether cross-account sharing is enabled.</p>"
        },
        "tags":{"shape":"TagMap"},
        "kmsKeyId":{"shape":"KmsKeyId"},
        "organizationId":{
          "shape":"OrganizationId",
          "documentation":"<p>The AWS Organizations identifier for the system.</p>"
        },
        "ouId":{
          "shape":"OuId",
          "documentation":"<p>The organizational unit (OU) identifier for the system.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the system was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the system was last updated.</p>"
        }
      },
      "documentation":"<p>Represents a system in Resilience Hub. A system is a logical grouping of services.</p>"
    },
    "SystemCreatedMetadata":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Metadata for a system created event.</p>"
    },
    "SystemDeletedMetadata":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Metadata for a system deleted event.</p>"
    },
    "SystemEvent":{
      "type":"structure",
      "required":[
        "eventId",
        "timestamp",
        "eventType",
        "systemArn",
        "actor",
        "eventDetails"
      ],
      "members":{
        "eventId":{
          "shape":"Uuid",
          "documentation":"<p>The unique identifier of the event.</p>"
        },
        "timestamp":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of the event.</p>"
        },
        "eventType":{
          "shape":"SystemEventType",
          "documentation":"<p>The type of the event.</p>"
        },
        "systemArn":{"shape":"Arn"},
        "actor":{
          "shape":"EventActor",
          "documentation":"<p>The actor that triggered the event.</p>"
        },
        "eventDetails":{
          "shape":"SystemEventDetails",
          "documentation":"<p>The details of the event.</p>"
        }
      },
      "documentation":"<p>Represents an event in the system event log.</p>"
    },
    "SystemEventDetails":{
      "type":"structure",
      "required":[
        "title",
        "description"
      ],
      "members":{
        "title":{
          "shape":"String",
          "documentation":"<p>The title of the event.</p>"
        },
        "description":{
          "shape":"String",
          "documentation":"<p>The description of the event.</p>"
        },
        "eventMetadata":{"shape":"SystemEventMetadata"}
      },
      "documentation":"<p>Contains the details of a system event.</p>"
    },
    "SystemEventList":{
      "type":"list",
      "member":{"shape":"SystemEvent"}
    },
    "SystemEventMetadata":{
      "type":"structure",
      "members":{
        "systemCreated":{
          "shape":"SystemCreatedMetadata",
          "documentation":"<p>Metadata for a system created event.</p>"
        },
        "systemDeleted":{
          "shape":"SystemDeletedMetadata",
          "documentation":"<p>Metadata for a system deleted event.</p>"
        },
        "systemUserJourneyCreated":{
          "shape":"SystemUserJourneyCreatedMetadata",
          "documentation":"<p>Metadata for a system user journey created event.</p>"
        },
        "systemUserJourneyUpdated":{
          "shape":"SystemUserJourneyUpdatedMetadata",
          "documentation":"<p>Metadata for a system user journey updated event.</p>"
        },
        "systemUserJourneyDeleted":{
          "shape":"SystemUserJourneyDeletedMetadata",
          "documentation":"<p>Metadata for a system user journey deleted event.</p>"
        },
        "systemServiceAssociated":{
          "shape":"SystemServiceAssociatedMetadata",
          "documentation":"<p>Metadata for a system service associated event.</p>"
        },
        "systemServiceDisassociated":{
          "shape":"SystemServiceDisassociatedMetadata",
          "documentation":"<p>Metadata for a system service disassociated event.</p>"
        },
        "systemPolicyAssociated":{
          "shape":"SystemPolicyAssociatedMetadata",
          "documentation":"<p>Metadata for a system policy associated event.</p>"
        },
        "systemPolicyDisassociated":{
          "shape":"SystemPolicyDisassociatedMetadata",
          "documentation":"<p>Metadata for a system policy disassociated event.</p>"
        }
      },
      "documentation":"<p>Type-specific metadata for each system event type.</p>",
      "union":true
    },
    "SystemEventType":{
      "type":"string",
      "enum":[
        "SYSTEM_CREATED",
        "SYSTEM_DELETED",
        "SYSTEM_USER_JOURNEY_CREATED",
        "SYSTEM_USER_JOURNEY_UPDATED",
        "SYSTEM_USER_JOURNEY_DELETED",
        "SYSTEM_SERVICE_ASSOCIATED",
        "SYSTEM_SERVICE_DISASSOCIATED",
        "SYSTEM_POLICY_ASSOCIATED",
        "SYSTEM_POLICY_DISASSOCIATED"
      ]
    },
    "SystemEventTypeList":{
      "type":"list",
      "member":{"shape":"SystemEventType"}
    },
    "SystemId":{
      "type":"string",
      "documentation":"<p>System ID for cross-account use without exposing account structure.</p>",
      "max":255,
      "min":1,
      "pattern":"\\S{1,255}"
    },
    "SystemPolicyAssociatedMetadata":{
      "type":"structure",
      "members":{
        "policyName":{
          "shape":"String",
          "documentation":"<p>The name of the associated policy.</p>"
        },
        "policyArn":{"shape":"Arn"}
      },
      "documentation":"<p>Metadata for a system policy associated event.</p>"
    },
    "SystemPolicyDisassociatedMetadata":{
      "type":"structure",
      "members":{
        "policyName":{
          "shape":"String",
          "documentation":"<p>The name of the disassociated policy.</p>"
        },
        "policyArn":{"shape":"Arn"}
      },
      "documentation":"<p>Metadata for a system policy disassociated event.</p>"
    },
    "SystemServiceAssociatedMetadata":{
      "type":"structure",
      "members":{
        "serviceName":{
          "shape":"String",
          "documentation":"<p>The name of the associated service.</p>"
        },
        "serviceArn":{"shape":"Arn"},
        "userJourneys":{
          "shape":"UserJourneyNameList",
          "documentation":"<p>The user journeys linking the service to the system.</p>"
        }
      },
      "documentation":"<p>Metadata for a system service associated event.</p>"
    },
    "SystemServiceDisassociatedMetadata":{
      "type":"structure",
      "members":{
        "serviceName":{
          "shape":"String",
          "documentation":"<p>The name of the disassociated service.</p>"
        },
        "serviceArn":{"shape":"Arn"},
        "userJourneysAffected":{
          "shape":"UserJourneyNameList",
          "documentation":"<p>The user journeys affected by the disassociation.</p>"
        },
        "comment":{
          "shape":"String",
          "documentation":"<p>A comment about the disassociation.</p>"
        }
      },
      "documentation":"<p>Metadata for a system service disassociated event.</p>"
    },
    "SystemSummary":{
      "type":"structure",
      "required":[
        "systemId",
        "name"
      ],
      "members":{
        "systemId":{"shape":"SystemId"},
        "name":{"shape":"EntityName"},
        "systemArn":{"shape":"Arn"},
        "userJourneysCount":{
          "shape":"Integer",
          "documentation":"<p>The number of user journeys in the system.</p>"
        },
        "servicesCount":{
          "shape":"Integer",
          "documentation":"<p>The number of services in the system.</p>"
        },
        "organizationId":{
          "shape":"OrganizationId",
          "documentation":"<p>Displayed only if caller has access.</p>"
        },
        "ouId":{
          "shape":"OuId",
          "documentation":"<p>Displayed only if caller has access.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the system was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the system was last updated.</p>"
        }
      },
      "documentation":"<p>Contains summary information about a system.</p>"
    },
    "SystemSummaryList":{
      "type":"list",
      "member":{"shape":"SystemSummary"}
    },
    "SystemUserJourneyCreatedMetadata":{
      "type":"structure",
      "members":{
        "userJourneyName":{
          "shape":"String",
          "documentation":"<p>The name of the created user journey.</p>"
        },
        "associatedServices":{
          "shape":"ServiceReferenceList",
          "documentation":"<p>The services associated with the created user journey.</p>"
        }
      },
      "documentation":"<p>Metadata for a system user journey created event.</p>"
    },
    "SystemUserJourneyDeletedMetadata":{
      "type":"structure",
      "members":{
        "userJourneyName":{
          "shape":"String",
          "documentation":"<p>The name of the deleted user journey.</p>"
        },
        "associatedServicesAtDeletion":{
          "shape":"ServiceReferenceList",
          "documentation":"<p>The services that were associated at the time of deletion.</p>"
        }
      },
      "documentation":"<p>Metadata for a system user journey deleted event.</p>"
    },
    "SystemUserJourneyUpdatedMetadata":{
      "type":"structure",
      "members":{
        "userJourneyName":{
          "shape":"String",
          "documentation":"<p>The name of the updated user journey.</p>"
        },
        "changes":{
          "shape":"UserJourneyChanges",
          "documentation":"<p>The changes made to the user journey.</p>"
        }
      },
      "documentation":"<p>Metadata for a system user journey updated event.</p>"
    },
    "TagKey":{
      "type":"string",
      "documentation":"<p>Tag key.</p>",
      "max":128,
      "min":1,
      "pattern":"[^\\x00-\\x1f\\x22]+"
    },
    "TagKeyList":{
      "type":"list",
      "member":{"shape":"TagKey"},
      "max":50,
      "min":1,
      "sensitive":true
    },
    "TagMap":{
      "type":"map",
      "key":{"shape":"TagKey"},
      "value":{"shape":"TagValue"},
      "documentation":"<p>Resource tags.</p>",
      "max":50,
      "min":1,
      "sensitive":true
    },
    "TagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tags"
      ],
      "members":{
        "resourceArn":{
          "shape":"Arn",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tags":{"shape":"TagMap"}
      }
    },
    "TagResourceResponse":{
      "type":"structure",
      "members":{}
    },
    "TagValue":{
      "type":"string",
      "documentation":"<p>Tag value.</p>",
      "max":256,
      "min":0,
      "pattern":"[^\\x00-\\x1f\\x22]*"
    },
    "TargetSource":{
      "type":"structure",
      "members":{
        "value":{
          "shape":"Integer",
          "documentation":"<p>The RTO or RPO value in minutes.</p>"
        },
        "policyName":{"shape":"EntityName"},
        "source":{
          "shape":"PolicyValueSource",
          "documentation":"<p>Indicates whether the value comes from the service's own account or a cross-account policy.</p>"
        }
      },
      "documentation":"<p>Contains an effective RTO or RPO value and its source.</p>"
    },
    "Test":{
      "type":"structure",
      "required":[
        "testId",
        "testTemplateArn",
        "serviceArn",
        "name",
        "totalTestRuns",
        "successfulTestRuns",
        "creationTime"
      ],
      "members":{
        "testId":{
          "shape":"TestId",
          "documentation":"<p>The unique identifier of the test.</p>"
        },
        "testTemplateArn":{
          "shape":"ServiceOwnedArn",
          "documentation":"<p>The ARN of the test template the test was created from.</p>"
        },
        "serviceArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the service the test belongs to.</p>"
        },
        "name":{
          "shape":"String",
          "documentation":"<p>The name of the test.</p>"
        },
        "actions":{
          "shape":"TestActionList",
          "documentation":"<p>The fault actions the test runs.</p>"
        },
        "loggingConfiguration":{
          "shape":"LoggingConfiguration",
          "documentation":"<p>The logging configuration for the test.</p>"
        },
        "stopConditions":{
          "shape":"StopConditionList",
          "documentation":"<p>The stop conditions for the test.</p>"
        },
        "roleName":{
          "shape":"EntityName",
          "documentation":"<p>The name of the IAM execution role used to run the test.</p>"
        },
        "parameters":{
          "shape":"TestParameters",
          "documentation":"<p>The parameter values configured for the test.</p>"
        },
        "totalTestRuns":{
          "shape":"Integer",
          "documentation":"<p>The total number of runs of the test.</p>"
        },
        "successfulTestRuns":{
          "shape":"Integer",
          "documentation":"<p>The number of successful runs of the test.</p>"
        },
        "creationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the test was created.</p>"
        }
      },
      "documentation":"<p>Represents a test created for a service by configuring a test template.</p>"
    },
    "TestAction":{
      "type":"structure",
      "required":[
        "actionId",
        "resourceType"
      ],
      "members":{
        "actionId":{
          "shape":"String",
          "documentation":"<p>The identifier of the fault action.</p>"
        },
        "description":{
          "shape":"String",
          "documentation":"<p>A description of the fault action.</p>"
        },
        "resourceType":{
          "shape":"String",
          "documentation":"<p>The resource type that the action targets.</p>"
        }
      },
      "documentation":"<p>Represents a fault action that a test runs, along with the resource type it targets.</p>"
    },
    "TestActionList":{
      "type":"list",
      "member":{"shape":"TestAction"}
    },
    "TestId":{
      "type":"string",
      "documentation":"<p>The unique identifier of a test.</p>"
    },
    "TestParameters":{
      "type":"map",
      "key":{"shape":"ParameterKey"},
      "value":{"shape":"StringList"},
      "max":20,
      "min":0
    },
    "TestRun":{
      "type":"structure",
      "required":[
        "testRunId",
        "testId",
        "status",
        "startedAt",
        "testTemplateArn"
      ],
      "members":{
        "testRunId":{
          "shape":"TestRunId",
          "documentation":"<p>The unique identifier of the test run.</p>"
        },
        "testId":{
          "shape":"TestId",
          "documentation":"<p>The identifier of the test that was run.</p>"
        },
        "status":{
          "shape":"TestRunStatus",
          "documentation":"<p>The current status of the test run.</p>"
        },
        "serviceArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the service the test run belongs to.</p>"
        },
        "startedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the test run started.</p>"
        },
        "endedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the test run ended.</p>"
        },
        "experiments":{
          "shape":"ExperimentDetailsList",
          "documentation":"<p>The AWS Fault Injection Service (AWS FIS) experiments run as part of the test run.</p>"
        },
        "eventCount":{
          "shape":"Integer",
          "documentation":"<p>The number of events recorded for the test run. Use ListTestRunEvents to retrieve the details.</p>"
        },
        "parameters":{
          "shape":"TestParameters",
          "documentation":"<p>The parameter values used for the test run.</p>"
        },
        "errorMessage":{
          "shape":"String",
          "documentation":"<p>A human-readable reason for test run failure. Only present when the status is FAILED or ERROR.</p>"
        },
        "stopConditions":{
          "shape":"StopConditionList",
          "documentation":"<p>The stop conditions snapshotted from the test when the run was started.</p>"
        },
        "loggingConfiguration":{
          "shape":"LoggingConfiguration",
          "documentation":"<p>The logging configuration snapshotted from the test when the run was started.</p>"
        },
        "roleName":{
          "shape":"EntityName",
          "documentation":"<p>The IAM execution role name snapshotted from the test when the run was started.</p>"
        },
        "testTemplateArn":{
          "shape":"ServiceOwnedArn",
          "documentation":"<p>The ARN of the test template snapshotted from the test when the run was started.</p>"
        },
        "reportConfiguration":{
          "shape":"TestRunReportConfiguration",
          "documentation":"<p>The report configuration snapshotted from the service when the run was started.</p>"
        },
        "policy":{
          "shape":"TestRunPolicySnapshot",
          "documentation":"<p>The resilience policy snapshotted from the service when the run was started.</p>"
        },
        "reportOutput":{
          "shape":"ReportGenerationResult",
          "documentation":"<p>The report generation result for the test run. Present after report generation completes or fails.</p>"
        },
        "regionSwitchPlanArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the ARC Region switch plan associated with the test run.</p>"
        },
        "regionSwitchExecutionId":{
          "shape":"RegionSwitchExecutionId",
          "documentation":"<p>The identifier of the ARC Region switch execution detected during the test run.</p>"
        },
        "permissionModel":{
          "shape":"PermissionModel",
          "documentation":"<p>The permission model snapshotted from the service when the run was started.</p>"
        },
        "regions":{
          "shape":"RegionList",
          "documentation":"<p>The Regions snapshotted from the service when the run was started.</p>"
        },
        "accountTargeting":{
          "shape":"AccountTargeting",
          "documentation":"<p>Indicates whether this test run targets a single account or multiple accounts.</p>"
        }
      },
      "documentation":"<p>Represents a single run of a test. Configuration is snapshotted from the test and service at the time the run is started.</p>"
    },
    "TestRunEvent":{
      "type":"structure",
      "required":[
        "eventId",
        "eventType",
        "message",
        "timestamp"
      ],
      "members":{
        "eventId":{
          "shape":"TestRunEventEventIdString",
          "documentation":"<p>The unique identifier of the event.</p>"
        },
        "eventType":{
          "shape":"TestRunEventEventTypeString",
          "documentation":"<p>The type of the event, such as action_started, action_completed, or rto_recovery_detected.</p>"
        },
        "message":{
          "shape":"TestRunEventMessageString",
          "documentation":"<p>A human-readable description of what happened.</p>"
        },
        "timestamp":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the event occurred.</p>"
        },
        "attributes":{
          "shape":"TestRunEventAttributes",
          "documentation":"<p>Machine-parseable key-value attributes for the event.</p>"
        }
      },
      "documentation":"<p>A single event in a test run's timeline.</p>"
    },
    "TestRunEventAttributeKey":{
      "type":"string",
      "documentation":"<p>The key of a test run event attribute.</p>",
      "max":128,
      "min":1
    },
    "TestRunEventAttributeValue":{
      "type":"string",
      "documentation":"<p>The value of a test run event attribute.</p>",
      "max":1024,
      "min":0
    },
    "TestRunEventAttributes":{
      "type":"map",
      "key":{"shape":"TestRunEventAttributeKey"},
      "value":{"shape":"TestRunEventAttributeValue"},
      "max":50,
      "min":0
    },
    "TestRunEventEventIdString":{
      "type":"string",
      "max":64,
      "min":1
    },
    "TestRunEventEventTypeString":{
      "type":"string",
      "max":256,
      "min":1
    },
    "TestRunEventList":{
      "type":"list",
      "member":{"shape":"TestRunEvent"},
      "max":100,
      "min":0
    },
    "TestRunEventMessageString":{
      "type":"string",
      "max":2048,
      "min":1
    },
    "TestRunId":{
      "type":"string",
      "documentation":"<p>The unique identifier of a test run.</p>"
    },
    "TestRunObservabilityAlarmSummary":{
      "type":"structure",
      "required":[
        "alarmArn",
        "alarmName",
        "region",
        "accountId"
      ],
      "members":{
        "alarmArn":{
          "shape":"CloudWatchAlarmArn",
          "documentation":"<p>The ARN of the CloudWatch alarm.</p>"
        },
        "alarmName":{
          "shape":"String",
          "documentation":"<p>The name of the CloudWatch alarm.</p>"
        },
        "region":{
          "shape":"String",
          "documentation":"<p>The Region of the CloudWatch alarm.</p>"
        },
        "accountId":{
          "shape":"String",
          "documentation":"<p>The account ID that owns the CloudWatch alarm.</p>"
        }
      },
      "documentation":"<p>Summary information about an observability alarm snapshot captured for a test run.</p>"
    },
    "TestRunPolicySnapshot":{
      "type":"structure",
      "members":{
        "policyArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the policy.</p>"
        },
        "name":{
          "shape":"EntityName",
          "documentation":"<p>The name of the policy.</p>"
        },
        "availabilitySlo":{
          "shape":"AvailabilitySlo",
          "documentation":"<p>The availability SLO targets.</p>"
        },
        "multiAz":{
          "shape":"MultiAzTargets",
          "documentation":"<p>The multi-AZ resilience targets.</p>"
        },
        "multiRegion":{
          "shape":"MultiRegionTargets",
          "documentation":"<p>The multi-Region resilience targets.</p>"
        },
        "dataRecovery":{
          "shape":"DataRecoveryTargets",
          "documentation":"<p>The data recovery targets.</p>"
        }
      },
      "documentation":"<p>A snapshot of the resilience policy captured onto a test run from the service when the run was started.</p>"
    },
    "TestRunReportConfiguration":{
      "type":"structure",
      "required":["reportOutput"],
      "members":{
        "reportOutput":{
          "shape":"ReportOutputConfigurationList",
          "documentation":"<p>The output destinations for generated reports.</p>"
        }
      },
      "documentation":"<p>A snapshot of the report configuration captured onto a test run from the service when the run was started.</p>"
    },
    "TestRunSourceSummary":{
      "type":"structure",
      "members":{
        "successCriteriaAlarm":{
          "shape":"TestRunSuccessCriteriaAlarmSummary",
          "documentation":"<p>A success criteria alarm snapshot captured for the test run.</p>"
        },
        "observabilityAlarm":{
          "shape":"TestRunObservabilityAlarmSummary",
          "documentation":"<p>An observability alarm snapshot captured for the test run.</p>"
        }
      },
      "documentation":"<p>A monitoring-source snapshot captured for a test run. Exactly one member is set.</p>",
      "union":true
    },
    "TestRunSourceSummaryList":{
      "type":"list",
      "member":{"shape":"TestRunSourceSummary"},
      "max":25,
      "min":0
    },
    "TestRunSourceType":{
      "type":"string",
      "documentation":"<p>The type of a test run monitoring-source snapshot.</p>",
      "enum":[
        "SUCCESS_CRITERIA",
        "OBSERVABILITY"
      ]
    },
    "TestRunStatus":{
      "type":"string",
      "documentation":"<p>The status of a test run through its lifecycle.</p>",
      "enum":[
        "INITIALIZING",
        "RUNNING",
        "STOPPING",
        "PASSED",
        "FAILED",
        "STOPPED",
        "ERROR"
      ]
    },
    "TestRunSuccessCriteriaAlarmSummary":{
      "type":"structure",
      "required":[
        "alarmArn",
        "alarmName",
        "region",
        "accountId"
      ],
      "members":{
        "alarmArn":{
          "shape":"CloudWatchAlarmArn",
          "documentation":"<p>The ARN of the CloudWatch alarm.</p>"
        },
        "alarmName":{
          "shape":"String",
          "documentation":"<p>The name of the CloudWatch alarm.</p>"
        },
        "region":{
          "shape":"String",
          "documentation":"<p>The Region of the CloudWatch alarm.</p>"
        },
        "accountId":{
          "shape":"String",
          "documentation":"<p>The account ID that owns the CloudWatch alarm.</p>"
        },
        "outcome":{
          "shape":"TestSourceOutcome",
          "documentation":"<p>The evaluation outcome of the source. Absent while the source has not yet been evaluated; set to the terminal outcome afterwards.</p>"
        },
        "outcomeReason":{
          "shape":"String",
          "documentation":"<p>A human-readable reason for the outcome.</p>"
        }
      },
      "documentation":"<p>Summary information about a success criteria alarm snapshot captured for a test run.</p>"
    },
    "TestRunSummary":{
      "type":"structure",
      "required":[
        "testRunId",
        "status",
        "startedAt",
        "testTemplateArn"
      ],
      "members":{
        "testRunId":{
          "shape":"TestRunId",
          "documentation":"<p>The unique identifier of the test run.</p>"
        },
        "status":{
          "shape":"TestRunStatus",
          "documentation":"<p>The current status of the test run.</p>"
        },
        "startedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the test run started.</p>"
        },
        "endedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the test run ended.</p>"
        },
        "testTemplateArn":{
          "shape":"ServiceOwnedArn",
          "documentation":"<p>The ARN of the test template the test run was based on.</p>"
        },
        "serviceArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the service the test run belongs to.</p>"
        },
        "errorMessage":{
          "shape":"String",
          "documentation":"<p>A human-readable reason for test run failure. Only present when the status is FAILED or ERROR.</p>"
        },
        "accountTargeting":{
          "shape":"AccountTargeting",
          "documentation":"<p>Indicates whether this test run targets a single account or multiple accounts.</p>"
        }
      },
      "documentation":"<p>Contains summary information about a test run.</p>"
    },
    "TestRunSummaryList":{
      "type":"list",
      "member":{"shape":"TestRunSummary"}
    },
    "TestSourceInput":{
      "type":"structure",
      "members":{
        "successCriteriaAlarm":{
          "shape":"SuccessCriteriaAlarmInput",
          "documentation":"<p>A success criteria alarm that determines whether the test passes or fails.</p>"
        },
        "observabilityAlarm":{
          "shape":"ObservabilityAlarmInput",
          "documentation":"<p>An observability alarm included for visibility only.</p>"
        }
      },
      "documentation":"<p>Identifies a monitoring source to add to or remove from a test. Exactly one member is set.</p>",
      "union":true
    },
    "TestSourceInputList":{
      "type":"list",
      "member":{"shape":"TestSourceInput"},
      "max":5,
      "min":1
    },
    "TestSourceOutcome":{
      "type":"string",
      "documentation":"<p>The evaluation outcome of a test run success criteria source.</p>",
      "enum":[
        "PASSED",
        "FAILED",
        "ERROR"
      ]
    },
    "TestSourceSummary":{
      "type":"structure",
      "members":{
        "successCriteriaAlarm":{
          "shape":"SuccessCriteriaAlarmSummary",
          "documentation":"<p>A configured success criteria alarm.</p>"
        },
        "observabilityAlarm":{
          "shape":"ObservabilityAlarmSummary",
          "documentation":"<p>A configured observability alarm.</p>"
        }
      },
      "documentation":"<p>A configured monitoring source returned by ListTestSources. Exactly one member is set.</p>",
      "union":true
    },
    "TestSourceSummaryList":{
      "type":"list",
      "member":{"shape":"TestSourceSummary"},
      "max":25,
      "min":0
    },
    "TestSourceType":{
      "type":"string",
      "documentation":"<p>The purpose of a test monitoring source.</p>",
      "enum":[
        "SUCCESS_CRITERIA",
        "OBSERVABILITY"
      ]
    },
    "TestSummary":{
      "type":"structure",
      "required":[
        "testId",
        "testTemplateArn",
        "serviceArn",
        "totalTestRuns",
        "successfulTestRuns",
        "creationTime"
      ],
      "members":{
        "testId":{
          "shape":"TestId",
          "documentation":"<p>The unique identifier of the test.</p>"
        },
        "testTemplateArn":{
          "shape":"ServiceOwnedArn",
          "documentation":"<p>The ARN of the test template the test was created from.</p>"
        },
        "serviceArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the service the test belongs to.</p>"
        },
        "totalTestRuns":{
          "shape":"Integer",
          "documentation":"<p>The total number of runs of the test.</p>"
        },
        "successfulTestRuns":{
          "shape":"Integer",
          "documentation":"<p>The number of successful runs of the test.</p>"
        },
        "creationTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the test was created.</p>"
        }
      },
      "documentation":"<p>Contains summary information about a test.</p>"
    },
    "TestSummaryList":{
      "type":"list",
      "member":{"shape":"TestSummary"}
    },
    "TestTemplate":{
      "type":"structure",
      "required":[
        "testTemplateArn",
        "name"
      ],
      "members":{
        "testTemplateArn":{
          "shape":"ServiceOwnedArn",
          "documentation":"<p>The ARN of the test template.</p>"
        },
        "name":{
          "shape":"String",
          "documentation":"<p>The name of the test template.</p>"
        },
        "description":{
          "shape":"String",
          "documentation":"<p>A description of the test template.</p>"
        },
        "parameters":{
          "shape":"TestTemplateParameterList",
          "documentation":"<p>The parameters the test template accepts.</p>"
        },
        "actions":{
          "shape":"TestActionList",
          "documentation":"<p>The fault actions the test template runs.</p>"
        }
      },
      "documentation":"<p>A pre-configured, AWS recommended test that defines which resilience capability to validate, the fault actions it runs, and the parameters it accepts.</p>"
    },
    "TestTemplateParameter":{
      "type":"structure",
      "required":[
        "name",
        "type",
        "required"
      ],
      "members":{
        "name":{
          "shape":"String",
          "documentation":"<p>The name of the parameter.</p>"
        },
        "description":{
          "shape":"String",
          "documentation":"<p>A description of the parameter.</p>"
        },
        "type":{
          "shape":"ParameterType",
          "documentation":"<p>The data type of the parameter.</p>"
        },
        "required":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether the parameter is required.</p>"
        },
        "defaultValue":{
          "shape":"String",
          "documentation":"<p>The default value of the parameter.</p>"
        },
        "maxValues":{
          "shape":"Integer",
          "documentation":"<p>The maximum number of values the parameter accepts.</p>"
        }
      },
      "documentation":"<p>Describes a parameter accepted by a test template.</p>"
    },
    "TestTemplateParameterList":{
      "type":"list",
      "member":{"shape":"TestTemplateParameter"}
    },
    "TestTemplateSummary":{
      "type":"structure",
      "required":[
        "testTemplateArn",
        "name",
        "description"
      ],
      "members":{
        "testTemplateArn":{
          "shape":"ServiceOwnedArn",
          "documentation":"<p>The ARN of the test template.</p>"
        },
        "name":{
          "shape":"String",
          "documentation":"<p>The name of the test template.</p>"
        },
        "description":{
          "shape":"String",
          "documentation":"<p>A description of the test template.</p>"
        }
      },
      "documentation":"<p>Contains summary information about a test template.</p>"
    },
    "TestTemplateSummaryList":{
      "type":"list",
      "member":{"shape":"TestTemplateSummary"}
    },
    "TestingRecommendation":{
      "type":"structure",
      "members":{
        "suggestedChanges":{
          "shape":"SuggestedChangesList",
          "documentation":"<p>The list of suggested testing changes.</p>"
        }
      },
      "documentation":"<p>A testing recommendation to address a finding.</p>"
    },
    "TestingRecommendationsList":{
      "type":"list",
      "member":{"shape":"TestingRecommendation"},
      "max":5,
      "min":0
    },
    "ThrottlingException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"},
        "retryAfterSeconds":{
          "shape":"Integer",
          "documentation":"<p>The number of seconds to wait before retrying the request.</p>"
        }
      },
      "documentation":"<p>Too many requests — rate limit exceeded.</p>",
      "error":{
        "httpStatusCode":429,
        "senderFault":true
      },
      "exception":true
    },
    "Timestamp":{"type":"timestamp"},
    "TopologyType":{
      "type":"string",
      "enum":[
        "CONTAINMENT",
        "DATA_FLOW",
        "OBSERVABILITY",
        "PERMISSIONS"
      ]
    },
    "UntagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tagKeys"
      ],
      "members":{
        "resourceArn":{
          "shape":"Arn",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tagKeys":{
          "shape":"TagKeyList",
          "documentation":"<p>The tag keys to remove from the resource.</p>",
          "location":"querystring",
          "locationName":"tagKeys"
        }
      }
    },
    "UntagResourceResponse":{
      "type":"structure",
      "members":{}
    },
    "UpdateAssertionRequest":{
      "type":"structure",
      "required":[
        "serviceArn",
        "assertionId"
      ],
      "members":{
        "serviceArn":{"shape":"Arn"},
        "assertionId":{
          "shape":"Uuid",
          "documentation":"<p>The unique identifier of the assertion to update.</p>"
        },
        "text":{
          "shape":"AssertionText",
          "documentation":"<p>The updated text content of the assertion.</p>"
        }
      }
    },
    "UpdateAssertionResponse":{
      "type":"structure",
      "required":["assertion"],
      "members":{
        "assertion":{
          "shape":"Assertion",
          "documentation":"<p>The updated assertion.</p>"
        }
      }
    },
    "UpdateDependencyRequest":{
      "type":"structure",
      "required":[
        "serviceArn",
        "dependencyId"
      ],
      "members":{
        "serviceArn":{"shape":"Arn"},
        "dependencyId":{
          "shape":"Uuid",
          "documentation":"<p>The identifier of the dependency to update.</p>"
        },
        "criticality":{
          "shape":"DependencyCriticality",
          "documentation":"<p>The updated criticality level of the dependency.</p>"
        },
        "comment":{
          "shape":"String",
          "documentation":"<p>A comment about the dependency.</p>"
        }
      }
    },
    "UpdateDependencyResponse":{
      "type":"structure",
      "required":[
        "dependencyId",
        "dependencyName",
        "location",
        "criticality",
        "updatedAt"
      ],
      "members":{
        "dependencyId":{
          "shape":"Uuid",
          "documentation":"<p>The identifier of the updated dependency.</p>"
        },
        "dependencyName":{
          "shape":"String",
          "documentation":"<p>The name of the updated dependency.</p>"
        },
        "location":{
          "shape":"String",
          "documentation":"<p>The location of the dependency.</p>"
        },
        "criticality":{
          "shape":"DependencyCriticality",
          "documentation":"<p>The criticality level of the dependency.</p>"
        },
        "comment":{
          "shape":"String",
          "documentation":"<p>The comment about the dependency.</p>"
        },
        "provider":{
          "shape":"String",
          "documentation":"<p>The provider of the dependency.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the dependency was updated.</p>"
        }
      }
    },
    "UpdateFailureModeFindingRequest":{
      "type":"structure",
      "required":[
        "findingId",
        "status",
        "serviceArn"
      ],
      "members":{
        "findingId":{
          "shape":"Uuid",
          "documentation":"<p>The identifier of the finding to update.</p>"
        },
        "status":{
          "shape":"FindingStatus",
          "documentation":"<p>The new status for the finding.</p>"
        },
        "serviceArn":{"shape":"Arn"},
        "comment":{
          "shape":"UpdateFailureModeFindingRequestCommentString",
          "documentation":"<p>A comment about the finding update.</p>"
        }
      }
    },
    "UpdateFailureModeFindingRequestCommentString":{
      "type":"string",
      "max":2048,
      "min":0
    },
    "UpdateFailureModeFindingResponse":{
      "type":"structure",
      "members":{
        "finding":{
          "shape":"Finding",
          "documentation":"<p>The updated finding.</p>"
        }
      }
    },
    "UpdatePolicyRequest":{
      "type":"structure",
      "required":["policyArn"],
      "members":{
        "policyArn":{"shape":"Arn"},
        "description":{"shape":"LongDescription"},
        "availabilitySlo":{
          "shape":"AvailabilitySlo",
          "documentation":"<p>The updated availability SLO for the policy.</p>"
        },
        "multiAz":{
          "shape":"MultiAzTargets",
          "documentation":"<p>The updated multi-AZ disaster recovery targets for the policy.</p>"
        },
        "multiRegion":{
          "shape":"MultiRegionTargets",
          "documentation":"<p>The updated multi-Region disaster recovery targets for the policy.</p>"
        },
        "dataRecovery":{
          "shape":"DataRecoveryTargets",
          "documentation":"<p>The updated data recovery targets for the policy.</p>"
        }
      }
    },
    "UpdatePolicyResponse":{
      "type":"structure",
      "required":["policy"],
      "members":{
        "policy":{
          "shape":"Policy",
          "documentation":"<p>The updated policy.</p>"
        }
      }
    },
    "UpdateServiceFunctionRequest":{
      "type":"structure",
      "required":[
        "serviceArn",
        "serviceFunctionId"
      ],
      "members":{
        "serviceArn":{"shape":"Arn"},
        "serviceFunctionId":{
          "shape":"EntityId",
          "documentation":"<p>The identifier of the service function to update.</p>"
        },
        "name":{"shape":"EntityLabel"},
        "description":{"shape":"EntityDescription"},
        "criticality":{
          "shape":"ServiceFunctionCriticality",
          "documentation":"<p>The updated criticality level of the service function.</p>"
        }
      }
    },
    "UpdateServiceFunctionResponse":{
      "type":"structure",
      "required":["serviceFunction"],
      "members":{
        "serviceFunction":{
          "shape":"ServiceFunction",
          "documentation":"<p>The updated service function.</p>"
        }
      }
    },
    "UpdateServiceRequest":{
      "type":"structure",
      "required":["serviceArn"],
      "members":{
        "serviceArn":{"shape":"Arn"},
        "description":{"shape":"LongDescription"},
        "associatedSystems":{
          "shape":"AssociatedSystemList",
          "documentation":"<p>The updated systems to associate with the service.</p>"
        },
        "policyArn":{"shape":"Arn"},
        "regions":{
          "shape":"RegionList",
          "documentation":"<p>The updated AWS Regions where the service operates.</p>"
        },
        "permissionModel":{
          "shape":"PermissionModel",
          "documentation":"<p>The updated permission model for the service.</p>"
        },
        "dependencyDiscovery":{"shape":"DependencyDiscoveryInput"},
        "reportConfiguration":{"shape":"ServiceReportConfiguration"}
      }
    },
    "UpdateServiceResponse":{
      "type":"structure",
      "required":["service"],
      "members":{
        "service":{
          "shape":"Service",
          "documentation":"<p>The updated service.</p>"
        }
      }
    },
    "UpdateSystemRequest":{
      "type":"structure",
      "required":["systemArn"],
      "members":{
        "systemArn":{"shape":"Arn"},
        "description":{"shape":"EntityDescription"},
        "sharingEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Whether cross-account sharing is enabled for the system.</p>"
        }
      }
    },
    "UpdateSystemResponse":{
      "type":"structure",
      "required":["system"],
      "members":{
        "system":{
          "shape":"System",
          "documentation":"<p>The updated system.</p>"
        }
      }
    },
    "UpdateTestRequest":{
      "type":"structure",
      "required":[
        "testId",
        "serviceArn"
      ],
      "members":{
        "testId":{
          "shape":"TestId",
          "documentation":"<p>The identifier of the test to update.</p>"
        },
        "serviceArn":{
          "shape":"Arn",
          "documentation":"<p>The ARN of the service the test belongs to.</p>"
        },
        "loggingConfiguration":{
          "shape":"LoggingConfiguration",
          "documentation":"<p>The updated logging configuration for the test.</p>"
        },
        "stopConditions":{
          "shape":"StopConditionList",
          "documentation":"<p>The updated stop conditions for the test.</p>"
        },
        "roleName":{
          "shape":"EntityName",
          "documentation":"<p>The updated IAM execution role name.</p>"
        },
        "parameters":{
          "shape":"TestParameters",
          "documentation":"<p>The updated parameter values for the test.</p>"
        }
      }
    },
    "UpdateTestResponse":{
      "type":"structure",
      "required":["test"],
      "members":{
        "test":{
          "shape":"Test",
          "documentation":"<p>The updated test.</p>"
        }
      }
    },
    "UpdateUserJourneyRequest":{
      "type":"structure",
      "required":[
        "systemArn",
        "userJourneyId"
      ],
      "members":{
        "systemArn":{"shape":"Arn"},
        "userJourneyId":{
          "shape":"UserJourneyId",
          "documentation":"<p>The identifier of the user journey to update.</p>"
        },
        "name":{"shape":"EntityLabel"},
        "description":{"shape":"EntityDescription"},
        "policyArn":{"shape":"Arn"}
      }
    },
    "UpdateUserJourneyResponse":{
      "type":"structure",
      "required":["userJourney"],
      "members":{
        "userJourney":{
          "shape":"UserJourney",
          "documentation":"<p>The updated user journey.</p>"
        }
      }
    },
    "UserJourney":{
      "type":"structure",
      "required":[
        "userJourneyId",
        "name"
      ],
      "members":{
        "userJourneyId":{
          "shape":"UserJourneyId",
          "documentation":"<p>The unique identifier of the user journey.</p>"
        },
        "name":{"shape":"EntityLabel"},
        "description":{"shape":"EntityDescription"},
        "policyArn":{"shape":"Arn"},
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the user journey was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the user journey was last updated.</p>"
        }
      },
      "documentation":"<p>Represents a user journey that defines a critical path through a system.</p>"
    },
    "UserJourneyChanges":{
      "type":"structure",
      "members":{
        "journeyDescription":{
          "shape":"StringChange",
          "documentation":"<p>Changes to the user journey description.</p>"
        },
        "associatedServices":{
          "shape":"ServiceReferenceChanges",
          "documentation":"<p>Changes to the services associated with the user journey.</p>"
        }
      },
      "documentation":"<p>Describes changes made to a user journey.</p>"
    },
    "UserJourneyId":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"\\S{1,255}"
    },
    "UserJourneyIdList":{
      "type":"list",
      "member":{"shape":"UserJourneyId"},
      "max":20,
      "min":0
    },
    "UserJourneyNameList":{
      "type":"list",
      "member":{"shape":"String"}
    },
    "UserJourneySummary":{
      "type":"structure",
      "required":[
        "userJourneyId",
        "name"
      ],
      "members":{
        "userJourneyId":{
          "shape":"UserJourneyId",
          "documentation":"<p>The unique identifier of the user journey.</p>"
        },
        "name":{"shape":"EntityLabel"},
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the user journey was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the user journey was last updated.</p>"
        }
      },
      "documentation":"<p>Contains summary information about a user journey.</p>"
    },
    "UserJourneySummaryList":{
      "type":"list",
      "member":{"shape":"UserJourneySummary"}
    },
    "Uuid":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}"
    },
    "ValidationException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"},
        "reason":{
          "shape":"ValidationExceptionReason",
          "documentation":"<p>The reason for the validation failure.</p>"
        },
        "fieldList":{
          "shape":"ValidationExceptionFieldList",
          "documentation":"<p>The list of fields that failed validation.</p>"
        }
      },
      "documentation":"<p>Validation error — invalid input parameters.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "ValidationExceptionField":{
      "type":"structure",
      "required":[
        "name",
        "message"
      ],
      "members":{
        "name":{
          "shape":"String",
          "documentation":"<p>The name of the field that failed validation.</p>"
        },
        "message":{
          "shape":"String",
          "documentation":"<p>The validation error message for the field.</p>"
        }
      },
      "documentation":"<p>Describes a field that failed validation.</p>"
    },
    "ValidationExceptionFieldList":{
      "type":"list",
      "member":{"shape":"ValidationExceptionField"}
    },
    "ValidationExceptionReason":{
      "type":"string",
      "enum":[
        "INVALID_FIELD_VALUE",
        "DUPLICATE_VALUE",
        "MISSING_REQUIRED_FIELD",
        "OTHER"
      ]
    }
  },
  "documentation":"<p>The next generation of AWS Resilience Hub is the single location in AWS where you assess and improve the resilience of your critical applications. It helps Site Reliability Engineers (SREs) and development teams proactively reason about resilience at scale — identifying failure modes, discovering hidden dependencies, and report on progress across the enterprise. </p>"
}
