{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2024-03-18",
    "auth":[
      "aws.auth#sigv4a",
      "aws.auth#sigv4"
    ],
    "endpointPrefix":"partnercentral-channel",
    "jsonVersion":"1.0",
    "protocol":"json",
    "protocols":["json"],
    "serviceFullName":"Partner Central Channel API",
    "serviceId":"PartnerCentral Channel",
    "signatureVersion":"v4",
    "signingName":"partnercentral-channel",
    "targetPrefix":"PartnerCentralChannel",
    "uid":"partnercentral-channel-2024-03-18"
  },
  "operations":{
    "AcceptChannelHandshake":{
      "name":"AcceptChannelHandshake",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"AcceptChannelHandshakeRequest"},
      "output":{"shape":"AcceptChannelHandshakeResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Accepts a pending channel handshake request from another AWS account.</p>",
      "idempotent":true
    },
    "CancelChannelHandshake":{
      "name":"CancelChannelHandshake",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CancelChannelHandshakeRequest"},
      "output":{"shape":"CancelChannelHandshakeResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Cancels a pending channel handshake request.</p>",
      "idempotent":true
    },
    "CreateChannelHandshake":{
      "name":"CreateChannelHandshake",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreateChannelHandshakeRequest"},
      "output":{"shape":"CreateChannelHandshakeResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"}
      ],
      "documentation":"<p>Creates a new channel handshake request to establish a partnership with another AWS account.</p>",
      "idempotent":true
    },
    "CreateProgramManagementAccount":{
      "name":"CreateProgramManagementAccount",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreateProgramManagementAccountRequest"},
      "output":{"shape":"CreateProgramManagementAccountResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"}
      ],
      "documentation":"<p>Creates a new program management account for managing partner relationships.</p>",
      "idempotent":true
    },
    "CreateRelationship":{
      "name":"CreateRelationship",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreateRelationshipRequest"},
      "output":{"shape":"CreateRelationshipResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"}
      ],
      "documentation":"<p>Creates a new partner relationship between accounts.</p>",
      "idempotent":true
    },
    "DeleteProgramManagementAccount":{
      "name":"DeleteProgramManagementAccount",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteProgramManagementAccountRequest"},
      "output":{"shape":"DeleteProgramManagementAccountResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Deletes a program management account.</p>",
      "idempotent":true
    },
    "DeleteRelationship":{
      "name":"DeleteRelationship",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteRelationshipRequest"},
      "output":{"shape":"DeleteRelationshipResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Deletes a partner relationship.</p>",
      "idempotent":true
    },
    "GetRelationship":{
      "name":"GetRelationship",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetRelationshipRequest"},
      "output":{"shape":"GetRelationshipResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Retrieves details of a specific partner relationship.</p>",
      "readonly":true
    },
    "ListChannelHandshakes":{
      "name":"ListChannelHandshakes",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListChannelHandshakesRequest"},
      "output":{"shape":"ListChannelHandshakesResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists channel handshakes based on specified criteria.</p>",
      "readonly":true
    },
    "ListProgramManagementAccounts":{
      "name":"ListProgramManagementAccounts",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListProgramManagementAccountsRequest"},
      "output":{"shape":"ListProgramManagementAccountsResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists program management accounts based on specified criteria.</p>",
      "readonly":true
    },
    "ListRelationships":{
      "name":"ListRelationships",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListRelationshipsRequest"},
      "output":{"shape":"ListRelationshipsResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists partner relationships based on specified criteria.</p>",
      "readonly":true
    },
    "ListTagsForResource":{
      "name":"ListTagsForResource",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListTagsForResourceRequest"},
      "output":{"shape":"ListTagsForResourceResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Lists tags associated with a specific resource.</p>",
      "readonly":true
    },
    "RejectChannelHandshake":{
      "name":"RejectChannelHandshake",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"RejectChannelHandshakeRequest"},
      "output":{"shape":"RejectChannelHandshakeResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"}
      ],
      "documentation":"<p>Rejects a pending channel handshake request.</p>",
      "idempotent":true
    },
    "TagResource":{
      "name":"TagResource",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"TagResourceRequest"},
      "output":{"shape":"TagResourceResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Adds or updates tags for a specified resource.</p>",
      "idempotent":true
    },
    "UntagResource":{
      "name":"UntagResource",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UntagResourceRequest"},
      "output":{"shape":"UntagResourceResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Removes tags from a specified resource.</p>",
      "idempotent":true
    },
    "UpdateProgramManagementAccount":{
      "name":"UpdateProgramManagementAccount",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdateProgramManagementAccountRequest"},
      "output":{"shape":"UpdateProgramManagementAccountResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Updates the properties of a program management account.</p>",
      "idempotent":true
    },
    "UpdateRelationship":{
      "name":"UpdateRelationship",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdateRelationshipRequest"},
      "output":{"shape":"UpdateRelationshipResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Updates the properties of a partner relationship.</p>"
    }
  },
  "shapes":{
    "AcceptChannelHandshakeDetail":{
      "type":"structure",
      "members":{
        "id":{
          "shape":"ChannelHandshakeId",
          "documentation":"<p>The unique identifier of the accepted handshake.</p>"
        },
        "arn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the accepted handshake.</p>"
        },
        "status":{
          "shape":"HandshakeStatus",
          "documentation":"<p>The current status of the accepted handshake.</p>"
        }
      },
      "documentation":"<p>Contains details about an accepted channel handshake.</p>"
    },
    "AcceptChannelHandshakeRequest":{
      "type":"structure",
      "required":[
        "catalog",
        "identifier"
      ],
      "members":{
        "catalog":{
          "shape":"Catalog",
          "documentation":"<p>The catalog identifier for the handshake request.</p>"
        },
        "identifier":{
          "shape":"ChannelHandshakeIdentifier",
          "documentation":"<p>The unique identifier of the channel handshake to accept.</p>"
        }
      }
    },
    "AcceptChannelHandshakeResponse":{
      "type":"structure",
      "members":{
        "channelHandshakeDetail":{
          "shape":"AcceptChannelHandshakeDetail",
          "documentation":"<p>Details of the accepted channel handshake.</p>"
        }
      }
    },
    "AccessDeniedException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>A message describing the access denial.</p>"
        },
        "reason":{
          "shape":"String",
          "documentation":"<p>The reason for the access denial.</p>"
        }
      },
      "documentation":"<p>The request was denied due to insufficient permissions.</p>",
      "exception":true
    },
    "AccountId":{
      "type":"string",
      "max":12,
      "min":12,
      "pattern":"[0-9]*"
    },
    "AccountIdList":{
      "type":"list",
      "member":{"shape":"AccountId"}
    },
    "Arn":{
      "type":"string",
      "max":1011,
      "min":1
    },
    "AssociatedResourceId":{
      "type":"string",
      "max":17,
      "min":16,
      "pattern":"(pma|rs)-[a-z0-9]{13}"
    },
    "AssociatedResourceIdentifier":{
      "type":"string",
      "max":1011,
      "min":16,
      "pattern":"((arn:[a-z-]+:partnercentral:[a-z0-9-]+:[0-9]{12}:catalog/[a-zA-Z]+/program-management-account/pma-[a-z0-9]{13}(/relationship/rs-[a-z0-9]{13})?)|(pma|rs)-[a-z0-9]{13})"
    },
    "AssociatedResourceIdentifierList":{
      "type":"list",
      "member":{"shape":"AssociatedResourceIdentifier"}
    },
    "AssociationType":{
      "type":"string",
      "enum":[
        "DOWNSTREAM_SELLER",
        "END_CUSTOMER",
        "INTERNAL"
      ]
    },
    "AssociationTypeList":{
      "type":"list",
      "member":{"shape":"AssociationType"}
    },
    "CancelChannelHandshakeDetail":{
      "type":"structure",
      "members":{
        "id":{
          "shape":"ChannelHandshakeId",
          "documentation":"<p>The unique identifier of the canceled handshake.</p>"
        },
        "arn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the canceled handshake.</p>"
        },
        "status":{
          "shape":"HandshakeStatus",
          "documentation":"<p>The current status of the canceled handshake.</p>"
        }
      },
      "documentation":"<p>Contains details about a canceled channel handshake.</p>"
    },
    "CancelChannelHandshakeRequest":{
      "type":"structure",
      "required":[
        "catalog",
        "identifier"
      ],
      "members":{
        "catalog":{
          "shape":"Catalog",
          "documentation":"<p>The catalog identifier for the handshake request.</p>"
        },
        "identifier":{
          "shape":"ChannelHandshakeIdentifier",
          "documentation":"<p>The unique identifier of the channel handshake to cancel.</p>"
        }
      }
    },
    "CancelChannelHandshakeResponse":{
      "type":"structure",
      "members":{
        "channelHandshakeDetail":{
          "shape":"CancelChannelHandshakeDetail",
          "documentation":"<p>Details of the canceled channel handshake.</p>"
        }
      }
    },
    "Catalog":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[a-zA-Z]*"
    },
    "ChannelHandshakeId":{
      "type":"string",
      "max":16,
      "min":16,
      "pattern":"ch-[a-z0-9]{13}"
    },
    "ChannelHandshakeIdentifier":{
      "type":"string",
      "max":1011,
      "min":16,
      "pattern":"(arn:[a-z-]+:partnercentral:[a-z0-9-]+:[0-9]{12}:catalog/[a-zA-Z]+/channel-handshake/)?ch-[a-z0-9]{13}"
    },
    "ChannelHandshakePayload":{
      "type":"structure",
      "members":{
        "startServicePeriodPayload":{
          "shape":"StartServicePeriodPayload",
          "documentation":"<p>Payload for starting a service period handshake.</p>"
        },
        "revokeServicePeriodPayload":{
          "shape":"RevokeServicePeriodPayload",
          "documentation":"<p>Payload for revoking a service period handshake.</p>"
        }
      },
      "documentation":"<p>Contains the payload data for different types of channel handshakes.</p>",
      "union":true
    },
    "ChannelHandshakeSummaries":{
      "type":"list",
      "member":{"shape":"ChannelHandshakeSummary"}
    },
    "ChannelHandshakeSummary":{
      "type":"structure",
      "members":{
        "id":{
          "shape":"ChannelHandshakeId",
          "documentation":"<p>The unique identifier of the handshake.</p>"
        },
        "arn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the handshake.</p>"
        },
        "catalog":{
          "shape":"Catalog",
          "documentation":"<p>The catalog identifier associated with the handshake.</p>"
        },
        "handshakeType":{
          "shape":"HandshakeType",
          "documentation":"<p>The type of the handshake.</p>"
        },
        "ownerAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The AWS account ID of the handshake owner.</p>"
        },
        "senderAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The AWS account ID of the handshake sender.</p>"
        },
        "senderDisplayName":{
          "shape":"PartnerProfileDisplayName",
          "documentation":"<p>The display name of the handshake sender.</p>"
        },
        "receiverAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The AWS account ID of the handshake receiver.</p>"
        },
        "associatedResourceId":{
          "shape":"AssociatedResourceId",
          "documentation":"<p>The identifier of the resource associated with the handshake.</p>"
        },
        "detail":{
          "shape":"HandshakeDetail",
          "documentation":"<p>Detailed information about the handshake.</p>"
        },
        "createdAt":{
          "shape":"DateTime",
          "documentation":"<p>The timestamp when the handshake was created.</p>"
        },
        "updatedAt":{
          "shape":"DateTime",
          "documentation":"<p>The timestamp when the handshake was last updated.</p>"
        },
        "status":{
          "shape":"HandshakeStatus",
          "documentation":"<p>The current status of the handshake.</p>"
        }
      },
      "documentation":"<p>Summary information about a channel handshake.</p>"
    },
    "ClientToken":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[!-~]*"
    },
    "ConflictException":{
      "type":"structure",
      "required":[
        "message",
        "resourceId",
        "resourceType"
      ],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>A message describing the conflict.</p>"
        },
        "resourceId":{
          "shape":"String",
          "documentation":"<p>The identifier of the resource that caused the conflict.</p>"
        },
        "resourceType":{
          "shape":"String",
          "documentation":"<p>The type of the resource that caused the conflict.</p>"
        }
      },
      "documentation":"<p>The request could not be completed due to a conflict with the current state of the resource.</p>",
      "exception":true
    },
    "Coverage":{
      "type":"string",
      "enum":[
        "ENTIRE_ORGANIZATION",
        "MANAGEMENT_ACCOUNT_ONLY"
      ]
    },
    "CreateChannelHandshakeDetail":{
      "type":"structure",
      "members":{
        "id":{
          "shape":"ChannelHandshakeId",
          "documentation":"<p>The unique identifier of the created handshake.</p>"
        },
        "arn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the created handshake.</p>"
        }
      },
      "documentation":"<p>Contains details about a newly created channel handshake.</p>"
    },
    "CreateChannelHandshakeRequest":{
      "type":"structure",
      "required":[
        "handshakeType",
        "catalog",
        "associatedResourceIdentifier"
      ],
      "members":{
        "handshakeType":{
          "shape":"HandshakeType",
          "documentation":"<p>The type of handshake to create (e.g., start service period, revoke service period).</p>"
        },
        "catalog":{
          "shape":"Catalog",
          "documentation":"<p>The catalog identifier for the handshake request.</p>"
        },
        "associatedResourceIdentifier":{
          "shape":"AssociatedResourceIdentifier",
          "documentation":"<p>The identifier of the resource associated with this handshake.</p>"
        },
        "payload":{
          "shape":"ChannelHandshakePayload",
          "documentation":"<p>The payload containing specific details for the handshake type.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure idempotency of the request.</p>",
          "idempotencyToken":true
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>Key-value pairs to associate with the channel handshake.</p>"
        }
      }
    },
    "CreateChannelHandshakeResponse":{
      "type":"structure",
      "members":{
        "channelHandshakeDetail":{
          "shape":"CreateChannelHandshakeDetail",
          "documentation":"<p>Details of the created channel handshake.</p>"
        }
      }
    },
    "CreateProgramManagementAccountDetail":{
      "type":"structure",
      "members":{
        "id":{
          "shape":"ProgramManagementAccountId",
          "documentation":"<p>The unique identifier of the created program management account.</p>"
        },
        "arn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the created program management account.</p>"
        }
      },
      "documentation":"<p>Contains details about a newly created program management account.</p>"
    },
    "CreateProgramManagementAccountRequest":{
      "type":"structure",
      "required":[
        "catalog",
        "program",
        "displayName",
        "accountId"
      ],
      "members":{
        "catalog":{
          "shape":"Catalog",
          "documentation":"<p>The catalog identifier for the program management account.</p>"
        },
        "program":{
          "shape":"Program",
          "documentation":"<p>The program type for the management account.</p>"
        },
        "displayName":{
          "shape":"ProgramManagementAccountDisplayName",
          "documentation":"<p>A human-readable name for the program management account.</p>"
        },
        "accountId":{
          "shape":"AccountId",
          "documentation":"<p>The AWS account ID to associate with the program management account.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure idempotency of the request.</p>",
          "idempotencyToken":true
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>Key-value pairs to associate with the program management account.</p>"
        }
      }
    },
    "CreateProgramManagementAccountResponse":{
      "type":"structure",
      "members":{
        "programManagementAccountDetail":{
          "shape":"CreateProgramManagementAccountDetail",
          "documentation":"<p>Details of the created program management account.</p>"
        }
      }
    },
    "CreateRelationshipDetail":{
      "type":"structure",
      "members":{
        "arn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the created relationship.</p>"
        },
        "id":{
          "shape":"RelationshipId",
          "documentation":"<p>The unique identifier of the created relationship.</p>"
        }
      },
      "documentation":"<p>Contains details about a newly created relationship.</p>"
    },
    "CreateRelationshipRequest":{
      "type":"structure",
      "required":[
        "catalog",
        "associationType",
        "programManagementAccountIdentifier",
        "associatedAccountId",
        "displayName",
        "sector"
      ],
      "members":{
        "catalog":{
          "shape":"Catalog",
          "documentation":"<p>The catalog identifier for the relationship.</p>"
        },
        "associationType":{
          "shape":"AssociationType",
          "documentation":"<p>The type of association for the relationship (e.g., reseller, distributor).</p>"
        },
        "programManagementAccountIdentifier":{
          "shape":"ProgramManagementAccountIdentifier",
          "documentation":"<p>The identifier of the program management account for this relationship.</p>"
        },
        "associatedAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The AWS account ID to associate in this relationship.</p>"
        },
        "displayName":{
          "shape":"RelationshipDisplayName",
          "documentation":"<p>A human-readable name for the relationship.</p>"
        },
        "resaleAccountModel":{
          "shape":"ResaleAccountModel",
          "documentation":"<p>The resale account model for the relationship.</p>"
        },
        "sector":{
          "shape":"Sector",
          "documentation":"<p>The business sector for the relationship.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure idempotency of the request.</p>",
          "idempotencyToken":true
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>Key-value pairs to associate with the relationship.</p>"
        },
        "requestedSupportPlan":{
          "shape":"SupportPlan",
          "documentation":"<p>The support plan requested for this relationship.</p>"
        }
      }
    },
    "CreateRelationshipResponse":{
      "type":"structure",
      "members":{
        "relationshipDetail":{
          "shape":"CreateRelationshipDetail",
          "documentation":"<p>Details of the created relationship.</p>"
        }
      }
    },
    "DateTime":{
      "type":"timestamp",
      "timestampFormat":"iso8601"
    },
    "DeleteProgramManagementAccountRequest":{
      "type":"structure",
      "required":[
        "catalog",
        "identifier"
      ],
      "members":{
        "catalog":{
          "shape":"Catalog",
          "documentation":"<p>The catalog identifier for the program management account.</p>"
        },
        "identifier":{
          "shape":"ProgramManagementAccountIdentifier",
          "documentation":"<p>The unique identifier of the program management account to delete.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure idempotency of the request.</p>",
          "idempotencyToken":true
        }
      }
    },
    "DeleteProgramManagementAccountResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteRelationshipRequest":{
      "type":"structure",
      "required":[
        "catalog",
        "identifier",
        "programManagementAccountIdentifier"
      ],
      "members":{
        "catalog":{
          "shape":"Catalog",
          "documentation":"<p>The catalog identifier for the relationship.</p>"
        },
        "identifier":{
          "shape":"RelationshipIdentifier",
          "documentation":"<p>The unique identifier of the relationship to delete.</p>"
        },
        "programManagementAccountIdentifier":{
          "shape":"ProgramManagementAccountIdentifier",
          "documentation":"<p>The identifier of the program management account associated with the relationship.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier to ensure idempotency of the request.</p>",
          "idempotencyToken":true
        }
      }
    },
    "DeleteRelationshipResponse":{
      "type":"structure",
      "members":{}
    },
    "GetRelationshipRequest":{
      "type":"structure",
      "required":[
        "catalog",
        "programManagementAccountIdentifier",
        "identifier"
      ],
      "members":{
        "catalog":{
          "shape":"Catalog",
          "documentation":"<p>The catalog identifier for the relationship.</p>"
        },
        "programManagementAccountIdentifier":{
          "shape":"ProgramManagementAccountIdentifier",
          "documentation":"<p>The identifier of the program management account associated with the relationship.</p>"
        },
        "identifier":{
          "shape":"RelationshipIdentifier",
          "documentation":"<p>The unique identifier of the relationship to retrieve.</p>"
        }
      }
    },
    "GetRelationshipResponse":{
      "type":"structure",
      "members":{
        "relationshipDetail":{
          "shape":"RelationshipDetail",
          "documentation":"<p>Details of the requested relationship.</p>"
        }
      }
    },
    "HandshakeDetail":{
      "type":"structure",
      "members":{
        "startServicePeriodHandshakeDetail":{
          "shape":"StartServicePeriodHandshakeDetail",
          "documentation":"<p>Details for a start service period handshake.</p>"
        },
        "revokeServicePeriodHandshakeDetail":{
          "shape":"RevokeServicePeriodHandshakeDetail",
          "documentation":"<p>Details for a revoke service period handshake.</p>"
        },
        "programManagementAccountHandshakeDetail":{
          "shape":"ProgramManagementAccountHandshakeDetail",
          "documentation":"<p>Details for a program management account handshake.</p>"
        }
      },
      "documentation":"<p>Contains detailed information about different types of handshakes.</p>",
      "union":true
    },
    "HandshakeStatus":{
      "type":"string",
      "enum":[
        "PENDING",
        "ACCEPTED",
        "REJECTED",
        "CANCELED",
        "EXPIRED"
      ]
    },
    "HandshakeStatusList":{
      "type":"list",
      "member":{"shape":"HandshakeStatus"}
    },
    "HandshakeType":{
      "type":"string",
      "enum":[
        "START_SERVICE_PERIOD",
        "REVOKE_SERVICE_PERIOD",
        "PROGRAM_MANAGEMENT_ACCOUNT"
      ]
    },
    "InternalServerException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>A message describing the internal server error.</p>"
        }
      },
      "documentation":"<p>An internal server error occurred while processing the request.</p>",
      "exception":true,
      "fault":true,
      "retryable":{"throttling":false}
    },
    "ListChannelHandshakesRequest":{
      "type":"structure",
      "required":[
        "handshakeType",
        "catalog",
        "participantType"
      ],
      "members":{
        "handshakeType":{
          "shape":"HandshakeType",
          "documentation":"<p>Filter results by handshake type.</p>"
        },
        "catalog":{
          "shape":"Catalog",
          "documentation":"<p>The catalog identifier to filter handshakes.</p>"
        },
        "participantType":{
          "shape":"ParticipantType",
          "documentation":"<p>Filter by participant type (sender or receiver).</p>"
        },
        "maxResults":{
          "shape":"ListChannelHandshakesRequestMaxResultsInteger",
          "documentation":"<p>The maximum number of results to return in a single call.</p>"
        },
        "statuses":{
          "shape":"HandshakeStatusList",
          "documentation":"<p>Filter results by handshake status.</p>"
        },
        "associatedResourceIdentifiers":{
          "shape":"AssociatedResourceIdentifierList",
          "documentation":"<p>Filter by associated resource identifiers.</p>"
        },
        "handshakeTypeFilters":{
          "shape":"ListChannelHandshakesTypeFilters",
          "documentation":"<p>Type-specific filters for handshakes.</p>"
        },
        "handshakeTypeSort":{
          "shape":"ListChannelHandshakesTypeSort",
          "documentation":"<p>Type-specific sorting options for handshakes.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Token for retrieving the next page of results.</p>"
        }
      }
    },
    "ListChannelHandshakesRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListChannelHandshakesResponse":{
      "type":"structure",
      "members":{
        "items":{
          "shape":"ChannelHandshakeSummaries",
          "documentation":"<p>List of channel handshakes matching the criteria.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Token for retrieving the next page of results, if available.</p>"
        }
      }
    },
    "ListChannelHandshakesTypeFilters":{
      "type":"structure",
      "members":{
        "startServicePeriodTypeFilters":{
          "shape":"StartServicePeriodTypeFilters",
          "documentation":"<p>Filters specific to start service period handshakes.</p>"
        },
        "revokeServicePeriodTypeFilters":{
          "shape":"RevokeServicePeriodTypeFilters",
          "documentation":"<p>Filters specific to revoke service period handshakes.</p>"
        },
        "programManagementAccountTypeFilters":{
          "shape":"ProgramManagementAccountTypeFilters",
          "documentation":"<p>Filters specific to program management account handshakes.</p>"
        }
      },
      "documentation":"<p>Type-specific filters for listing channel handshakes.</p>",
      "union":true
    },
    "ListChannelHandshakesTypeSort":{
      "type":"structure",
      "members":{
        "startServicePeriodTypeSort":{
          "shape":"StartServicePeriodTypeSort",
          "documentation":"<p>Sorting options specific to start service period handshakes.</p>"
        },
        "revokeServicePeriodTypeSort":{
          "shape":"RevokeServicePeriodTypeSort",
          "documentation":"<p>Sorting options specific to revoke service period handshakes.</p>"
        },
        "programManagementAccountTypeSort":{
          "shape":"ProgramManagementAccountTypeSort",
          "documentation":"<p>Sorting options specific to program management account handshakes.</p>"
        }
      },
      "documentation":"<p>Type-specific sorting options for listing channel handshakes.</p>",
      "union":true
    },
    "ListProgramManagementAccountsRequest":{
      "type":"structure",
      "required":["catalog"],
      "members":{
        "catalog":{
          "shape":"Catalog",
          "documentation":"<p>The catalog identifier to filter accounts.</p>"
        },
        "maxResults":{
          "shape":"ListProgramManagementAccountsRequestMaxResultsInteger",
          "documentation":"<p>The maximum number of results to return in a single call.</p>"
        },
        "displayNames":{
          "shape":"ProgramManagementAccountDisplayNameList",
          "documentation":"<p>Filter by display names.</p>"
        },
        "programs":{
          "shape":"ProgramList",
          "documentation":"<p>Filter by program types.</p>"
        },
        "accountIds":{
          "shape":"AccountIdList",
          "documentation":"<p>Filter by AWS account IDs.</p>"
        },
        "statuses":{
          "shape":"ProgramManagementAccountStatusList",
          "documentation":"<p>Filter by program management account statuses.</p>"
        },
        "sort":{
          "shape":"ListProgramManagementAccountsSortBase",
          "documentation":"<p>Sorting options for the results.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Token for retrieving the next page of results.</p>"
        }
      }
    },
    "ListProgramManagementAccountsRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListProgramManagementAccountsResponse":{
      "type":"structure",
      "members":{
        "items":{
          "shape":"ProgramManagementAccountSummaries",
          "documentation":"<p>List of program management accounts matching the criteria.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Token for retrieving the next page of results, if available.</p>"
        }
      }
    },
    "ListProgramManagementAccountsSortBase":{
      "type":"structure",
      "required":[
        "sortOrder",
        "sortBy"
      ],
      "members":{
        "sortOrder":{
          "shape":"SortOrder",
          "documentation":"<p>The sort order (ascending or descending).</p>"
        },
        "sortBy":{
          "shape":"ListProgramManagementAccountsSortName",
          "documentation":"<p>The field to sort by.</p>"
        }
      },
      "documentation":"<p>Base sorting configuration for program management accounts.</p>"
    },
    "ListProgramManagementAccountsSortName":{
      "type":"string",
      "enum":["UpdatedAt"]
    },
    "ListRelationshipsRequest":{
      "type":"structure",
      "required":["catalog"],
      "members":{
        "catalog":{
          "shape":"Catalog",
          "documentation":"<p>The catalog identifier to filter relationships.</p>"
        },
        "maxResults":{
          "shape":"ListRelationshipsRequestMaxResultsInteger",
          "documentation":"<p>The maximum number of results to return in a single call.</p>"
        },
        "associatedAccountIds":{
          "shape":"AccountIdList",
          "documentation":"<p>Filter by associated AWS account IDs.</p>"
        },
        "associationTypes":{
          "shape":"AssociationTypeList",
          "documentation":"<p>Filter by association types.</p>"
        },
        "displayNames":{
          "shape":"RelationshipDisplayNameList",
          "documentation":"<p>Filter by display names.</p>"
        },
        "programManagementAccountIdentifiers":{
          "shape":"ProgramManagementAccountIdentifierList",
          "documentation":"<p>Filter by program management account identifiers.</p>"
        },
        "sort":{
          "shape":"ListRelationshipsSortBase",
          "documentation":"<p>Sorting options for the results.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Token for retrieving the next page of results.</p>"
        }
      }
    },
    "ListRelationshipsRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "ListRelationshipsResponse":{
      "type":"structure",
      "members":{
        "items":{
          "shape":"RelationshipSummaries",
          "documentation":"<p>List of relationships matching the criteria.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>Token for retrieving the next page of results, if available.</p>"
        }
      }
    },
    "ListRelationshipsSortBase":{
      "type":"structure",
      "required":[
        "sortOrder",
        "sortBy"
      ],
      "members":{
        "sortOrder":{
          "shape":"SortOrder",
          "documentation":"<p>The sort order (ascending or descending).</p>"
        },
        "sortBy":{
          "shape":"ListRelationshipsSortName",
          "documentation":"<p>The field to sort by.</p>"
        }
      },
      "documentation":"<p>Base sorting configuration for relationships.</p>"
    },
    "ListRelationshipsSortName":{
      "type":"string",
      "enum":["UpdatedAt"]
    },
    "ListTagsForResourceRequest":{
      "type":"structure",
      "required":["resourceArn"],
      "members":{
        "resourceArn":{
          "shape":"TaggableArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource to list tags for.</p>"
        }
      }
    },
    "ListTagsForResourceResponse":{
      "type":"structure",
      "members":{
        "tags":{
          "shape":"TagList",
          "documentation":"<p>Key-value pairs associated with the resource.</p>"
        }
      }
    },
    "MinimumNoticeDays":{
      "type":"string",
      "max":10,
      "min":1,
      "pattern":"[0-9]*"
    },
    "NextToken":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"[^\\x00-\\x1F\\x7F\\x20]*"
    },
    "Note":{
      "type":"string",
      "max":300,
      "min":1,
      "pattern":"[^\\x00-\\x1F\\x7F]*"
    },
    "ParticipantType":{
      "type":"string",
      "enum":[
        "SENDER",
        "RECEIVER"
      ]
    },
    "PartnerLedSupport":{
      "type":"structure",
      "required":[
        "coverage",
        "tamLocation"
      ],
      "members":{
        "coverage":{
          "shape":"Coverage",
          "documentation":"<p>The coverage level for partner-led support.</p>"
        },
        "provider":{
          "shape":"Provider",
          "documentation":"<p>The provider of the partner-led support.</p>"
        },
        "tamLocation":{
          "shape":"String",
          "documentation":"<p>The location of the Technical Account Manager (TAM).</p>"
        }
      },
      "documentation":"<p>Configuration for partner-led support plans.</p>"
    },
    "PartnerProfileDisplayName":{
      "type":"string",
      "max":40,
      "min":1,
      "pattern":"[\\x00-\\x7E\\xA9\\xAE\\xA2-\\xA5\\u202F]+"
    },
    "Program":{
      "type":"string",
      "enum":[
        "SOLUTION_PROVIDER",
        "DISTRIBUTION",
        "DISTRIBUTION_SELLER"
      ]
    },
    "ProgramList":{
      "type":"list",
      "member":{"shape":"Program"}
    },
    "ProgramManagementAccountDisplayName":{
      "type":"string",
      "max":30,
      "min":1,
      "pattern":"[^\\x00-\\x1F\\x7F]*"
    },
    "ProgramManagementAccountDisplayNameList":{
      "type":"list",
      "member":{"shape":"ProgramManagementAccountDisplayName"}
    },
    "ProgramManagementAccountHandshakeDetail":{
      "type":"structure",
      "members":{
        "program":{
          "shape":"Program",
          "documentation":"<p>The program associated with the handshake.</p>"
        }
      },
      "documentation":"<p>Details specific to program management account handshakes.</p>"
    },
    "ProgramManagementAccountId":{
      "type":"string",
      "max":17,
      "min":17,
      "pattern":"pma-[a-z0-9]{13}"
    },
    "ProgramManagementAccountIdentifier":{
      "type":"string",
      "max":1011,
      "min":17,
      "pattern":"(arn:[a-z-]+:partnercentral:[a-z0-9-]+:[0-9]{12}:catalog/[a-zA-Z]+/program-management-account/)?pma-[a-z0-9]{13}"
    },
    "ProgramManagementAccountIdentifierList":{
      "type":"list",
      "member":{"shape":"ProgramManagementAccountIdentifier"}
    },
    "ProgramManagementAccountStatus":{
      "type":"string",
      "enum":[
        "PENDING",
        "ACTIVE",
        "INACTIVE"
      ]
    },
    "ProgramManagementAccountStatusList":{
      "type":"list",
      "member":{"shape":"ProgramManagementAccountStatus"}
    },
    "ProgramManagementAccountSummaries":{
      "type":"list",
      "member":{"shape":"ProgramManagementAccountSummary"}
    },
    "ProgramManagementAccountSummary":{
      "type":"structure",
      "members":{
        "id":{
          "shape":"ProgramManagementAccountId",
          "documentation":"<p>The unique identifier of the program management account.</p>"
        },
        "revision":{
          "shape":"Revision",
          "documentation":"<p>The current revision number of the program management account.</p>"
        },
        "catalog":{
          "shape":"Catalog",
          "documentation":"<p>The catalog identifier associated with the account.</p>"
        },
        "program":{
          "shape":"Program",
          "documentation":"<p>The program type for the management account.</p>"
        },
        "displayName":{
          "shape":"ProgramManagementAccountDisplayName",
          "documentation":"<p>The display name of the program management account.</p>"
        },
        "accountId":{
          "shape":"AccountId",
          "documentation":"<p>The AWS account ID associated with the program management account.</p>"
        },
        "arn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the program management account.</p>"
        },
        "createdAt":{
          "shape":"DateTime",
          "documentation":"<p>The timestamp when the account was created.</p>"
        },
        "updatedAt":{
          "shape":"DateTime",
          "documentation":"<p>The timestamp when the account was last updated.</p>"
        },
        "startDate":{
          "shape":"DateTime",
          "documentation":"<p>The start date of the program management account.</p>"
        },
        "status":{
          "shape":"ProgramManagementAccountStatus",
          "documentation":"<p>The current status of the program management account.</p>"
        }
      },
      "documentation":"<p>Summary information about a program management account.</p>"
    },
    "ProgramManagementAccountTypeFilters":{
      "type":"structure",
      "members":{
        "programs":{
          "shape":"ProgramList",
          "documentation":"<p>Filter by program types.</p>"
        }
      },
      "documentation":"<p>Type-specific filters for program management accounts.</p>"
    },
    "ProgramManagementAccountTypeSort":{
      "type":"structure",
      "required":[
        "sortOrder",
        "sortBy"
      ],
      "members":{
        "sortOrder":{
          "shape":"SortOrder",
          "documentation":"<p>The sort order (ascending or descending).</p>"
        },
        "sortBy":{
          "shape":"ProgramManagementAccountTypeSortName",
          "documentation":"<p>The field to sort by.</p>"
        }
      },
      "documentation":"<p>Type-specific sorting options for program management accounts.</p>"
    },
    "ProgramManagementAccountTypeSortName":{
      "type":"string",
      "enum":["UpdatedAt"]
    },
    "Provider":{
      "type":"string",
      "enum":[
        "DISTRIBUTOR",
        "DISTRIBUTION_SELLER"
      ]
    },
    "RejectChannelHandshakeDetail":{
      "type":"structure",
      "members":{
        "id":{
          "shape":"ChannelHandshakeId",
          "documentation":"<p>The unique identifier of the rejected handshake.</p>"
        },
        "arn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the rejected handshake.</p>"
        },
        "status":{
          "shape":"HandshakeStatus",
          "documentation":"<p>The current status of the rejected handshake.</p>"
        }
      },
      "documentation":"<p>Contains details about a rejected channel handshake.</p>"
    },
    "RejectChannelHandshakeRequest":{
      "type":"structure",
      "required":[
        "catalog",
        "identifier"
      ],
      "members":{
        "catalog":{
          "shape":"Catalog",
          "documentation":"<p>The catalog identifier for the handshake request.</p>"
        },
        "identifier":{
          "shape":"ChannelHandshakeIdentifier",
          "documentation":"<p>The unique identifier of the channel handshake to reject.</p>"
        }
      }
    },
    "RejectChannelHandshakeResponse":{
      "type":"structure",
      "members":{
        "channelHandshakeDetail":{
          "shape":"RejectChannelHandshakeDetail",
          "documentation":"<p>Details of the rejected channel handshake.</p>"
        }
      }
    },
    "RelationshipDetail":{
      "type":"structure",
      "members":{
        "arn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the relationship.</p>"
        },
        "id":{
          "shape":"RelationshipId",
          "documentation":"<p>The unique identifier of the relationship.</p>"
        },
        "revision":{
          "shape":"Revision",
          "documentation":"<p>The current revision number of the relationship.</p>"
        },
        "catalog":{
          "shape":"Catalog",
          "documentation":"<p>The catalog identifier associated with the relationship.</p>"
        },
        "associationType":{
          "shape":"AssociationType",
          "documentation":"<p>The type of association for the relationship.</p>"
        },
        "programManagementAccountId":{
          "shape":"ProgramManagementAccountId",
          "documentation":"<p>The identifier of the program management account.</p>"
        },
        "associatedAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The AWS account ID associated in this relationship.</p>"
        },
        "displayName":{
          "shape":"RelationshipDisplayName",
          "documentation":"<p>The display name of the relationship.</p>"
        },
        "resaleAccountModel":{
          "shape":"ResaleAccountModel",
          "documentation":"<p>The resale account model for the relationship.</p>"
        },
        "sector":{
          "shape":"Sector",
          "documentation":"<p>The business sector for the relationship.</p>"
        },
        "createdAt":{
          "shape":"DateTime",
          "documentation":"<p>The timestamp when the relationship was created.</p>"
        },
        "updatedAt":{
          "shape":"DateTime",
          "documentation":"<p>The timestamp when the relationship was last updated.</p>"
        },
        "startDate":{
          "shape":"DateTime",
          "documentation":"<p>The start date of the relationship.</p>"
        }
      },
      "documentation":"<p>Detailed information about a partner relationship.</p>"
    },
    "RelationshipDisplayName":{
      "type":"string",
      "max":30,
      "min":1,
      "pattern":"[^\\x00-\\x1F\\x7F]*"
    },
    "RelationshipDisplayNameList":{
      "type":"list",
      "member":{"shape":"RelationshipDisplayName"}
    },
    "RelationshipId":{
      "type":"string",
      "max":16,
      "min":16,
      "pattern":"rs-[a-z0-9]{13}"
    },
    "RelationshipIdentifier":{
      "type":"string",
      "max":1011,
      "min":16,
      "pattern":"(arn:[a-z-]+:partnercentral:[a-z0-9-]+:[0-9]{12}:catalog/[a-zA-Z]+/program-management-account/pma-[a-z0-9]{13}/relationship/)?rs-[a-z0-9]{13}"
    },
    "RelationshipSummaries":{
      "type":"list",
      "member":{"shape":"RelationshipSummary"}
    },
    "RelationshipSummary":{
      "type":"structure",
      "members":{
        "arn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the relationship.</p>"
        },
        "id":{
          "shape":"RelationshipId",
          "documentation":"<p>The unique identifier of the relationship.</p>"
        },
        "revision":{
          "shape":"Revision",
          "documentation":"<p>The current revision number of the relationship.</p>"
        },
        "catalog":{
          "shape":"Catalog",
          "documentation":"<p>The catalog identifier associated with the relationship.</p>"
        },
        "associationType":{
          "shape":"AssociationType",
          "documentation":"<p>The type of association for the relationship.</p>"
        },
        "programManagementAccountId":{
          "shape":"ProgramManagementAccountId",
          "documentation":"<p>The identifier of the program management account.</p>"
        },
        "associatedAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The AWS account ID associated in this relationship.</p>"
        },
        "displayName":{
          "shape":"RelationshipDisplayName",
          "documentation":"<p>The display name of the relationship.</p>"
        },
        "sector":{
          "shape":"Sector",
          "documentation":"<p>The business sector for the relationship.</p>"
        },
        "createdAt":{
          "shape":"DateTime",
          "documentation":"<p>The timestamp when the relationship was created.</p>"
        },
        "updatedAt":{
          "shape":"DateTime",
          "documentation":"<p>The timestamp when the relationship was last updated.</p>"
        },
        "startDate":{
          "shape":"DateTime",
          "documentation":"<p>The start date of the relationship.</p>"
        }
      },
      "documentation":"<p>Summary information about a partner relationship.</p>"
    },
    "ResaleAccountModel":{
      "type":"string",
      "enum":[
        "DISTRIBUTOR",
        "END_CUSTOMER",
        "SOLUTION_PROVIDER"
      ]
    },
    "ResoldEnterprise":{
      "type":"structure",
      "required":[
        "coverage",
        "tamLocation"
      ],
      "members":{
        "coverage":{
          "shape":"Coverage",
          "documentation":"<p>The coverage level for resold enterprise support.</p>"
        },
        "tamLocation":{
          "shape":"String",
          "documentation":"<p>The location of the Technical Account Manager (TAM).</p>"
        },
        "chargeAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The AWS account ID to charge for the support plan.</p>"
        }
      },
      "documentation":"<p>Configuration for resold enterprise support plans.</p>"
    },
    "ResoldUnifiedOperations":{
      "type":"structure",
      "required":[
        "coverage",
        "tamLocation"
      ],
      "members":{
        "coverage":{
          "shape":"Coverage",
          "documentation":"<p>The coverage level for resold unified operations support.</p>"
        },
        "tamLocation":{
          "shape":"String",
          "documentation":"<p>The location of the Technical Account Manager (TAM).</p>"
        },
        "chargeAccountId":{
          "shape":"AccountId",
          "documentation":"<p>The AWS account ID to charge for the support plan.</p>"
        }
      },
      "documentation":"<p>Configuration for resold unified operations support plans.</p>"
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>A message describing the resource not found error.</p>"
        },
        "resourceId":{
          "shape":"String",
          "documentation":"<p>The identifier of the resource that was not found.</p>"
        },
        "resourceType":{
          "shape":"String",
          "documentation":"<p>The type of the resource that was not found.</p>"
        }
      },
      "documentation":"<p>The specified resource was not found.</p>",
      "exception":true
    },
    "Revision":{
      "type":"string",
      "max":10,
      "min":1,
      "pattern":"[0-9]*"
    },
    "RevokeServicePeriodHandshakeDetail":{
      "type":"structure",
      "members":{
        "note":{
          "shape":"Note",
          "documentation":"<p>A note explaining the reason for revoking the service period.</p>"
        },
        "servicePeriodType":{
          "shape":"ServicePeriodType",
          "documentation":"<p>The type of service period being revoked.</p>"
        },
        "minimumNoticeDays":{
          "shape":"MinimumNoticeDays",
          "documentation":"<p>The minimum number of days notice required for revocation.</p>"
        },
        "startDate":{
          "shape":"DateTime",
          "documentation":"<p>The start date of the service period being revoked.</p>"
        },
        "endDate":{
          "shape":"DateTime",
          "documentation":"<p>The end date of the service period being revoked.</p>"
        }
      },
      "documentation":"<p>Details specific to revoke service period handshakes.</p>"
    },
    "RevokeServicePeriodPayload":{
      "type":"structure",
      "required":["programManagementAccountIdentifier"],
      "members":{
        "programManagementAccountIdentifier":{
          "shape":"ProgramManagementAccountIdentifier",
          "documentation":"<p>The identifier of the program management account.</p>"
        },
        "note":{
          "shape":"Note",
          "documentation":"<p>A note explaining the reason for revoking the service period.</p>"
        }
      },
      "documentation":"<p>Payload for revoke service period handshake requests.</p>"
    },
    "RevokeServicePeriodTypeFilters":{
      "type":"structure",
      "members":{
        "servicePeriodTypes":{
          "shape":"ServicePeriodTypeList",
          "documentation":"<p>Filter by service period types.</p>"
        }
      },
      "documentation":"<p>Filters specific to revoke service period handshakes.</p>"
    },
    "RevokeServicePeriodTypeSort":{
      "type":"structure",
      "required":[
        "sortOrder",
        "sortBy"
      ],
      "members":{
        "sortOrder":{
          "shape":"SortOrder",
          "documentation":"<p>The sort order (ascending or descending).</p>"
        },
        "sortBy":{
          "shape":"RevokeServicePeriodTypeSortName",
          "documentation":"<p>The field to sort by.</p>"
        }
      },
      "documentation":"<p>Sorting options specific to revoke service period handshakes.</p>"
    },
    "RevokeServicePeriodTypeSortName":{
      "type":"string",
      "enum":["UpdatedAt"]
    },
    "Sector":{
      "type":"string",
      "enum":[
        "COMMERCIAL",
        "GOVERNMENT",
        "GOVERNMENT_EXCEPTION"
      ]
    },
    "ServicePeriodType":{
      "type":"string",
      "enum":[
        "MINIMUM_NOTICE_PERIOD",
        "FIXED_COMMITMENT_PERIOD"
      ]
    },
    "ServicePeriodTypeList":{
      "type":"list",
      "member":{"shape":"ServicePeriodType"}
    },
    "ServiceQuotaExceededException":{
      "type":"structure",
      "required":[
        "message",
        "resourceId",
        "resourceType",
        "quotaCode"
      ],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>A message describing the service quota exceeded error.</p>"
        },
        "resourceId":{
          "shape":"String",
          "documentation":"<p>The identifier of the resource that would exceed the quota.</p>"
        },
        "resourceType":{
          "shape":"String",
          "documentation":"<p>The type of the resource that would exceed the quota.</p>"
        },
        "quotaCode":{
          "shape":"String",
          "documentation":"<p>The code identifying the specific quota that would be exceeded.</p>"
        }
      },
      "documentation":"<p>The request would exceed a service quota limit.</p>",
      "exception":true,
      "retryable":{"throttling":false}
    },
    "SortOrder":{
      "type":"string",
      "enum":[
        "Ascending",
        "Descending"
      ]
    },
    "StartServicePeriodHandshakeDetail":{
      "type":"structure",
      "members":{
        "note":{
          "shape":"Note",
          "documentation":"<p>A note providing additional information about the service period.</p>"
        },
        "servicePeriodType":{
          "shape":"ServicePeriodType",
          "documentation":"<p>The type of service period being started.</p>"
        },
        "minimumNoticeDays":{
          "shape":"MinimumNoticeDays",
          "documentation":"<p>The minimum number of days notice required for changes.</p>"
        },
        "startDate":{
          "shape":"DateTime",
          "documentation":"<p>The start date of the service period.</p>"
        },
        "endDate":{
          "shape":"DateTime",
          "documentation":"<p>The end date of the service period.</p>"
        }
      },
      "documentation":"<p>Details specific to start service period handshakes.</p>"
    },
    "StartServicePeriodPayload":{
      "type":"structure",
      "required":[
        "programManagementAccountIdentifier",
        "servicePeriodType"
      ],
      "members":{
        "programManagementAccountIdentifier":{
          "shape":"ProgramManagementAccountIdentifier",
          "documentation":"<p>The identifier of the program management account.</p>"
        },
        "note":{
          "shape":"Note",
          "documentation":"<p>A note providing additional information about the service period.</p>"
        },
        "servicePeriodType":{
          "shape":"ServicePeriodType",
          "documentation":"<p>The type of service period being started.</p>"
        },
        "minimumNoticeDays":{
          "shape":"MinimumNoticeDays",
          "documentation":"<p>The minimum number of days notice required for changes.</p>"
        },
        "endDate":{
          "shape":"DateTime",
          "documentation":"<p>The end date of the service period.</p>"
        }
      },
      "documentation":"<p>Payload for start service period handshake requests.</p>"
    },
    "StartServicePeriodTypeFilters":{
      "type":"structure",
      "members":{
        "servicePeriodTypes":{
          "shape":"ServicePeriodTypeList",
          "documentation":"<p>Filter by service period types.</p>"
        }
      },
      "documentation":"<p>Filters specific to start service period handshakes.</p>"
    },
    "StartServicePeriodTypeSort":{
      "type":"structure",
      "required":[
        "sortOrder",
        "sortBy"
      ],
      "members":{
        "sortOrder":{
          "shape":"SortOrder",
          "documentation":"<p>The sort order (ascending or descending).</p>"
        },
        "sortBy":{
          "shape":"StartServicePeriodTypeSortName",
          "documentation":"<p>The field to sort by.</p>"
        }
      },
      "documentation":"<p>Sorting options specific to start service period handshakes.</p>"
    },
    "StartServicePeriodTypeSortName":{
      "type":"string",
      "enum":["UpdatedAt"]
    },
    "String":{"type":"string"},
    "SupportPlan":{
      "type":"structure",
      "members":{
        "resoldEnterprise":{
          "shape":"ResoldEnterprise",
          "documentation":"<p>Configuration for resold enterprise support plans.</p>"
        },
        "partnerLedSupport":{
          "shape":"PartnerLedSupport",
          "documentation":"<p>Configuration for partner-led support plans.</p>"
        },
        "resoldUnifiedOperations":{
          "shape":"ResoldUnifiedOperations",
          "documentation":"<p>Configuration for resold unified operations support plans.</p>"
        }
      },
      "documentation":"<p>Configuration for different types of support plans.</p>",
      "union":true
    },
    "Tag":{
      "type":"structure",
      "required":[
        "key",
        "value"
      ],
      "members":{
        "key":{
          "shape":"TagKey",
          "documentation":"<p>The key of the tag.</p>"
        },
        "value":{
          "shape":"TagValue",
          "documentation":"<p>The value of the tag.</p>"
        }
      },
      "documentation":"<p>A key-value pair that can be associated with a resource.</p>"
    },
    "TagKey":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)"
    },
    "TagKeyList":{
      "type":"list",
      "member":{"shape":"TagKey"}
    },
    "TagList":{
      "type":"list",
      "member":{"shape":"Tag"}
    },
    "TagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tags"
      ],
      "members":{
        "resourceArn":{
          "shape":"TaggableArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource to tag.</p>"
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>Key-value pairs to associate with the resource.</p>"
        }
      }
    },
    "TagResourceResponse":{
      "type":"structure",
      "members":{}
    },
    "TagValue":{
      "type":"string",
      "max":256,
      "min":0,
      "pattern":"([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)"
    },
    "TaggableArn":{
      "type":"string",
      "max":1011,
      "min":1,
      "pattern":"arn:[a-z-]+:partnercentral:[a-z0-9-]+:[0-9]{12}:catalog/[a-zA-Z]+/(program-management-account/pma-[a-z0-9]{13}(/relationship/rs-[a-z0-9]{13})?|channel-handshake/ch-[a-z0-9]{13})"
    },
    "ThrottlingException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>A message describing the throttling error.</p>"
        },
        "serviceCode":{
          "shape":"String",
          "documentation":"<p>The service code associated with the throttling error.</p>"
        },
        "quotaCode":{
          "shape":"String",
          "documentation":"<p>The quota code associated with the throttling error.</p>"
        }
      },
      "documentation":"<p>The request was throttled due to too many requests being sent in a short period.</p>",
      "exception":true,
      "retryable":{"throttling":true}
    },
    "UntagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tagKeys"
      ],
      "members":{
        "resourceArn":{
          "shape":"TaggableArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource to remove tags from.</p>"
        },
        "tagKeys":{
          "shape":"TagKeyList",
          "documentation":"<p>The keys of the tags to remove from the resource.</p>"
        }
      }
    },
    "UntagResourceResponse":{
      "type":"structure",
      "members":{}
    },
    "UpdateProgramManagementAccountDetail":{
      "type":"structure",
      "members":{
        "id":{
          "shape":"ProgramManagementAccountId",
          "documentation":"<p>The unique identifier of the updated program management account.</p>"
        },
        "arn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the updated program management account.</p>"
        },
        "revision":{
          "shape":"Revision",
          "documentation":"<p>The new revision number of the program management account.</p>"
        },
        "displayName":{
          "shape":"ProgramManagementAccountDisplayName",
          "documentation":"<p>The updated display name of the program management account.</p>"
        }
      },
      "documentation":"<p>Contains details about an updated program management account.</p>"
    },
    "UpdateProgramManagementAccountRequest":{
      "type":"structure",
      "required":[
        "catalog",
        "identifier"
      ],
      "members":{
        "catalog":{
          "shape":"Catalog",
          "documentation":"<p>The catalog identifier for the program management account.</p>"
        },
        "identifier":{
          "shape":"ProgramManagementAccountIdentifier",
          "documentation":"<p>The unique identifier of the program management account to update.</p>"
        },
        "revision":{
          "shape":"Revision",
          "documentation":"<p>The current revision number of the program management account.</p>"
        },
        "displayName":{
          "shape":"ProgramManagementAccountDisplayName",
          "documentation":"<p>The new display name for the program management account.</p>"
        }
      }
    },
    "UpdateProgramManagementAccountResponse":{
      "type":"structure",
      "members":{
        "programManagementAccountDetail":{
          "shape":"UpdateProgramManagementAccountDetail",
          "documentation":"<p>Details of the updated program management account.</p>"
        }
      }
    },
    "UpdateRelationshipDetail":{
      "type":"structure",
      "members":{
        "arn":{
          "shape":"Arn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the updated relationship.</p>"
        },
        "id":{
          "shape":"RelationshipId",
          "documentation":"<p>The unique identifier of the updated relationship.</p>"
        },
        "revision":{
          "shape":"Revision",
          "documentation":"<p>The new revision number of the relationship.</p>"
        },
        "displayName":{
          "shape":"RelationshipDisplayName",
          "documentation":"<p>The updated display name of the relationship.</p>"
        }
      },
      "documentation":"<p>Contains details about an updated relationship.</p>"
    },
    "UpdateRelationshipRequest":{
      "type":"structure",
      "required":[
        "catalog",
        "identifier",
        "programManagementAccountIdentifier"
      ],
      "members":{
        "catalog":{
          "shape":"Catalog",
          "documentation":"<p>The catalog identifier for the relationship.</p>"
        },
        "identifier":{
          "shape":"RelationshipIdentifier",
          "documentation":"<p>The unique identifier of the relationship to update.</p>"
        },
        "programManagementAccountIdentifier":{
          "shape":"ProgramManagementAccountIdentifier",
          "documentation":"<p>The identifier of the program management account associated with the relationship.</p>"
        },
        "revision":{
          "shape":"Revision",
          "documentation":"<p>The current revision number of the relationship.</p>"
        },
        "displayName":{
          "shape":"RelationshipDisplayName",
          "documentation":"<p>The new display name for the relationship.</p>"
        },
        "requestedSupportPlan":{
          "shape":"SupportPlan",
          "documentation":"<p>The updated support plan for the relationship.</p>"
        }
      }
    },
    "UpdateRelationshipResponse":{
      "type":"structure",
      "members":{
        "relationshipDetail":{
          "shape":"UpdateRelationshipDetail",
          "documentation":"<p>Details of the updated relationship.</p>"
        }
      }
    },
    "ValidationException":{
      "type":"structure",
      "required":[
        "message",
        "reason"
      ],
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>A message describing the validation error.</p>"
        },
        "reason":{
          "shape":"ValidationExceptionReason",
          "documentation":"<p>The reason for the validation failure.</p>"
        },
        "fieldList":{
          "shape":"ValidationExceptionFieldList",
          "documentation":"<p>A list of fields that failed validation.</p>"
        }
      },
      "documentation":"<p>The request failed validation due to invalid input parameters.</p>",
      "exception":true
    },
    "ValidationExceptionField":{
      "type":"structure",
      "required":[
        "name",
        "code",
        "message"
      ],
      "members":{
        "name":{
          "shape":"String",
          "documentation":"<p>The name of the field that failed validation.</p>"
        },
        "code":{
          "shape":"String",
          "documentation":"<p>The validation error code for the field.</p>"
        },
        "message":{
          "shape":"String",
          "documentation":"<p>A descriptive message about the validation error.</p>"
        }
      },
      "documentation":"<p>Information about a field that failed validation.</p>"
    },
    "ValidationExceptionFieldList":{
      "type":"list",
      "member":{"shape":"ValidationExceptionField"}
    },
    "ValidationExceptionReason":{
      "type":"string",
      "enum":[
        "REQUEST_VALIDATION_FAILED",
        "BUSINESS_VALIDATION_FAILED"
      ]
    }
  },
  "documentation":"<p>AWS Partner Central Channel service for managing partner relationships, handshakes, and program management accounts.</p>"
}
