{
  "version": "2.0",
  "service": "<p><fullname>AWS Support Authorization</fullname> <p>AWS SupportAuthZ enables you to control and authorize the actions that AWS support operators can perform on your resources. You create cryptographically signed support permits specifying which actions operators can perform, on which resources, and under what time-window conditions. Permits are signed using a customer-managed AWS KMS key (ECC_NIST_P384, SIGN_VERIFY) to ensure non-repudiation.</p></p>",
  "operations": {
    "CreateSupportPermit": "<p>Creates a support permit that authorizes an AWS support operator to perform specified actions on specified resources. The permit is cryptographically signed using a customer-managed AWS KMS key (ECC_NIST_P384, SIGN_VERIFY) to ensure non-repudiation.</p>",
    "DeleteSupportPermit": "<p>Deletes a support permit, revoking the authorization previously granted to the AWS support operator.</p>",
    "GetAction": "<p>Retrieves the description of a specific support action.</p>",
    "GetSupportPermit": "<p>Retrieves the details of a support permit by its ARN or name.</p>",
    "ListActions": "<p>Lists available support actions for a specified AWS service. Use pagination to ensure that the operation returns quickly and successfully.</p>",
    "ListSupportPermitRequests": "<p>Lists permit requests from AWS support operators. Use pagination to ensure that the operation returns quickly and successfully.</p>",
    "ListSupportPermits": "<p>Lists all support permits in the caller's account. Use pagination to ensure that the operation returns quickly and successfully.</p>",
    "ListTagsForResource": "<p>Lists the tags associated with a support permit resource.</p>",
    "RejectSupportPermitRequest": "<p>Rejects a permit request from an AWS support operator. The operator cannot proceed with the requested action.</p>",
    "TagResource": "<p>Adds or overwrites one or more tags for a support permit resource.</p>",
    "UntagResource": "<p>Removes one or more tags from a support permit resource.</p>"
  },
  "shapes": {
    "AccessDeniedException": {
      "base": "<p>You don't have sufficient permissions to perform this operation.</p>",
      "refs": {}
    },
    "Action": {
      "base": null,
      "refs": {
        "ActionSummary$action": "<p>The name of the support action.</p>",
        "Actions$member": null,
        "GetActionInput$action": "<p>The name of the support action to retrieve.</p>",
        "GetActionOutput$action": "<p>The name of the support action.</p>"
      }
    },
    "ActionDescription": {
      "base": null,
      "refs": {
        "ActionSummary$description": "<p>A description of what the support action does.</p>",
        "GetActionOutput$description": "<p>A description of what the support action does.</p>"
      }
    },
    "ActionSet": {
      "base": "<p>The set of actions authorized by a permit. Specify either all actions or a list of specific actions.</p>",
      "refs": {
        "Permit$actions": "<p>The set of actions that the support operator is authorized to perform.</p>"
      }
    },
    "ActionSummaries": {
      "base": null,
      "refs": {
        "ListActionsOutput$actionSummaries": "<p>The list of support actions.</p>"
      }
    },
    "ActionSummary": {
      "base": "<p>A summary of a support action.</p>",
      "refs": {
        "ActionSummaries$member": null
      }
    },
    "Actions": {
      "base": null,
      "refs": {
        "ActionSet$actions": "<p>A list of specific support actions to authorize. Maximum of 10 actions.</p>"
      }
    },
    "Arn": {
      "base": null,
      "refs": {
        "CreateSupportPermitOutput$arn": "<p>The Amazon Resource Name (ARN) of the support permit.</p>",
        "DeleteSupportPermitInput$supportPermitIdentifier": "<p>The Amazon Resource Name (ARN) or name of the support permit to delete.</p>",
        "DeleteSupportPermitOutput$arn": "<p>The ARN of the deleted support permit.</p>",
        "GetSupportPermitOutput$arn": "<p>The ARN of the support permit.</p>",
        "ListTagsForResourceInput$resourceArn": "<p>The ARN of the resource to list tags for.</p>",
        "SupportPermitSummary$arn": "<p>The ARN of the support permit.</p>",
        "TagResourceInput$resourceArn": "<p>The ARN of the resource to tag.</p>",
        "UntagResourceInput$resourceArn": "<p>The ARN of the resource to untag.</p>"
      }
    },
    "ClientToken": {
      "base": null,
      "refs": {
        "CreateSupportPermitInput$clientToken": "<p>A unique, case-sensitive identifier to ensure that the operation completes no more than one time. If this token matches a previous request, the service returns the existing permit without creating a duplicate.</p>"
      }
    },
    "Condition": {
      "base": "<p>A time-window condition that constrains when a support permit is valid.</p>",
      "refs": {
        "Conditions$member": null
      }
    },
    "Conditions": {
      "base": null,
      "refs": {
        "Permit$conditions": "<p>The time-window conditions that constrain when the permit is valid. Maximum of 2 conditions.</p>"
      }
    },
    "ConflictException": {
      "base": "<p>The request conflicts with the current state of the resource.</p>",
      "refs": {}
    },
    "CreateSupportPermitInput": {
      "base": null,
      "refs": {}
    },
    "CreateSupportPermitOutput": {
      "base": null,
      "refs": {}
    },
    "DeleteSupportPermitInput": {
      "base": null,
      "refs": {}
    },
    "DeleteSupportPermitOutput": {
      "base": null,
      "refs": {}
    },
    "Description": {
      "base": null,
      "refs": {
        "CreateSupportPermitInput$description": "<p>A human-readable description of why this permit is being created. Maximum length of 1024 characters.</p>",
        "CreateSupportPermitOutput$description": "<p>The description of the support permit.</p>",
        "DeleteSupportPermitOutput$description": "<p>The description of the deleted support permit.</p>",
        "GetSupportPermitOutput$description": "<p>The description of the support permit.</p>"
      }
    },
    "GetActionInput": {
      "base": null,
      "refs": {}
    },
    "GetActionOutput": {
      "base": null,
      "refs": {}
    },
    "GetSupportPermitInput": {
      "base": null,
      "refs": {}
    },
    "GetSupportPermitOutput": {
      "base": null,
      "refs": {}
    },
    "Integer": {
      "base": null,
      "refs": {
        "InternalServerException$retryAfterSeconds": "<p>The number of seconds to wait before retrying the request.</p>",
        "ThrottlingException$retryAfterSeconds": "<p>The number of seconds to wait before retrying the request.</p>"
      }
    },
    "InternalServerException": {
      "base": "<p>An internal service error occurred. Try again later.</p>",
      "refs": {}
    },
    "KmsKeyArn": {
      "base": null,
      "refs": {
        "SigningKeyInfo$kmsKey": "<p>The ARN of the AWS KMS key used to sign the permit. The key must have key spec ECC_NIST_P384 and key usage SIGN_VERIFY.</p>"
      }
    },
    "ListActionsInput": {
      "base": null,
      "refs": {}
    },
    "ListActionsOutput": {
      "base": null,
      "refs": {}
    },
    "ListSupportPermitRequestsInput": {
      "base": null,
      "refs": {}
    },
    "ListSupportPermitRequestsOutput": {
      "base": null,
      "refs": {}
    },
    "ListSupportPermitsInput": {
      "base": null,
      "refs": {}
    },
    "ListSupportPermitsOutput": {
      "base": null,
      "refs": {}
    },
    "ListTagsForResourceInput": {
      "base": null,
      "refs": {}
    },
    "ListTagsForResourceOutput": {
      "base": null,
      "refs": {}
    },
    "MaxResults": {
      "base": null,
      "refs": {
        "ListActionsInput$maxResults": "<p>The maximum number of results to return in a single call. Valid range is 1 to 100.</p>",
        "ListSupportPermitRequestsInput$maxResults": "<p>The maximum number of results to return in a single call. Valid range is 1 to 100.</p>",
        "ListSupportPermitsInput$maxResults": "<p>The maximum number of results to return in a single call. Valid range is 1 to 100.</p>"
      }
    },
    "Name": {
      "base": null,
      "refs": {
        "CreateSupportPermitInput$name": "<p>A customer-chosen name for the support permit. Must be between 1 and 256 alphanumeric characters.</p>",
        "CreateSupportPermitOutput$name": "<p>The name of the support permit.</p>",
        "DeleteSupportPermitOutput$name": "<p>The name of the deleted support permit.</p>",
        "GetSupportPermitOutput$name": "<p>The name of the support permit.</p>",
        "SupportPermitSummary$name": "<p>The name of the support permit.</p>"
      }
    },
    "NextToken": {
      "base": null,
      "refs": {
        "ListActionsInput$nextToken": "<p>The token for the next page of results.</p>",
        "ListActionsOutput$nextToken": "<p>The token for the next page of results, or null if there are no more results.</p>",
        "ListSupportPermitRequestsInput$nextToken": "<p>The token for the next page of results.</p>",
        "ListSupportPermitRequestsOutput$nextToken": "<p>The token for the next page of results, or null if there are no more results.</p>",
        "ListSupportPermitsInput$nextToken": "<p>The token for the next page of results.</p>",
        "ListSupportPermitsOutput$nextToken": "<p>The token for the next page of results, or null if there are no more results.</p>"
      }
    },
    "Permit": {
      "base": "<p>The permit definition specifying the authorized actions, resources, and time-window conditions for a support operator.</p>",
      "refs": {
        "CreateSupportPermitInput$permit": "<p>The permit definition specifying the actions, resources, and time-window conditions that the support operator is authorized to use.</p>",
        "CreateSupportPermitOutput$permit": "<p>The permit definition.</p>",
        "DeleteSupportPermitOutput$permit": "<p>The permit definition of the deleted permit.</p>",
        "GetSupportPermitOutput$permit": "<p>The permit definition.</p>",
        "SupportPermitRequest$permit": "<p>The permit definition requested by the operator.</p>",
        "SupportPermitSummary$permit": "<p>The permit definition.</p>"
      }
    },
    "RejectSupportPermitRequestInput": {
      "base": null,
      "refs": {}
    },
    "RejectSupportPermitRequestOutput": {
      "base": null,
      "refs": {}
    },
    "RequestArn": {
      "base": null,
      "refs": {
        "RejectSupportPermitRequestInput$requestArn": "<p>The ARN of the permit request to reject.</p>",
        "RejectSupportPermitRequestOutput$requestArn": "<p>The ARN of the rejected permit request.</p>",
        "SupportPermitRequest$requestArn": "<p>The ARN of the permit request.</p>"
      }
    },
    "Resource": {
      "base": null,
      "refs": {
        "Resources$member": null
      }
    },
    "ResourceNotFoundException": {
      "base": "<p>The specified resource does not exist.</p>",
      "refs": {}
    },
    "ResourceSet": {
      "base": "<p>The set of resources authorized by a permit. Specify either all resources in the Region or a list of specific resources.</p>",
      "refs": {
        "Permit$resources": "<p>The set of resources that the support operator is authorized to act upon.</p>"
      }
    },
    "Resources": {
      "base": null,
      "refs": {
        "ResourceSet$resources": "<p>A list of specific resource identifiers that the support operator is authorized to act upon. Maximum of 5 resources.</p>"
      }
    },
    "Service": {
      "base": null,
      "refs": {
        "ActionSummary$service": "<p>The AWS service associated with the support action.</p>",
        "GetActionOutput$service": "<p>The AWS service associated with the support action.</p>",
        "ListActionsInput$service": "<p>The name of the AWS service for which to list available support actions.</p>"
      }
    },
    "ServiceQuotaExceededException": {
      "base": "<p>The request exceeds a service quota for your account.</p>",
      "refs": {}
    },
    "SigningKeyInfo": {
      "base": "<p>The signing key used to cryptographically sign a support permit.</p>",
      "refs": {
        "CreateSupportPermitInput$signingKeyInfo": "<p>The signing key information used to sign the permit. Must reference an AWS KMS key with key usage SIGN_VERIFY and key spec ECC_NIST_P384.</p>",
        "CreateSupportPermitOutput$signingKeyInfo": "<p>The signing key information for the permit.</p>",
        "DeleteSupportPermitOutput$signingKeyInfo": "<p>The signing key information for the deleted permit.</p>",
        "GetSupportPermitOutput$signingKeyInfo": "<p>The signing key information for the permit.</p>",
        "SupportPermitSummary$signingKeyInfo": "<p>The signing key information for the permit.</p>"
      }
    },
    "String": {
      "base": null,
      "refs": {
        "AccessDeniedException$message": null,
        "ConflictException$message": null,
        "ConflictException$resourceId": "<p>The identifier of the resource that caused the conflict.</p>",
        "ConflictException$resourceType": "<p>The type of the resource that caused the conflict.</p>",
        "InternalServerException$message": null,
        "ResourceNotFoundException$message": null,
        "ResourceNotFoundException$resourceId": "<p>The identifier of the resource that was not found.</p>",
        "ResourceNotFoundException$resourceType": "<p>The type of the resource that was not found.</p>",
        "ServiceQuotaExceededException$message": null,
        "ServiceQuotaExceededException$resourceId": "<p>The identifier of the resource that exceeded the quota.</p>",
        "ServiceQuotaExceededException$resourceType": "<p>The type of the resource that exceeded the quota.</p>",
        "ServiceQuotaExceededException$serviceCode": "<p>The service code of the originating service.</p>",
        "ServiceQuotaExceededException$quotaCode": "<p>The quota code of the exceeded quota.</p>",
        "ThrottlingException$message": null,
        "ValidationException$message": null,
        "ValidationExceptionField$path": "<p>A JSONPointer expression to the structure member whose value failed to satisfy the modeled constraints.</p>",
        "ValidationExceptionField$message": "<p>A detailed description of the validation failure.</p>"
      }
    },
    "SupportCaseDisplayId": {
      "base": null,
      "refs": {
        "CreateSupportPermitInput$supportCaseDisplayId": "<p>The display identifier of the AWS Support case associated with this permit.</p>",
        "CreateSupportPermitOutput$supportCaseDisplayId": "<p>The display identifier of the support case associated with the permit.</p>",
        "DeleteSupportPermitOutput$supportCaseDisplayId": "<p>The display identifier of the support case associated with the deleted permit.</p>",
        "GetSupportPermitOutput$supportCaseDisplayId": "<p>The display identifier of the support case associated with the permit.</p>",
        "ListSupportPermitRequestsInput$supportCaseDisplayId": "<p>Filters the results by support case display identifier.</p>",
        "SupportPermitRequest$supportCaseDisplayId": "<p>The display identifier of the support case associated with the request.</p>",
        "SupportPermitSummary$supportCaseDisplayId": "<p>The display identifier of the support case associated with the permit.</p>"
      }
    },
    "SupportPermitIdentifier": {
      "base": null,
      "refs": {
        "GetSupportPermitInput$supportPermitIdentifier": "<p>The ARN or name of the support permit to retrieve.</p>"
      }
    },
    "SupportPermitRequest": {
      "base": "<p>A permit request from an AWS support operator.</p>",
      "refs": {
        "SupportPermitRequests$member": null
      }
    },
    "SupportPermitRequestStatus": {
      "base": "<p>The status of a support permit request.</p>",
      "refs": {
        "SupportPermitRequest$status": "<p>The current status of the permit request.</p>"
      }
    },
    "SupportPermitRequests": {
      "base": null,
      "refs": {
        "ListSupportPermitRequestsOutput$supportPermitRequests": "<p>The list of permit requests.</p>"
      }
    },
    "SupportPermitStatus": {
      "base": "<p>The status of a support permit.</p>",
      "refs": {
        "CreateSupportPermitOutput$status": "<p>The current status of the support permit.</p>",
        "DeleteSupportPermitOutput$status": "<p>The status of the support permit. Returns DELETING.</p>",
        "GetSupportPermitOutput$status": "<p>The current status of the support permit.</p>",
        "SupportPermitStatuses$member": null,
        "SupportPermitSummary$status": "<p>The current status of the support permit.</p>"
      }
    },
    "SupportPermitStatuses": {
      "base": null,
      "refs": {
        "ListSupportPermitsInput$supportPermitStatuses": "<p>Filters the results by support permit status. Valid values: ACTIVE, INACTIVE, DELETING.</p>"
      }
    },
    "SupportPermitSummaries": {
      "base": null,
      "refs": {
        "ListSupportPermitsOutput$supportPermits": "<p>The list of support permits.</p>"
      }
    },
    "SupportPermitSummary": {
      "base": "<p>A summary of a support permit.</p>",
      "refs": {
        "SupportPermitSummaries$member": null
      }
    },
    "TagKey": {
      "base": null,
      "refs": {
        "TagKeyList$member": null,
        "Tags$key": null
      }
    },
    "TagKeyList": {
      "base": null,
      "refs": {
        "UntagResourceInput$tagKeys": "<p>The tag keys to remove from the resource.</p>"
      }
    },
    "TagResourceInput": {
      "base": null,
      "refs": {}
    },
    "TagResourceOutput": {
      "base": null,
      "refs": {}
    },
    "TagValue": {
      "base": null,
      "refs": {
        "Tags$value": null
      }
    },
    "Tags": {
      "base": null,
      "refs": {
        "CreateSupportPermitInput$tags": "<p>The tags to associate with the support permit on creation.</p>",
        "CreateSupportPermitOutput$tags": "<p>The tags associated with the support permit.</p>",
        "GetSupportPermitOutput$tags": "<p>The tags associated with the support permit.</p>",
        "ListTagsForResourceOutput$tags": "<p>The tags associated with the resource.</p>",
        "TagResourceInput$tags": "<p>The tags to add to the resource. Maximum of 50 tags.</p>"
      }
    },
    "ThrottlingException": {
      "base": "<p>The request rate exceeded the allowed limit. Try again later.</p>",
      "refs": {}
    },
    "Timestamp": {
      "base": null,
      "refs": {
        "Condition$allowAfter": "<p>The earliest time at which the permit becomes valid.</p>",
        "Condition$allowBefore": "<p>The latest time at which the permit remains valid.</p>",
        "CreateSupportPermitOutput$createdAt": "<p>The timestamp when the permit was created.</p>",
        "DeleteSupportPermitOutput$createdAt": "<p>The timestamp when the permit was originally created.</p>",
        "GetSupportPermitOutput$createdAt": "<p>The timestamp when the permit was created.</p>",
        "SupportPermitRequest$createdAt": "<p>The timestamp when the request was created.</p>",
        "SupportPermitRequest$updatedAt": "<p>The timestamp when the request was last updated.</p>",
        "SupportPermitSummary$createdAt": "<p>The timestamp when the permit was created.</p>"
      }
    },
    "Unit": {
      "base": null,
      "refs": {
        "ActionSet$allActions": "<p>Authorizes all available support actions.</p>",
        "ResourceSet$allResourcesInRegion": "<p>Authorizes the support operator to act on all resources in the Region.</p>"
      }
    },
    "UntagResourceInput": {
      "base": null,
      "refs": {}
    },
    "UntagResourceOutput": {
      "base": null,
      "refs": {}
    },
    "ValidationException": {
      "base": "<p>The input fails to satisfy the constraints specified by the service.</p>",
      "refs": {}
    },
    "ValidationExceptionField": {
      "base": "<p>Describes one specific validation failure for an input member.</p>",
      "refs": {
        "ValidationExceptionFieldList$member": null
      }
    },
    "ValidationExceptionFieldList": {
      "base": null,
      "refs": {
        "ValidationException$fieldList": "<p>A list of fields that fail validation. Each entry identifies the field and the reason for the constraint violation.</p>"
      }
    }
  }
}
