{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2026-01-01",
    "auth":["aws.auth#sigv4"],
    "endpointPrefix":"aidevops",
    "protocol":"rest-json",
    "protocols":["rest-json"],
    "serviceFullName":"AWS DevOps Agent Service",
    "serviceId":"DevOps Agent",
    "signatureVersion":"v4",
    "signingName":"aidevops",
    "uid":"devops-agent-2026-01-01"
  },
  "operations":{
    "AssociateService":{
      "name":"AssociateService",
      "http":{
        "method":"POST",
        "requestUri":"/v1/agentspaces/{agentSpaceId}/associations",
        "responseCode":201
      },
      "input":{"shape":"AssociateServiceInput"},
      "output":{"shape":"AssociateServiceOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Adds a specific service association to an AgentSpace. It overwrites the existing association of the same service. Returns 201 Created on success.</p>",
      "endpoint":{"hostPrefix":"cp."}
    },
    "CreateAgentSpace":{
      "name":"CreateAgentSpace",
      "http":{
        "method":"POST",
        "requestUri":"/v1/agentspaces",
        "responseCode":201
      },
      "input":{"shape":"CreateAgentSpaceInput"},
      "output":{"shape":"CreateAgentSpaceOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Creates a new AgentSpace with the specified name and description. Duplicate space names are allowed.</p>",
      "endpoint":{"hostPrefix":"cp."},
      "idempotent":true
    },
    "CreateAsset":{
      "name":"CreateAsset",
      "http":{
        "method":"POST",
        "requestUri":"/asset/agent-space/{agentSpaceId}/assets",
        "responseCode":201
      },
      "input":{"shape":"CreateAssetRequest"},
      "output":{"shape":"CreateAssetResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Creates a new asset in the specified agent space</p>",
      "endpoint":{"hostPrefix":"dp."}
    },
    "CreateAssetFile":{
      "name":"CreateAssetFile",
      "http":{
        "method":"POST",
        "requestUri":"/asset/agent-space/{agentSpaceId}/assets/{assetId}/files/{path+}",
        "responseCode":201
      },
      "input":{"shape":"CreateAssetFileRequest"},
      "output":{"shape":"CreateAssetFileResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Creates a file in an asset</p>",
      "endpoint":{"hostPrefix":"dp."}
    },
    "CreateBacklogTask":{
      "name":"CreateBacklogTask",
      "http":{
        "method":"POST",
        "requestUri":"/backlog/agent-space/{agentSpaceId}/tasks",
        "responseCode":201
      },
      "input":{"shape":"CreateBacklogTaskRequest"},
      "output":{"shape":"CreateBacklogTaskResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Creates a new backlog task in the specified agent space</p>",
      "endpoint":{"hostPrefix":"dp."},
      "idempotent":true
    },
    "CreateChat":{
      "name":"CreateChat",
      "http":{
        "method":"POST",
        "requestUri":"/agents/agent-space/{agentSpaceId}/chat/create",
        "responseCode":200
      },
      "input":{"shape":"CreateChatRequest"},
      "output":{"shape":"CreateChatResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Creates a new chat execution in the specified agent space</p>",
      "endpoint":{"hostPrefix":"dp."}
    },
    "CreatePrivateConnection":{
      "name":"CreatePrivateConnection",
      "http":{
        "method":"POST",
        "requestUri":"/v1/private-connections",
        "responseCode":200
      },
      "input":{"shape":"CreatePrivateConnectionInput"},
      "output":{"shape":"CreatePrivateConnectionOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Creates a Private Connection to a target resource.</p>",
      "endpoint":{"hostPrefix":"cp."},
      "idempotent":true
    },
    "CreateTrigger":{
      "name":"CreateTrigger",
      "http":{
        "method":"POST",
        "requestUri":"/trigger/agent-space/{agentSpaceId}/triggers",
        "responseCode":201
      },
      "input":{"shape":"CreateTriggerRequest"},
      "output":{"shape":"CreateTriggerResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Creates a new Trigger in the specified agent space</p>",
      "endpoint":{"hostPrefix":"dp."}
    },
    "DeleteAgentSpace":{
      "name":"DeleteAgentSpace",
      "http":{
        "method":"DELETE",
        "requestUri":"/v1/agentspaces/{agentSpaceId}",
        "responseCode":204
      },
      "input":{"shape":"DeleteAgentSpaceInput"},
      "output":{"shape":"DeleteAgentSpaceOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Deletes an AgentSpace. This operation is idempotent and returns a 204 No Content response on success.</p>",
      "endpoint":{"hostPrefix":"cp."},
      "idempotent":true
    },
    "DeleteAsset":{
      "name":"DeleteAsset",
      "http":{
        "method":"DELETE",
        "requestUri":"/asset/agent-space/{agentSpaceId}/assets/{assetId}",
        "responseCode":200
      },
      "input":{"shape":"DeleteAssetRequest"},
      "output":{"shape":"DeleteAssetResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Deletes an asset and all its files from the specified agent space</p>",
      "endpoint":{"hostPrefix":"dp."},
      "idempotent":true
    },
    "DeleteAssetFile":{
      "name":"DeleteAssetFile",
      "http":{
        "method":"DELETE",
        "requestUri":"/asset/agent-space/{agentSpaceId}/assets/{assetId}/files/{path+}",
        "responseCode":200
      },
      "input":{"shape":"DeleteAssetFileRequest"},
      "output":{"shape":"DeleteAssetFileResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Deletes a file from an asset</p>",
      "endpoint":{"hostPrefix":"dp."},
      "idempotent":true
    },
    "DeletePrivateConnection":{
      "name":"DeletePrivateConnection",
      "http":{
        "method":"DELETE",
        "requestUri":"/v1/private-connections/{name}",
        "responseCode":200
      },
      "input":{"shape":"DeletePrivateConnectionInput"},
      "output":{"shape":"DeletePrivateConnectionOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Deletes a Private Connection. The deletion is asynchronous and returns DELETE_IN_PROGRESS status.</p>",
      "endpoint":{"hostPrefix":"cp."},
      "idempotent":true
    },
    "DeleteTrigger":{
      "name":"DeleteTrigger",
      "http":{
        "method":"DELETE",
        "requestUri":"/trigger/agent-space/{agentSpaceId}/triggers/{triggerId}",
        "responseCode":200
      },
      "input":{"shape":"DeleteTriggerRequest"},
      "output":{"shape":"DeleteTriggerResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Deletes a Trigger from the specified agent space</p>",
      "endpoint":{"hostPrefix":"dp."}
    },
    "DeregisterService":{
      "name":"DeregisterService",
      "http":{
        "method":"DELETE",
        "requestUri":"/v1/services/{serviceId}",
        "responseCode":200
      },
      "input":{"shape":"DeregisterServiceInput"},
      "output":{"shape":"DeregisterServiceOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Deregister a service</p>",
      "endpoint":{"hostPrefix":"cp."},
      "idempotent":true
    },
    "DescribePrivateConnection":{
      "name":"DescribePrivateConnection",
      "http":{
        "method":"GET",
        "requestUri":"/v1/private-connections/{name}",
        "responseCode":200
      },
      "input":{"shape":"DescribePrivateConnectionInput"},
      "output":{"shape":"DescribePrivateConnectionOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Retrieves details of an existing Private Connection.</p>",
      "endpoint":{"hostPrefix":"cp."},
      "readonly":true
    },
    "DisableOperatorApp":{
      "name":"DisableOperatorApp",
      "http":{
        "method":"DELETE",
        "requestUri":"/v1/agentspaces/{agentSpaceId}/operator",
        "responseCode":200
      },
      "input":{"shape":"DisableOperatorAppInput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"IdentityCenterServiceException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Disable the Operator App for the specified AgentSpace</p>",
      "endpoint":{"hostPrefix":"cp."},
      "idempotent":true
    },
    "DisassociateService":{
      "name":"DisassociateService",
      "http":{
        "method":"DELETE",
        "requestUri":"/v1/agentspaces/{agentSpaceId}/associations/{associationId}",
        "responseCode":204
      },
      "input":{"shape":"DisassociateServiceInput"},
      "output":{"shape":"DisassociateServiceOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Deletes a specific service association from an AgentSpace. This operation is idempotent and returns a 204 No Content response on success.</p>",
      "endpoint":{"hostPrefix":"cp."},
      "idempotent":true
    },
    "EnableOperatorApp":{
      "name":"EnableOperatorApp",
      "http":{
        "method":"POST",
        "requestUri":"/v1/agentspaces/{agentSpaceId}/operator",
        "responseCode":200
      },
      "input":{"shape":"EnableOperatorAppInput"},
      "output":{"shape":"EnableOperatorAppOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"IdentityCenterServiceException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Enable the Operator App to access the given AgentSpace</p>",
      "endpoint":{"hostPrefix":"cp."}
    },
    "GetAccountUsage":{
      "name":"GetAccountUsage",
      "http":{
        "method":"GET",
        "requestUri":"/usage/account",
        "responseCode":200
      },
      "input":{"shape":"GetAccountUsageInput"},
      "output":{"shape":"GetAccountUsageOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Retrieves monthly account usage metrics and limits for the AWS account.</p>",
      "endpoint":{"hostPrefix":"dp."},
      "readonly":true
    },
    "GetAgentSpace":{
      "name":"GetAgentSpace",
      "http":{
        "method":"GET",
        "requestUri":"/v1/agentspaces/{agentSpaceId}",
        "responseCode":200
      },
      "input":{"shape":"GetAgentSpaceInput"},
      "output":{"shape":"GetAgentSpaceOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Retrieves detailed information about a specific AgentSpace.</p>",
      "endpoint":{"hostPrefix":"cp."},
      "readonly":true
    },
    "GetAsset":{
      "name":"GetAsset",
      "http":{
        "method":"GET",
        "requestUri":"/asset/agent-space/{agentSpaceId}/assets/{assetId}",
        "responseCode":200
      },
      "input":{"shape":"GetAssetRequest"},
      "output":{"shape":"GetAssetResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Gets an asset from the specified agent space</p>",
      "endpoint":{"hostPrefix":"dp."},
      "readonly":true
    },
    "GetAssetContent":{
      "name":"GetAssetContent",
      "http":{
        "method":"GET",
        "requestUri":"/asset/agent-space/{agentSpaceId}/assets/{assetId}/content",
        "responseCode":200
      },
      "input":{"shape":"GetAssetContentRequest"},
      "output":{"shape":"GetAssetContentResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Gets an asset's content as a zip bundle</p>",
      "endpoint":{"hostPrefix":"dp."},
      "readonly":true
    },
    "GetAssetFile":{
      "name":"GetAssetFile",
      "http":{
        "method":"GET",
        "requestUri":"/asset/agent-space/{agentSpaceId}/assets/{assetId}/files/{path+}",
        "responseCode":200
      },
      "input":{"shape":"GetAssetFileRequest"},
      "output":{"shape":"GetAssetFileResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Gets a file from an asset</p>",
      "endpoint":{"hostPrefix":"dp."},
      "readonly":true
    },
    "GetAssociation":{
      "name":"GetAssociation",
      "http":{
        "method":"GET",
        "requestUri":"/v1/agentspaces/{agentSpaceId}/associations/{associationId}",
        "responseCode":200
      },
      "input":{"shape":"GetAssociationInput"},
      "output":{"shape":"GetAssociationOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Retrieves given associations configured for a specific AgentSpace.</p>",
      "endpoint":{"hostPrefix":"cp."},
      "readonly":true
    },
    "GetBacklogTask":{
      "name":"GetBacklogTask",
      "http":{
        "method":"GET",
        "requestUri":"/backlog/agent-space/{agentSpaceId}/tasks/{taskId}",
        "responseCode":200
      },
      "input":{"shape":"GetBacklogTaskRequest"},
      "output":{"shape":"GetBacklogTaskResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Gets a backlog task for the specified agent space and task id</p>",
      "endpoint":{"hostPrefix":"dp."},
      "readonly":true
    },
    "GetOperatorApp":{
      "name":"GetOperatorApp",
      "http":{
        "method":"GET",
        "requestUri":"/v2/agentspaces/{agentSpaceId}/operator",
        "responseCode":200
      },
      "input":{"shape":"GetOperatorAppInput"},
      "output":{"shape":"GetOperatorAppOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Get the full auth configuration of operator including any enabled auth flow</p>",
      "endpoint":{"hostPrefix":"cp."},
      "readonly":true
    },
    "GetRecommendation":{
      "name":"GetRecommendation",
      "http":{
        "method":"GET",
        "requestUri":"/backlog/agent-space/{agentSpaceId}/recommendations/{recommendationId}",
        "responseCode":200
      },
      "input":{"shape":"GetRecommendationRequest"},
      "output":{"shape":"GetRecommendationResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Retrieves a specific recommendation by its ID</p>",
      "endpoint":{"hostPrefix":"dp."},
      "readonly":true
    },
    "GetService":{
      "name":"GetService",
      "http":{
        "method":"GET",
        "requestUri":"/v1/services/{serviceId}",
        "responseCode":200
      },
      "input":{"shape":"GetServiceInput"},
      "output":{"shape":"GetServiceOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Retrieves given service by it's unique identifier</p>",
      "endpoint":{"hostPrefix":"cp."},
      "readonly":true
    },
    "GetTrigger":{
      "name":"GetTrigger",
      "http":{
        "method":"GET",
        "requestUri":"/trigger/agent-space/{agentSpaceId}/triggers/{triggerId}",
        "responseCode":200
      },
      "input":{"shape":"GetTriggerRequest"},
      "output":{"shape":"GetTriggerResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Gets a Trigger from the specified agent space</p>",
      "endpoint":{"hostPrefix":"dp."},
      "readonly":true
    },
    "ListAgentSpaces":{
      "name":"ListAgentSpaces",
      "http":{
        "method":"POST",
        "requestUri":"/v1/agentspaces/list",
        "responseCode":200
      },
      "input":{"shape":"ListAgentSpacesInput"},
      "output":{"shape":"ListAgentSpacesOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Lists all AgentSpaces with optional pagination.</p>",
      "endpoint":{"hostPrefix":"cp."},
      "readonly":true
    },
    "ListAssetFiles":{
      "name":"ListAssetFiles",
      "http":{
        "method":"GET",
        "requestUri":"/asset/agent-space/{agentSpaceId}/assets/{assetId}/files",
        "responseCode":200
      },
      "input":{"shape":"ListAssetFilesRequest"},
      "output":{"shape":"ListAssetFilesResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Lists files in an asset</p>",
      "endpoint":{"hostPrefix":"dp."},
      "readonly":true
    },
    "ListAssetTypes":{
      "name":"ListAssetTypes",
      "http":{
        "method":"GET",
        "requestUri":"/asset/types",
        "responseCode":200
      },
      "input":{"shape":"ListAssetTypesRequest"},
      "output":{"shape":"ListAssetTypesResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Lists the supported asset types</p>",
      "endpoint":{"hostPrefix":"dp."},
      "readonly":true
    },
    "ListAssetVersions":{
      "name":"ListAssetVersions",
      "http":{
        "method":"GET",
        "requestUri":"/asset/agent-space/{agentSpaceId}/assets/{assetId}/versions",
        "responseCode":200
      },
      "input":{"shape":"ListAssetVersionsRequest"},
      "output":{"shape":"ListAssetVersionsResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Lists versions of an asset in the specified agent space</p>",
      "endpoint":{"hostPrefix":"dp."},
      "readonly":true
    },
    "ListAssets":{
      "name":"ListAssets",
      "http":{
        "method":"GET",
        "requestUri":"/asset/agent-space/{agentSpaceId}/assets",
        "responseCode":200
      },
      "input":{"shape":"ListAssetsRequest"},
      "output":{"shape":"ListAssetsResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Lists assets in the specified agent space</p>",
      "endpoint":{"hostPrefix":"dp."},
      "readonly":true
    },
    "ListAssociations":{
      "name":"ListAssociations",
      "http":{
        "method":"POST",
        "requestUri":"/v1/agentspaces/{agentSpaceId}/associations/list",
        "responseCode":200
      },
      "input":{"shape":"ListAssociationsInput"},
      "output":{"shape":"ListAssociationsOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>List all associations for given AgentSpace</p>",
      "endpoint":{"hostPrefix":"cp."},
      "readonly":true
    },
    "ListBacklogTasks":{
      "name":"ListBacklogTasks",
      "http":{
        "method":"POST",
        "requestUri":"/backlog/agent-space/{agentSpaceId}/tasks/list",
        "responseCode":200
      },
      "input":{"shape":"ListBacklogTasksRequest"},
      "output":{"shape":"ListBacklogTasksResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Lists backlog tasks in the specified agent space with optional filtering and sorting</p>",
      "endpoint":{"hostPrefix":"dp."}
    },
    "ListChats":{
      "name":"ListChats",
      "http":{
        "method":"GET",
        "requestUri":"/agents/agent-space/{agentSpaceId}/chat/list",
        "responseCode":200
      },
      "input":{"shape":"ListChatsRequest"},
      "output":{"shape":"ListChatsResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Retrieves a paginated list of the user's recent chat executions</p>",
      "endpoint":{"hostPrefix":"dp."}
    },
    "ListExecutions":{
      "name":"ListExecutions",
      "http":{
        "method":"POST",
        "requestUri":"/journal/agent-space/{agentSpaceId}/executions",
        "responseCode":200
      },
      "input":{"shape":"ListExecutionsRequest"},
      "output":{"shape":"ListExecutionsResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>List executions</p>",
      "endpoint":{"hostPrefix":"dp."}
    },
    "ListGoals":{
      "name":"ListGoals",
      "http":{
        "method":"POST",
        "requestUri":"/backlog/agent-space/{agentSpaceId}/goals/list",
        "responseCode":200
      },
      "input":{"shape":"ListGoalsRequest"},
      "output":{"shape":"ListGoalsResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Lists goals in the specified agent space with optional filtering</p>",
      "endpoint":{"hostPrefix":"dp."}
    },
    "ListJournalRecords":{
      "name":"ListJournalRecords",
      "http":{
        "method":"POST",
        "requestUri":"/journal/agent-space/{agentSpaceId}/journalRecords",
        "responseCode":200
      },
      "input":{"shape":"ListJournalRecordsRequest"},
      "output":{"shape":"ListJournalRecordsResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>List journal records for a specific execution</p>",
      "endpoint":{"hostPrefix":"dp."}
    },
    "ListPendingMessages":{
      "name":"ListPendingMessages",
      "http":{
        "method":"POST",
        "requestUri":"/agents/agent-space/{agentSpaceId}/pendingMessages",
        "responseCode":200
      },
      "input":{"shape":"ListPendingMessagesRequest"},
      "output":{"shape":"ListPendingMessagesResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>List pending messages for a specific execution.</p>",
      "endpoint":{"hostPrefix":"dp."}
    },
    "ListPrivateConnections":{
      "name":"ListPrivateConnections",
      "http":{
        "method":"GET",
        "requestUri":"/v1/private-connections",
        "responseCode":200
      },
      "input":{"shape":"ListPrivateConnectionsInput"},
      "output":{"shape":"ListPrivateConnectionsOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Lists all Private Connections in the caller's account.</p>",
      "endpoint":{"hostPrefix":"cp."},
      "readonly":true
    },
    "ListRecommendations":{
      "name":"ListRecommendations",
      "http":{
        "method":"POST",
        "requestUri":"/backlog/agent-space/{agentSpaceId}/recommendations/list",
        "responseCode":200
      },
      "input":{"shape":"ListRecommendationsRequest"},
      "output":{"shape":"ListRecommendationsResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Lists recommendations for the specified agent space</p>",
      "endpoint":{"hostPrefix":"dp."}
    },
    "ListServices":{
      "name":"ListServices",
      "http":{
        "method":"POST",
        "requestUri":"/v1/services/list",
        "responseCode":200
      },
      "input":{"shape":"ListServicesInput"},
      "output":{"shape":"ListServicesOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>List a list of registered service on the account level.</p>",
      "endpoint":{"hostPrefix":"cp."},
      "readonly":true
    },
    "ListTagsForResource":{
      "name":"ListTagsForResource",
      "http":{
        "method":"GET",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"ListTagsForResourceRequest"},
      "output":{"shape":"ListTagsForResourceResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Lists tags for the specified AWS DevOps Agent resource.</p>",
      "endpoint":{"hostPrefix":"cp."},
      "readonly":true
    },
    "ListTriggers":{
      "name":"ListTriggers",
      "http":{
        "method":"GET",
        "requestUri":"/trigger/agent-space/{agentSpaceId}/triggers",
        "responseCode":200
      },
      "input":{"shape":"ListTriggersRequest"},
      "output":{"shape":"ListTriggersResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Lists Triggers in the specified agent space</p>",
      "endpoint":{"hostPrefix":"dp."},
      "readonly":true
    },
    "ListWebhooks":{
      "name":"ListWebhooks",
      "http":{
        "method":"POST",
        "requestUri":"/v1/agentspaces/{agentSpaceId}/associations/{associationId}/webhooks/list",
        "responseCode":200
      },
      "input":{"shape":"ListWebhooksInput"},
      "output":{"shape":"ListWebhooksOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>List all webhooks for given Association</p>",
      "endpoint":{"hostPrefix":"cp."},
      "readonly":true
    },
    "RegisterService":{
      "name":"RegisterService",
      "http":{
        "method":"POST",
        "requestUri":"/v1/register/{service}",
        "responseCode":201
      },
      "input":{"shape":"RegisterServiceInput"},
      "output":{"shape":"RegisterServiceOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>This operation registers the specified service</p>",
      "endpoint":{"hostPrefix":"cp."}
    },
    "SendMessage":{
      "name":"SendMessage",
      "http":{
        "method":"POST",
        "requestUri":"/agents/agent-space/{agentSpaceId}/chat/sendMessage",
        "responseCode":200
      },
      "input":{"shape":"SendMessageRequest"},
      "output":{"shape":"SendMessageResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Sends a chat message and streams the response for the specified agent space execution</p>",
      "endpoint":{"hostPrefix":"dp."}
    },
    "TagResource":{
      "name":"TagResource",
      "http":{
        "method":"POST",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":204
      },
      "input":{"shape":"TagResourceRequest"},
      "output":{"shape":"TagResourceResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Adds or overwrites tags for the specified AWS DevOps Agent resource.</p>",
      "endpoint":{"hostPrefix":"cp."},
      "idempotent":true
    },
    "UntagResource":{
      "name":"UntagResource",
      "http":{
        "method":"DELETE",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":204
      },
      "input":{"shape":"UntagResourceRequest"},
      "output":{"shape":"UntagResourceResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Removes tags from the specified AWS DevOps Agent resource.</p>",
      "endpoint":{"hostPrefix":"cp."},
      "idempotent":true
    },
    "UpdateAgentSpace":{
      "name":"UpdateAgentSpace",
      "http":{
        "method":"PATCH",
        "requestUri":"/v1/agentspaces/{agentSpaceId}",
        "responseCode":200
      },
      "input":{"shape":"UpdateAgentSpaceInput"},
      "output":{"shape":"UpdateAgentSpaceOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Updates the information of an existing AgentSpace.</p>",
      "endpoint":{"hostPrefix":"cp."}
    },
    "UpdateAsset":{
      "name":"UpdateAsset",
      "http":{
        "method":"PATCH",
        "requestUri":"/asset/agent-space/{agentSpaceId}/assets/{assetId}",
        "responseCode":200
      },
      "input":{"shape":"UpdateAssetRequest"},
      "output":{"shape":"UpdateAssetResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Updates an asset in the specified agent space</p>",
      "endpoint":{"hostPrefix":"dp."}
    },
    "UpdateAssetFile":{
      "name":"UpdateAssetFile",
      "http":{
        "method":"PATCH",
        "requestUri":"/asset/agent-space/{agentSpaceId}/assets/{assetId}/files/{path+}",
        "responseCode":200
      },
      "input":{"shape":"UpdateAssetFileRequest"},
      "output":{"shape":"UpdateAssetFileResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Updates a file in an asset</p>",
      "endpoint":{"hostPrefix":"dp."}
    },
    "UpdateAssociation":{
      "name":"UpdateAssociation",
      "http":{
        "method":"PATCH",
        "requestUri":"/v1/agentspaces/{agentSpaceId}/associations/{associationId}",
        "responseCode":200
      },
      "input":{"shape":"UpdateAssociationInput"},
      "output":{"shape":"UpdateAssociationOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Partially updates the configuration of an existing service association for an AgentSpace. Present fields are fully replaced; absent fields are left unchanged. Returns 200 OK on success.</p>",
      "endpoint":{"hostPrefix":"cp."}
    },
    "UpdateBacklogTask":{
      "name":"UpdateBacklogTask",
      "http":{
        "method":"PATCH",
        "requestUri":"/backlog/agent-space/{agentSpaceId}/tasks/{taskId}",
        "responseCode":200
      },
      "input":{"shape":"UpdateBacklogTaskRequest"},
      "output":{"shape":"UpdateBacklogTaskResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Update an existing backlog task.</p>",
      "endpoint":{"hostPrefix":"dp."}
    },
    "UpdateGoal":{
      "name":"UpdateGoal",
      "http":{
        "method":"PATCH",
        "requestUri":"/backlog/agent-space/{agentSpaceId}/goals/{goalId}",
        "responseCode":200
      },
      "input":{"shape":"UpdateGoalRequest"},
      "output":{"shape":"UpdateGoalResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Update an existing goal</p>",
      "endpoint":{"hostPrefix":"dp."}
    },
    "UpdateOperatorAppIdpConfig":{
      "name":"UpdateOperatorAppIdpConfig",
      "http":{
        "method":"PATCH",
        "requestUri":"/v1/agentspaces/{agentSpaceId}/operator/idp",
        "responseCode":200
      },
      "input":{"shape":"UpdateOperatorAppIdpConfigInput"},
      "output":{"shape":"UpdateOperatorAppIdpConfigOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Update the external Identity Provider configuration for the Operator App</p>",
      "endpoint":{"hostPrefix":"cp."}
    },
    "UpdatePrivateConnectionCertificate":{
      "name":"UpdatePrivateConnectionCertificate",
      "http":{
        "method":"POST",
        "requestUri":"/v1/private-connections/{name}/certificate",
        "responseCode":200
      },
      "input":{"shape":"UpdatePrivateConnectionCertificateInput"},
      "output":{"shape":"UpdatePrivateConnectionCertificateOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Updates the certificate associated with a Private Connection.</p>",
      "endpoint":{"hostPrefix":"cp."}
    },
    "UpdateRecommendation":{
      "name":"UpdateRecommendation",
      "http":{
        "method":"PATCH",
        "requestUri":"/backlog/agent-space/{agentSpaceId}/recommendations/{recommendationId}",
        "responseCode":200
      },
      "input":{"shape":"UpdateRecommendationRequest"},
      "output":{"shape":"UpdateRecommendationResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Updates an existing recommendation with new content, status, or metadata</p>",
      "endpoint":{"hostPrefix":"dp."},
      "idempotent":true
    },
    "UpdateTrigger":{
      "name":"UpdateTrigger",
      "http":{
        "method":"PATCH",
        "requestUri":"/trigger/agent-space/{agentSpaceId}/triggers/{triggerId}",
        "responseCode":200
      },
      "input":{"shape":"UpdateTriggerRequest"},
      "output":{"shape":"UpdateTriggerResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Updates the status of an existing Trigger</p>",
      "endpoint":{"hostPrefix":"dp."},
      "idempotent":true
    },
    "ValidateAwsAssociations":{
      "name":"ValidateAwsAssociations",
      "http":{
        "method":"POST",
        "requestUri":"/v1/agentspaces/{agentSpaceId}/associations/validate",
        "responseCode":204
      },
      "input":{"shape":"ValidateAwsAssociationsInput"},
      "output":{"shape":"ValidateAwsAssociationsOutput"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ContentSizeExceededException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Validates an aws association and set status and returns a 204 No Content response on success.</p>",
      "endpoint":{"hostPrefix":"cp."},
      "idempotent":true
    }
  },
  "shapes":{
    "AWSConfiguration":{
      "type":"structure",
      "required":[
        "assumableRoleArn",
        "accountId",
        "accountType"
      ],
      "members":{
        "assumableRoleArn":{
          "shape":"RoleArn",
          "documentation":"<p>Role ARN to be assumed by AIDevOps to operate on behalf of customer.</p>"
        },
        "accountId":{
          "shape":"AWSConfigurationAccountIdString",
          "documentation":"<p>AWS Account Id corresponding to provided resources.</p>"
        },
        "accountType":{
          "shape":"MonitorAccountType",
          "documentation":"<p>Account Type 'monitor' for AIDevOps monitoring.</p>"
        }
      },
      "documentation":"<p>Configuration for AWS monitor account integration, allowing AIDevOps to monitor AWS resources.</p>"
    },
    "AWSConfigurationAccountIdString":{
      "type":"string",
      "pattern":"\\d{12}"
    },
    "AccessDeniedException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>Detailed error message describing why access was denied.</p>"
        }
      },
      "documentation":"<p>Access to the requested resource is denied due to insufficient permissions.</p>",
      "error":{
        "httpStatusCode":403,
        "senderFault":true
      },
      "exception":true
    },
    "AdditionalServiceDetails":{
      "type":"structure",
      "members":{
        "github":{
          "shape":"RegisteredGithubServiceDetails",
          "documentation":"<p>GitHub-specific service details.</p>"
        },
        "slack":{
          "shape":"RegisteredSlackServiceDetails",
          "documentation":"<p>Slack-specific service details.</p>"
        },
        "mcpserverdatadog":{
          "shape":"RegisteredMCPServerDetails",
          "documentation":"<p>Datadog MCP server-specific service details.</p>"
        },
        "mcpserver":{
          "shape":"RegisteredMCPServerDetails",
          "documentation":"<p>MCP server-specific service details.</p>"
        },
        "servicenow":{
          "shape":"RegisteredServiceNowDetails",
          "documentation":"<p>ServiceNow-specific service details.</p>"
        },
        "gitlab":{
          "shape":"RegisteredGitLabServiceDetails",
          "documentation":"<p>GitLab-specific service details.</p>"
        },
        "mcpserversplunk":{
          "shape":"RegisteredMCPServerDetails",
          "documentation":"<p>Splunk MCP server-specific service details.</p>"
        },
        "mcpservernewrelic":{
          "shape":"RegisteredNewRelicDetails",
          "documentation":"<p>New Relic MCP server-specific service details.</p>"
        },
        "azuredevops":{
          "shape":"RegisteredAzureDevOpsServiceDetails",
          "documentation":"<p>Azure DevOps specific service details.</p>"
        },
        "azureidentity":{
          "shape":"RegisteredAzureIdentityDetails",
          "documentation":"<p>Azure identity details for services using Azure authentication.</p>"
        },
        "mcpservergrafana":{
          "shape":"RegisteredGrafanaServerDetails",
          "documentation":"<p>Grafana MCP server-specific service details.</p>"
        },
        "pagerduty":{
          "shape":"RegisteredPagerDutyDetails",
          "documentation":"<p>Pagerduty service details.</p>"
        },
        "mcpserversigv4":{
          "shape":"RegisteredMCPServerSigV4Details",
          "documentation":"<p>SigV4-authenticated MCP server-specific service details.</p>"
        },
        "remoteagent":{
          "shape":"RegisteredRemoteAgentDetails",
          "documentation":"<p>Remote A2A agent-specific service details (token-based auth).</p>"
        },
        "remoteagentsigv4":{
          "shape":"RegisteredRemoteAgentSigV4Details",
          "documentation":"<p>Remote A2A agent-specific service details (SigV4 auth).</p>"
        }
      },
      "documentation":"<p>Union of service-specific details for different service types.</p>",
      "union":true
    },
    "AdditionalServiceRegistrationStep":{
      "type":"structure",
      "members":{
        "oauth":{
          "shape":"OAuthAdditionalStepDetails",
          "documentation":"<p>OAuth authorization step required.</p>"
        }
      },
      "documentation":"<p>Additional steps required to complete service registration.</p>",
      "union":true
    },
    "AgentSpace":{
      "type":"structure",
      "required":[
        "name",
        "createdAt",
        "updatedAt",
        "agentSpaceId"
      ],
      "members":{
        "name":{
          "shape":"AgentSpaceName",
          "documentation":"<p>The name of the AgentSpace.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the AgentSpace.</p>"
        },
        "locale":{
          "shape":"Locale",
          "documentation":"<p>The locale for the AgentSpace, which determines the language used in agent responses.</p>"
        },
        "createdAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp when the resource was created.</p>"
        },
        "updatedAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp when the resource was last updated.</p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The ARN of the AWS Key Management Service (AWS KMS) customer managed key that's used to encrypt resources.</p>"
        },
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier of the AgentSpace</p>"
        }
      },
      "documentation":"<p>Represents a complete AgentSpace with all its properties, timestamps, encryption settings, and unique identifier.</p>"
    },
    "AgentSpaceId":{
      "type":"string",
      "documentation":"<p>Unique identifier for an agent space (allows alphanumeric characters and hyphens; 1-64 characters)</p>",
      "pattern":"[a-zA-Z0-9-]{1,64}"
    },
    "AgentSpaceList":{
      "type":"list",
      "member":{"shape":"AgentSpace"},
      "documentation":"<p>A list of AgentSpace resources.</p>"
    },
    "AgentSpaceName":{
      "type":"string",
      "documentation":"<p>Agent space name field</p>",
      "max":255,
      "min":1,
      "pattern":"[\\p{L}\\p{N}\\p{P}\\p{S}\\p{Z}]+"
    },
    "ApiKeyValue":{
      "type":"string",
      "documentation":"<p>API Key Value for service.</p>",
      "min":1,
      "sensitive":true
    },
    "Asset":{
      "type":"structure",
      "required":[
        "assetId",
        "assetType",
        "metadata",
        "version",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "assetId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier for this asset</p>"
        },
        "assetType":{
          "shape":"AssetType",
          "documentation":"<p>The type of this asset</p>"
        },
        "metadata":{
          "shape":"Document",
          "documentation":"<p>The metadata for this asset</p>"
        },
        "version":{
          "shape":"Integer",
          "documentation":"<p>The version number of this asset</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>Timestamp when this asset was created</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>Timestamp when this asset was last updated</p>"
        }
      },
      "documentation":"<p>Represents an asset in an agent space, including its identifier, type, metadata, version, and timestamps.</p>"
    },
    "AssetContent":{
      "type":"structure",
      "members":{
        "file":{
          "shape":"AssetFileContent",
          "documentation":"<p>A single file with path and content</p>"
        },
        "zip":{
          "shape":"AssetZipContent",
          "documentation":"<p>A zip file containing multiple files</p>"
        },
        "sourceUrl":{
          "shape":"AssetSourceUrlContent",
          "documentation":"<p>A source URL to import asset content from</p>"
        }
      },
      "documentation":"<p>Content for an asset: a single file, a zip bundle, or a source URL to import from</p>",
      "union":true
    },
    "AssetContentUrl":{
      "type":"string",
      "documentation":"<p>URL to a source repository or directory containing asset content</p>",
      "max":2048,
      "min":1,
      "pattern":"https://.*"
    },
    "AssetFile":{
      "type":"structure",
      "required":[
        "path",
        "content",
        "version",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "path":{
          "shape":"AssetFilePath",
          "documentation":"<p>The path of this file within the asset</p>"
        },
        "content":{
          "shape":"AssetFileBody",
          "documentation":"<p>The content of this file</p>"
        },
        "metadata":{
          "shape":"Document",
          "documentation":"<p>The metadata for this file</p>"
        },
        "version":{
          "shape":"Integer",
          "documentation":"<p>The asset version this file belongs to</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>Timestamp when this file was created</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>Timestamp when this file was last updated</p>"
        }
      },
      "documentation":"<p>Represents a single file within an asset, including its path, content, version, and timestamps.</p>"
    },
    "AssetFileBody":{
      "type":"structure",
      "members":{
        "bytes":{"shape":"AssetFileBytes"},
        "text":{"shape":"AssetFileText"}
      },
      "documentation":"<p>Content of an individual asset file</p>",
      "union":true
    },
    "AssetFileBytes":{
      "type":"blob",
      "documentation":"<p>Binary file content</p>",
      "max":6291456,
      "min":0
    },
    "AssetFileContent":{
      "type":"structure",
      "required":[
        "path",
        "body"
      ],
      "members":{
        "path":{
          "shape":"AssetFilePath",
          "documentation":"<p>The path of the file within the asset</p>"
        },
        "body":{
          "shape":"AssetFileBody",
          "documentation":"<p>The file content</p>"
        },
        "metadata":{
          "shape":"Document",
          "documentation":"<p>Optional metadata for this file</p>"
        }
      },
      "documentation":"<p>A single file with path and content</p>"
    },
    "AssetFilePath":{
      "type":"string",
      "documentation":"<p>The path of a file within an asset</p>",
      "max":512,
      "min":1,
      "pattern":"[a-zA-Z0-9_./ ()-]+"
    },
    "AssetFileSummary":{
      "type":"structure",
      "required":[
        "path",
        "version",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "path":{
          "shape":"AssetFilePath",
          "documentation":"<p>The path of this file within the asset</p>"
        },
        "metadata":{
          "shape":"Document",
          "documentation":"<p>The metadata for this file</p>"
        },
        "version":{
          "shape":"Integer",
          "documentation":"<p>The asset version this file belongs to</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>Timestamp when this file was created</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>Timestamp when this file was last updated</p>"
        }
      },
      "documentation":"<p>Summary of a file within an asset, including its path, version, and timestamps.</p>"
    },
    "AssetFileSummaryList":{
      "type":"list",
      "member":{"shape":"AssetFileSummary"}
    },
    "AssetFileText":{
      "type":"string",
      "documentation":"<p>Text file content</p>",
      "max":1572864,
      "min":0
    },
    "AssetIdList":{
      "type":"list",
      "member":{"shape":"String"},
      "documentation":"<p>List of asset identifiers to attach to a message</p>",
      "max":20,
      "min":0
    },
    "AssetList":{
      "type":"list",
      "member":{"shape":"Asset"}
    },
    "AssetSourceUrlContent":{
      "type":"structure",
      "required":["url"],
      "members":{
        "url":{
          "shape":"AssetContentUrl",
          "documentation":"<p>The source URL to import asset content from</p>"
        }
      },
      "documentation":"<p>Content for an asset sourced from an external URL.</p>"
    },
    "AssetType":{
      "type":"string",
      "documentation":"<p>The type of asset (e.g. skill, artifact)</p>",
      "max":64,
      "min":1
    },
    "AssetTypeList":{
      "type":"list",
      "member":{"shape":"AssetTypeSummary"}
    },
    "AssetTypeSummary":{
      "type":"structure",
      "required":[
        "assetType",
        "description"
      ],
      "members":{
        "assetType":{
          "shape":"AssetType",
          "documentation":"<p>The asset type identifier</p>"
        },
        "description":{
          "shape":"AssetTypeSummaryDescriptionString",
          "documentation":"<p>A description of the asset type</p>"
        }
      },
      "documentation":"<p>Summary of an asset type, including its identifier and description.</p>"
    },
    "AssetTypeSummaryDescriptionString":{
      "type":"string",
      "max":1024,
      "min":0
    },
    "AssetVersionMetadata":{
      "type":"structure",
      "required":[
        "version",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "version":{
          "shape":"Integer",
          "documentation":"<p>The version number of this asset</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>Timestamp when this asset version was created</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>Timestamp when this asset version was last updated</p>"
        }
      },
      "documentation":"<p>Metadata for a single version of an asset, including the version number and timestamps.</p>"
    },
    "AssetVersionMetadataList":{
      "type":"list",
      "member":{"shape":"AssetVersionMetadata"}
    },
    "AssetZipBytes":{
      "type":"blob",
      "documentation":"<p>Zip file content as bytes</p>",
      "max":6291456,
      "min":0
    },
    "AssetZipContent":{
      "type":"structure",
      "required":["zipFile"],
      "members":{
        "zipFile":{
          "shape":"AssetZipBytes",
          "documentation":"<p>The zip file bytes</p>"
        }
      },
      "documentation":"<p>A zip file containing asset files</p>"
    },
    "AssistantMessage":{
      "type":"list",
      "member":{"shape":"AssistantMessageBlock"}
    },
    "AssistantMessageBlock":{
      "type":"structure",
      "members":{
        "text":{
          "shape":"String",
          "documentation":"<p>Text content from the assistant.</p>"
        },
        "toolUse":{
          "shape":"Document",
          "documentation":"<p>Tool use request from the assistant.</p>"
        }
      },
      "documentation":"<p>A block of content in an assistant message.</p>",
      "union":true
    },
    "AssociateServiceInput":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "serviceId",
        "configuration"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier of the AgentSpace</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "serviceId":{
          "shape":"ServiceId",
          "documentation":"<p>The unique identifier of the service.</p>"
        },
        "configuration":{
          "shape":"ServiceConfiguration",
          "documentation":"<p>The configuration that directs how AgentSpace interacts with the given service.</p>"
        },
        "capabilities":{
          "shape":"AssociationCapabilities",
          "documentation":"<p>Enabled capabilities for this association.</p>"
        }
      },
      "documentation":"<p>Input for creating a new service association within an AgentSpace.</p>"
    },
    "AssociateServiceOutput":{
      "type":"structure",
      "required":["association"],
      "members":{
        "association":{"shape":"Association"},
        "webhook":{
          "shape":"GenericWebhook",
          "documentation":"<p>Generic webhook configuration</p>"
        }
      },
      "documentation":"<p>Output containing the newly created association and optional webhook configuration.</p>"
    },
    "Association":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "createdAt",
        "updatedAt",
        "associationId",
        "serviceId",
        "configuration"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier of the AgentSpace</p>"
        },
        "createdAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp when the resource was created.</p>"
        },
        "updatedAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp when the resource was last updated.</p>"
        },
        "status":{
          "shape":"ValidationStatus",
          "documentation":"<p>Validation status</p>"
        },
        "associationId":{
          "shape":"AssociationId",
          "documentation":"<p>The unique identifier of the given association.</p>"
        },
        "serviceId":{
          "shape":"ServiceId",
          "documentation":"<p>The identifier for associated service</p>"
        },
        "configuration":{
          "shape":"ServiceConfiguration",
          "documentation":"<p>The configuration that directs how AgentSpace interacts with the given service.</p>"
        },
        "capabilities":{
          "shape":"AssociationCapabilities",
          "documentation":"<p>Enabled capabilities for this association.</p>"
        }
      },
      "documentation":"<p>Represents a service association within an AgentSpace, defining how the agent interacts with external services.</p>"
    },
    "AssociationCapabilities":{
      "type":"map",
      "key":{"shape":"CapabilityType"},
      "value":{"shape":"CapabilityConfiguration"},
      "documentation":"<p>Per-capability enablement for the AWS DevOps Agent. Absent capability = disabled.</p>"
    },
    "AssociationId":{
      "type":"string",
      "documentation":"<p>Unique identifier for a service association within an AgentSpace</p>",
      "max":255,
      "min":1,
      "pattern":"[a-zA-Z0-9-]+"
    },
    "AssociationsList":{
      "type":"list",
      "member":{"shape":"Association"},
      "documentation":"<p>A list of service associations.</p>"
    },
    "AuthFlow":{
      "type":"string",
      "documentation":"<p>Authentication flow type for operator app.</p>",
      "enum":[
        "iam",
        "idc",
        "idp"
      ]
    },
    "AzureConfiguration":{
      "type":"structure",
      "required":["subscriptionId"],
      "members":{
        "subscriptionId":{
          "shape":"String",
          "documentation":"<p>Azure subscription ID corresponding to provided resources.</p>"
        }
      },
      "documentation":"<p>Configuration for Azure subscription integration.</p>"
    },
    "AzureDevOpsConfiguration":{
      "type":"structure",
      "required":[
        "organizationName",
        "projectId",
        "projectName"
      ],
      "members":{
        "organizationName":{
          "shape":"String",
          "documentation":"<p>Azure DevOps organization name.</p>"
        },
        "projectId":{
          "shape":"String",
          "documentation":"<p>Azure DevOps project ID.</p>"
        },
        "projectName":{
          "shape":"String",
          "documentation":"<p>Azure DevOps project name.</p>"
        }
      },
      "documentation":"<p>Configuration for Azure DevOps project integration.</p>"
    },
    "BackLogTimestamp":{
      "type":"timestamp",
      "documentation":"<p>Timestamp format used for backlog operations</p>",
      "timestampFormat":"iso8601"
    },
    "BacklogTaskDescription":{
      "type":"string",
      "documentation":"<p>Description for a backlog task (allows printable ASCII characters, tabs, and newlines; up to 10000 characters)</p>",
      "max":10000,
      "min":0
    },
    "BacklogTaskTitle":{
      "type":"string",
      "documentation":"<p>Title for a backlog task (allows printable ASCII characters, tabs, and newlines; 1-400 characters)</p>",
      "max":400,
      "min":1
    },
    "Boolean":{
      "type":"boolean",
      "box":true
    },
    "CapabilityConfiguration":{
      "type":"structure",
      "members":{
        "enabled":{
          "shape":"Boolean",
          "documentation":"<p>Whether the capability is enabled.</p>"
        }
      },
      "documentation":"<p>Capability configuration for the AWS DevOps Agent.</p>"
    },
    "CapabilityType":{
      "type":"string",
      "documentation":"<p>AWS DevOps Agent capability types representing the set of automated capabilities that can be enabled per association.</p>",
      "enum":[
        "RELEASE_READINESS_REVIEW",
        "RELEASE_READINESS_REVIEW_AUTOMATED_TESTING"
      ]
    },
    "CertificateString":{
      "type":"string",
      "documentation":"<p>String type for certificate or certificate chain.</p>",
      "max":32768,
      "min":1
    },
    "ChatExecution":{
      "type":"structure",
      "required":[
        "executionId",
        "createdAt"
      ],
      "members":{
        "executionId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier for the execution</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>Timestamp when the chat was created</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>Timestamp when the chat was last updated</p>"
        },
        "summary":{
          "shape":"String",
          "documentation":"<p>Summary or title of the chat</p>"
        }
      },
      "documentation":"<p>A single chat execution summary</p>"
    },
    "ChatExecutionId":{
      "type":"string",
      "documentation":"<p>Chat execution identifier — must be a valid UUID</p>",
      "pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
    },
    "ChatExecutionList":{
      "type":"list",
      "member":{"shape":"ChatExecution"}
    },
    "ClientId":{
      "type":"string",
      "documentation":"<p>Client ID for service authentication.</p>",
      "max":255,
      "min":1,
      "pattern":"[\\u0020-\\u007E]+",
      "sensitive":true
    },
    "ClientSecret":{
      "type":"string",
      "documentation":"<p>Client secret for service authentication.</p>",
      "max":512,
      "min":1,
      "pattern":"[\\S]+",
      "sensitive":true
    },
    "ConflictException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>Detailed error message describing the conflict.</p>"
        }
      },
      "documentation":"<p>The request conflicts with the current state of the resource.</p>",
      "error":{
        "httpStatusCode":409,
        "senderFault":true
      },
      "exception":true
    },
    "ContentSizeExceededException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>This exception is thrown when the content size exceeds the allowed limit.</p>",
      "error":{
        "httpStatusCode":413,
        "senderFault":true
      },
      "exception":true
    },
    "CreateAgentSpaceInput":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"AgentSpaceName",
          "documentation":"<p>The name of the AgentSpace.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the AgentSpace.</p>"
        },
        "locale":{
          "shape":"Locale",
          "documentation":"<p>The locale for the AgentSpace, which determines the language used in agent responses.</p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The ARN of the AWS Key Management Service (AWS KMS) customer managed key that's used to encrypt resources.</p>"
        },
        "clientToken":{
          "shape":"CreateAgentSpaceInputClientTokenString",
          "documentation":"<p>Client-provided token to ensure request idempotency. When the same token is provided in subsequent calls, the same response is returned within a 8-hour window.</p>",
          "idempotencyToken":true
        },
        "tags":{
          "shape":"Tags",
          "documentation":"<p>Tags to add to the AgentSpace at creation time.</p>"
        }
      },
      "documentation":"<p>Input for creating a new AgentSpace.</p>"
    },
    "CreateAgentSpaceInputClientTokenString":{
      "type":"string",
      "max":64,
      "min":0,
      "pattern":"[!-~]+"
    },
    "CreateAgentSpaceOutput":{
      "type":"structure",
      "required":["agentSpace"],
      "members":{
        "agentSpace":{"shape":"AgentSpace"},
        "tags":{
          "shape":"Tags",
          "documentation":"<p>Tags associated with the created AgentSpace.</p>"
        }
      },
      "documentation":"<p>Output containing the newly created AgentSpace.</p>"
    },
    "CreateAssetFileRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "assetId",
        "path",
        "content"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space containing the asset</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "assetId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the asset to create the file in</p>",
          "location":"uri",
          "locationName":"assetId"
        },
        "path":{
          "shape":"AssetFilePath",
          "documentation":"<p>The path of the file within the asset</p>",
          "location":"uri",
          "locationName":"path"
        },
        "content":{
          "shape":"AssetFileBody",
          "documentation":"<p>The content of the file to create</p>"
        },
        "metadata":{
          "shape":"Document",
          "documentation":"<p>Optional metadata describing this file</p>"
        },
        "clientToken":{
          "shape":"CreateAssetFileRequestClientTokenString",
          "documentation":"<p>A unique, case-sensitive identifier used for idempotent asset file creation</p>",
          "idempotencyToken":true
        }
      },
      "documentation":"<p>Request structure for creating an asset file</p>"
    },
    "CreateAssetFileRequestClientTokenString":{
      "type":"string",
      "max":128,
      "min":1
    },
    "CreateAssetFileResponse":{
      "type":"structure",
      "required":["file"],
      "members":{
        "file":{
          "shape":"AssetFile",
          "documentation":"<p>The asset file object</p>"
        }
      },
      "documentation":"<p>Response structure for creating an asset file</p>"
    },
    "CreateAssetRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "assetType",
        "content"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space where the asset will be created</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "assetType":{
          "shape":"AssetType",
          "documentation":"<p>The type of asset to create</p>"
        },
        "metadata":{
          "shape":"Document",
          "documentation":"<p>The metadata describing this asset</p>"
        },
        "content":{
          "shape":"AssetContent",
          "documentation":"<p>The content for the asset. Provide a single file, a zip bundle, or a sourceUrl to import from an external source.</p>"
        },
        "clientToken":{
          "shape":"CreateAssetRequestClientTokenString",
          "documentation":"<p>A unique, case-sensitive identifier used for idempotent asset creation</p>",
          "idempotencyToken":true
        }
      },
      "documentation":"<p>Request structure for creating a new asset</p>"
    },
    "CreateAssetRequestClientTokenString":{
      "type":"string",
      "max":128,
      "min":1
    },
    "CreateAssetResponse":{
      "type":"structure",
      "required":["asset"],
      "members":{
        "asset":{
          "shape":"Asset",
          "documentation":"<p>The asset object</p>"
        }
      },
      "documentation":"<p>Response structure for creating a new asset</p>"
    },
    "CreateBacklogTaskRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "taskType",
        "title",
        "priority"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space where the task will be created</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "reference":{
          "shape":"ReferenceInput",
          "documentation":"<p>Optional reference information for the task</p>"
        },
        "taskType":{
          "shape":"TaskType",
          "documentation":"<p>The type of task being created</p>"
        },
        "title":{
          "shape":"BacklogTaskTitle",
          "documentation":"<p>The title of the backlog task</p>"
        },
        "description":{
          "shape":"BacklogTaskDescription",
          "documentation":"<p>Optional detailed description of the task</p>"
        },
        "priority":{
          "shape":"Priority",
          "documentation":"<p>The priority level of the task</p>"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>Client-provided token for idempotent operations</p>",
          "idempotencyToken":true
        }
      },
      "documentation":"<p>Request structure for creating a new backlog task</p>"
    },
    "CreateBacklogTaskResponse":{
      "type":"structure",
      "required":["task"],
      "members":{
        "task":{
          "shape":"Task",
          "documentation":"<p>The newly created task object</p>"
        }
      },
      "documentation":"<p>Response structure containing the created backlog task</p>"
    },
    "CreateChatRequest":{
      "type":"structure",
      "required":["agentSpaceId"],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "userId":{
          "shape":"ResourceId",
          "documentation":"<p>The user identifier for the chat. This field is deprecated and will be ignored — the service resolves user identity from the authenticated session.</p>",
          "deprecated":true,
          "deprecatedMessage":"userId is managed by the service and should not be provided by the caller",
          "deprecatedSince":"2026-04-15",
          "location":"querystring",
          "locationName":"userId"
        },
        "userType":{
          "shape":"UserType",
          "documentation":"<p>The authentication type of the user</p>",
          "location":"querystring",
          "locationName":"userType"
        }
      },
      "documentation":"<p>Request structure for creating a new chat</p>"
    },
    "CreateChatResponse":{
      "type":"structure",
      "required":[
        "executionId",
        "createdAt"
      ],
      "members":{
        "executionId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier for the created execution</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>Timestamp when the chat was created</p>"
        }
      },
      "documentation":"<p>Response structure for creating a new chat</p>"
    },
    "CreatePrivateConnectionInput":{
      "type":"structure",
      "required":[
        "name",
        "mode"
      ],
      "members":{
        "name":{
          "shape":"PrivateConnectionName",
          "documentation":"<p>Unique name for this Private Connection within the account.</p>"
        },
        "mode":{
          "shape":"PrivateConnectionMode",
          "documentation":"<p>Private Connection mode configuration.</p>"
        },
        "tags":{
          "shape":"Tags",
          "documentation":"<p>Tags to add to the Private Connection at creation time.</p>"
        }
      },
      "documentation":"<p>Input for creating a new Private Connection.</p>"
    },
    "CreatePrivateConnectionOutput":{
      "type":"structure",
      "required":[
        "name",
        "type",
        "status"
      ],
      "members":{
        "name":{
          "shape":"PrivateConnectionName",
          "documentation":"<p>The name of the Private Connection.</p>"
        },
        "type":{
          "shape":"PrivateConnectionType",
          "documentation":"<p>The type of the Private Connection.</p>"
        },
        "resourceGatewayId":{
          "shape":"ResourceGatewayArn",
          "documentation":"<p>The service-managed Resource Gateway ARN. Only present for service-managed Private Connections.</p>"
        },
        "hostAddress":{
          "shape":"IpAddressOrDnsName",
          "documentation":"<p>IP address or DNS name of the target resource. Only present for service-managed Private Connections.</p>"
        },
        "vpcId":{
          "shape":"VpcId",
          "documentation":"<p>VPC identifier of the service-managed Resource Gateway. Only present for service-managed Private Connections.</p>"
        },
        "resourceConfigurationId":{
          "shape":"ResourceConfigurationArn",
          "documentation":"<p>The Resource Configuration ARN. Only present for self-managed Private Connections.</p>"
        },
        "status":{
          "shape":"PrivateConnectionStatus",
          "documentation":"<p>The status of the Private Connection.</p>"
        },
        "certificateExpiryTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The expiry time of the certificate associated with the Private Connection. Only present when a certificate is associated.</p>"
        },
        "dnsResolution":{
          "shape":"ResourceConfigDnsResolution",
          "documentation":"<p>DNS resolution mode for the Private Connection's resource gateway.</p>"
        },
        "failureMessage":{
          "shape":"FailureMessage",
          "documentation":"<p>Message describing the reason for a failed Private Connection creation, if applicable.</p>"
        },
        "tags":{
          "shape":"Tags",
          "documentation":"<p>Tags associated with the created Private Connection.</p>"
        }
      },
      "documentation":"<p>Output containing the newly created Private Connection summary.</p>"
    },
    "CreateTriggerRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "type",
        "condition",
        "action"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space where the Trigger will be created</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "type":{
          "shape":"TriggerType",
          "documentation":"<p>How the new Trigger fires</p>"
        },
        "condition":{
          "shape":"TriggerCondition",
          "documentation":"<p>The condition that fires the new Trigger</p>"
        },
        "action":{
          "shape":"TriggerAction",
          "documentation":"<p>The action the new Trigger performs when it fires</p>"
        },
        "status":{
          "shape":"TriggerStatus",
          "documentation":"<p>The initial status of the Trigger</p>"
        },
        "clientToken":{
          "shape":"CreateTriggerRequestClientTokenString",
          "documentation":"<p>A unique, case-sensitive identifier used for idempotent Trigger creation</p>",
          "idempotencyToken":true
        }
      },
      "documentation":"<p>Request structure for creating a new Trigger</p>"
    },
    "CreateTriggerRequestClientTokenString":{
      "type":"string",
      "max":128,
      "min":1
    },
    "CreateTriggerResponse":{
      "type":"structure",
      "required":["trigger"],
      "members":{
        "trigger":{
          "shape":"Trigger",
          "documentation":"<p>The Trigger object</p>"
        }
      },
      "documentation":"<p>Response structure for creating a new Trigger</p>"
    },
    "CustomHeaderName":{
      "type":"string",
      "documentation":"<p>HTTP header name. Allows alphanumeric characters, hyphens, and underscores.</p>",
      "max":256,
      "min":1,
      "pattern":"[a-zA-Z0-9-_]+"
    },
    "CustomHeaderValue":{
      "type":"string",
      "documentation":"<p>Value type for custom headers.</p>",
      "max":4096,
      "min":1,
      "pattern":"[!-~]([ \\t]*[!-~])*",
      "sensitive":true
    },
    "CustomHeaders":{
      "type":"map",
      "key":{"shape":"CustomHeaderName"},
      "value":{"shape":"CustomHeaderValue"},
      "documentation":"<p>Custom headers map.</p>",
      "max":10,
      "min":0
    },
    "DatadogAuthorizationConfig":{
      "type":"structure",
      "members":{
        "authorizationDiscovery":{
          "shape":"MCPServerAuthorizationDiscoveryConfig",
          "documentation":"<p>Datadog MCP server authorization discovery configuration.</p>"
        }
      },
      "documentation":"<p>Authorization configuration for Datadog MCP server (uses authorization discovery only).</p>",
      "union":true
    },
    "DatadogServiceDetails":{
      "type":"structure",
      "required":[
        "name",
        "endpoint",
        "authorizationConfig"
      ],
      "members":{
        "name":{
          "shape":"MCPServerName",
          "documentation":"<p>MCP server name.</p>"
        },
        "endpoint":{
          "shape":"MCPServerEndpoint",
          "documentation":"<p>MCP server endpoint URL.</p>"
        },
        "description":{
          "shape":"DatadogServiceDetailsDescriptionString",
          "documentation":"<p>Optional description for the MCP server.</p>"
        },
        "authorizationConfig":{
          "shape":"DatadogAuthorizationConfig",
          "documentation":"<p>Datadog MCP server authorization configuration (only authorization discovery is supported).</p>"
        }
      },
      "documentation":"<p>Complete service details for Datadog MCP server integration.</p>"
    },
    "DatadogServiceDetailsDescriptionString":{
      "type":"string",
      "documentation":"<p>Description field</p>",
      "max":500,
      "min":0,
      "pattern":"[\\p{L}\\p{N}\\p{P}\\p{S}\\p{Z}]+",
      "sensitive":true
    },
    "DateTime":{
      "type":"timestamp",
      "timestampFormat":"iso8601"
    },
    "DeleteAgentSpaceInput":{
      "type":"structure",
      "required":["agentSpaceId"],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier of the AgentSpace</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        }
      },
      "documentation":"<p>Input for deleting an AgentSpace.</p>"
    },
    "DeleteAgentSpaceOutput":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Empty output for successful AgentSpace deletion.</p>"
    },
    "DeleteAssetFileRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "assetId",
        "path"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space containing the asset</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "assetId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the asset containing the file</p>",
          "location":"uri",
          "locationName":"assetId"
        },
        "path":{
          "shape":"AssetFilePath",
          "documentation":"<p>The path of the file within the asset to delete</p>",
          "location":"uri",
          "locationName":"path"
        }
      },
      "documentation":"<p>Request structure for deleting an asset file</p>"
    },
    "DeleteAssetFileResponse":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Response structure for deleting an asset file</p>"
    },
    "DeleteAssetRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "assetId"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space containing the asset</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "assetId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the asset to delete</p>",
          "location":"uri",
          "locationName":"assetId"
        }
      },
      "documentation":"<p>Request structure for deleting an asset</p>"
    },
    "DeleteAssetResponse":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Response structure for deleting an asset</p>"
    },
    "DeletePrivateConnectionInput":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"PrivateConnectionName",
          "documentation":"<p>The name of the Private Connection.</p>",
          "location":"uri",
          "locationName":"name"
        }
      },
      "documentation":"<p>Input for deleting an existing Private Connection.</p>"
    },
    "DeletePrivateConnectionOutput":{
      "type":"structure",
      "required":[
        "name",
        "status"
      ],
      "members":{
        "name":{
          "shape":"PrivateConnectionName",
          "documentation":"<p>The name of the Private Connection.</p>"
        },
        "status":{
          "shape":"PrivateConnectionStatus",
          "documentation":"<p>The status of the Private Connection.</p>"
        }
      },
      "documentation":"<p>Output containing the status of the Private Connection deletion.</p>"
    },
    "DeleteTriggerRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "triggerId"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space containing the Trigger</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "triggerId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the Trigger to delete</p>",
          "location":"uri",
          "locationName":"triggerId"
        }
      },
      "documentation":"<p>Request structure for deleting a Trigger</p>"
    },
    "DeleteTriggerResponse":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Response structure for deleting a Trigger</p>"
    },
    "DeregisterServiceInput":{
      "type":"structure",
      "required":["serviceId"],
      "members":{
        "serviceId":{
          "shape":"ServiceId",
          "documentation":"<p>The service id to deregister. A service can only be deregistered if it is not associated with any AgentSpace.</p>",
          "location":"uri",
          "locationName":"serviceId"
        }
      },
      "documentation":"<p>Input for deregistering a service.</p>"
    },
    "DeregisterServiceOutput":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Empty output for successful service deregistration.</p>"
    },
    "DescribePrivateConnectionInput":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"PrivateConnectionName",
          "documentation":"<p>The name of the Private Connection.</p>",
          "location":"uri",
          "locationName":"name"
        }
      },
      "documentation":"<p>Input for describing an existing Private Connection.</p>"
    },
    "DescribePrivateConnectionOutput":{
      "type":"structure",
      "required":[
        "name",
        "type",
        "status"
      ],
      "members":{
        "name":{
          "shape":"PrivateConnectionName",
          "documentation":"<p>The name of the Private Connection.</p>"
        },
        "type":{
          "shape":"PrivateConnectionType",
          "documentation":"<p>The type of the Private Connection.</p>"
        },
        "resourceGatewayId":{
          "shape":"ResourceGatewayArn",
          "documentation":"<p>The service-managed Resource Gateway ARN. Only present for service-managed Private Connections.</p>"
        },
        "hostAddress":{
          "shape":"IpAddressOrDnsName",
          "documentation":"<p>IP address or DNS name of the target resource. Only present for service-managed Private Connections.</p>"
        },
        "vpcId":{
          "shape":"VpcId",
          "documentation":"<p>VPC identifier of the service-managed Resource Gateway. Only present for service-managed Private Connections.</p>"
        },
        "resourceConfigurationId":{
          "shape":"ResourceConfigurationArn",
          "documentation":"<p>The Resource Configuration ARN. Only present for self-managed Private Connections.</p>"
        },
        "status":{
          "shape":"PrivateConnectionStatus",
          "documentation":"<p>The status of the Private Connection.</p>"
        },
        "certificateExpiryTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The expiry time of the certificate associated with the Private Connection. Only present when a certificate is associated.</p>"
        },
        "dnsResolution":{
          "shape":"ResourceConfigDnsResolution",
          "documentation":"<p>DNS resolution mode for the Private Connection's resource gateway.</p>"
        },
        "failureMessage":{
          "shape":"FailureMessage",
          "documentation":"<p>Message describing the reason for a failed Private Connection, if applicable.</p>"
        },
        "tags":{
          "shape":"Tags",
          "documentation":"<p>Tags associated with the Private Connection.</p>"
        }
      },
      "documentation":"<p>Output containing the Private Connection details.</p>"
    },
    "Description":{
      "type":"string",
      "documentation":"<p>Description field</p>",
      "max":1000,
      "min":1,
      "pattern":"[\\p{L}\\p{N}\\p{P}\\p{S}\\p{Z}]+",
      "sensitive":true
    },
    "DisableOperatorAppInput":{
      "type":"structure",
      "required":["agentSpaceId"],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier of the AgentSpace</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "authFlow":{
          "shape":"AuthFlow",
          "documentation":"<p>The authentication flow configured for the operator App. e.g. idc</p>",
          "location":"header",
          "locationName":"x-amzn-app-auth-flow"
        }
      },
      "documentation":"<p>Input for disabling the Operator App for an AgentSpace.</p>"
    },
    "DisassociateServiceInput":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "associationId"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier of the AgentSpace</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "associationId":{
          "shape":"AssociationId",
          "documentation":"<p>The unique identifier of the given association.</p>",
          "location":"uri",
          "locationName":"associationId"
        }
      },
      "documentation":"<p>Input for removing a service association from an AgentSpace.</p>"
    },
    "DisassociateServiceOutput":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Empty output for successful service disassociation.</p>"
    },
    "Document":{
      "type":"structure",
      "members":{},
      "document":true
    },
    "DocumentList":{
      "type":"list",
      "member":{"shape":"Document"},
      "documentation":"<p>Generic list of document objects for flexible data structures.</p>"
    },
    "Double":{
      "type":"double",
      "box":true
    },
    "DynatraceConfiguration":{
      "type":"structure",
      "required":["envId"],
      "members":{
        "envId":{
          "shape":"String",
          "documentation":"<p>Dynatrace environment id</p>"
        },
        "resources":{
          "shape":"DynatraceResourceList",
          "documentation":"<p>List of Dynatrace resources to monitor</p>"
        }
      },
      "documentation":"<p>Configuration for Dynatrace monitoring integration.</p>"
    },
    "DynatraceOAuthClientCredentialsConfig":{
      "type":"structure",
      "required":[
        "clientId",
        "clientSecret"
      ],
      "members":{
        "clientName":{
          "shape":"DynatraceOAuthClientCredentialsConfigClientNameString",
          "documentation":"<p>User friendly OAuth client name specified by end user.</p>"
        },
        "clientId":{
          "shape":"ClientId",
          "documentation":"<p>OAuth client ID for authenticating with the service.</p>"
        },
        "exchangeParameters":{
          "shape":"ExchangeParameters",
          "documentation":"<p>OAuth token exchange parameters for authenticating with the service.</p>"
        },
        "clientSecret":{
          "shape":"ClientSecret",
          "documentation":"<p>OAuth client secret for authenticating with the service.</p>"
        }
      },
      "documentation":"<p>OAuth client credentials configuration for Dynatrace.</p>"
    },
    "DynatraceOAuthClientCredentialsConfigClientNameString":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"[\\p{L}\\p{N}\\p{Z}._-]+"
    },
    "DynatraceResourceList":{
      "type":"list",
      "member":{"shape":"String"},
      "documentation":"<p>List of Dynatrace resources to monitor.</p>"
    },
    "DynatraceServiceAuthorizationConfig":{
      "type":"structure",
      "members":{
        "oAuthClientCredentials":{
          "shape":"DynatraceOAuthClientCredentialsConfig",
          "documentation":"<p>OAuth client credentials configuration.</p>"
        }
      },
      "documentation":"<p>Authorization configuration options for Dynatrace service.</p>",
      "sensitive":true,
      "union":true
    },
    "DynatraceServiceDetails":{
      "type":"structure",
      "required":["accountUrn"],
      "members":{
        "accountUrn":{
          "shape":"DynatraceServiceDetailsAccountUrnString",
          "documentation":"<p>Dynatrace resource account urn.</p>"
        },
        "authorizationConfig":{
          "shape":"DynatraceServiceAuthorizationConfig",
          "documentation":"<p>Dynatrace OAuth client credentials configuration. Use this when registering with OAuth client credentials flow.</p>"
        }
      },
      "documentation":"<p>Complete service details for Dynatrace integration.</p>"
    },
    "DynatraceServiceDetailsAccountUrnString":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"urn:dtaccount:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
    },
    "EmailAddress":{
      "type":"string",
      "documentation":"<p>Email address</p>",
      "pattern":"[a-zA-Z0-9._%+\\-]+@[a-zA-Z0-9.\\-]+\\.[a-zA-Z]{2,}",
      "sensitive":true
    },
    "EnableOperatorAppInput":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "authFlow",
        "operatorAppRoleArn"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier of the AgentSpace</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "authFlow":{
          "shape":"AuthFlow",
          "documentation":"<p>The authentication flow configured for the operator App. e.g. iam or idc</p>"
        },
        "operatorAppRoleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The IAM role end users assume to access AIDevOps APIs</p>"
        },
        "idcInstanceArn":{
          "shape":"String",
          "documentation":"<p>The IdC instance Arn used to create an IdC auth application</p>"
        },
        "issuerUrl":{
          "shape":"String",
          "documentation":"<p>The OIDC issuer URL of the external Identity Provider</p>"
        },
        "idpClientId":{
          "shape":"IdpClientId",
          "documentation":"<p>The OIDC client ID for the IdP application</p>"
        },
        "idpClientSecret":{
          "shape":"IdpClientSecret",
          "documentation":"<p>The OIDC client secret for the IdP application</p>"
        },
        "provider":{
          "shape":"String",
          "documentation":"<p>The Identity Provider name (e.g., Entra, Okta, Google)</p>"
        }
      },
      "documentation":"<p>Input for enabling the Operator App for an AgentSpace.</p>"
    },
    "EnableOperatorAppOutput":{
      "type":"structure",
      "required":["agentSpaceId"],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier of the AgentSpace</p>"
        },
        "operatorAppUrl":{
          "shape":"OperatorAppUrl",
          "documentation":"<p>The URL for operators to access the Operator App</p>"
        },
        "iam":{"shape":"IamAuthConfiguration"},
        "idc":{"shape":"IdcAuthConfiguration"},
        "idp":{"shape":"IdpAuthConfiguration"}
      },
      "documentation":"<p>Output containing the enabled Operator App configuration.</p>"
    },
    "EventChannelConfiguration":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Configuration for Event Channel integration.</p>"
    },
    "EventChannelDetails":{
      "type":"structure",
      "members":{
        "type":{
          "shape":"EventChannelType",
          "documentation":"<p>The type of event channel</p>"
        }
      },
      "documentation":"<p>Service details for Event Channel integration.</p>"
    },
    "EventChannelType":{
      "type":"string",
      "documentation":"<p>Event Channel type</p>",
      "enum":["webhook"]
    },
    "ExchangeParameterValue":{
      "type":"string",
      "documentation":"<p>Exchange Parameter value for MCP authentication</p>",
      "sensitive":true
    },
    "ExchangeParameters":{
      "type":"map",
      "key":{"shape":"String"},
      "value":{"shape":"ExchangeParameterValue"},
      "documentation":"<p>Exchange Parameter Map for MCP authentication.</p>"
    },
    "Execution":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "executionId",
        "agentSubTask",
        "createdAt",
        "updatedAt",
        "executionStatus"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"String",
          "documentation":"<p>The unique identifier for the agent space containing this execution</p>"
        },
        "executionId":{
          "shape":"String",
          "documentation":"<p>The unique identifier for this execution</p>"
        },
        "parentExecutionId":{
          "shape":"String",
          "documentation":"<p>The identifier of the parent execution, if this is a child execution</p>"
        },
        "agentSubTask":{
          "shape":"String",
          "documentation":"<p>The specific subtask being executed by the agent</p>"
        },
        "createdAt":{
          "shape":"JournalTimestamp",
          "documentation":"<p>Timestamp when this execution was created</p>"
        },
        "updatedAt":{
          "shape":"JournalTimestamp",
          "documentation":"<p>Timestamp when this execution was last updated</p>"
        },
        "executionStatus":{
          "shape":"ExecutionStatus",
          "documentation":"<p>The current status of this execution</p>"
        },
        "agentType":{
          "shape":"String",
          "documentation":"<p>The type of agent that performed this execution.</p>"
        },
        "uid":{
          "shape":"String",
          "documentation":"<p>The unique identifier for the user session associated with this execution</p>"
        }
      },
      "documentation":"<p>Represents an execution instance with its lifecycle information</p>"
    },
    "ExecutionList":{
      "type":"list",
      "member":{"shape":"Execution"},
      "documentation":"<p>List of execution instances</p>"
    },
    "ExecutionStatus":{
      "type":"string",
      "documentation":"<p>Possible states of an execution</p>",
      "enum":[
        "FAILED",
        "RUNNING",
        "STOPPED",
        "CANCELED",
        "TIMED_OUT"
      ]
    },
    "FailureMessage":{
      "type":"string",
      "documentation":"<p>Failure message describing why a Private Connection has a FAILED status.</p>",
      "max":1000,
      "min":1
    },
    "GenericWebhook":{
      "type":"structure",
      "members":{
        "webhookUrl":{
          "shape":"String",
          "documentation":"<p>The webhook URL endpoint</p>"
        },
        "webhookId":{
          "shape":"String",
          "documentation":"<p>The unique webhook identifier</p>"
        },
        "webhookType":{
          "shape":"WebhookType",
          "documentation":"<p>The webhook authentication type</p>"
        },
        "webhookSecret":{
          "shape":"WebhookSecret",
          "documentation":"<p>The webhook secret for authentication</p>"
        },
        "apiKey":{
          "shape":"ApiKeyValue",
          "documentation":"<p>API Key for API Key webhook authentication</p>"
        }
      },
      "documentation":"<p>Generic webhook configuration for services that support webhook notifications.</p>"
    },
    "GetAccountUsageInput":{
      "type":"structure",
      "members":{}
    },
    "GetAccountUsageOutput":{
      "type":"structure",
      "required":[
        "usagePeriodStartTime",
        "usagePeriodEndTime"
      ],
      "members":{
        "monthlyAccountInvestigationHours":{
          "shape":"UsageMetric",
          "documentation":"<p>Monthly investigation hours usage and limit for an account</p>"
        },
        "monthlyAccountEvaluationHours":{
          "shape":"UsageMetric",
          "documentation":"<p>Monthly evaluation hours usage and limit for an account</p>"
        },
        "monthlyAccountSystemLearningHours":{
          "shape":"UsageMetric",
          "documentation":"<p>Monthly system learning hours usage and limit for an account</p>"
        },
        "monthlyAccountOnDemandHours":{
          "shape":"UsageMetric",
          "documentation":"<p>Monthly on-demand hours usage and limit for an account</p>"
        },
        "usagePeriodStartTime":{
          "shape":"DateTime",
          "documentation":"<p>The start time of the usage tracking period</p>"
        },
        "usagePeriodEndTime":{
          "shape":"DateTime",
          "documentation":"<p>The end time of the usage tracking period</p>"
        }
      }
    },
    "GetAgentSpaceInput":{
      "type":"structure",
      "required":["agentSpaceId"],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier of the AgentSpace</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        }
      },
      "documentation":"<p>Input for retrieving a specific AgentSpace by ID.</p>"
    },
    "GetAgentSpaceOutput":{
      "type":"structure",
      "required":["agentSpace"],
      "members":{
        "agentSpace":{"shape":"AgentSpace"},
        "tags":{
          "shape":"Tags",
          "documentation":"<p>Tags associated with the AgentSpace.</p>"
        }
      },
      "documentation":"<p>Output containing the requested AgentSpace details.</p>"
    },
    "GetAssetContentRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "assetId"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space containing the asset</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "assetId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the asset</p>",
          "location":"uri",
          "locationName":"assetId"
        },
        "assetVersion":{
          "shape":"GetAssetContentRequestAssetVersionInteger",
          "documentation":"<p>The specific asset version to export. If omitted, the latest version is returned.</p>",
          "location":"querystring",
          "locationName":"assetVersion"
        }
      },
      "documentation":"<p>Request structure for getting an asset's content as a zip bundle</p>"
    },
    "GetAssetContentRequestAssetVersionInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "GetAssetContentResponse":{
      "type":"structure",
      "required":[
        "content",
        "version"
      ],
      "members":{
        "content":{
          "shape":"AssetZipContent",
          "documentation":"<p>The asset content as a zip file</p>"
        },
        "version":{
          "shape":"Integer",
          "documentation":"<p>The asset version this content belongs to</p>"
        }
      },
      "documentation":"<p>Response structure for getting an asset's content as a zip bundle</p>"
    },
    "GetAssetFileRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "assetId",
        "path"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space containing the asset</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "assetId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the asset containing the file</p>",
          "location":"uri",
          "locationName":"assetId"
        },
        "path":{
          "shape":"AssetFilePath",
          "documentation":"<p>The path of the file within the asset to retrieve</p>",
          "location":"uri",
          "locationName":"path"
        },
        "assetVersion":{
          "shape":"GetAssetFileRequestAssetVersionInteger",
          "documentation":"<p>The specific asset version to retrieve the file from. If omitted, the latest version is returned.</p>",
          "location":"querystring",
          "locationName":"assetVersion"
        }
      },
      "documentation":"<p>Request structure for getting an asset file</p>"
    },
    "GetAssetFileRequestAssetVersionInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "GetAssetFileResponse":{
      "type":"structure",
      "required":["file"],
      "members":{
        "file":{
          "shape":"AssetFile",
          "documentation":"<p>The asset file object</p>"
        }
      },
      "documentation":"<p>Response structure for getting an asset file</p>"
    },
    "GetAssetRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "assetId"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space containing the asset</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "assetId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the asset to retrieve</p>",
          "location":"uri",
          "locationName":"assetId"
        },
        "assetVersion":{
          "shape":"GetAssetRequestAssetVersionInteger",
          "documentation":"<p>The specific version of the asset to retrieve. If omitted, the latest version is returned.</p>",
          "location":"querystring",
          "locationName":"assetVersion"
        }
      },
      "documentation":"<p>Request structure for getting an asset</p>"
    },
    "GetAssetRequestAssetVersionInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "GetAssetResponse":{
      "type":"structure",
      "required":["asset"],
      "members":{
        "asset":{
          "shape":"Asset",
          "documentation":"<p>The asset object</p>"
        }
      },
      "documentation":"<p>Response structure for getting an asset</p>"
    },
    "GetAssociationInput":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "associationId"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier of the AgentSpace</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "associationId":{
          "shape":"AssociationId",
          "documentation":"<p>The unique identifier of the given association.</p>",
          "location":"uri",
          "locationName":"associationId"
        }
      },
      "documentation":"<p>Input for retrieving a specific service association.</p>"
    },
    "GetAssociationOutput":{
      "type":"structure",
      "required":["association"],
      "members":{
        "association":{"shape":"Association"}
      },
      "documentation":"<p>Output containing the requested association details.</p>"
    },
    "GetBacklogTaskRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "taskId"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space containing the task</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "taskId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the task to retrieve</p>",
          "location":"uri",
          "locationName":"taskId"
        }
      },
      "documentation":"<p>Request structure for retrieving a specific backlog task</p>"
    },
    "GetBacklogTaskResponse":{
      "type":"structure",
      "required":["task"],
      "members":{
        "task":{
          "shape":"Task",
          "documentation":"<p>The requested task object</p>"
        }
      },
      "documentation":"<p>Response structure containing the requested backlog task</p>"
    },
    "GetOperatorAppInput":{
      "type":"structure",
      "required":["agentSpaceId"],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier of the AgentSpace</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        }
      },
      "documentation":"<p>Input for retrieving Operator App configuration.</p>"
    },
    "GetOperatorAppOutput":{
      "type":"structure",
      "members":{
        "operatorAppUrl":{
          "shape":"OperatorAppUrl",
          "documentation":"<p>The URL for operators to access the Operator App</p>"
        },
        "iam":{"shape":"IamAuthConfiguration"},
        "idc":{"shape":"IdcAuthConfiguration"},
        "idp":{"shape":"IdpAuthConfiguration"}
      },
      "documentation":"<p>Output containing the Operator App configuration including authentication details.</p>"
    },
    "GetRecommendationRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "recommendationId"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space containing the recommendation</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "recommendationId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier for the recommendation to retrieve</p>",
          "location":"uri",
          "locationName":"recommendationId"
        },
        "recommendationVersion":{
          "shape":"Long",
          "documentation":"<p>Specific version of the recommendation to retrieve. If not specified, returns the latest version.</p>",
          "location":"querystring",
          "locationName":"recommendationVersion"
        }
      },
      "documentation":"<p>Request structure for retrieving a specific recommendation</p>"
    },
    "GetRecommendationResponse":{
      "type":"structure",
      "required":["recommendation"],
      "members":{
        "recommendation":{
          "shape":"Recommendation",
          "documentation":"<p>The requested recommendation</p>"
        }
      },
      "documentation":"<p>Response structure containing the requested recommendation</p>"
    },
    "GetServiceInput":{
      "type":"structure",
      "required":["serviceId"],
      "members":{
        "serviceId":{
          "shape":"ServiceId",
          "documentation":"<p>The unique identifier of the given service.</p>",
          "location":"uri",
          "locationName":"serviceId"
        }
      },
      "documentation":"<p>Input for retrieving a specific service association.</p>"
    },
    "GetServiceOutput":{
      "type":"structure",
      "required":["service"],
      "members":{
        "service":{"shape":"RegisteredService"},
        "tags":{
          "shape":"Tags",
          "documentation":"<p>Tags associated with the Service.</p>"
        }
      },
      "documentation":"<p>Output containing the requested service details.</p>"
    },
    "GetTriggerRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "triggerId"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space containing the Trigger</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "triggerId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the Trigger to retrieve</p>",
          "location":"uri",
          "locationName":"triggerId"
        }
      },
      "documentation":"<p>Request structure for getting a Trigger</p>"
    },
    "GetTriggerResponse":{
      "type":"structure",
      "required":["trigger"],
      "members":{
        "trigger":{
          "shape":"Trigger",
          "documentation":"<p>The Trigger object</p>"
        }
      },
      "documentation":"<p>Response structure for getting a Trigger</p>"
    },
    "GitHubConfiguration":{
      "type":"structure",
      "required":[
        "repoName",
        "repoId",
        "owner",
        "ownerType"
      ],
      "members":{
        "repoName":{
          "shape":"String",
          "documentation":"<p>Associated Github repo name</p>"
        },
        "repoId":{
          "shape":"String",
          "documentation":"<p>Associated Github repo ID</p>"
        },
        "owner":{
          "shape":"String",
          "documentation":"<p>The GitHub repository owner name.</p>"
        },
        "ownerType":{"shape":"GithubRepoOwnerType"},
        "instanceIdentifier":{
          "shape":"String",
          "documentation":"<p>GitHub instance identifier (e.g., github.com or github.enterprise.com)</p>"
        },
        "runtimeRoleArn":{
          "shape":"RoleArn",
          "documentation":"<p>Optional role ARN that AIDevOps assumes at runtime for automatic verification testing and VPC connectivity on this association.</p>"
        }
      },
      "documentation":"<p>Configuration for GitHub repository integration.</p>"
    },
    "GitLabConfiguration":{
      "type":"structure",
      "required":[
        "projectId",
        "projectPath"
      ],
      "members":{
        "projectId":{
          "shape":"String",
          "documentation":"<p>GitLab numeric project ID.</p>"
        },
        "projectPath":{
          "shape":"String",
          "documentation":"<p>Full GitLab project path (e.g., namespace/project-name).</p>"
        },
        "instanceIdentifier":{
          "shape":"String",
          "documentation":"<p>GitLab instance identifier (e.g., gitlab.com or e2e.gamma.dev.us-east-1.gitlab.falco.ai.aws.dev)</p>"
        },
        "runtimeRoleArn":{
          "shape":"RoleArn",
          "documentation":"<p>Optional role ARN that AIDevOps assumes at runtime for automatic verification testing and VPC connectivity on this association.</p>"
        }
      },
      "documentation":"<p>Configuration for GitLab project integration.</p>"
    },
    "GitLabDetails":{
      "type":"structure",
      "required":[
        "targetUrl",
        "tokenType",
        "tokenValue"
      ],
      "members":{
        "targetUrl":{
          "shape":"GitLabDetailsTargetUrlString",
          "documentation":"<p>GitLab instance URL (e.g., https://gitlab.com or self-hosted instance).</p>"
        },
        "tokenType":{
          "shape":"GitLabTokenType",
          "documentation":"<p>Type of GitLab access token</p>"
        },
        "tokenValue":{
          "shape":"GitLabDetailsTokenValueString",
          "documentation":"<p>GitLab access token value</p>"
        },
        "groupId":{
          "shape":"String",
          "documentation":"<p>Optional GitLab group ID for group-level access tokens</p>"
        }
      },
      "documentation":"<p>Service details for GitLab integration.</p>"
    },
    "GitLabDetailsTargetUrlString":{
      "type":"string",
      "pattern":"https://[a-zA-Z0-9]([a-zA-Z0-9.-]*[a-zA-Z0-9])?(?::[0-9]{1,5})?/?"
    },
    "GitLabDetailsTokenValueString":{
      "type":"string",
      "documentation":"<p>Token value for authentication.</p>",
      "pattern":"[a-zA-Z0-9._-]+",
      "sensitive":true
    },
    "GitLabTokenType":{
      "type":"string",
      "documentation":"<p>Type of GitLab access token.</p>",
      "enum":[
        "personal",
        "group"
      ]
    },
    "GithubRepoOwnerType":{
      "type":"string",
      "documentation":"<p>Type of GitHub repository owner.</p>",
      "enum":[
        "organization",
        "user"
      ]
    },
    "Goal":{
      "type":"structure",
      "required":[
        "agentSpaceArn",
        "goalId",
        "title",
        "content",
        "status",
        "goalType",
        "createdAt",
        "updatedAt",
        "version"
      ],
      "members":{
        "agentSpaceArn":{
          "shape":"String",
          "documentation":"<p>The unique identifier for the agent space containing this goal</p>"
        },
        "goalId":{
          "shape":"String",
          "documentation":"<p>The unique identifier for this goal</p>"
        },
        "title":{
          "shape":"String",
          "documentation":"<p>The title of the goal</p>"
        },
        "content":{
          "shape":"GoalContent",
          "documentation":"<p>Content of the goal</p>"
        },
        "status":{
          "shape":"GoalStatus",
          "documentation":"<p>Current status of the goal itself</p>"
        },
        "goalType":{
          "shape":"GoalType",
          "documentation":"<p>Type of goal based on its origin</p>"
        },
        "createdAt":{
          "shape":"BackLogTimestamp",
          "documentation":"<p>Timestamp when this goal was created</p>"
        },
        "updatedAt":{
          "shape":"BackLogTimestamp",
          "documentation":"<p>Timestamp when this goal was last updated</p>"
        },
        "lastEvaluatedAt":{
          "shape":"BackLogTimestamp",
          "documentation":"<p>Timestamp when the goal was last evaluated</p>"
        },
        "lastTaskId":{
          "shape":"String",
          "documentation":"<p>ID of the most recent task associated with this goal</p>"
        },
        "lastSuccessfulTaskId":{
          "shape":"String",
          "documentation":"<p>ID of the most recent successful task associated with this goal</p>"
        },
        "version":{
          "shape":"Integer",
          "documentation":"<p>Version number for optimistic locking</p>"
        },
        "evaluationSchedule":{
          "shape":"GoalSchedule",
          "documentation":"<p>Goal Schedule. Allows to schedule the goal to run periodically, as well as disable a goal temporarily</p>"
        }
      },
      "documentation":"<p>Represents a goal with all its properties and metadata</p>"
    },
    "GoalContent":{
      "type":"structure",
      "required":[
        "description",
        "objectives"
      ],
      "members":{
        "description":{
          "shape":"String",
          "documentation":"<p>A detailed description of the goal.</p>"
        },
        "objectives":{
          "shape":"String",
          "documentation":"<p>The objectives to be achieved for this goal.</p>"
        }
      },
      "documentation":"<p>Content of a goal</p>"
    },
    "GoalList":{
      "type":"list",
      "member":{"shape":"Goal"},
      "documentation":"<p>List of goals</p>"
    },
    "GoalSchedule":{
      "type":"structure",
      "required":["state"],
      "members":{
        "state":{
          "shape":"SchedulerState",
          "documentation":"<p>Whether the schedule is enabled or disabled</p>"
        },
        "expression":{
          "shape":"String",
          "documentation":"<p>Schedule expression (e.g., 'rate(7 days)')</p>"
        }
      },
      "documentation":"<p>Schedule configuration for goal evaluations</p>"
    },
    "GoalScheduleInput":{
      "type":"structure",
      "required":["state"],
      "members":{
        "state":{
          "shape":"SchedulerState",
          "documentation":"<p>Whether the schedule is enabled or disabled</p>"
        }
      },
      "documentation":"<p>Schedule configuration for updating goal evaluations</p>"
    },
    "GoalStatus":{
      "type":"string",
      "documentation":"<p>Possible states of a goal throughout its lifecycle</p>",
      "enum":[
        "ACTIVE",
        "PAUSED",
        "COMPLETE"
      ]
    },
    "GoalType":{
      "type":"string",
      "documentation":"<p>Type of goal based on its origin</p>",
      "enum":[
        "CUSTOMER_DEFINED",
        "ONCALL_REPORT"
      ]
    },
    "GrafanaServiceDetails":{
      "type":"structure",
      "required":[
        "name",
        "endpoint",
        "authorizationConfig"
      ],
      "members":{
        "name":{
          "shape":"MCPServerName",
          "documentation":"<p>MCP server name.</p>"
        },
        "endpoint":{
          "shape":"MCPServerEndpoint",
          "documentation":"<p>MCP server endpoint URL.</p>"
        },
        "description":{
          "shape":"GrafanaServiceDetailsDescriptionString",
          "documentation":"<p>Optional description for the MCP server.</p>"
        },
        "authorizationConfig":{
          "shape":"MCPServerAuthorizationConfig",
          "documentation":"<p>Grafana MCP server authorization configuration (experimental).</p>"
        }
      },
      "documentation":"<p>Complete service details for Grafana MCP server integration.</p>"
    },
    "GrafanaServiceDetailsDescriptionString":{
      "type":"string",
      "documentation":"<p>Description field</p>",
      "max":500,
      "min":0,
      "pattern":"[\\p{L}\\p{N}\\p{P}\\p{S}\\p{Z}]+",
      "sensitive":true
    },
    "Guid":{
      "type":"string",
      "documentation":"<p>Globally Unique Identifier (GUID) in standard format.</p>",
      "max":36,
      "min":0,
      "pattern":"[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"
    },
    "IamAuthConfiguration":{
      "type":"structure",
      "required":[
        "operatorAppRoleArn",
        "createdAt"
      ],
      "members":{
        "operatorAppRoleArn":{
          "shape":"String",
          "documentation":"<p>The IAM role end users assume to access AIDevOps APIs</p>"
        },
        "createdAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp when the Operator App IAM auth flow was enabled.</p>"
        },
        "updatedAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp when the Operator App IAM auth flow was updated.</p>"
        }
      },
      "documentation":"<p>Configuration for IAM-based authentication flow for the Operator App.</p>"
    },
    "IdcAuthConfiguration":{
      "type":"structure",
      "required":[
        "operatorAppRoleArn",
        "idcInstanceArn",
        "createdAt"
      ],
      "members":{
        "operatorAppRoleArn":{
          "shape":"String",
          "documentation":"<p>The IAM role end users assume to access AIDevOps APIs</p>"
        },
        "idcInstanceArn":{
          "shape":"String",
          "documentation":"<p>The IdC instance Arn used to create an IdC auth application</p>"
        },
        "idcApplicationArn":{
          "shape":"String",
          "documentation":"<p>The IdC application Arn created for IdC auth</p>"
        },
        "createdAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp when the Operator App IdC auth flow was enabled.</p>"
        },
        "updatedAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp when the Operator App IdC auth flow was updated.</p>"
        }
      },
      "documentation":"<p>Configuration for AWS Identity Center (IdC) authentication flow for the Operator App.</p>"
    },
    "IdentityCenterServiceException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>Detailed error message describing why the call fails</p>"
        },
        "underlyingErrorCode":{
          "shape":"String",
          "documentation":"<p>The Idc error code</p>"
        }
      },
      "documentation":"<p>Calls to the customer Identity Center have failed</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "IdpAuthConfiguration":{
      "type":"structure",
      "required":[
        "issuerUrl",
        "clientId",
        "operatorAppRoleArn",
        "provider",
        "createdAt"
      ],
      "members":{
        "issuerUrl":{
          "shape":"String",
          "documentation":"<p>The OIDC issuer URL of the external Identity Provider</p>"
        },
        "clientId":{
          "shape":"String",
          "documentation":"<p>The OIDC client ID for the IdP application</p>"
        },
        "operatorAppRoleArn":{
          "shape":"String",
          "documentation":"<p>The IAM role end users assume to access AIDevOps APIs</p>"
        },
        "provider":{
          "shape":"String",
          "documentation":"<p>The Identity Provider name (e.g., Entra, Okta, Google)</p>"
        },
        "createdAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp when the Operator App IdP auth flow was enabled.</p>"
        },
        "updatedAt":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The timestamp when the Operator App IdP auth flow was updated.</p>"
        }
      },
      "documentation":"<p>Configuration for external Identity Provider OIDC authentication flow for the Operator App.</p>"
    },
    "IdpClientId":{
      "type":"string",
      "documentation":"<p>Client ID for IdP OIDC authentication.</p>",
      "max":512,
      "min":1
    },
    "IdpClientSecret":{
      "type":"string",
      "documentation":"<p>Client secret for IdP OIDC authentication.</p>",
      "max":1024,
      "min":1,
      "sensitive":true
    },
    "Integer":{
      "type":"integer",
      "box":true
    },
    "InternalServerException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>This exception is thrown when an unexpected error occurs in the processing of a request.</p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true,
      "retryable":{"throttling":false}
    },
    "InvalidParameterException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>Detailed error message describing which parameter is invalid and why.</p>"
        }
      },
      "documentation":"<p>One or more parameters provided in the request are invalid.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "IpAddressOrDnsName":{
      "type":"string",
      "documentation":"<p>IP address or DNS name of a target resource.</p>",
      "max":255,
      "min":3,
      "pattern":"[a-zA-Z0-9.:\\-]+"
    },
    "IpAddressType":{
      "type":"string",
      "documentation":"<p>IP address type for a Resource Gateway.</p>",
      "enum":[
        "IPV4",
        "IPV6",
        "DUAL_STACK"
      ]
    },
    "JournalRecord":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "executionId",
        "recordId",
        "content",
        "createdAt",
        "recordType"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"String",
          "documentation":"<p>The unique identifier for the agent space containing this record</p>"
        },
        "executionId":{
          "shape":"String",
          "documentation":"<p>The execution ID associated with this journal record</p>"
        },
        "recordId":{
          "shape":"String",
          "documentation":"<p>The unique identifier for this journal record</p>"
        },
        "content":{
          "shape":"Document",
          "documentation":"<p>The content of this journal record</p>"
        },
        "createdAt":{
          "shape":"JournalTimestamp",
          "documentation":"<p>Timestamp when this journal record was created</p>"
        },
        "recordType":{
          "shape":"String",
          "documentation":"<p>The type of this journal record</p>"
        },
        "userReference":{
          "shape":"UserReference",
          "documentation":"<p>Reference to the user associated with this journal record</p>"
        }
      },
      "documentation":"<p>Represents a journal record containing execution details and content</p>"
    },
    "JournalRecordList":{
      "type":"list",
      "member":{"shape":"JournalRecord"},
      "documentation":"<p>List of journal records</p>"
    },
    "JournalTimestamp":{
      "type":"timestamp",
      "documentation":"<p>Timestamp format used for journal operations</p>"
    },
    "KmsKeyArn":{
      "type":"string",
      "documentation":"<p>The ARN of the AWS Key Management Service (AWS KMS) customer managed key that's used to encrypt resources.</p>",
      "min":20,
      "pattern":"arn:aws[a-zA-Z-]*:kms:[a-z0-9-]+:[0-9]{12}:key/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"
    },
    "ListAgentSpacesInput":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"ListAgentSpacesInputMaxResultsInteger",
          "documentation":"<p>Maximum number of results to return in a single call.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Token for the next page of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      },
      "documentation":"<p>Input for listing AgentSpaces with pagination support.</p>"
    },
    "ListAgentSpacesInputMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListAgentSpacesOutput":{
      "type":"structure",
      "required":["agentSpaces"],
      "members":{
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Token to retrieve the next page of results, if there are more results.</p>"
        },
        "agentSpaces":{
          "shape":"AgentSpaceList",
          "documentation":"<p>The list of AgentSpaces.</p>"
        }
      },
      "documentation":"<p>Output containing a list of AgentSpaces and pagination token.</p>"
    },
    "ListAssetFilesRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "assetId"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space containing the asset</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "assetId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the asset whose files to list</p>",
          "location":"uri",
          "locationName":"assetId"
        },
        "assetVersion":{
          "shape":"ListAssetFilesRequestAssetVersionInteger",
          "documentation":"<p>The specific asset version to list files from. If omitted, files from the latest version are returned.</p>",
          "location":"querystring",
          "locationName":"assetVersion"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Pagination token from a previous response to retrieve the next page of results</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"ListAssetFilesRequestMaxResultsInteger",
          "documentation":"<p>The maximum number of results to return in a single response</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      },
      "documentation":"<p>Request structure for listing asset files</p>"
    },
    "ListAssetFilesRequestAssetVersionInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "ListAssetFilesRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListAssetFilesResponse":{
      "type":"structure",
      "required":["items"],
      "members":{
        "items":{
          "shape":"AssetFileSummaryList",
          "documentation":"<p>The list of asset file summaries</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Pagination token to retrieve the next page of results. Absent when there are no more results.</p>"
        }
      },
      "documentation":"<p>Response structure for listing asset files</p>"
    },
    "ListAssetTypesRequest":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Pagination token from a previous response to retrieve the next page of results</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"ListAssetTypesRequestMaxResultsInteger",
          "documentation":"<p>The maximum number of results to return in a single response</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      },
      "documentation":"<p>Request structure for listing asset types</p>"
    },
    "ListAssetTypesRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListAssetTypesResponse":{
      "type":"structure",
      "required":["items"],
      "members":{
        "items":{
          "shape":"AssetTypeList",
          "documentation":"<p>The list of supported asset types</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Pagination token to retrieve the next page of results. Absent when there are no more results.</p>"
        }
      },
      "documentation":"<p>Response structure for listing asset types</p>"
    },
    "ListAssetVersionsRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "assetId"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space containing the asset</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "assetId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the asset whose versions to list</p>",
          "location":"uri",
          "locationName":"assetId"
        },
        "maxResults":{
          "shape":"ListAssetVersionsRequestMaxResultsInteger",
          "documentation":"<p>The maximum number of results to return in a single response</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Pagination token from a previous response to retrieve the next page of results</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      },
      "documentation":"<p>Request structure for listing asset versions</p>"
    },
    "ListAssetVersionsRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListAssetVersionsResponse":{
      "type":"structure",
      "required":["items"],
      "members":{
        "items":{
          "shape":"AssetVersionMetadataList",
          "documentation":"<p>The list of version metadata for the asset</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Pagination token to retrieve the next page of results. Absent when there are no more results.</p>"
        }
      },
      "documentation":"<p>Response structure for listing asset versions</p>"
    },
    "ListAssetsRequest":{
      "type":"structure",
      "required":["agentSpaceId"],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space to list assets from</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "assetType":{
          "shape":"AssetType",
          "documentation":"<p>Filter results to only assets of this type</p>",
          "location":"querystring",
          "locationName":"assetType"
        },
        "updatedAfter":{
          "shape":"Timestamp",
          "documentation":"<p>Filter results to only assets updated after this timestamp</p>",
          "location":"querystring",
          "locationName":"updatedAfter"
        },
        "updatedBefore":{
          "shape":"Timestamp",
          "documentation":"<p>Filter results to only assets updated before this timestamp</p>",
          "location":"querystring",
          "locationName":"updatedBefore"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Pagination token from a previous response to retrieve the next page of results</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"ListAssetsRequestMaxResultsInteger",
          "documentation":"<p>The maximum number of results to return in a single response</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      },
      "documentation":"<p>Request structure for listing assets</p>"
    },
    "ListAssetsRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListAssetsResponse":{
      "type":"structure",
      "required":["items"],
      "members":{
        "items":{
          "shape":"AssetList",
          "documentation":"<p>The list of assets for the agent space</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Pagination token to retrieve the next page of results. Absent when there are no more results.</p>"
        }
      },
      "documentation":"<p>Response structure for listing assets</p>"
    },
    "ListAssociationsInput":{
      "type":"structure",
      "required":["agentSpaceId"],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier of the AgentSpace</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "maxResults":{
          "shape":"ListAssociationsInputMaxResultsInteger",
          "documentation":"<p>Maximum number of results to return in a single call.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Token for the next page of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "filterServiceTypes":{
          "shape":"ListAssociationsInputFilterServiceTypesString",
          "documentation":"<p>A comma-separated list of service types to filter list associations output</p>",
          "location":"querystring",
          "locationName":"filterServiceTypes"
        }
      },
      "documentation":"<p>Input for listing service associations within an AgentSpace.</p>"
    },
    "ListAssociationsInputFilterServiceTypesString":{
      "type":"string",
      "pattern":"\\w+(?:,\\s*\\w+)*"
    },
    "ListAssociationsInputMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListAssociationsOutput":{
      "type":"structure",
      "required":["associations"],
      "members":{
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Token to retrieve the next page of results, if there are more results.</p>"
        },
        "associations":{
          "shape":"AssociationsList",
          "documentation":"<p>The list of associations.</p>"
        }
      },
      "documentation":"<p>Output containing a list of service associations and pagination token.</p>"
    },
    "ListBacklogTasksRequest":{
      "type":"structure",
      "required":["agentSpaceId"],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space containing the tasks</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "filter":{
          "shape":"TaskFilter",
          "documentation":"<p>Filter criteria to apply when listing tasks Filtering restrictions: - Each filter field list is limited to a single value - Filtering by Priority and Status at the same time when not filtering by Type is not permitted - Timestamp filters (createdAfter, createdBefore) can be combined with other filters when not sorting by priority</p>"
        },
        "limit":{
          "shape":"ListBacklogTasksRequestLimitInteger",
          "documentation":"<p>Maximum number of tasks to return in a single response (1-1000, default: 100)</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Token for retrieving the next page of results</p>"
        },
        "sortField":{
          "shape":"TaskSortField",
          "documentation":"<p>Field to sort by Sorting restrictions: - Only sorting on createdAt is supported when using priority or status filters alone. - Sorting by priority is not supported when using Timestamp filters (createdAfter, createdBefore)</p>"
        },
        "order":{
          "shape":"TaskSortOrder",
          "documentation":"<p>Sort order for the tasks based on sortField (default: DESC)</p>"
        }
      },
      "documentation":"<p>Request structure for listing backlog tasks with filtering, sorting, and pagination support</p>"
    },
    "ListBacklogTasksRequestLimitInteger":{
      "type":"integer",
      "box":true,
      "max":1000,
      "min":1
    },
    "ListBacklogTasksResponse":{
      "type":"structure",
      "required":["tasks"],
      "members":{
        "tasks":{
          "shape":"TaskList",
          "documentation":"<p>List of backlog tasks</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>Token for retrieving the next page of results, if more results are available</p>"
        }
      },
      "documentation":"<p>Response structure containing a list of backlog tasks</p>"
    },
    "ListChatsRequest":{
      "type":"structure",
      "required":["agentSpaceId"],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "userId":{
          "shape":"ResourceId",
          "documentation":"<p>The user identifier to list chats for. This field is deprecated and will be ignored — the service resolves user identity from the authenticated session.</p>",
          "deprecated":true,
          "deprecatedMessage":"userId is managed by the service and should not be provided by the caller",
          "deprecatedSince":"2026-04-15",
          "location":"querystring",
          "locationName":"userId"
        },
        "maxResults":{
          "shape":"ListChatsRequestMaxResultsInteger",
          "documentation":"<p>Maximum number of results to return</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>Token for pagination</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      },
      "documentation":"<p>Request structure for listing chats</p>"
    },
    "ListChatsRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":20,
      "min":1
    },
    "ListChatsResponse":{
      "type":"structure",
      "required":["executions"],
      "members":{
        "executions":{
          "shape":"ChatExecutionList",
          "documentation":"<p>List of recent chat executions</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>Token for retrieving the next page of results</p>"
        }
      },
      "documentation":"<p>Response structure for listing chats</p>"
    },
    "ListExecutionsRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "taskId"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "taskId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the task whose executions to retrieve</p>"
        },
        "limit":{
          "shape":"Integer",
          "documentation":"<p>Maximum number of executions to return</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Token for pagination to retrieve the next set of results</p>"
        }
      },
      "documentation":"<p>Request structure for listing executions</p>"
    },
    "ListExecutionsResponse":{
      "type":"structure",
      "required":["executions"],
      "members":{
        "executions":{
          "shape":"ExecutionList",
          "documentation":"<p>List of executions</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>Token for retrieving the next page of results, if available</p>"
        }
      },
      "documentation":"<p>Response structure containing executions</p>"
    },
    "ListGoalsRequest":{
      "type":"structure",
      "required":["agentSpaceId"],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "status":{
          "shape":"GoalStatus",
          "documentation":"<p>Filter goals by goal status</p>"
        },
        "goalType":{
          "shape":"GoalType",
          "documentation":"<p>Filter goals by goal type</p>"
        },
        "limit":{
          "shape":"ListGoalsRequestLimitInteger",
          "documentation":"<p>Maximum number of goals to return</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Pagination token for the next set of results</p>"
        }
      },
      "documentation":"<p>Request structure for listing goals</p>"
    },
    "ListGoalsRequestLimitInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListGoalsResponse":{
      "type":"structure",
      "required":["goals"],
      "members":{
        "goals":{
          "shape":"GoalList",
          "documentation":"<p>List of goals matching the criteria</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>Pagination token for the next set of results</p>"
        }
      },
      "documentation":"<p>Response structure containing the list of goals</p>"
    },
    "ListJournalRecordsRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "executionId"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space containing the execution</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "executionId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the execution whose journal records to retrieve</p>"
        },
        "limit":{
          "shape":"ListJournalRecordsRequestLimitInteger",
          "documentation":"<p>Maximum number of records to return in a single response (1-100, default: 100)</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Token for retrieving the next page of results</p>"
        },
        "recordType":{
          "shape":"String",
          "documentation":"<p>Filter records by type (empty string returns all types)</p>"
        },
        "order":{
          "shape":"OrderType",
          "documentation":"<p>Sort order for the records based on timestamp (default: DESC)</p>"
        }
      },
      "documentation":"<p>Request structure for listing journal records with filtering and pagination support</p>"
    },
    "ListJournalRecordsRequestLimitInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListJournalRecordsResponse":{
      "type":"structure",
      "required":["records"],
      "members":{
        "records":{
          "shape":"JournalRecordList",
          "documentation":"<p>List of journal records matching the request criteria</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>Token for retrieving the next page of results, if more results are available</p>"
        }
      },
      "documentation":"<p>Response structure containing a list of journal records</p>"
    },
    "ListOfSecurityGroupIds":{
      "type":"list",
      "member":{"shape":"SecurityGroupId"},
      "max":5,
      "min":1
    },
    "ListOfSubnetIds":{
      "type":"list",
      "member":{"shape":"SubnetId"},
      "max":20,
      "min":1
    },
    "ListPendingMessagesRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "executionId"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "executionId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the execution whose journal records to retrieve</p>"
        }
      },
      "documentation":"<p>Request structure for listing pending messages with filtering and pagination support</p>"
    },
    "ListPendingMessagesResponse":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "executionId",
        "messages",
        "createdAt"
      ],
      "members":{
        "agentSpaceId":{"shape":"AgentSpaceId"},
        "executionId":{
          "shape":"String",
          "documentation":"<p>The unique identifier for the execution.</p>"
        },
        "messages":{
          "shape":"PendingMessages",
          "documentation":"<p>The list of pending messages for the execution.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>Timestamp when the pending messages were created.</p>"
        }
      },
      "documentation":"<p>Response structure containing a list of pending messages</p>"
    },
    "ListPrivateConnectionsInput":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Input for listing Private Connections in the caller's account.</p>"
    },
    "ListPrivateConnectionsOutput":{
      "type":"structure",
      "required":["privateConnections"],
      "members":{
        "privateConnections":{
          "shape":"PrivateConnectionSummaryList",
          "documentation":"<p>The list of Private Connections.</p>"
        }
      },
      "documentation":"<p>Output containing the list of Private Connections.</p>"
    },
    "ListRecommendationsRequest":{
      "type":"structure",
      "required":["agentSpaceId"],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space containing the recommendations</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "taskId":{
          "shape":"ResourceId",
          "documentation":"<p>Optional task ID to filter recommendations by specific task</p>"
        },
        "goalId":{
          "shape":"ResourceId",
          "documentation":"<p>Optional goal ID to filter recommendations by specific goal</p>"
        },
        "status":{
          "shape":"RecommendationStatus",
          "documentation":"<p>Optional status to filter recommendations by their current status</p>"
        },
        "priority":{
          "shape":"RecommendationPriority",
          "documentation":"<p>Optional priority to filter recommendations by priority level</p>"
        },
        "limit":{
          "shape":"ListRecommendationsRequestLimitInteger",
          "documentation":"<p>Maximum number of recommendations to return in a single response</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Token for retrieving the next page of results</p>"
        }
      },
      "documentation":"<p>Request structure for listing recommendations with filtering and pagination support</p>"
    },
    "ListRecommendationsRequestLimitInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListRecommendationsResponse":{
      "type":"structure",
      "required":["recommendations"],
      "members":{
        "recommendations":{
          "shape":"RecommendationList",
          "documentation":"<p>List of recommendations matching the request criteria</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>Token for retrieving the next page of results, if more results are available</p>"
        }
      },
      "documentation":"<p>Response structure containing a list of recommendations</p>"
    },
    "ListServicesInput":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"ListServicesInputMaxResultsInteger",
          "documentation":"<p>Maximum number of results to return in a single call.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Token for the next page of results.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "filterServiceType":{
          "shape":"Service",
          "documentation":"<p>Optional filter to list only services of a specific type.</p>",
          "location":"querystring",
          "locationName":"filterServiceType"
        }
      },
      "documentation":"<p>Input for listing registered services with optional filtering by service type.</p>"
    },
    "ListServicesInputMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListServicesOutput":{
      "type":"structure",
      "required":["services"],
      "members":{
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Token to retrieve the next page of results, if there are more results.</p>"
        },
        "services":{"shape":"RegisteredServicesList"}
      },
      "documentation":"<p>Output containing a list of registered services and pagination token.</p>"
    },
    "ListTagsForResourceRequest":{
      "type":"structure",
      "required":["resourceArn"],
      "members":{
        "resourceArn":{
          "shape":"ListTagsForResourceRequestResourceArnString",
          "documentation":"<p>The ARN of the resource.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        }
      }
    },
    "ListTagsForResourceRequestResourceArnString":{
      "type":"string",
      "pattern":"arn:aws:aidevops:[a-z0-9-]+:\\d{12}:(agentspace|service)/[a-zA-Z0-9-]+"
    },
    "ListTagsForResourceResponse":{
      "type":"structure",
      "required":["tags"],
      "members":{
        "tags":{
          "shape":"Tags",
          "documentation":"<p>Tags associated with the resource.</p>"
        }
      }
    },
    "ListTriggersRequest":{
      "type":"structure",
      "required":["agentSpaceId"],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space whose Triggers should be listed</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "status":{
          "shape":"TriggerStatus",
          "documentation":"<p>Filter results to Triggers in this status</p>",
          "location":"querystring",
          "locationName":"status"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Pagination token from a previous response to retrieve the next page of results</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"ListTriggersRequestMaxResultsInteger",
          "documentation":"<p>The maximum number of results to return in a single response</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      },
      "documentation":"<p>Request structure for listing Triggers in an agent space</p>"
    },
    "ListTriggersRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListTriggersResponse":{
      "type":"structure",
      "required":["items"],
      "members":{
        "items":{
          "shape":"TriggerList",
          "documentation":"<p>The list of Triggers</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Pagination token to retrieve the next page of results</p>"
        }
      },
      "documentation":"<p>Response structure for listing Triggers</p>"
    },
    "ListWebhooksInput":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "associationId"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier of the AgentSpace</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "associationId":{
          "shape":"AssociationId",
          "documentation":"<p>The unique identifier of the given association.</p>",
          "location":"uri",
          "locationName":"associationId"
        }
      },
      "documentation":"<p>Input for listing service webhooks within an association.</p>"
    },
    "ListWebhooksOutput":{
      "type":"structure",
      "required":["webhooks"],
      "members":{
        "webhooks":{
          "shape":"WebhooksList",
          "documentation":"<p>The list of association webhooks.</p>"
        }
      },
      "documentation":"<p>Output containing a list of service association webhooks.</p>"
    },
    "Locale":{
      "type":"string",
      "documentation":"<p>A BCP 47 locale identifier for configuring the language used in agent responses.</p>",
      "max":35,
      "min":2,
      "pattern":"[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*"
    },
    "Long":{
      "type":"long",
      "box":true
    },
    "MCPServerAPIKeyConfig":{
      "type":"structure",
      "required":[
        "apiKeyName",
        "apiKeyValue",
        "apiKeyHeader"
      ],
      "members":{
        "apiKeyName":{
          "shape":"MCPServerAPIKeyConfigApiKeyNameString",
          "documentation":"<p>User friendly API key name specified by end user.</p>"
        },
        "apiKeyValue":{
          "shape":"MCPServerAPIKeyConfigApiKeyValueString",
          "documentation":"<p>API key value for authenticating with the service.</p>"
        },
        "apiKeyHeader":{
          "shape":"MCPServerAPIKeyConfigApiKeyHeaderString",
          "documentation":"<p>HTTP header name to send the API key in requests to the service.</p>"
        }
      },
      "documentation":"<p>API key configuration for MCP server.</p>"
    },
    "MCPServerAPIKeyConfigApiKeyHeaderString":{
      "type":"string",
      "pattern":"[a-zA-Z0-9-_]+"
    },
    "MCPServerAPIKeyConfigApiKeyNameString":{
      "type":"string",
      "pattern":"[a-zA-Z0-9_\\s-]+"
    },
    "MCPServerAPIKeyConfigApiKeyValueString":{
      "type":"string",
      "documentation":"<p>API Key Value for service.</p>",
      "min":1,
      "pattern":"[!-~]([ \\t]*[!-~])*",
      "sensitive":true
    },
    "MCPServerAuthorizationConfig":{
      "type":"structure",
      "members":{
        "oAuthClientCredentials":{
          "shape":"MCPServerOAuthClientCredentialsConfig",
          "documentation":"<p>MCP server configuration with OAuth client credentials.</p>"
        },
        "oAuth3LO":{
          "shape":"MCPServerOAuth3LOConfig",
          "documentation":"<p>MCP server configuration with OAuth 3LO.</p>"
        },
        "apiKey":{
          "shape":"MCPServerAPIKeyConfig",
          "documentation":"<p>MCP server configuration with API key authentication.</p>"
        },
        "bearerToken":{
          "shape":"MCPServerBearerTokenConfig",
          "documentation":"<p>MCP server configuration with Bearer token (RFC 6750).</p>"
        },
        "authorizationDiscovery":{
          "shape":"MCPServerAuthorizationDiscoveryConfig",
          "documentation":"<p>MCP server authorization discovery configuration.</p>"
        }
      },
      "documentation":"<p>Authorization configuration options for MCP server, supporting OAuth, API key, bearer token, and authorization discovery methods.</p>",
      "union":true
    },
    "MCPServerAuthorizationDiscoveryConfig":{
      "type":"structure",
      "required":["returnToEndpoint"],
      "members":{
        "returnToEndpoint":{
          "shape":"MCPServerAuthorizationDiscoveryConfigReturnToEndpointString",
          "documentation":"<p>The endpoint to return to after OAuth flow completes (must be AWS console domain)</p>"
        }
      },
      "documentation":"<p>Authorization discovery configuration for MCP server.</p>"
    },
    "MCPServerAuthorizationDiscoveryConfigReturnToEndpointString":{
      "type":"string",
      "pattern":"https://[a-zA-Z0-9.-]*\\.(console\\.(aws|aws-dev)|awsc-(integ|preprod)\\.aws)\\.amazon\\.com(/.*)?"
    },
    "MCPServerAuthorizationMethod":{
      "type":"string",
      "documentation":"<p>Supported authorization methods for MCP servers.</p>",
      "enum":[
        "oauth-client-credentials",
        "oauth-3lo",
        "api-key",
        "bearer-token"
      ]
    },
    "MCPServerBearerTokenConfig":{
      "type":"structure",
      "required":[
        "tokenName",
        "tokenValue"
      ],
      "members":{
        "tokenName":{
          "shape":"MCPServerBearerTokenConfigTokenNameString",
          "documentation":"<p>User friendly bearer token name specified by end user.</p>"
        },
        "tokenValue":{
          "shape":"MCPServerBearerTokenConfigTokenValueString",
          "documentation":"<p>Bearer token value in alphanumeric for authenticating with the service.</p>"
        },
        "authorizationHeader":{
          "shape":"MCPServerBearerTokenConfigAuthorizationHeaderString",
          "documentation":"<p>HTTP header name to send the bearer token in requests to the service. Defaults to 'Authorization' per RFC 6750.</p>"
        }
      },
      "documentation":"<p>Bearer token configuration for MCP server (RFC 6750).</p>"
    },
    "MCPServerBearerTokenConfigAuthorizationHeaderString":{
      "type":"string",
      "pattern":"[a-zA-Z0-9-]+"
    },
    "MCPServerBearerTokenConfigTokenNameString":{
      "type":"string",
      "pattern":"[a-zA-Z0-9_\\s-]+"
    },
    "MCPServerBearerTokenConfigTokenValueString":{
      "type":"string",
      "documentation":"<p>Token value for authentication.</p>",
      "pattern":"[\\S]+",
      "sensitive":true
    },
    "MCPServerConfiguration":{
      "type":"structure",
      "required":["tools"],
      "members":{
        "tools":{
          "shape":"MCPToolsList",
          "documentation":"<p>List of MCP tools can be used with the association.</p>"
        }
      },
      "documentation":"<p>Configuration for Model Context Protocol (MCP) server integration.</p>"
    },
    "MCPServerDatadogConfiguration":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Mixin for webhook update support.</p>"
    },
    "MCPServerDetails":{
      "type":"structure",
      "required":[
        "name",
        "endpoint",
        "authorizationConfig"
      ],
      "members":{
        "name":{
          "shape":"MCPServerName",
          "documentation":"<p>MCP server name.</p>"
        },
        "endpoint":{
          "shape":"MCPServerEndpoint",
          "documentation":"<p>MCP server endpoint URL.</p>"
        },
        "description":{
          "shape":"MCPServerDetailsDescriptionString",
          "documentation":"<p>Optional description for the MCP server.</p>"
        },
        "authorizationConfig":{
          "shape":"MCPServerAuthorizationConfig",
          "documentation":"<p>MCP server authorization configuration.</p>"
        }
      },
      "documentation":"<p>Complete service details for MCP server integration.</p>"
    },
    "MCPServerDetailsDescriptionString":{
      "type":"string",
      "documentation":"<p>Description field</p>",
      "max":500,
      "min":0,
      "pattern":"[\\p{L}\\p{N}\\p{P}\\p{S}\\p{Z}]+",
      "sensitive":true
    },
    "MCPServerEndpoint":{
      "type":"string",
      "documentation":"<p>HTTPS endpoint URL for an MCP server.</p>",
      "max":2048,
      "min":1,
      "pattern":"https://[a-zA-Z0-9.-]+(?::[0-9]+)?(?:/.*)?"
    },
    "MCPServerGrafanaConfiguration":{
      "type":"structure",
      "required":["endpoint"],
      "members":{
        "endpoint":{
          "shape":"MCPServerGrafanaConfigurationEndpointString",
          "documentation":"<p>Grafana instance URL (e.g., https://your-instance.grafana.net)</p>"
        },
        "organizationId":{
          "shape":"MCPServerGrafanaConfigurationOrganizationIdString",
          "documentation":"<p>The Grafana organization ID that can be used.</p>"
        },
        "tools":{
          "shape":"MCPToolsList",
          "documentation":"<p>List of MCP tools that can be used.</p>"
        }
      },
      "documentation":"<p>Configuration for Grafana MCP server integration, used with an AWS-hosted MCP server.</p>"
    },
    "MCPServerGrafanaConfigurationEndpointString":{
      "type":"string",
      "pattern":"https://[a-zA-Z0-9.-]+(?::[0-9]+)?(?:/.*)?"
    },
    "MCPServerGrafanaConfigurationOrganizationIdString":{
      "type":"string",
      "pattern":"[0-9]+"
    },
    "MCPServerName":{
      "type":"string",
      "documentation":"<p>Name identifier for an MCP server.</p>",
      "max":128,
      "min":1,
      "pattern":"[a-zA-Z0-9_-]+"
    },
    "MCPServerNewRelicConfiguration":{
      "type":"structure",
      "required":[
        "accountId",
        "endpoint"
      ],
      "members":{
        "accountId":{
          "shape":"MCPServerNewRelicConfigurationAccountIdString",
          "documentation":"<p>New Relic Account ID</p>"
        },
        "endpoint":{
          "shape":"MCPServerNewRelicConfigurationEndpointString",
          "documentation":"<p>MCP server endpoint URL (e.g., https://mcp.newrelic.com/mcp/)</p>"
        }
      },
      "documentation":"<p>Mixin for webhook update support.</p>"
    },
    "MCPServerNewRelicConfigurationAccountIdString":{
      "type":"string",
      "max":7,
      "min":3,
      "pattern":"[0-9]+"
    },
    "MCPServerNewRelicConfigurationEndpointString":{
      "type":"string",
      "pattern":"https://[a-zA-Z0-9.-]+(?::[0-9]+)?(?:/.*)?"
    },
    "MCPServerOAuth3LOConfig":{
      "type":"structure",
      "required":[
        "clientId",
        "returnToEndpoint",
        "authorizationUrl",
        "exchangeUrl"
      ],
      "members":{
        "clientName":{
          "shape":"MCPServerOAuth3LOConfigClientNameString",
          "documentation":"<p>User friendly OAuth client name specified by end user.</p>"
        },
        "clientId":{
          "shape":"ClientId",
          "documentation":"<p>OAuth client ID for authenticating with the service.</p>"
        },
        "exchangeParameters":{
          "shape":"ExchangeParameters",
          "documentation":"<p>OAuth token exchange parameters for authenticating with the service.</p>"
        },
        "returnToEndpoint":{
          "shape":"MCPServerOAuth3LOConfigReturnToEndpointString",
          "documentation":"<p>The endpoint to return to after OAuth flow completes (must be AWS console domain)</p>"
        },
        "authorizationUrl":{
          "shape":"MCPServerOAuth3LOConfigAuthorizationUrlString",
          "documentation":"<p>OAuth authorization URL for 3LO authentication.</p>"
        },
        "exchangeUrl":{
          "shape":"MCPServerOAuth3LOConfigExchangeUrlString",
          "documentation":"<p>OAuth token exchange URL.</p>"
        },
        "clientSecret":{
          "shape":"MCPServerOAuth3LOConfigClientSecretString",
          "documentation":"<p>OAuth client secret for authenticating with the service. Required for confidential clients or when PKCE is not supported. Optional for public clients using PKCE.</p>"
        },
        "supportCodeChallenge":{
          "shape":"Boolean",
          "documentation":"<p>Whether the service supports PKCE (Proof Key for Code Exchange) for enhanced security during the OAuth flow.</p>"
        },
        "scopes":{
          "shape":"Scopes",
          "documentation":"<p>OAuth scopes for 3LO authentication. The service will always request scope offline_access.</p>"
        }
      },
      "documentation":"<p>OAuth 3-legged authorization configuration for MCP server.</p>"
    },
    "MCPServerOAuth3LOConfigAuthorizationUrlString":{
      "type":"string",
      "pattern":"https://[a-zA-Z0-9.-]+(?::[0-9]+)?(?:/.*)?"
    },
    "MCPServerOAuth3LOConfigClientNameString":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"[\\p{L}\\p{N}\\p{Z}._-]+"
    },
    "MCPServerOAuth3LOConfigClientSecretString":{
      "type":"string",
      "documentation":"<p>Client secret for service authentication.</p>",
      "max":512,
      "min":0,
      "pattern":"[\\S]*",
      "sensitive":true
    },
    "MCPServerOAuth3LOConfigExchangeUrlString":{
      "type":"string",
      "pattern":"https://[a-zA-Z0-9.-]+(?::[0-9]+)?(?:/.*)?"
    },
    "MCPServerOAuth3LOConfigReturnToEndpointString":{
      "type":"string",
      "pattern":"https://[a-zA-Z0-9.-]*\\.(console\\.(aws|aws-dev)|awsc-(integ|preprod)\\.aws)\\.amazon\\.com(/.*)?"
    },
    "MCPServerOAuthClientCredentialsConfig":{
      "type":"structure",
      "required":[
        "clientId",
        "clientSecret",
        "exchangeUrl"
      ],
      "members":{
        "clientName":{
          "shape":"MCPServerOAuthClientCredentialsConfigClientNameString",
          "documentation":"<p>User friendly OAuth client name specified by end user.</p>"
        },
        "clientId":{
          "shape":"ClientId",
          "documentation":"<p>OAuth client ID for authenticating with the service.</p>"
        },
        "exchangeParameters":{
          "shape":"ExchangeParameters",
          "documentation":"<p>OAuth token exchange parameters for authenticating with the service.</p>"
        },
        "clientSecret":{
          "shape":"ClientSecret",
          "documentation":"<p>OAuth client secret for authenticating with the service.</p>"
        },
        "exchangeUrl":{
          "shape":"MCPServerOAuthClientCredentialsConfigExchangeUrlString",
          "documentation":"<p>OAuth token exchange URL.</p>"
        },
        "scopes":{
          "shape":"Scopes",
          "documentation":"<p>OAuth scopes for 3LO authentication. The service will always request scope offline_access.</p>"
        }
      },
      "documentation":"<p>OAuth client credentials configuration for MCP server.</p>"
    },
    "MCPServerOAuthClientCredentialsConfigClientNameString":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"[\\p{L}\\p{N}\\p{Z}._-]+"
    },
    "MCPServerOAuthClientCredentialsConfigExchangeUrlString":{
      "type":"string",
      "pattern":"https://[a-zA-Z0-9.-]+(?::[0-9]+)?(?:/.*)?"
    },
    "MCPServerSigV4AuthorizationConfig":{
      "type":"structure",
      "required":[
        "region",
        "service"
      ],
      "members":{
        "region":{
          "shape":"SigV4Region",
          "documentation":"<p>AWS region for SigV4 signing. Use '*' for SigV4a multi-region signing.</p>"
        },
        "service":{
          "shape":"MCPServerSigV4AuthorizationConfigServiceString",
          "documentation":"<p>AWS service name for SigV4 signing.</p>"
        },
        "roleArn":{
          "shape":"MCPServerSigV4AuthorizationConfigRoleArnString",
          "documentation":"<p>Deprecated — use mcpRoleArn instead. IAM role ARN to assume for SigV4 signing.</p>",
          "deprecated":true,
          "deprecatedMessage":"Use mcpRoleArn instead.",
          "deprecatedSince":"2026-05-27"
        },
        "mcpRoleArn":{
          "shape":"RoleArn",
          "documentation":"<p>IAM role ARN to assume for SigV4 signing. Optional — when omitted, credentials are resolved at runtime via a monitor account association.</p>"
        },
        "customHeaders":{
          "shape":"CustomHeaders",
          "documentation":"<p>Custom headers for the SigV4 MCP server.</p>"
        }
      },
      "documentation":"<p>Authorization configuration for SigV4-authenticated MCP server.</p>"
    },
    "MCPServerSigV4AuthorizationConfigRoleArnString":{
      "type":"string",
      "max":255,
      "min":0
    },
    "MCPServerSigV4AuthorizationConfigServiceString":{
      "type":"string",
      "max":100,
      "min":1
    },
    "MCPServerSigV4Configuration":{
      "type":"structure",
      "required":["tools"],
      "members":{
        "tools":{
          "shape":"MCPToolsList",
          "documentation":"<p>List of MCP tools available for the association.</p>"
        }
      },
      "documentation":"<p>Configuration for SigV4-authenticated MCP server integration.</p>"
    },
    "MCPServerSigV4ServiceDetails":{
      "type":"structure",
      "required":[
        "name",
        "endpoint",
        "authorizationConfig"
      ],
      "members":{
        "name":{
          "shape":"MCPServerName",
          "documentation":"<p>MCP server name.</p>"
        },
        "endpoint":{
          "shape":"MCPServerEndpoint",
          "documentation":"<p>MCP server endpoint URL.</p>"
        },
        "description":{
          "shape":"MCPServerSigV4ServiceDetailsDescriptionString",
          "documentation":"<p>Optional description for the MCP server.</p>"
        },
        "authorizationConfig":{
          "shape":"MCPServerSigV4AuthorizationConfig",
          "documentation":"<p>MCP Server SigV4 authorization configuration.</p>"
        }
      },
      "documentation":"<p>Complete service details for SigV4-authenticated MCP server integration.</p>"
    },
    "MCPServerSigV4ServiceDetailsDescriptionString":{
      "type":"string",
      "documentation":"<p>Description field</p>",
      "max":500,
      "min":0,
      "pattern":"[\\p{L}\\p{N}\\p{P}\\p{S}\\p{Z}]+",
      "sensitive":true
    },
    "MCPServerSplunkConfiguration":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Mixin for webhook update support.</p>"
    },
    "MCPToolsList":{
      "type":"list",
      "member":{"shape":"MCPToolsListMemberString"},
      "documentation":"<p>List of MCP tool names available for the association.</p>"
    },
    "MCPToolsListMemberString":{
      "type":"string",
      "pattern":"[a-zA-Z0-9_-]+"
    },
    "MaxIpv4AddressesPerEni":{
      "type":"integer",
      "documentation":"<p>The number of IPv4 addresses in each ENI for the Resource Gateway.</p>",
      "box":true,
      "max":62,
      "min":1
    },
    "Message":{
      "type":"structure",
      "members":{
        "userMessage":{
          "shape":"UserMessage",
          "documentation":"<p>A message from the user.</p>"
        },
        "assistantMessage":{
          "shape":"AssistantMessage",
          "documentation":"<p>A message from the assistant.</p>"
        }
      },
      "documentation":"<p>A message in a conversation, either from the user or the assistant.</p>",
      "union":true
    },
    "MessageContent":{
      "type":"string",
      "documentation":"<p>Message content with size constraint</p>",
      "max":32768,
      "min":0
    },
    "MonitorAccountType":{
      "type":"string",
      "documentation":"<p>AWS association type for monitoring account.</p>",
      "enum":["monitor"]
    },
    "NewRelicAlertPolicyIds":{
      "type":"list",
      "member":{"shape":"NewRelicAlertPolicyIdsMemberString"},
      "documentation":"<p>List of New Relic alert policy IDs</p>"
    },
    "NewRelicAlertPolicyIdsMemberString":{
      "type":"string",
      "pattern":"[0-9]+"
    },
    "NewRelicApiKeyConfig":{
      "type":"structure",
      "required":[
        "apiKey",
        "accountId",
        "region"
      ],
      "members":{
        "apiKey":{
          "shape":"NewRelicApiKeyConfigApiKeyString",
          "documentation":"<p>New Relic User API Key</p>"
        },
        "accountId":{
          "shape":"NewRelicApiKeyConfigAccountIdString",
          "documentation":"<p>New Relic Account ID</p>"
        },
        "region":{
          "shape":"NewRelicRegion",
          "documentation":"<p>New Relic region (US or EU)</p>"
        },
        "applicationIds":{
          "shape":"NewRelicApplicationIds",
          "documentation":"<p>List of monitored APM application IDs in New Relic</p>"
        },
        "entityGuids":{
          "shape":"NewRelicEntityGuids",
          "documentation":"<p>List of globally unique IDs for New Relic resources (apps, hosts, services)</p>"
        },
        "alertPolicyIds":{
          "shape":"NewRelicAlertPolicyIds",
          "documentation":"<p>List of alert policy IDs grouping related conditions</p>"
        }
      },
      "documentation":"<p>API key authentication configuration for New Relic service.</p>"
    },
    "NewRelicApiKeyConfigAccountIdString":{
      "type":"string",
      "max":7,
      "min":3,
      "pattern":"[0-9]+"
    },
    "NewRelicApiKeyConfigApiKeyString":{
      "type":"string",
      "documentation":"<p>API Key Value for service.</p>",
      "min":1,
      "pattern":"NRAK-[A-Z0-9]+",
      "sensitive":true
    },
    "NewRelicApplicationIds":{
      "type":"list",
      "member":{"shape":"NewRelicApplicationIdsMemberString"},
      "documentation":"<p>List of New Relic application IDs</p>"
    },
    "NewRelicApplicationIdsMemberString":{
      "type":"string",
      "pattern":"[0-9]+"
    },
    "NewRelicEntityGuids":{
      "type":"list",
      "member":{"shape":"NewRelicEntityGuidsMemberString"},
      "documentation":"<p>List of New Relic entity GUIDs</p>"
    },
    "NewRelicEntityGuidsMemberString":{
      "type":"string",
      "pattern":"[a-zA-Z0-9_.-]+"
    },
    "NewRelicRegion":{
      "type":"string",
      "documentation":"<p>The NewRelic region (determines API endpoint).</p>",
      "enum":[
        "US",
        "EU"
      ]
    },
    "NewRelicServiceAuthorizationConfig":{
      "type":"structure",
      "members":{
        "apiKey":{
          "shape":"NewRelicApiKeyConfig",
          "documentation":"<p>New Relic API Key authentication (apiKey, accountId, region).</p>"
        }
      },
      "documentation":"<p>Authorization configuration options for New Relic service.</p>",
      "union":true
    },
    "NewRelicServiceDetails":{
      "type":"structure",
      "required":["authorizationConfig"],
      "members":{
        "authorizationConfig":{
          "shape":"NewRelicServiceAuthorizationConfig",
          "documentation":"<p>New Relic MCP server authorization configuration.</p>"
        }
      },
      "documentation":"<p>Complete service details for New Relic integration.</p>"
    },
    "NextToken":{
      "type":"string",
      "documentation":"<p>Pagination token for list operations (1-2048 characters)</p>",
      "max":2048,
      "min":1
    },
    "OAuthAdditionalStepDetails":{
      "type":"structure",
      "required":["authorizationUrl"],
      "members":{
        "authorizationUrl":{
          "shape":"String",
          "documentation":"<p>The URL to redirect the user to for OAuth authorization.</p>"
        }
      },
      "documentation":"<p>Details for completing OAuth authorization step.</p>"
    },
    "OAuthScope":{
      "type":"string",
      "documentation":"<p>OAuth scope parameter</p>",
      "max":128,
      "min":1,
      "pattern":"[!#-\\[\\]-~]+"
    },
    "OperatorAppUrl":{
      "type":"string",
      "documentation":"<p>The URL for operators to access the Operator App.</p>",
      "max":2048,
      "min":1,
      "pattern":"https://[a-zA-Z0-9.-]+(/.*)?"
    },
    "OrderType":{
      "type":"string",
      "documentation":"<p>Sort order options for journal operations</p>",
      "enum":[
        "ASC",
        "DESC"
      ]
    },
    "PagerDutyAuthorizationConfig":{
      "type":"structure",
      "members":{
        "oAuthClientCredentials":{
          "shape":"PagerDutyOAuthClientCredentialsConfig",
          "documentation":"<p>OAuth client credentials configuration.</p>"
        }
      },
      "documentation":"<p>Authorization configuration options for PagerDuty service.</p>",
      "union":true
    },
    "PagerDutyConfiguration":{
      "type":"structure",
      "required":[
        "services",
        "customerEmail"
      ],
      "members":{
        "services":{
          "shape":"PagerDutyServicesList",
          "documentation":"<p>List of Pagerduty service available for the association.</p>"
        },
        "customerEmail":{
          "shape":"EmailAddress",
          "documentation":"<p>Email to be used in Pagerduty API header</p>"
        }
      },
      "documentation":"<p>Configuration for Pagerduty integration.</p>"
    },
    "PagerDutyDetails":{
      "type":"structure",
      "required":[
        "scopes",
        "authorizationConfig"
      ],
      "members":{
        "scopes":{
          "shape":"PagerDutyScopes",
          "documentation":"<p>PagerDuty scopes.</p>"
        },
        "authorizationConfig":{
          "shape":"PagerDutyAuthorizationConfig",
          "documentation":"<p>PagerDuty authorization configuration</p>"
        }
      },
      "documentation":"<p>Complete service details for PagerDuty integration</p>"
    },
    "PagerDutyOAuthClientCredentialsConfig":{
      "type":"structure",
      "required":[
        "clientId",
        "clientSecret"
      ],
      "members":{
        "clientName":{
          "shape":"PagerDutyOAuthClientCredentialsConfigClientNameString",
          "documentation":"<p>User friendly OAuth client name specified by end user.</p>"
        },
        "clientId":{
          "shape":"ClientId",
          "documentation":"<p>OAuth client ID for authenticating with the service.</p>"
        },
        "exchangeParameters":{
          "shape":"ExchangeParameters",
          "documentation":"<p>OAuth token exchange parameters for authenticating with the service.</p>"
        },
        "clientSecret":{
          "shape":"ClientSecret",
          "documentation":"<p>OAuth client secret for authenticating with the service.</p>"
        }
      },
      "documentation":"<p>OAuth client credentials configuration for PagerDuty.</p>"
    },
    "PagerDutyOAuthClientCredentialsConfigClientNameString":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"[\\p{L}\\p{N}\\p{Z}._-]+"
    },
    "PagerDutyScopes":{
      "type":"list",
      "member":{"shape":"String"}
    },
    "PagerDutyScopesList":{
      "type":"list",
      "member":{"shape":"String"},
      "documentation":"<p>PagerDuty list of scopes.</p>"
    },
    "PagerDutyServicesList":{
      "type":"list",
      "member":{"shape":"String"},
      "documentation":"<p>List of pager duty services available for the association.</p>"
    },
    "PendingMessage":{
      "type":"structure",
      "required":[
        "messageId",
        "message"
      ],
      "members":{
        "messageId":{
          "shape":"String",
          "documentation":"<p>The unique identifier for this pending message.</p>"
        },
        "message":{
          "shape":"Message",
          "documentation":"<p>The message content.</p>"
        }
      },
      "documentation":"<p>Represents a pending message in an agent execution.</p>"
    },
    "PendingMessages":{
      "type":"list",
      "member":{"shape":"PendingMessage"}
    },
    "PortRange":{
      "type":"string",
      "documentation":"<p>TCP port range expression (single port or range e.g. '443' or '8080-8090'). Valid port values are 1-65535, enforced at runtime.</p>",
      "min":1,
      "pattern":"((\\d{1,5}\\-\\d{1,5})|(\\d+))"
    },
    "PortRanges":{
      "type":"list",
      "member":{"shape":"PortRange"},
      "max":11,
      "min":1
    },
    "PostRegisterServiceSupportedService":{
      "type":"string",
      "documentation":"<p>Services that can be registered via the post-registration API (excludes OAuth 3LO services).</p>",
      "enum":[
        "dynatrace",
        "servicenow",
        "pagerduty",
        "gitlab",
        "eventChannel",
        "mcpservernewrelic",
        "mcpservergrafana",
        "mcpserverdatadog",
        "mcpserver",
        "mcpserversplunk",
        "azureidentity",
        "mcpserversigv4",
        "remoteagent",
        "remoteagentsigv4"
      ]
    },
    "Priority":{
      "type":"string",
      "documentation":"<p>Priority levels for tasks, from highest to lowest urgency</p>",
      "enum":[
        "CRITICAL",
        "HIGH",
        "MEDIUM",
        "LOW",
        "MINIMAL"
      ]
    },
    "PrivateConnectionMode":{
      "type":"structure",
      "members":{
        "serviceManaged":{
          "shape":"ServiceManagedInput",
          "documentation":"<p>Service manages the Resource Gateway lifecycle.</p>"
        },
        "selfManaged":{
          "shape":"SelfManagedInput",
          "documentation":"<p>Caller manages their own resource configuration.</p>"
        }
      },
      "documentation":"<p>Private Connection mode — either service-managed or self-managed.</p>",
      "union":true
    },
    "PrivateConnectionName":{
      "type":"string",
      "documentation":"<p>Unique name for a Private Connection within an account.</p>",
      "max":30,
      "min":3,
      "pattern":"[a-z0-9]([a-z0-9-]*[a-z0-9])?"
    },
    "PrivateConnectionStatus":{
      "type":"string",
      "documentation":"<p>Status of a Private Connection.</p>",
      "enum":[
        "ACTIVE",
        "CREATE_IN_PROGRESS",
        "CREATE_FAILED",
        "DELETE_IN_PROGRESS",
        "DELETE_FAILED"
      ]
    },
    "PrivateConnectionSummary":{
      "type":"structure",
      "required":[
        "name",
        "type",
        "status"
      ],
      "members":{
        "name":{
          "shape":"PrivateConnectionName",
          "documentation":"<p>The name of the Private Connection.</p>"
        },
        "type":{
          "shape":"PrivateConnectionType",
          "documentation":"<p>The type of the Private Connection.</p>"
        },
        "resourceGatewayId":{
          "shape":"ResourceGatewayArn",
          "documentation":"<p>The service-managed Resource Gateway ARN. Only present for service-managed Private Connections.</p>"
        },
        "hostAddress":{
          "shape":"IpAddressOrDnsName",
          "documentation":"<p>IP address or DNS name of the target resource. Only present for service-managed Private Connections.</p>"
        },
        "vpcId":{
          "shape":"VpcId",
          "documentation":"<p>VPC identifier of the service-managed Resource Gateway. Only present for service-managed Private Connections.</p>"
        },
        "resourceConfigurationId":{
          "shape":"ResourceConfigurationArn",
          "documentation":"<p>The Resource Configuration ARN. Only present for self-managed Private Connections.</p>"
        },
        "status":{
          "shape":"PrivateConnectionStatus",
          "documentation":"<p>The status of the Private Connection.</p>"
        },
        "certificateExpiryTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The expiry time of the certificate associated with the Private Connection. Only present when a certificate is associated.</p>"
        },
        "dnsResolution":{
          "shape":"ResourceConfigDnsResolution",
          "documentation":"<p>DNS resolution mode for the Private Connection's resource gateway.</p>"
        },
        "failureMessage":{
          "shape":"FailureMessage",
          "documentation":"<p>Message describing the reason for a failed Private Connection, if applicable.</p>"
        }
      },
      "documentation":"<p>Summary of a Private Connection.</p>"
    },
    "PrivateConnectionSummaryList":{
      "type":"list",
      "member":{"shape":"PrivateConnectionSummary"}
    },
    "PrivateConnectionType":{
      "type":"string",
      "documentation":"<p>The type of Private Connection.</p>",
      "enum":[
        "SELF_MANAGED",
        "SERVICE_MANAGED"
      ]
    },
    "Recommendation":{
      "type":"structure",
      "required":[
        "agentSpaceArn",
        "recommendationId",
        "taskId",
        "title",
        "content",
        "status",
        "priority",
        "createdAt",
        "updatedAt",
        "version"
      ],
      "members":{
        "agentSpaceArn":{
          "shape":"String",
          "documentation":"<p>ARN of the agent space this recommendation belongs to</p>"
        },
        "recommendationId":{
          "shape":"String",
          "documentation":"<p>The unique identifier for this recommendation</p>"
        },
        "taskId":{
          "shape":"String",
          "documentation":"<p>ID of the task that generated the recommendation</p>"
        },
        "goalId":{
          "shape":"String",
          "documentation":"<p>ID of the goal this recommendation is associated with</p>"
        },
        "title":{
          "shape":"String",
          "documentation":"<p>The title of the recommendation</p>"
        },
        "content":{
          "shape":"RecommendationContent",
          "documentation":"<p>Content of the recommendation</p>"
        },
        "status":{
          "shape":"RecommendationStatus",
          "documentation":"<p>Current status of the recommendation</p>"
        },
        "priority":{
          "shape":"RecommendationPriority",
          "documentation":"<p>Priority level of the recommendation</p>"
        },
        "goalVersion":{
          "shape":"Long",
          "documentation":"<p>Version of the goal at the time this recommendation was generated</p>"
        },
        "additionalContext":{
          "shape":"String",
          "documentation":"<p>Additional context for recommendation</p>"
        },
        "rankPosition":{
          "shape":"RecommendationRankPositionInteger",
          "documentation":"<p>Position in ranked list (1 = highest priority)</p>"
        },
        "rankedAt":{
          "shape":"BackLogTimestamp",
          "documentation":"<p>Timestamp when the recommendation was last ranked</p>"
        },
        "createdAt":{
          "shape":"BackLogTimestamp",
          "documentation":"<p>Timestamp when this recommendation was created</p>"
        },
        "updatedAt":{
          "shape":"BackLogTimestamp",
          "documentation":"<p>Timestamp when this recommendation was last updated</p>"
        },
        "version":{
          "shape":"Long",
          "documentation":"<p>Version number for optimistic locking</p>"
        }
      },
      "documentation":"<p>Represents a recommendation with all its properties and metadata</p>"
    },
    "RecommendationContent":{
      "type":"structure",
      "required":["summary"],
      "members":{
        "summary":{
          "shape":"String",
          "documentation":"<p>A brief summary of the recommendation.</p>"
        },
        "spec":{
          "shape":"RecommendationContentSpecString",
          "documentation":"<p>Agent-ready specification with detailed implementation steps</p>"
        }
      },
      "documentation":"<p>Content of a recommendation</p>"
    },
    "RecommendationContentSpecString":{
      "type":"string",
      "max":100000,
      "min":0
    },
    "RecommendationList":{
      "type":"list",
      "member":{"shape":"Recommendation"}
    },
    "RecommendationPriority":{
      "type":"string",
      "documentation":"<p>Priority level of a recommendation</p>",
      "enum":[
        "HIGH",
        "MEDIUM",
        "LOW"
      ]
    },
    "RecommendationRankPositionInteger":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "RecommendationStatus":{
      "type":"string",
      "documentation":"<p>Status of a recommendation</p>",
      "enum":[
        "PROPOSED",
        "ACCEPTED",
        "REJECTED",
        "CLOSED",
        "COMPLETED",
        "UPDATE_IN_PROGRESS"
      ]
    },
    "ReferenceInput":{
      "type":"structure",
      "required":[
        "system",
        "referenceId",
        "referenceUrl",
        "associationId"
      ],
      "members":{
        "system":{
          "shape":"ReferenceInputSystemString",
          "documentation":"<p>The name of the external system</p>"
        },
        "title":{
          "shape":"ReferenceInputTitleString",
          "documentation":"<p>Optional title for the reference</p>"
        },
        "referenceId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier in the external system</p>"
        },
        "referenceUrl":{
          "shape":"ReferenceInputReferenceUrlString",
          "documentation":"<p>URL to access the reference in the external system</p>"
        },
        "associationId":{
          "shape":"ResourceId",
          "documentation":"<p>Association identifier of the external system</p>"
        }
      },
      "documentation":"<p>Reference information linking a task to external systems - for input with validation</p>"
    },
    "ReferenceInputReferenceUrlString":{
      "type":"string",
      "max":2048,
      "min":1
    },
    "ReferenceInputSystemString":{
      "type":"string",
      "max":256,
      "min":1
    },
    "ReferenceInputTitleString":{
      "type":"string",
      "max":512,
      "min":1
    },
    "ReferenceOutput":{
      "type":"structure",
      "required":[
        "system",
        "referenceId",
        "referenceUrl",
        "associationId"
      ],
      "members":{
        "system":{
          "shape":"String",
          "documentation":"<p>The name of the external system</p>"
        },
        "title":{
          "shape":"String",
          "documentation":"<p>Optional title for the reference</p>"
        },
        "referenceId":{
          "shape":"String",
          "documentation":"<p>The unique identifier in the external system</p>"
        },
        "referenceUrl":{
          "shape":"String",
          "documentation":"<p>URL to access the reference in the external system</p>"
        },
        "associationId":{
          "shape":"String",
          "documentation":"<p>Association identifier of the external system</p>"
        }
      },
      "documentation":"<p>Reference information linking a task to external systems - for output without validation</p>"
    },
    "RegisterServiceInput":{
      "type":"structure",
      "required":[
        "service",
        "serviceDetails"
      ],
      "members":{
        "service":{
          "shape":"PostRegisterServiceSupportedService",
          "location":"uri",
          "locationName":"service"
        },
        "serviceDetails":{
          "shape":"ServiceDetails",
          "documentation":"<p>Service-specific authorization configuration parameters</p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The ARN of the AWS Key Management Service (AWS KMS) customer managed key that's used to encrypt resources.</p>"
        },
        "privateConnectionName":{
          "shape":"PrivateConnectionName",
          "documentation":"<p>The name of the private connection to use for VPC connectivity.</p>"
        },
        "targetUrlPrivateConnectionName":{
          "shape":"PrivateConnectionName",
          "documentation":"<p>The name of the private connection to use for API calls (target URL) only. Cannot be specified when privateConnectionName is provided.</p>"
        },
        "exchangeUrlPrivateConnectionName":{
          "shape":"PrivateConnectionName",
          "documentation":"<p>The name of the private connection to use for OAuth token exchange requests only. Cannot be specified when privateConnectionName is provided.</p>"
        },
        "name":{
          "shape":"ServiceName",
          "documentation":"<p>The display name for the service registration.</p>"
        },
        "tags":{
          "shape":"Tags",
          "documentation":"<p>Tags to add to the Service at registration time.</p>"
        }
      },
      "documentation":"<p>Input for registering a new service with the platform.</p>"
    },
    "RegisterServiceOutput":{
      "type":"structure",
      "members":{
        "serviceId":{
          "shape":"ServiceId",
          "documentation":"<p>Service ID - present when registration is complete, absent when additional steps are required</p>"
        },
        "additionalStep":{
          "shape":"AdditionalServiceRegistrationStep",
          "documentation":"<p>Indicates if additional steps are required to complete service registration (e.g., 3-legged OAuth)</p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The ARN of the AWS Key Management Service (AWS KMS) customer managed key that's used to encrypt resources.</p>"
        },
        "tags":{
          "shape":"Tags",
          "documentation":"<p>Tags associated with the registered Service.</p>"
        }
      },
      "documentation":"<p>Output containing the service ID and any additional steps required for registration.</p>"
    },
    "RegisteredAzureDevOpsServiceDetails":{
      "type":"structure",
      "required":["organizationName"],
      "members":{
        "organizationName":{
          "shape":"String",
          "documentation":"<p>The Azure DevOps Organization name associated with the service.</p>"
        }
      },
      "documentation":"<p>Details specific to a registered Azure DevOps service.</p>"
    },
    "RegisteredAzureIdentityDetails":{
      "type":"structure",
      "required":[
        "tenantId",
        "clientId",
        "webIdentityRoleArn",
        "webIdentityTokenAudiences"
      ],
      "members":{
        "tenantId":{
          "shape":"Guid",
          "documentation":"<p>The Azure Active Directory tenant ID for the identity.</p>"
        },
        "clientId":{
          "shape":"Guid",
          "documentation":"<p>The client ID of the service principal or managed identity used for authentication.</p>"
        },
        "webIdentityRoleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The role ARN to be assumed by DevOps Agent for requesting Web Identity Token.</p>"
        },
        "webIdentityTokenAudiences":{
          "shape":"WebIdentityTokenAudienceList",
          "documentation":"<p>The audiences for the Web Identity Token.</p>"
        }
      },
      "documentation":"<p>Details specific to a registered Azure identity using AWS Outbound Identity Federation.</p>"
    },
    "RegisteredGitLabServiceDetails":{
      "type":"structure",
      "required":[
        "targetUrl",
        "tokenType"
      ],
      "members":{
        "targetUrl":{
          "shape":"String",
          "documentation":"<p>The GitLab instance URL.</p>"
        },
        "tokenType":{
          "shape":"GitLabTokenType",
          "documentation":"<p>Type of GitLab access token</p>"
        },
        "groupId":{
          "shape":"String",
          "documentation":"<p>Optional GitLab group ID for group-level access tokens</p>"
        }
      },
      "documentation":"<p>Details specific to a registered GitLab instance.</p>"
    },
    "RegisteredGithubServiceDetails":{
      "type":"structure",
      "required":[
        "owner",
        "ownerType"
      ],
      "members":{
        "owner":{
          "shape":"String",
          "documentation":"<p>The GitHub repository owner name.</p>"
        },
        "ownerType":{
          "shape":"GithubRepoOwnerType",
          "documentation":"<p>The GitHub repository owner type.</p>"
        },
        "targetUrl":{
          "shape":"String",
          "documentation":"<p>The GitHub Enterprise Server instance URL (absent for github.com).</p>"
        }
      },
      "documentation":"<p>Details specific to a registered GitHub service.</p>"
    },
    "RegisteredGrafanaServerDetails":{
      "type":"structure",
      "required":[
        "endpoint",
        "authorizationMethod"
      ],
      "members":{
        "endpoint":{
          "shape":"MCPServerEndpoint",
          "documentation":"<p>Grafana instance URL (e.g., https://your-instance.grafana.net)</p>"
        },
        "authorizationMethod":{
          "shape":"MCPServerAuthorizationMethod",
          "documentation":"<p>The authz method used by the MCP server.</p>"
        }
      },
      "documentation":"<p>Details specific to a registered Grafana server, used by the built-in MCP server.</p>"
    },
    "RegisteredMCPServerDetails":{
      "type":"structure",
      "required":[
        "name",
        "endpoint",
        "authorizationMethod"
      ],
      "members":{
        "name":{
          "shape":"String",
          "documentation":"<p>The MCP server name.</p>"
        },
        "endpoint":{
          "shape":"String",
          "documentation":"<p>The MCP server endpoint URL.</p>"
        },
        "authorizationMethod":{
          "shape":"MCPServerAuthorizationMethod",
          "documentation":"<p>The MCP server uses this authorization method.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>Optional description for the MCP server.</p>"
        },
        "apiKeyHeader":{
          "shape":"String",
          "documentation":"<p>If the MCP server uses API key authentication, these details are provided.</p>"
        }
      },
      "documentation":"<p>Details specific to a registered MCP (Model Context Protocol) server.</p>"
    },
    "RegisteredMCPServerSigV4Details":{
      "type":"structure",
      "required":[
        "name",
        "endpoint",
        "region",
        "service",
        "roleArn"
      ],
      "members":{
        "name":{
          "shape":"MCPServerName",
          "documentation":"<p>MCP server name.</p>"
        },
        "endpoint":{
          "shape":"MCPServerEndpoint",
          "documentation":"<p>MCP server endpoint URL.</p>"
        },
        "description":{
          "shape":"RegisteredMCPServerSigV4DetailsDescriptionString",
          "documentation":"<p>Optional description for the MCP server.</p>"
        },
        "region":{
          "shape":"SigV4Region",
          "documentation":"<p>AWS region for SigV4 signing. Use '*' for SigV4a multi-region signing.</p>"
        },
        "service":{
          "shape":"RegisteredMCPServerSigV4DetailsServiceString",
          "documentation":"<p>AWS service name for SigV4 signing.</p>"
        },
        "roleArn":{
          "shape":"RegisteredMCPServerSigV4DetailsRoleArnString",
          "documentation":"<p>IAM role ARN to assume for SigV4 signing.</p>",
          "deprecated":true,
          "deprecatedMessage":"Use mcpRoleArn instead.",
          "deprecatedSince":"2026-05-27"
        },
        "mcpRoleArn":{"shape":"RoleArn"},
        "customHeaders":{
          "shape":"CustomHeaders",
          "documentation":"<p>Custom headers for the SigV4 MCP server.</p>"
        }
      },
      "documentation":"<p>Details specific to a registered SigV4-authenticated MCP server.</p>"
    },
    "RegisteredMCPServerSigV4DetailsDescriptionString":{
      "type":"string",
      "documentation":"<p>Description field</p>",
      "max":500,
      "min":0,
      "pattern":"[\\p{L}\\p{N}\\p{P}\\p{S}\\p{Z}]+",
      "sensitive":true
    },
    "RegisteredMCPServerSigV4DetailsRoleArnString":{
      "type":"string",
      "max":255,
      "min":0
    },
    "RegisteredMCPServerSigV4DetailsServiceString":{
      "type":"string",
      "max":100,
      "min":1
    },
    "RegisteredNewRelicDetails":{
      "type":"structure",
      "required":[
        "accountId",
        "region"
      ],
      "members":{
        "accountId":{
          "shape":"String",
          "documentation":"<p>The NewRelic account ID.</p>"
        },
        "region":{
          "shape":"NewRelicRegion",
          "documentation":"<p>The NewRelic region (determines API endpoint).</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>Optional user description.</p>"
        }
      },
      "documentation":"<p>Details specific to a registered NewRelic instance.</p>"
    },
    "RegisteredPagerDutyDetails":{
      "type":"structure",
      "required":["scopes"],
      "members":{
        "scopes":{
          "shape":"PagerDutyScopesList",
          "documentation":"<p>The scopes that were assigned to the service</p>"
        }
      },
      "documentation":"<p>Details specific to a registered PagerDuty service.</p>"
    },
    "RegisteredRemoteAgentDetails":{
      "type":"structure",
      "required":[
        "name",
        "endpoint",
        "authorizationMethod"
      ],
      "members":{
        "name":{"shape":"RemoteAgentName"},
        "endpoint":{"shape":"RemoteAgentEndpoint"},
        "description":{"shape":"RegisteredRemoteAgentDetailsDescriptionString"},
        "authorizationMethod":{
          "shape":"RemoteAgentAuthorizationMethod",
          "documentation":"<p>The authorization method used by the remote agent.</p>"
        },
        "apiKeyHeader":{
          "shape":"String",
          "documentation":"<p>If the remote agent uses API key authentication, the header name.</p>"
        }
      },
      "documentation":"<p>Details specific to a registered token-based remote A2A agent.</p>"
    },
    "RegisteredRemoteAgentDetailsDescriptionString":{
      "type":"string",
      "documentation":"<p>Description field</p>",
      "max":500,
      "min":0,
      "pattern":"[\\p{L}\\p{N}\\p{P}\\p{S}\\p{Z}]+",
      "sensitive":true
    },
    "RegisteredRemoteAgentSigV4Details":{
      "type":"structure",
      "required":[
        "name",
        "endpoint",
        "region",
        "service"
      ],
      "members":{
        "name":{"shape":"RemoteAgentName"},
        "endpoint":{"shape":"RemoteAgentEndpoint"},
        "description":{"shape":"RegisteredRemoteAgentSigV4DetailsDescriptionString"},
        "region":{"shape":"SigV4Region"},
        "service":{
          "shape":"RegisteredRemoteAgentSigV4DetailsServiceString",
          "documentation":"<p>The AWS service name for SigV4 signing.</p>"
        },
        "roleArn":{"shape":"RoleArn"}
      },
      "documentation":"<p>Details specific to a registered SigV4-authenticated remote A2A agent.</p>"
    },
    "RegisteredRemoteAgentSigV4DetailsDescriptionString":{
      "type":"string",
      "documentation":"<p>Description field</p>",
      "max":500,
      "min":0,
      "pattern":"[\\p{L}\\p{N}\\p{P}\\p{S}\\p{Z}]+",
      "sensitive":true
    },
    "RegisteredRemoteAgentSigV4DetailsServiceString":{
      "type":"string",
      "max":100,
      "min":1
    },
    "RegisteredService":{
      "type":"structure",
      "required":[
        "serviceId",
        "serviceType"
      ],
      "members":{
        "serviceId":{
          "shape":"ServiceId",
          "documentation":"<p>The unique identifier of a service.</p>"
        },
        "serviceType":{
          "shape":"Service",
          "documentation":"<p>The service type e.g github or dynatrace</p>"
        },
        "name":{
          "shape":"ServiceName",
          "documentation":"<p>The display name of the registered service.</p>"
        },
        "accessibleResources":{
          "shape":"DocumentList",
          "documentation":"<p>List of accessible resources for this service.</p>"
        },
        "additionalServiceDetails":{
          "shape":"AdditionalServiceDetails",
          "documentation":"<p>Additional details specific to the service type.</p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The ARN of the AWS Key Management Service (AWS KMS) customer managed key that's used to encrypt resources.</p>"
        },
        "privateConnectionName":{
          "shape":"PrivateConnectionName",
          "documentation":"<p>The name of the private connection used for VPC connectivity.</p>"
        }
      },
      "documentation":"<p>Represents a registered service with its configuration and accessible resources.</p>"
    },
    "RegisteredServiceNowDetails":{
      "type":"structure",
      "members":{
        "instanceUrl":{
          "shape":"ServiceNowInstanceUrl",
          "documentation":"<p>The ServiceNow instance url</p>"
        }
      },
      "documentation":"<p>Details specific to a registered ServiceNow instance.</p>"
    },
    "RegisteredServicesList":{
      "type":"list",
      "member":{"shape":"RegisteredService"},
      "documentation":"<p>List of registered services.</p>"
    },
    "RegisteredSlackServiceDetails":{
      "type":"structure",
      "required":[
        "teamId",
        "teamName"
      ],
      "members":{
        "teamId":{
          "shape":"String",
          "documentation":"<p>The Slack team ID.</p>"
        },
        "teamName":{
          "shape":"String",
          "documentation":"<p>The Slack team name.</p>"
        }
      },
      "documentation":"<p>Details specific to a registered Slack workspace.</p>"
    },
    "RemoteAgentAPIKeyConfig":{
      "type":"structure",
      "required":[
        "apiKeyName",
        "apiKeyValue",
        "apiKeyHeader"
      ],
      "members":{
        "apiKeyName":{
          "shape":"RemoteAgentAPIKeyConfigApiKeyNameString",
          "documentation":"<p>User friendly API key name specified by end user.</p>"
        },
        "apiKeyValue":{
          "shape":"RemoteAgentAPIKeyConfigApiKeyValueString",
          "documentation":"<p>API key value for authenticating with the service.</p>"
        },
        "apiKeyHeader":{
          "shape":"RemoteAgentAPIKeyConfigApiKeyHeaderString",
          "documentation":"<p>HTTP header name to send the API key in requests to the service.</p>"
        }
      },
      "documentation":"<p>API key configuration for remote A2A agent.</p>"
    },
    "RemoteAgentAPIKeyConfigApiKeyHeaderString":{
      "type":"string",
      "pattern":"[a-zA-Z0-9-_]+"
    },
    "RemoteAgentAPIKeyConfigApiKeyNameString":{
      "type":"string",
      "pattern":"[a-zA-Z0-9_\\s-]+"
    },
    "RemoteAgentAPIKeyConfigApiKeyValueString":{
      "type":"string",
      "documentation":"<p>API Key Value for service.</p>",
      "min":1,
      "pattern":"[!-~]([ \\t]*[!-~])*",
      "sensitive":true
    },
    "RemoteAgentAuthorizationConfig":{
      "type":"structure",
      "members":{
        "apiKey":{
          "shape":"RemoteAgentAPIKeyConfig",
          "documentation":"<p>Remote agent configuration with API key authentication.</p>"
        },
        "oAuthClientCredentials":{
          "shape":"RemoteAgentOAuthClientCredentialsConfig",
          "documentation":"<p>Remote agent configuration with OAuth client credentials.</p>"
        },
        "bearerToken":{
          "shape":"RemoteAgentBearerTokenConfig",
          "documentation":"<p>Remote agent configuration with Bearer token (RFC 6750).</p>"
        }
      },
      "documentation":"<p>Authorization configuration for remote A2A agents with token-based auth (API key, OAuth, bearer token).</p>",
      "union":true
    },
    "RemoteAgentAuthorizationMethod":{
      "type":"string",
      "documentation":"<p>Supported authorization methods for remote A2A agents.</p>",
      "enum":[
        "oauth-client-credentials",
        "api-key",
        "bearer-token"
      ]
    },
    "RemoteAgentBearerTokenConfig":{
      "type":"structure",
      "required":[
        "tokenName",
        "tokenValue"
      ],
      "members":{
        "tokenName":{
          "shape":"RemoteAgentBearerTokenConfigTokenNameString",
          "documentation":"<p>User friendly bearer token name specified by end user.</p>"
        },
        "tokenValue":{
          "shape":"RemoteAgentBearerTokenConfigTokenValueString",
          "documentation":"<p>Bearer token value in alphanumeric for authenticating with the service.</p>"
        },
        "authorizationHeader":{
          "shape":"RemoteAgentBearerTokenConfigAuthorizationHeaderString",
          "documentation":"<p>HTTP header name to send the bearer token in requests to the service. Defaults to 'Authorization' per RFC 6750.</p>"
        }
      },
      "documentation":"<p>Bearer token configuration for remote A2A agent (RFC 6750).</p>"
    },
    "RemoteAgentBearerTokenConfigAuthorizationHeaderString":{
      "type":"string",
      "pattern":"[a-zA-Z0-9-]+"
    },
    "RemoteAgentBearerTokenConfigTokenNameString":{
      "type":"string",
      "pattern":"[a-zA-Z0-9_\\s-]+"
    },
    "RemoteAgentBearerTokenConfigTokenValueString":{
      "type":"string",
      "documentation":"<p>Token value for authentication.</p>",
      "pattern":"[\\S]+",
      "sensitive":true
    },
    "RemoteAgentConfiguration":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Configuration for token-based remote A2A agent integration.</p>"
    },
    "RemoteAgentEndpoint":{
      "type":"string",
      "documentation":"<p>HTTPS endpoint URL for a remote A2A agent.</p>",
      "max":2048,
      "min":1,
      "pattern":"https://[a-zA-Z0-9.-]+(?::[0-9]+)?(?:/.*)?"
    },
    "RemoteAgentName":{
      "type":"string",
      "documentation":"<p>Name identifier for a remote A2A agent.</p>",
      "max":128,
      "min":1,
      "pattern":"[a-zA-Z0-9_-]+"
    },
    "RemoteAgentOAuthClientCredentialsConfig":{
      "type":"structure",
      "required":[
        "clientId",
        "clientSecret",
        "exchangeUrl"
      ],
      "members":{
        "clientName":{
          "shape":"RemoteAgentOAuthClientCredentialsConfigClientNameString",
          "documentation":"<p>User friendly OAuth client name specified by end user.</p>"
        },
        "clientId":{
          "shape":"ClientId",
          "documentation":"<p>OAuth client ID for authenticating with the service.</p>"
        },
        "exchangeParameters":{
          "shape":"ExchangeParameters",
          "documentation":"<p>OAuth token exchange parameters for authenticating with the service.</p>"
        },
        "clientSecret":{
          "shape":"ClientSecret",
          "documentation":"<p>OAuth client secret for authenticating with the service.</p>"
        },
        "exchangeUrl":{
          "shape":"RemoteAgentOAuthClientCredentialsConfigExchangeUrlString",
          "documentation":"<p>OAuth token exchange URL.</p>"
        },
        "scopes":{
          "shape":"Scopes",
          "documentation":"<p>OAuth scopes for authentication.</p>"
        }
      },
      "documentation":"<p>OAuth client credentials configuration for remote A2A agent.</p>"
    },
    "RemoteAgentOAuthClientCredentialsConfigClientNameString":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"[\\p{L}\\p{N}\\p{Z}._-]+"
    },
    "RemoteAgentOAuthClientCredentialsConfigExchangeUrlString":{
      "type":"string",
      "pattern":"https://[a-zA-Z0-9.-]+(?::[0-9]+)?(?:/.*)?"
    },
    "RemoteAgentServiceDetails":{
      "type":"structure",
      "required":[
        "name",
        "endpoint",
        "authorizationConfig"
      ],
      "members":{
        "name":{"shape":"RemoteAgentName"},
        "endpoint":{"shape":"RemoteAgentEndpoint"},
        "description":{"shape":"RemoteAgentServiceDetailsDescriptionString"},
        "authorizationConfig":{
          "shape":"RemoteAgentAuthorizationConfig",
          "documentation":"<p>Remote agent authorization configuration.</p>"
        }
      },
      "documentation":"<p>Complete service details for token-based remote A2A agent integration.</p>"
    },
    "RemoteAgentServiceDetailsDescriptionString":{
      "type":"string",
      "documentation":"<p>Description field</p>",
      "max":500,
      "min":0,
      "pattern":"[\\p{L}\\p{N}\\p{P}\\p{S}\\p{Z}]+",
      "sensitive":true
    },
    "RemoteAgentSigV4AuthorizationConfig":{
      "type":"structure",
      "required":[
        "region",
        "service"
      ],
      "members":{
        "region":{"shape":"SigV4Region"},
        "service":{
          "shape":"RemoteAgentSigV4AuthorizationConfigServiceString",
          "documentation":"<p>The AWS service name for SigV4 signing.</p>"
        },
        "roleArn":{"shape":"RoleArn"}
      },
      "documentation":"<p>SigV4 authorization configuration for remote A2A agent.</p>"
    },
    "RemoteAgentSigV4AuthorizationConfigServiceString":{
      "type":"string",
      "max":100,
      "min":1
    },
    "RemoteAgentSigV4Configuration":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Configuration for SigV4-authenticated remote A2A agent integration.</p>"
    },
    "RemoteAgentSigV4ServiceDetails":{
      "type":"structure",
      "required":[
        "name",
        "endpoint",
        "authorizationConfig"
      ],
      "members":{
        "name":{"shape":"RemoteAgentName"},
        "endpoint":{"shape":"RemoteAgentEndpoint"},
        "description":{"shape":"RemoteAgentSigV4ServiceDetailsDescriptionString"},
        "authorizationConfig":{
          "shape":"RemoteAgentSigV4AuthorizationConfig",
          "documentation":"<p>Remote agent SigV4 authorization configuration.</p>"
        }
      },
      "documentation":"<p>Complete service details for SigV4-authenticated remote A2A agent integration.</p>"
    },
    "RemoteAgentSigV4ServiceDetailsDescriptionString":{
      "type":"string",
      "documentation":"<p>Description field</p>",
      "max":500,
      "min":0,
      "pattern":"[\\p{L}\\p{N}\\p{P}\\p{S}\\p{Z}]+",
      "sensitive":true
    },
    "ResourceConfigDnsResolution":{
      "type":"string",
      "documentation":"<p>DNS resolution mode for a Resource Gateway.</p>",
      "enum":[
        "PUBLIC",
        "IN_VPC"
      ]
    },
    "ResourceConfigurationArn":{
      "type":"string",
      "documentation":"<p>The ID or ARN of the Resource Configuration.</p>",
      "max":2048,
      "min":20,
      "pattern":"(arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:resourceconfiguration/rcfg-[0-9a-z]{17}|rcfg-[0-9a-z]{17})"
    },
    "ResourceGatewayArn":{
      "type":"string",
      "documentation":"<p>Resource Gateway ARN.</p>",
      "max":2048,
      "min":20,
      "pattern":"arn:[a-z0-9\\-]+:vpc-lattice:[a-zA-Z0-9\\-]+:\\d{12}:resourcegateway/rgw-[0-9a-z]{17}"
    },
    "ResourceId":{
      "type":"string",
      "documentation":"<p>Generic resource identifier (allows alphanumeric characters, hyphens, and underscores; 1-128 characters)</p>",
      "max":128,
      "min":1,
      "pattern":"[a-zA-Z0-9_.-]+"
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>Detailed error message describing which resource was not found.</p>"
        }
      },
      "documentation":"<p>The requested resource could not be found.</p>",
      "error":{
        "httpStatusCode":404,
        "senderFault":true
      },
      "exception":true
    },
    "RoleArn":{
      "type":"string",
      "documentation":"<p>AWS IAM role ARN.</p>",
      "max":255,
      "min":1,
      "pattern":"arn:aws:iam::\\d{12}:role/[a-zA-Z0-9+=,.@_/-]+"
    },
    "ScheduleCondition":{
      "type":"structure",
      "required":["expression"],
      "members":{
        "expression":{
          "shape":"ScheduleExpression",
          "documentation":"<p>The schedule expression</p>"
        }
      },
      "documentation":"<p>Schedule-based condition that fires the Trigger</p>"
    },
    "ScheduleExpression":{
      "type":"string",
      "documentation":"<p>Schedule expression used by a TIME_BASED Trigger</p>",
      "max":256,
      "min":1
    },
    "SchedulerState":{
      "type":"string",
      "documentation":"<p>State of Goal Schedule. Mirrors EventBridge Scheduler State</p>",
      "enum":[
        "ENABLED",
        "DISABLED"
      ]
    },
    "Scopes":{
      "type":"list",
      "member":{"shape":"OAuthScope"},
      "documentation":"<p>List of OAuth scopes.</p>",
      "max":100,
      "min":0
    },
    "SecurityGroupId":{
      "type":"string",
      "documentation":"<p>Security group identifier.</p>",
      "max":20,
      "min":11,
      "pattern":"sg-(([0-9a-z]{8})|([0-9a-z]{17}))"
    },
    "SelfManagedInput":{
      "type":"structure",
      "required":["resourceConfigurationId"],
      "members":{
        "resourceConfigurationId":{
          "shape":"ResourceConfigurationArn",
          "documentation":"<p>The ID or ARN of the resource configuration.</p>"
        },
        "certificate":{
          "shape":"CertificateString",
          "documentation":"<p>Certificate for the Private Connection.</p>"
        }
      },
      "documentation":"<p>Configuration for a self-managed Private Connection.</p>"
    },
    "SendMessageContentBlockDelta":{
      "type":"structure",
      "members":{
        "textDelta":{
          "shape":"SendMessageTextDelta",
          "documentation":"<p>Text delta for text-based content blocks</p>"
        },
        "jsonDelta":{
          "shape":"SendMessageJsonDelta",
          "documentation":"<p>JSON delta for structured content blocks</p>"
        }
      },
      "documentation":"<p>Union of possible delta payloads within a content block delta event</p>",
      "union":true
    },
    "SendMessageContentBlockDeltaEvent":{
      "type":"structure",
      "members":{
        "index":{
          "shape":"Integer",
          "documentation":"<p>Zero-based index of the content block</p>"
        },
        "delta":{
          "shape":"SendMessageContentBlockDelta",
          "documentation":"<p>The incremental content delta</p>"
        },
        "sequenceNumber":{
          "shape":"Integer",
          "documentation":"<p>Event sequence number</p>"
        }
      },
      "documentation":"<p>Event emitted for each incremental content delta within a content block</p>",
      "event":true
    },
    "SendMessageContentBlockStartEvent":{
      "type":"structure",
      "members":{
        "index":{
          "shape":"Integer",
          "documentation":"<p>Zero-based index of the content block</p>"
        },
        "type":{
          "shape":"String",
          "documentation":"<p>The type of content in this block</p>"
        },
        "id":{
          "shape":"String",
          "documentation":"<p>Block identifier</p>"
        },
        "parentId":{
          "shape":"String",
          "documentation":"<p>Optional parent block ID for nested content blocks (e.g. subagent tool calls)</p>"
        },
        "sequenceNumber":{
          "shape":"Integer",
          "documentation":"<p>Event sequence number</p>"
        }
      },
      "documentation":"<p>Event emitted when a new content block starts</p>",
      "event":true
    },
    "SendMessageContentBlockStopEvent":{
      "type":"structure",
      "members":{
        "index":{
          "shape":"Integer",
          "documentation":"<p>Zero-based index of the content block</p>"
        },
        "type":{
          "shape":"String",
          "documentation":"<p>The type of content in this block</p>"
        },
        "text":{
          "shape":"String",
          "documentation":"<p>The accumulated complete content text</p>"
        },
        "last":{
          "shape":"Boolean",
          "documentation":"<p>Whether this is the final content block in the response</p>"
        },
        "sequenceNumber":{
          "shape":"Integer",
          "documentation":"<p>Event sequence number</p>"
        }
      },
      "documentation":"<p>Event emitted when a content block is complete</p>",
      "event":true
    },
    "SendMessageContext":{
      "type":"structure",
      "members":{
        "currentPage":{
          "shape":"String",
          "documentation":"<p>The current page or view the user is on</p>"
        },
        "lastMessage":{
          "shape":"String",
          "documentation":"<p>The ID of the last message in the conversation</p>"
        },
        "userActionResponse":{
          "shape":"String",
          "documentation":"<p>Response to a UI prompt (not a text conversation message). Operator App SDK clients set this to the control-string sentinel `\"APPROVAL_ACTION\"` when the request is resuming a paused tool call after an operator approval decision; in that case the structured decision context lives on the sibling `approvalAction` member and the chat agent reads from there. Preserved as a String for back-compat: pre-typed-approval clients still encode arbitrary UI-prompt responses as JSON in this field, and the chat agent parses them out during the transition.</p>"
        }
      },
      "documentation":"<p>Context object for additional message metadata</p>"
    },
    "SendMessageEvents":{
      "type":"structure",
      "members":{
        "responseCreated":{
          "shape":"SendMessageResponseCreatedEvent",
          "documentation":"<p>Emitted when the response is created</p>"
        },
        "responseInProgress":{
          "shape":"SendMessageResponseInProgressEvent",
          "documentation":"<p>Emitted while the response is being generated</p>"
        },
        "responseCompleted":{
          "shape":"SendMessageResponseCompletedEvent",
          "documentation":"<p>Emitted when the response completes successfully</p>"
        },
        "responseFailed":{
          "shape":"SendMessageResponseFailedEvent",
          "documentation":"<p>Emitted when the response fails</p>"
        },
        "summary":{
          "shape":"SendMessageSummaryEvent",
          "documentation":"<p>Emitted to provide a summary of agent actions</p>"
        },
        "heartbeat":{
          "shape":"SendMessageHeartbeatEvent",
          "documentation":"<p>Heartbeat event sent periodically to keep the connection alive during idle periods</p>"
        },
        "contentBlockStart":{
          "shape":"SendMessageContentBlockStartEvent",
          "documentation":"<p>Emitted when a new content block starts</p>"
        },
        "contentBlockDelta":{
          "shape":"SendMessageContentBlockDeltaEvent",
          "documentation":"<p>Emitted for each incremental content delta within a content block</p>"
        },
        "contentBlockStop":{
          "shape":"SendMessageContentBlockStopEvent",
          "documentation":"<p>Emitted when a content block is complete</p>"
        }
      },
      "documentation":"<p>Event stream for chat message responses using the content block model. Events follow a lifecycle: responseCreated -&gt; responseInProgress -&gt; (contentBlockStart/contentBlockDelta/contentBlockStop events) -&gt; responseCompleted|responseFailed SendMessage always uses content block mode — legacy per-field events (outputTextDelta, functionCallArgumentsDelta, etc.) are not emitted.</p>",
      "eventstream":true
    },
    "SendMessageHeartbeatEvent":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Heartbeat event to keep connection alive</p>",
      "event":true
    },
    "SendMessageJsonDelta":{
      "type":"structure",
      "members":{
        "partialJson":{
          "shape":"String",
          "documentation":"<p>Partial JSON string</p>"
        }
      },
      "documentation":"<p>JSON delta containing partial JSON</p>"
    },
    "SendMessageRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "executionId",
        "content"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The agent space identifier</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "executionId":{
          "shape":"ChatExecutionId",
          "documentation":"<p>The execution identifier for the chat session</p>"
        },
        "content":{
          "shape":"MessageContent",
          "documentation":"<p>The user message content</p>"
        },
        "context":{
          "shape":"SendMessageContext",
          "documentation":"<p>Optional context for the message</p>"
        },
        "userId":{
          "shape":"ResourceId",
          "documentation":"<p>User identifier. This field is deprecated and will be ignored — the service resolves user identity from the authenticated session.</p>",
          "deprecated":true,
          "deprecatedMessage":"userId is managed by the service and should not be provided by the caller",
          "deprecatedSince":"2026-04-15"
        },
        "assetIds":{
          "shape":"AssetIdList",
          "documentation":"<p>Optional list of asset identifiers to attach to the message</p>"
        }
      },
      "documentation":"<p>Request structure for sending a chat message</p>"
    },
    "SendMessageResponse":{
      "type":"structure",
      "required":["events"],
      "members":{
        "events":{
          "shape":"SendMessageEvents",
          "documentation":"<p>The stream of chat message events</p>"
        }
      },
      "documentation":"<p>Response structure for sending chat message events</p>",
      "payload":"events"
    },
    "SendMessageResponseCompletedEvent":{
      "type":"structure",
      "members":{
        "responseId":{
          "shape":"String",
          "documentation":"<p>The response ID</p>"
        },
        "usage":{
          "shape":"SendMessageUsageInfo",
          "documentation":"<p>Token usage information</p>"
        },
        "sequenceNumber":{
          "shape":"Integer",
          "documentation":"<p>Event sequence number</p>"
        }
      },
      "documentation":"<p>Event emitted when the response completes successfully</p>",
      "event":true
    },
    "SendMessageResponseCreatedEvent":{
      "type":"structure",
      "members":{
        "responseId":{
          "shape":"String",
          "documentation":"<p>The response ID</p>"
        },
        "sequenceNumber":{
          "shape":"Integer",
          "documentation":"<p>Event sequence number</p>"
        }
      },
      "documentation":"<p>Event emitted when the response is created</p>",
      "event":true
    },
    "SendMessageResponseFailedEvent":{
      "type":"structure",
      "members":{
        "responseId":{
          "shape":"String",
          "documentation":"<p>The response ID</p>"
        },
        "errorCode":{
          "shape":"String",
          "documentation":"<p>Error code</p>"
        },
        "errorMessage":{
          "shape":"String",
          "documentation":"<p>Error message</p>"
        },
        "sequenceNumber":{
          "shape":"Integer",
          "documentation":"<p>Event sequence number</p>"
        }
      },
      "documentation":"<p>Event emitted when the response fails</p>",
      "event":true
    },
    "SendMessageResponseInProgressEvent":{
      "type":"structure",
      "members":{
        "responseId":{
          "shape":"String",
          "documentation":"<p>The response ID</p>"
        },
        "sequenceNumber":{
          "shape":"Integer",
          "documentation":"<p>Event sequence number</p>"
        }
      },
      "documentation":"<p>Event emitted while the response is being generated</p>",
      "event":true
    },
    "SendMessageSummaryEvent":{
      "type":"structure",
      "members":{
        "content":{
          "shape":"String",
          "documentation":"<p>Summary content</p>"
        },
        "sequenceNumber":{
          "shape":"Integer",
          "documentation":"<p>Event sequence number</p>"
        }
      },
      "documentation":"<p>Event summarizing agent actions</p>",
      "event":true
    },
    "SendMessageTextDelta":{
      "type":"structure",
      "members":{
        "text":{
          "shape":"String",
          "documentation":"<p>The text fragment</p>"
        }
      },
      "documentation":"<p>Text delta containing a text fragment</p>"
    },
    "SendMessageUsageInfo":{
      "type":"structure",
      "members":{
        "inputTokens":{
          "shape":"Integer",
          "documentation":"<p>Number of input tokens</p>"
        },
        "outputTokens":{
          "shape":"Integer",
          "documentation":"<p>Number of output tokens</p>"
        },
        "totalTokens":{
          "shape":"Integer",
          "documentation":"<p>Total tokens used</p>"
        }
      },
      "documentation":"<p>Token usage information</p>"
    },
    "Service":{
      "type":"string",
      "documentation":"<p>Enumeration of all supported service types, combining OAuth 3-legged, client credentials, and simple token authentication methods.</p>",
      "enum":[
        "github",
        "slack",
        "azure",
        "azuredevops",
        "dynatrace",
        "servicenow",
        "pagerduty",
        "gitlab",
        "eventChannel",
        "mcpservernewrelic",
        "mcpservergrafana",
        "mcpserverdatadog",
        "mcpserver",
        "mcpserversplunk",
        "azureidentity",
        "mcpserversigv4",
        "remoteagent",
        "remoteagentsigv4"
      ]
    },
    "ServiceConfiguration":{
      "type":"structure",
      "members":{
        "sourceAws":{
          "shape":"SourceAwsConfiguration",
          "documentation":"<p>AWS source account configuration for monitoring resources.</p>"
        },
        "aws":{
          "shape":"AWSConfiguration",
          "documentation":"<p>AWS monitor account configuration.</p>"
        },
        "github":{
          "shape":"GitHubConfiguration",
          "documentation":"<p>GitHub repository integration configuration.</p>"
        },
        "slack":{
          "shape":"SlackConfiguration",
          "documentation":"<p>Slack workspace integration configuration.</p>"
        },
        "dynatrace":{
          "shape":"DynatraceConfiguration",
          "documentation":"<p>Dynatrace monitoring integration configuration.</p>"
        },
        "servicenow":{
          "shape":"ServiceNowConfiguration",
          "documentation":"<p>ServiceNow instance integration configuration.</p>"
        },
        "mcpservernewrelic":{
          "shape":"MCPServerNewRelicConfiguration",
          "documentation":"<p>NewRelic instance integration configuration.</p>"
        },
        "mcpserverdatadog":{
          "shape":"MCPServerDatadogConfiguration",
          "documentation":"<p>Datadog MCP server integration configuration.</p>"
        },
        "mcpserver":{
          "shape":"MCPServerConfiguration",
          "documentation":"<p>MCP (Model Context Protocol) server integration configuration.</p>"
        },
        "gitlab":{
          "shape":"GitLabConfiguration",
          "documentation":"<p>GitLab project integration configuration.</p>"
        },
        "mcpserversplunk":{
          "shape":"MCPServerSplunkConfiguration",
          "documentation":"<p>Splunk MCP server integration configuration.</p>"
        },
        "eventChannel":{
          "shape":"EventChannelConfiguration",
          "documentation":"<p>Event Channel instance integration configuration.</p>"
        },
        "azure":{
          "shape":"AzureConfiguration",
          "documentation":"<p>Azure subscription integration configuration.</p>"
        },
        "azuredevops":{
          "shape":"AzureDevOpsConfiguration",
          "documentation":"<p>Azure DevOps project integration configuration.</p>"
        },
        "mcpservergrafana":{
          "shape":"MCPServerGrafanaConfiguration",
          "documentation":"<p>Grafana MCP server integration configuration.</p>"
        },
        "pagerduty":{
          "shape":"PagerDutyConfiguration",
          "documentation":"<p>PagerDuty integration configuration</p>"
        },
        "mcpserversigv4":{
          "shape":"MCPServerSigV4Configuration",
          "documentation":"<p>SigV4-authenticated MCP server integration configuration.</p>"
        },
        "remoteagent":{
          "shape":"RemoteAgentConfiguration",
          "documentation":"<p>Remote A2A agent integration configuration (token-based auth).</p>"
        },
        "remoteagentsigv4":{
          "shape":"RemoteAgentSigV4Configuration",
          "documentation":"<p>Remote A2A agent integration configuration (SigV4 auth).</p>"
        }
      },
      "documentation":"<p>Union of all supported service configuration types. Each service has its own specific configuration structure.</p>",
      "union":true
    },
    "ServiceDetails":{
      "type":"structure",
      "members":{
        "dynatrace":{
          "shape":"DynatraceServiceDetails",
          "documentation":"<p>Dynatrace-specific service details.</p>"
        },
        "servicenow":{
          "shape":"ServiceNowServiceDetails",
          "documentation":"<p>ServiceNow-specific service details.</p>"
        },
        "mcpserverdatadog":{
          "shape":"DatadogServiceDetails",
          "documentation":"<p>Datadog MCP server-specific service details.</p>"
        },
        "mcpserver":{
          "shape":"MCPServerDetails",
          "documentation":"<p>MCP server-specific service details.</p>"
        },
        "gitlab":{
          "shape":"GitLabDetails",
          "documentation":"<p>GitLab-specific service details.</p>"
        },
        "mcpserversplunk":{
          "shape":"MCPServerDetails",
          "documentation":"<p>Splunk MCP server-specific service details.</p>"
        },
        "mcpservernewrelic":{
          "shape":"NewRelicServiceDetails",
          "documentation":"<p>New Relic-specific service details.</p>"
        },
        "eventChannel":{
          "shape":"EventChannelDetails",
          "documentation":"<p>Event Channel specific service details.</p>"
        },
        "mcpservergrafana":{
          "shape":"GrafanaServiceDetails",
          "documentation":"<p>Datadog MCP server-specific service details.</p>"
        },
        "pagerduty":{
          "shape":"PagerDutyDetails",
          "documentation":"<p>PagerDuty specific service details.</p>"
        },
        "azureidentity":{
          "shape":"RegisteredAzureIdentityDetails",
          "documentation":"<p>Azure integration with AWS Outbound Identity Federation specific service details.</p>"
        },
        "mcpserversigv4":{
          "shape":"MCPServerSigV4ServiceDetails",
          "documentation":"<p>SigV4-authenticated MCP server-specific service details.</p>"
        },
        "remoteagent":{
          "shape":"RemoteAgentServiceDetails",
          "documentation":"<p>Remote A2A agent service details (token-based auth).</p>"
        },
        "remoteagentsigv4":{
          "shape":"RemoteAgentSigV4ServiceDetails",
          "documentation":"<p>Remote A2A agent service details (SigV4 auth).</p>"
        }
      },
      "documentation":"<p>Union of service-specific configuration details for service registration.</p>",
      "union":true
    },
    "ServiceId":{
      "type":"string",
      "documentation":"<p>Unique identifier for a registered service</p>",
      "max":255,
      "min":1,
      "pattern":"[a-zA-Z0-9_-]+"
    },
    "ServiceManagedInput":{
      "type":"structure",
      "required":[
        "hostAddress",
        "vpcId",
        "subnetIds"
      ],
      "members":{
        "hostAddress":{
          "shape":"IpAddressOrDnsName",
          "documentation":"<p>IP address or DNS name of the target resource.</p>"
        },
        "vpcId":{
          "shape":"VpcId",
          "documentation":"<p>VPC to create the service-managed Resource Gateway in.</p>"
        },
        "subnetIds":{
          "shape":"ListOfSubnetIds",
          "documentation":"<p>Subnets that the service-managed Resource Gateway will span.</p>"
        },
        "securityGroupIds":{
          "shape":"ListOfSecurityGroupIds",
          "documentation":"<p>Security groups to attach to the service-managed Resource Gateway. If not specified, a default security group is created.</p>"
        },
        "ipAddressType":{
          "shape":"IpAddressType",
          "documentation":"<p>IP address type of the service-managed Resource Gateway.</p>"
        },
        "ipv4AddressesPerEni":{
          "shape":"MaxIpv4AddressesPerEni",
          "documentation":"<p>Number of IPv4 addresses in each ENI for the service-managed Resource Gateway.</p>"
        },
        "portRanges":{
          "shape":"PortRanges",
          "documentation":"<p>TCP port ranges that a consumer can use to access the resource.</p>"
        },
        "certificate":{
          "shape":"CertificateString",
          "documentation":"<p>Certificate for the Private Connection.</p>"
        },
        "dnsResolution":{
          "shape":"ResourceConfigDnsResolution",
          "documentation":"<p>DNS resolution mode for the resource gateway. Defaults to PUBLIC when not set.</p>"
        }
      },
      "documentation":"<p>Configuration for a service-managed Private Connection.</p>"
    },
    "ServiceName":{
      "type":"string",
      "documentation":"<p>The display name for a registered service.</p>",
      "max":255,
      "min":1,
      "pattern":"[\\p{L}\\p{N}\\p{P}\\p{S}\\p{Z}]+"
    },
    "ServiceNowAuthenticationScopeList":{
      "type":"list",
      "member":{"shape":"String"},
      "documentation":"<p>List of ServiceNow authentication scope.</p>"
    },
    "ServiceNowConfiguration":{
      "type":"structure",
      "members":{
        "instanceId":{
          "shape":"String",
          "documentation":"<p>ServiceNow instance ID</p>"
        },
        "authScopes":{
          "shape":"ServiceNowAuthenticationScopeList",
          "documentation":"<p>Scoped down authentication scopes for fine grained control</p>"
        }
      },
      "documentation":"<p>Configuration for ServiceNow instance integration.</p>"
    },
    "ServiceNowInstanceUrl":{
      "type":"string",
      "documentation":"<p>ServiceNow instance URL.</p>",
      "max":255,
      "min":1,
      "pattern":"https://[a-zA-Z0-9]([a-zA-Z0-9.-]*[a-zA-Z0-9])\\.service-now\\.com/?"
    },
    "ServiceNowOAuthClientCredentialsConfig":{
      "type":"structure",
      "required":[
        "clientId",
        "clientSecret"
      ],
      "members":{
        "clientName":{
          "shape":"ServiceNowOAuthClientCredentialsConfigClientNameString",
          "documentation":"<p>User friendly OAuth client name specified by end user.</p>"
        },
        "clientId":{
          "shape":"ClientId",
          "documentation":"<p>OAuth client ID for authenticating with the service.</p>"
        },
        "exchangeParameters":{
          "shape":"ExchangeParameters",
          "documentation":"<p>OAuth token exchange parameters for authenticating with the service.</p>"
        },
        "clientSecret":{
          "shape":"ClientSecret",
          "documentation":"<p>OAuth client secret for authenticating with the service.</p>"
        }
      },
      "documentation":"<p>OAuth client credentials configuration for ServiceNow.</p>"
    },
    "ServiceNowOAuthClientCredentialsConfigClientNameString":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"[\\p{L}\\p{N}\\p{Z}._-]+"
    },
    "ServiceNowServiceAuthorizationConfig":{
      "type":"structure",
      "members":{
        "oAuthClientCredentials":{
          "shape":"ServiceNowOAuthClientCredentialsConfig",
          "documentation":"<p>OAuth client credentials configuration.</p>"
        }
      },
      "documentation":"<p>Authorization configuration options for ServiceNow service.</p>",
      "union":true
    },
    "ServiceNowServiceDetails":{
      "type":"structure",
      "required":["instanceUrl"],
      "members":{
        "instanceUrl":{
          "shape":"ServiceNowInstanceUrl",
          "documentation":"<p>ServiceNow instance URL.</p>"
        },
        "authorizationConfig":{
          "shape":"ServiceNowServiceAuthorizationConfig",
          "documentation":"<p>ServiceNow OAuth client credentials configuration. Use this when registering with OAuth client credentials flow.</p>"
        }
      },
      "documentation":"<p>Complete service details for ServiceNow integration.</p>"
    },
    "ServiceQuotaExceededException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>Detailed error message describing which quota was exceeded.</p>"
        }
      },
      "documentation":"<p>The request would exceed the service quota limit.</p>",
      "error":{
        "httpStatusCode":402,
        "senderFault":true
      },
      "exception":true
    },
    "SigV4Region":{
      "type":"string",
      "documentation":"<p>AWS region identifier or wildcard (*) for SigV4a multi-region signing.</p>",
      "max":50,
      "min":1,
      "pattern":"(\\*|[a-z]{2,4}(-[a-z]+)+-\\d+)"
    },
    "SlackChannel":{
      "type":"structure",
      "required":["channelId"],
      "members":{
        "channelName":{
          "shape":"String",
          "documentation":"<p>Slack channel name</p>"
        },
        "channelId":{
          "shape":"SlackChannelChannelIdString",
          "documentation":"<p>Slack channel ID</p>"
        }
      },
      "documentation":"<p>Represents a Slack channel with its ID and optional name.</p>"
    },
    "SlackChannelChannelIdString":{
      "type":"string",
      "max":16,
      "min":8,
      "pattern":"[CGD][A-Z0-9]+"
    },
    "SlackConfiguration":{
      "type":"structure",
      "required":[
        "workspaceId",
        "workspaceName",
        "transmissionTarget"
      ],
      "members":{
        "workspaceId":{
          "shape":"SlackConfigurationWorkspaceIdString",
          "documentation":"<p>Associated Slack workspace ID</p>"
        },
        "workspaceName":{
          "shape":"String",
          "documentation":"<p>Associated Slack workspace name</p>"
        },
        "transmissionTarget":{
          "shape":"SlackTransmissionTarget",
          "documentation":"<p>Transmission targets for agent notifications</p>"
        }
      },
      "documentation":"<p>Configuration for Slack workspace integration.</p>"
    },
    "SlackConfigurationWorkspaceIdString":{
      "type":"string",
      "pattern":"[TE][A-Z0-9]+"
    },
    "SlackTransmissionTarget":{
      "type":"structure",
      "required":["opsOncallTarget"],
      "members":{
        "opsOncallTarget":{
          "shape":"SlackChannel",
          "documentation":"<p>Destination for On-call Agent (Ops1)</p>"
        },
        "opsSRETarget":{
          "shape":"SlackChannel",
          "documentation":"<p>Destination for SRE Agent (Ops1.5)</p>"
        }
      },
      "documentation":"<p>Defines Slack channels for different types of agent notifications.</p>"
    },
    "SourceAccountType":{
      "type":"string",
      "documentation":"<p>AWS association type for source account.</p>",
      "enum":["source"]
    },
    "SourceAwsConfiguration":{
      "type":"structure",
      "required":[
        "accountId",
        "accountType",
        "assumableRoleArn"
      ],
      "members":{
        "accountId":{
          "shape":"SourceAwsConfigurationAccountIdString",
          "documentation":"<p>AWS Account Id corresponding to provided resources.</p>"
        },
        "accountType":{
          "shape":"SourceAccountType",
          "documentation":"<p>Account Type 'source' for AIDevOps monitoring.</p>"
        },
        "assumableRoleArn":{
          "shape":"RoleArn",
          "documentation":"<p>Role ARN to be assumed by AIDevOps to operate on behalf of customer.</p>"
        },
        "externalId":{
          "shape":"String",
          "documentation":"<p>External ID for additional security when assuming the role. Used to prevent the confused deputy problem.</p>"
        }
      },
      "documentation":"<p>Configuration for AWS source account integration. Note: passRole check on 'assumableRoleArn' is not supported.</p>"
    },
    "SourceAwsConfigurationAccountIdString":{
      "type":"string",
      "pattern":"\\d{12}"
    },
    "String":{"type":"string"},
    "SubnetId":{
      "type":"string",
      "documentation":"<p>Subnet identifier.</p>",
      "max":24,
      "min":15,
      "pattern":"subnet-(([0-9a-z]{8})|([0-9a-z]{17}))"
    },
    "SyntheticTimestamp_date_time":{
      "type":"timestamp",
      "timestampFormat":"iso8601"
    },
    "TagKey":{
      "type":"string",
      "documentation":"<p>Tag key string.</p>",
      "max":128,
      "min":1,
      "pattern":"[\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*"
    },
    "TagKeyList":{
      "type":"list",
      "member":{"shape":"TagKey"},
      "documentation":"<p>List of tag keys.</p>"
    },
    "TagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tags"
      ],
      "members":{
        "resourceArn":{
          "shape":"TagResourceRequestResourceArnString",
          "documentation":"<p>The ARN of the resource to tag.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tags":{
          "shape":"Tags",
          "documentation":"<p>Tags to add to the resource.</p>"
        }
      }
    },
    "TagResourceRequestResourceArnString":{
      "type":"string",
      "pattern":"arn:aws:aidevops:[a-z0-9-]+:\\d{12}:(agentspace|service)/[a-zA-Z0-9-]+"
    },
    "TagResourceResponse":{
      "type":"structure",
      "members":{}
    },
    "TagValue":{
      "type":"string",
      "documentation":"<p>Tag value string.</p>",
      "max":256,
      "min":0,
      "pattern":"[\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*"
    },
    "Tags":{
      "type":"map",
      "key":{"shape":"TagKey"},
      "value":{"shape":"TagValue"},
      "documentation":"<p>Map of tag keys to values.</p>"
    },
    "Task":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "taskId",
        "title",
        "taskType",
        "priority",
        "status",
        "createdAt",
        "updatedAt",
        "version"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"String",
          "documentation":"<p>The unique identifier for the agent space containing this task</p>"
        },
        "taskId":{
          "shape":"String",
          "documentation":"<p>The unique identifier for this task</p>"
        },
        "executionId":{
          "shape":"String",
          "documentation":"<p>The execution ID associated with this task, if any</p>"
        },
        "title":{
          "shape":"String",
          "documentation":"<p>The title of the task</p>"
        },
        "description":{
          "shape":"String",
          "documentation":"<p>Optional detailed description of the task</p>"
        },
        "reference":{
          "shape":"ReferenceOutput",
          "documentation":"<p>Optional reference information linking this task to external systems</p>"
        },
        "taskType":{
          "shape":"TaskType",
          "documentation":"<p>The type of this task</p>"
        },
        "priority":{
          "shape":"Priority",
          "documentation":"<p>The priority level of this task</p>"
        },
        "status":{
          "shape":"TaskStatus",
          "documentation":"<p>The current status of this task</p>"
        },
        "createdAt":{
          "shape":"BackLogTimestamp",
          "documentation":"<p>Timestamp when this task was created</p>"
        },
        "updatedAt":{
          "shape":"BackLogTimestamp",
          "documentation":"<p>Timestamp when this task was last updated</p>"
        },
        "version":{
          "shape":"Integer",
          "documentation":"<p>Version number for optimistic locking</p>"
        },
        "supportMetadata":{
          "shape":"Document",
          "documentation":"<p>Optional support metadata for the task</p>"
        },
        "metadata":{
          "shape":"Document",
          "documentation":"<p>Optional metadata for the task</p>"
        },
        "primaryTaskId":{
          "shape":"String",
          "documentation":"<p>The task ID of the primary investigation this task is linked to</p>"
        },
        "statusReason":{
          "shape":"String",
          "documentation":"<p>Explanation for why the task status was changed (e.g., linked reason)</p>"
        },
        "hasLinkedTasks":{
          "shape":"Boolean",
          "documentation":"<p>Indicates if this task has other tasks linked to it</p>"
        }
      },
      "documentation":"<p>Represents a backlog task with all its properties and metadata</p>"
    },
    "TaskFilter":{
      "type":"structure",
      "members":{
        "createdAfter":{
          "shape":"BackLogTimestamp",
          "documentation":"<p>Filter for tasks created after this timestamp inclusive</p>"
        },
        "createdBefore":{
          "shape":"BackLogTimestamp",
          "documentation":"<p>Filter for tasks created before this timestamp exclusive</p>"
        },
        "priority":{
          "shape":"TaskFilterPriorityList",
          "documentation":"<p>Filter by priority (single value only)</p>"
        },
        "status":{
          "shape":"TaskFilterStatusList",
          "documentation":"<p>Filter by status (single value only)</p>"
        },
        "taskType":{
          "shape":"TaskFilterTaskTypeList",
          "documentation":"<p>Filter by task type (single value only)</p>"
        },
        "primaryTaskId":{
          "shape":"ResourceId",
          "documentation":"<p>Filter by primary task ID to get linked tasks</p>"
        }
      },
      "documentation":"<p>Filter criteria for listing backlog tasks, supporting time range, priority, status, and type filters.</p>"
    },
    "TaskFilterPriorityList":{
      "type":"list",
      "member":{"shape":"Priority"},
      "documentation":"<p>List of backlog task priorities</p>",
      "max":1,
      "min":1
    },
    "TaskFilterStatusList":{
      "type":"list",
      "member":{"shape":"TaskStatus"},
      "documentation":"<p>List of backlog task statuses</p>",
      "max":1,
      "min":1
    },
    "TaskFilterTaskTypeList":{
      "type":"list",
      "member":{"shape":"TaskType"},
      "documentation":"<p>List of backlog task types</p>",
      "max":1,
      "min":1
    },
    "TaskList":{
      "type":"list",
      "member":{"shape":"Task"},
      "documentation":"<p>List of backlog tasks</p>"
    },
    "TaskSortField":{
      "type":"string",
      "documentation":"<p>Fields available for sorting tasks</p>",
      "enum":[
        "CREATED_AT",
        "PRIORITY"
      ]
    },
    "TaskSortOrder":{
      "type":"string",
      "documentation":"<p>Sort order options</p>",
      "enum":[
        "ASC",
        "DESC"
      ]
    },
    "TaskStatus":{
      "type":"string",
      "documentation":"<p>Possible states of a task throughout its lifecycle</p>",
      "enum":[
        "PENDING_TRIAGE",
        "LINKED",
        "PENDING_START",
        "IN_PROGRESS",
        "PENDING_CUSTOMER_APPROVAL",
        "COMPLETED",
        "FAILED",
        "TIMED_OUT",
        "CANCELED",
        "SKIPPED"
      ]
    },
    "TaskType":{
      "type":"string",
      "documentation":"<p>Types of tasks that can be created in the backlog</p>",
      "enum":[
        "INVESTIGATION",
        "EVALUATION",
        "RELEASE_READINESS_REVIEW",
        "RELEASE_TESTING"
      ]
    },
    "ThrottlingException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>Detailed error message describing the throttling condition.</p>"
        }
      },
      "documentation":"<p>The request was throttled due to too many requests. Please slow down and try again.</p>",
      "error":{
        "httpStatusCode":429,
        "senderFault":true
      },
      "exception":true,
      "retryable":{"throttling":false}
    },
    "Timestamp":{"type":"timestamp"},
    "Trigger":{
      "type":"structure",
      "required":[
        "triggerId",
        "agentSpaceId",
        "type",
        "condition",
        "action",
        "status",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "triggerId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier for this Trigger</p>"
        },
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The agent space this Trigger belongs to</p>"
        },
        "type":{
          "shape":"TriggerType",
          "documentation":"<p>How this Trigger fires</p>"
        },
        "condition":{
          "shape":"TriggerCondition",
          "documentation":"<p>The condition that fires this Trigger</p>"
        },
        "action":{
          "shape":"TriggerAction",
          "documentation":"<p>The action this Trigger performs when it fires</p>"
        },
        "status":{
          "shape":"TriggerStatus",
          "documentation":"<p>The status of this Trigger</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>Timestamp when this Trigger was created</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>Timestamp when this Trigger was last updated</p>"
        }
      },
      "documentation":"<p>A Trigger fires on a schedule and invokes an agent</p>"
    },
    "TriggerAction":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Action a Trigger performs when it fires</p>",
      "document":true
    },
    "TriggerCondition":{
      "type":"structure",
      "members":{
        "schedule":{
          "shape":"ScheduleCondition",
          "documentation":"<p>Time-based firing condition</p>"
        }
      },
      "documentation":"<p>Defines the firing condition for a Trigger</p>",
      "union":true
    },
    "TriggerList":{
      "type":"list",
      "member":{"shape":"Trigger"},
      "documentation":"<p>List of Triggers</p>"
    },
    "TriggerStatus":{
      "type":"string",
      "documentation":"<p>The status of a Trigger</p>",
      "max":64,
      "min":1
    },
    "TriggerType":{
      "type":"string",
      "documentation":"<p>How a Trigger is fired</p>",
      "max":64,
      "min":1
    },
    "UntagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tagKeys"
      ],
      "members":{
        "resourceArn":{
          "shape":"UntagResourceRequestResourceArnString",
          "documentation":"<p>The ARN of the resource to untag.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tagKeys":{
          "shape":"TagKeyList",
          "documentation":"<p>Tag keys to remove.</p>",
          "location":"querystring",
          "locationName":"tagKeys"
        }
      }
    },
    "UntagResourceRequestResourceArnString":{
      "type":"string",
      "pattern":"arn:aws:aidevops:[a-z0-9-]+:\\d{12}:(agentspace|service)/[a-zA-Z0-9-]+"
    },
    "UntagResourceResponse":{
      "type":"structure",
      "members":{}
    },
    "UpdateAgentSpaceInput":{
      "type":"structure",
      "required":["agentSpaceId"],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier of the AgentSpace</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "name":{
          "shape":"AgentSpaceName",
          "documentation":"<p>The updated name of the AgentSpace.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The updated description of the AgentSpace.</p>"
        },
        "locale":{
          "shape":"Locale",
          "documentation":"<p>The updated locale for the AgentSpace, which determines the language used in agent responses.</p>"
        }
      },
      "documentation":"<p>Input for updating an existing AgentSpace's properties. All fields except agentSpaceId are optional for partial updates.</p>"
    },
    "UpdateAgentSpaceOutput":{
      "type":"structure",
      "required":["agentSpace"],
      "members":{
        "agentSpace":{"shape":"AgentSpace"}
      },
      "documentation":"<p>Output containing the updated AgentSpace.</p>"
    },
    "UpdateAssetFileRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "assetId",
        "path"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space containing the asset</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "assetId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the asset containing the file</p>",
          "location":"uri",
          "locationName":"assetId"
        },
        "path":{
          "shape":"AssetFilePath",
          "documentation":"<p>The path of the file within the asset to update</p>",
          "location":"uri",
          "locationName":"path"
        },
        "content":{
          "shape":"AssetFileBody",
          "documentation":"<p>Updated file content. If omitted, the existing content is unchanged.</p>"
        },
        "metadata":{
          "shape":"Document",
          "documentation":"<p>Metadata fields to update. Only the fields present in this document are updated. Omitted fields retain their current values.</p>"
        },
        "clientToken":{
          "shape":"UpdateAssetFileRequestClientTokenString",
          "documentation":"<p>A unique, case-sensitive identifier used for idempotent asset file update</p>",
          "idempotencyToken":true
        }
      },
      "documentation":"<p>Request structure for updating an asset file</p>"
    },
    "UpdateAssetFileRequestClientTokenString":{
      "type":"string",
      "max":128,
      "min":1
    },
    "UpdateAssetFileResponse":{
      "type":"structure",
      "required":["file"],
      "members":{
        "file":{
          "shape":"AssetFile",
          "documentation":"<p>The asset file object</p>"
        }
      },
      "documentation":"<p>Response structure for updating an asset file</p>"
    },
    "UpdateAssetRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "assetId"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space containing the asset</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "assetId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the asset to update</p>",
          "location":"uri",
          "locationName":"assetId"
        },
        "metadata":{
          "shape":"Document",
          "documentation":"<p>Metadata fields to update. Only the fields present in this document are updated. Omitted fields retain their current values.</p>"
        },
        "content":{
          "shape":"AssetContent",
          "documentation":"<p>Optional content update. A single file adds or replaces one file; a zip replaces all files; a sourceUrl re-syncs from the original source.</p>"
        },
        "clientToken":{
          "shape":"UpdateAssetRequestClientTokenString",
          "documentation":"<p>A unique, case-sensitive identifier used for idempotent asset update</p>",
          "idempotencyToken":true
        }
      },
      "documentation":"<p>Request structure for updating an asset</p>"
    },
    "UpdateAssetRequestClientTokenString":{
      "type":"string",
      "max":128,
      "min":1
    },
    "UpdateAssetResponse":{
      "type":"structure",
      "required":["asset"],
      "members":{
        "asset":{
          "shape":"Asset",
          "documentation":"<p>The asset object</p>"
        }
      },
      "documentation":"<p>Response structure for updating an asset</p>"
    },
    "UpdateAssociationInput":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "associationId",
        "configuration"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier of the AgentSpace</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "associationId":{
          "shape":"AssociationId",
          "documentation":"<p>The unique identifier of the given association.</p>",
          "location":"uri",
          "locationName":"associationId"
        },
        "configuration":{
          "shape":"ServiceConfiguration",
          "documentation":"<p>The configuration that directs how AgentSpace interacts with the given service. The entire configuration is replaced on update.</p>"
        },
        "capabilities":{
          "shape":"AssociationCapabilities",
          "documentation":"<p>Enabled capabilities for this association.</p>"
        }
      },
      "documentation":"<p>Input for updating an existing service association. Present fields are fully replaced; absent fields are left unchanged.</p>"
    },
    "UpdateAssociationOutput":{
      "type":"structure",
      "required":["association"],
      "members":{
        "association":{"shape":"Association"},
        "webhook":{
          "shape":"GenericWebhook",
          "documentation":"<p>Generic webhook configuration</p>"
        }
      },
      "documentation":"<p>Output containing the updated association and optional webhook configuration.</p>"
    },
    "UpdateBacklogTaskRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "taskId"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space containing the task</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "taskId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the task to update</p>",
          "location":"uri",
          "locationName":"taskId"
        },
        "taskStatus":{
          "shape":"TaskStatus",
          "documentation":"<p>Updated task status</p>"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>Client-provided token for idempotent operations</p>",
          "idempotencyToken":true
        }
      },
      "documentation":"<p>Request structure for updating a task</p>"
    },
    "UpdateBacklogTaskResponse":{
      "type":"structure",
      "required":["task"],
      "members":{
        "task":{
          "shape":"Task",
          "documentation":"<p>The updated task object</p>"
        }
      },
      "documentation":"<p>Response structure containing the updated task</p>"
    },
    "UpdateGoalRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "goalId"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space containing the goal</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "goalId":{
          "shape":"String",
          "documentation":"<p>The unique identifier of the goal to update</p>",
          "location":"uri",
          "locationName":"goalId"
        },
        "evaluationSchedule":{
          "shape":"GoalScheduleInput",
          "documentation":"<p>Update goal schedule state</p>"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>Client-provided token for idempotent operations</p>",
          "idempotencyToken":true
        }
      },
      "documentation":"<p>Request structure for updating a goal</p>"
    },
    "UpdateGoalResponse":{
      "type":"structure",
      "required":["goal"],
      "members":{
        "goal":{
          "shape":"Goal",
          "documentation":"<p>The updated goal object</p>"
        }
      },
      "documentation":"<p>Response structure containing the updated goal</p>"
    },
    "UpdateOperatorAppIdpConfigInput":{
      "type":"structure",
      "required":["agentSpaceId"],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier of the AgentSpace</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "idpClientSecret":{
          "shape":"IdpClientSecret",
          "documentation":"<p>The OIDC client secret for the IdP application</p>"
        }
      },
      "documentation":"<p>Input for updating the external Identity Provider configuration for the Operator App.</p>"
    },
    "UpdateOperatorAppIdpConfigOutput":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "idp"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier of the AgentSpace</p>"
        },
        "idp":{"shape":"IdpAuthConfiguration"}
      },
      "documentation":"<p>Output containing the updated IdP configuration.</p>"
    },
    "UpdatePrivateConnectionCertificateInput":{
      "type":"structure",
      "required":[
        "name",
        "certificate"
      ],
      "members":{
        "name":{
          "shape":"PrivateConnectionName",
          "documentation":"<p>The name of the Private Connection.</p>",
          "location":"uri",
          "locationName":"name"
        },
        "certificate":{
          "shape":"CertificateString",
          "documentation":"<p>The new certificate for the Private Connection.</p>"
        }
      },
      "documentation":"<p>Input for updating the certificate of a Private Connection.</p>"
    },
    "UpdatePrivateConnectionCertificateOutput":{
      "type":"structure",
      "required":[
        "name",
        "type",
        "status"
      ],
      "members":{
        "name":{
          "shape":"PrivateConnectionName",
          "documentation":"<p>The name of the Private Connection.</p>"
        },
        "type":{
          "shape":"PrivateConnectionType",
          "documentation":"<p>The type of the Private Connection.</p>"
        },
        "resourceGatewayId":{
          "shape":"ResourceGatewayArn",
          "documentation":"<p>The service-managed Resource Gateway ARN. Only present for service-managed Private Connections.</p>"
        },
        "hostAddress":{
          "shape":"IpAddressOrDnsName",
          "documentation":"<p>IP address or DNS name of the target resource. Only present for service-managed Private Connections.</p>"
        },
        "vpcId":{
          "shape":"VpcId",
          "documentation":"<p>VPC identifier of the service-managed Resource Gateway. Only present for service-managed Private Connections.</p>"
        },
        "resourceConfigurationId":{
          "shape":"ResourceConfigurationArn",
          "documentation":"<p>The Resource Configuration ARN. Only present for self-managed Private Connections.</p>"
        },
        "status":{
          "shape":"PrivateConnectionStatus",
          "documentation":"<p>The status of the Private Connection.</p>"
        },
        "certificateExpiryTime":{
          "shape":"SyntheticTimestamp_date_time",
          "documentation":"<p>The expiry time of the certificate associated with the Private Connection. Only present when a certificate is associated.</p>"
        },
        "dnsResolution":{
          "shape":"ResourceConfigDnsResolution",
          "documentation":"<p>DNS resolution mode for the Private Connection's resource gateway.</p>"
        },
        "failureMessage":{
          "shape":"FailureMessage",
          "documentation":"<p>Message describing the reason for a failed Private Connection update, if applicable.</p>"
        }
      },
      "documentation":"<p>Output containing the updated Private Connection summary.</p>"
    },
    "UpdateRecommendationRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "recommendationId"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space containing the recommendation</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "recommendationId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier for the recommendation to update</p>",
          "location":"uri",
          "locationName":"recommendationId"
        },
        "status":{
          "shape":"RecommendationStatus",
          "documentation":"<p>Current status of the recommendation</p>"
        },
        "additionalContext":{
          "shape":"String",
          "documentation":"<p>Additional context for recommendation</p>"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>A unique token that ensures idempotency of the request</p>",
          "idempotencyToken":true
        }
      },
      "documentation":"<p>Request structure for updating an existing recommendation</p>"
    },
    "UpdateRecommendationResponse":{
      "type":"structure",
      "required":["recommendation"],
      "members":{
        "recommendation":{
          "shape":"Recommendation",
          "documentation":"<p>The updated recommendation</p>"
        }
      },
      "documentation":"<p>Response structure containing the updated recommendation</p>"
    },
    "UpdateTriggerRequest":{
      "type":"structure",
      "required":[
        "agentSpaceId",
        "triggerId"
      ],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier for the agent space containing the Trigger</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        },
        "triggerId":{
          "shape":"ResourceId",
          "documentation":"<p>The unique identifier of the Trigger to update</p>",
          "location":"uri",
          "locationName":"triggerId"
        },
        "status":{
          "shape":"TriggerStatus",
          "documentation":"<p>The new status for the Trigger</p>"
        },
        "clientToken":{
          "shape":"UpdateTriggerRequestClientTokenString",
          "documentation":"<p>A unique, case-sensitive identifier used for idempotent Trigger update</p>",
          "idempotencyToken":true
        }
      },
      "documentation":"<p>Request structure for updating a Trigger</p>"
    },
    "UpdateTriggerRequestClientTokenString":{
      "type":"string",
      "max":128,
      "min":1
    },
    "UpdateTriggerResponse":{
      "type":"structure",
      "required":["trigger"],
      "members":{
        "trigger":{
          "shape":"Trigger",
          "documentation":"<p>The Trigger object</p>"
        }
      },
      "documentation":"<p>Response structure for updating a Trigger</p>"
    },
    "UsageMetric":{
      "type":"structure",
      "required":[
        "limit",
        "usage"
      ],
      "members":{
        "limit":{
          "shape":"Integer",
          "documentation":"<p>Configured limit for this metric. A value of -1 indicates no limit is enforced.</p>"
        },
        "usage":{
          "shape":"Double",
          "documentation":"<p>Current usage for this metric</p>"
        }
      },
      "documentation":"<p>Represents a usage metric with its configured limit and current usage value.</p>"
    },
    "UserMessage":{
      "type":"list",
      "member":{"shape":"UserMessageBlock"}
    },
    "UserMessageBlock":{
      "type":"structure",
      "members":{
        "text":{
          "shape":"String",
          "documentation":"<p>Text content from the user.</p>"
        },
        "toolResult":{
          "shape":"Document",
          "documentation":"<p>Tool execution result provided by the user.</p>"
        }
      },
      "documentation":"<p>A block of content in a user message.</p>",
      "union":true
    },
    "UserReference":{
      "type":"structure",
      "required":[
        "userId",
        "userType"
      ],
      "members":{
        "userId":{
          "shape":"String",
          "documentation":"<p>The unique identifier for the user</p>"
        },
        "userType":{
          "shape":"UserType",
          "documentation":"<p>The type of user</p>"
        }
      },
      "documentation":"<p>Reference to a user in the system</p>"
    },
    "UserType":{
      "type":"string",
      "documentation":"<p>Types of users in the system</p>",
      "enum":[
        "IAM",
        "IDC",
        "IDP"
      ]
    },
    "ValidateAwsAssociationsInput":{
      "type":"structure",
      "required":["agentSpaceId"],
      "members":{
        "agentSpaceId":{
          "shape":"AgentSpaceId",
          "documentation":"<p>The unique identifier of the AgentSpace</p>",
          "location":"uri",
          "locationName":"agentSpaceId"
        }
      },
      "documentation":"<p>Input for validating an aws association</p>"
    },
    "ValidateAwsAssociationsOutput":{
      "type":"structure",
      "members":{},
      "documentation":"<p>Empty Output for successful validating an aws association</p>"
    },
    "ValidationException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>A summary of the validation failure.</p>"
        },
        "fieldList":{
          "shape":"ValidationExceptionFieldList",
          "documentation":"<p>A list of specific failures encountered while validating the input. A member can appear in this list more than once if it failed to satisfy multiple constraints.</p>"
        }
      },
      "documentation":"<p>The input fails to satisfy the constraints specified by the service.</p>",
      "exception":true
    },
    "ValidationExceptionField":{
      "type":"structure",
      "required":[
        "path",
        "message"
      ],
      "members":{
        "path":{
          "shape":"String",
          "documentation":"<p>A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.</p>"
        },
        "message":{
          "shape":"String",
          "documentation":"<p>A detailed description of the validation failure.</p>"
        }
      },
      "documentation":"<p>Describes one specific validation failure for an input member.</p>"
    },
    "ValidationExceptionFieldList":{
      "type":"list",
      "member":{"shape":"ValidationExceptionField"}
    },
    "ValidationStatus":{
      "type":"string",
      "documentation":"<p>Represents the validation state of an association.</p>",
      "enum":[
        "valid",
        "invalid",
        "pending-confirmation"
      ]
    },
    "VpcId":{
      "type":"string",
      "documentation":"<p>VPC identifier.</p>",
      "max":50,
      "min":5,
      "pattern":"vpc-(([0-9a-z]{8})|([0-9a-z]{17}))"
    },
    "WebIdentityTokenAudienceList":{
      "type":"list",
      "member":{"shape":"String"},
      "documentation":"<p>List of audiences for Web Identity Token.</p>"
    },
    "Webhook":{
      "type":"structure",
      "required":[
        "webhookUrl",
        "webhookId"
      ],
      "members":{
        "webhookUrl":{
          "shape":"WebhookWebhookUrlString",
          "documentation":"<p>Webhook endpoint URL.</p>"
        },
        "webhookType":{
          "shape":"WebhookType",
          "documentation":"<p>Webhook authentication type.</p>"
        },
        "webhookId":{
          "shape":"WebhookWebhookIdString",
          "documentation":"<p>The unique identifier of the Webhook</p>"
        }
      },
      "documentation":"<p>Represents a complete Webhook with all its properties, and unique identifier.</p>"
    },
    "WebhookSecret":{
      "type":"string",
      "documentation":"<p>Webhook secret for secure webhook communication.</p>",
      "sensitive":true
    },
    "WebhookType":{
      "type":"string",
      "documentation":"<p>Webhook authentication type.</p>",
      "enum":[
        "hmac",
        "apikey",
        "gitlab",
        "pagerduty"
      ]
    },
    "WebhookWebhookIdString":{
      "type":"string",
      "max":255,
      "min":1
    },
    "WebhookWebhookUrlString":{
      "type":"string",
      "pattern":"https://[a-zA-Z0-9.-]+(?:/.*)?"
    },
    "WebhooksList":{
      "type":"list",
      "member":{"shape":"Webhook"},
      "documentation":"<p>A list of Association Webhook resources.</p>"
    }
  },
  "documentation":"<p>AWS DevOps Agent is your always-available operations teammate. It resolves and proactively prevents incidents, optimizes application reliability and performance, and handles on-demand SRE tasks across AWS, multicloud, and on-premises environments. AWS DevOps Agent investigates incidents as an experienced DevOps engineer would. It learns your applications and their relationships. It works with your observability tools, runbooks, code repositories, and CI/CD pipelines. The agent correlates telemetry, code, and deployment data across all of them.</p>"
}
