{
  "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":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "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":"ThrottlingException"},
        {"shape":"InvalidParameterException"},
        {"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
    },
    "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":"ResourceNotFoundException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Creates a Private Connection to a target resource.</p>",
      "endpoint":{"hostPrefix":"cp."},
      "idempotent":true
    },
    "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
    },
    "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
    },
    "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":"ResourceNotFoundException"},
        {"shape":"InvalidParameterException"}
      ],
      "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":"ResourceNotFoundException"},
        {"shape":"InvalidParameterException"}
      ],
      "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
    },
    "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":"ResourceNotFoundException"},
        {"shape":"InvalidParameterException"}
      ],
      "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
    },
    "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":"ResourceNotFoundException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Lists all AgentSpaces with optional pagination.</p>",
      "endpoint":{"hostPrefix":"cp."},
      "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":"ResourceNotFoundException"},
        {"shape":"InvalidParameterException"}
      ],
      "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":"ResourceNotFoundException"},
        {"shape":"InvalidParameterException"}
      ],
      "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":"ResourceNotFoundException"},
        {"shape":"InvalidParameterException"}
      ],
      "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":"ResourceNotFoundException"},
        {"shape":"InvalidParameterException"}
      ],
      "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":"ResourceNotFoundException"},
        {"shape":"InvalidParameterException"}
      ],
      "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":"ResourceNotFoundException"},
        {"shape":"InvalidParameterException"}
      ],
      "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":"ResourceNotFoundException"},
        {"shape":"InvalidParameterException"}
      ],
      "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":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "documentation":"<p>Lists tags for the specified AWS DevOps Agent resource.</p>",
      "endpoint":{"hostPrefix":"cp."},
      "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":"ResourceNotFoundException"},
        {"shape":"InvalidParameterException"},
        {"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":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "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":"ThrottlingException"},
        {"shape":"InvalidParameterException"}
      ],
      "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."}
    },
    "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>"
    },
    "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
    },
    "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>"
        }
      },
      "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
    },
    "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>"
        }
      },
      "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>"
        }
      },
      "documentation":"<p>Represents a service association within an AgentSpace, defining how the agent interacts with external services.</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
    },
    "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>"
    },
    "ChatExecutionList":{
      "type":"list",
      "member":{"shape":"ChatExecution"}
    },
    "ClientId":{
      "type":"string",
      "documentation":"<p>Client ID for service authentication.</p>",
      "max":255,
      "min":1,
      "pattern":"[a-zA-Z0-9._-]+",
      "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>"
    },
    "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>"
        },
        "tags":{
          "shape":"Tags",
          "documentation":"<p>Tags associated with the created Private Connection.</p>"
        }
      },
      "documentation":"<p>Output containing the newly created Private Connection summary.</p>"
    },
    "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":"DatadogServiceDetailsNameString",
          "documentation":"<p>MCP server name.</p>"
        },
        "endpoint":{
          "shape":"DatadogServiceDetailsEndpointString",
          "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
    },
    "DatadogServiceDetailsEndpointString":{
      "type":"string",
      "pattern":"https://[a-zA-Z0-9.-]+(?::[0-9]+)?(?:/.*)?"
    },
    "DatadogServiceDetailsNameString":{
      "type":"string",
      "pattern":"[a-zA-Z0-9_-]+"
    },
    "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>"
    },
    "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>"
    },
    "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>"
        },
        "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>"
        },
        "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"
      ]
    },
    "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>"
    },
    "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":{
        "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>"
    },
    "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>"
        }
      },
      "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>"
        }
      },
      "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":"GrafanaServiceDetailsNameString",
          "documentation":"<p>MCP server name.</p>"
        },
        "endpoint":{
          "shape":"GrafanaServiceDetailsEndpointString",
          "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
    },
    "GrafanaServiceDetailsEndpointString":{
      "type":"string",
      "pattern":"https://[a-zA-Z0-9.-]+(?::[0-9]+)?(?:/.*)?"
    },
    "GrafanaServiceDetailsNameString":{
      "type":"string",
      "pattern":"[a-zA-Z0-9_-]+"
    },
    "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>"
    },
    "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</p> <p>Filtering restrictions:</p> <ul> <li>Each filter field list is limited to a single value</li> <li>Filtering by Priority and Status at the same time when not filtering by Type is not permitted</li> <li>Timestamp filters (createdAfter, createdBefore) can be combined with other filters when not sorting by priority</li> </ul>"
        },
        "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</p> <pre><code>Sorting restrictions: </code></pre> <ul> <li>Only sorting on createdAt is supported when using priority or status filters alone.</li> <li>Sorting by priority is not supported when using Timestamp filters (createdAfter, createdBefore)</li> </ul>"
        },
        "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>"
        }
      }
    },
    "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":"MCPServerDetailsNameString",
          "documentation":"<p>MCP server name.</p>"
        },
        "endpoint":{
          "shape":"MCPServerDetailsEndpointString",
          "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
    },
    "MCPServerDetailsEndpointString":{
      "type":"string",
      "pattern":"https://[a-zA-Z0-9.-]+(?::[0-9]+)?(?:/.*)?"
    },
    "MCPServerDetailsNameString":{
      "type":"string",
      "pattern":"[a-zA-Z0-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]+"
    },
    "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",
      "min":6,
      "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":"ClientSecret",
          "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}._-]+"
    },
    "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]+)?(?:/.*)?"
    },
    "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",
      "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>"
    },
    "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"
      ]
    },
    "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>"
        }
      },
      "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>"
        },
        "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"
      ]
    },
    "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>"
        },
        "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":"RegisteredGrafanaServerDetailsEndpointString",
          "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>"
    },
    "RegisteredGrafanaServerDetailsEndpointString":{
      "type":"string",
      "pattern":"https://[a-zA-Z0-9.-]+(?::[0-9]+)?(?:/.*)?"
    },
    "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>"
    },
    "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>"
    },
    "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>"
    },
    "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+=,.@_/-]+"
    },
    "SchedulerState":{
      "type":"string",
      "documentation":"<p>State of Goal Schedule. Mirrors EventBridge Scheduler State</p>",
      "enum":[
        "ENABLED",
        "DISABLED"
      ]
    },
    "Scopes":{
      "type":"list",
      "member":{"shape":"String"},
      "documentation":"<p>List of OAuth scopes.</p>"
    },
    "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)</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</p> <p>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":"ResourceId",
          "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"
        }
      },
      "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"
      ]
    },
    "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>"
        }
      },
      "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>"
        }
      },
      "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>"
        }
      },
      "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
    },
    "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"
      ]
    },
    "TaskType":{
      "type":"string",
      "documentation":"<p>Types of tasks that can be created in the backlog</p>",
      "enum":[
        "INVESTIGATION",
        "EVALUATION"
      ]
    },
    "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"},
    "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>"
    },
    "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>"
        }
      },
      "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>"
        }
      },
      "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>"
    },
    "UsageMetric":{
      "type":"structure",
      "required":[
        "limit",
        "usage"
      ],
      "members":{
        "limit":{
          "shape":"Integer",
          "documentation":"<p>Configured limit for this metric.</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>A standard error for input validation failures. This should be thrown by services when a member of the input structure falls outside of the modeled or documented constraints.</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 a frontier agent that resolves and proactively prevents incidents, continuously improving reliability and performance. AWS DevOps Agent investigates incidents and identifies operational improvements as an experienced DevOps engineer.</p> <p>The agent works by:</p> <ul> <li>Learning your resources and their relationships.</li> <li>Working with your observability tools, runbooks, code repositories, and CI/CD pipelines.</li> <li>Correlating telemetry, code, and deployment data to understand relationships between your application resources.</li> <li>Supporting applications in multicloud and hybrid environments.</li> </ul>"
}
