{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2018-01-04",
    "endpointPrefix":"ram",
    "jsonVersion":"1.1",
    "protocol":"rest-json",
    "serviceAbbreviation":"RAM",
    "serviceFullName":"AWS Resource Access Manager",
    "serviceId":"RAM",
    "signatureVersion":"v4",
    "uid":"ram-2018-01-04"
  },
  "operations":{
    "AcceptResourceShareInvitation":{
      "name":"AcceptResourceShareInvitation",
      "http":{
        "method":"POST",
        "requestUri":"/acceptresourceshareinvitation"
      },
      "input":{"shape":"AcceptResourceShareInvitationRequest"},
      "output":{"shape":"AcceptResourceShareInvitationResponse"},
      "errors":[
        {"shape":"MalformedArnException"},
        {"shape":"OperationNotPermittedException"},
        {"shape":"ResourceShareInvitationArnNotFoundException"},
        {"shape":"ResourceShareInvitationAlreadyAcceptedException"},
        {"shape":"ResourceShareInvitationAlreadyRejectedException"},
        {"shape":"ResourceShareInvitationExpiredException"},
        {"shape":"ServerInternalException"},
        {"shape":"ServiceUnavailableException"}
      ],
      "documentation":"<p>Accepts an invitation to a resource share from another AWS account.</p>"
    },
    "AssociateResourceShare":{
      "name":"AssociateResourceShare",
      "http":{
        "method":"POST",
        "requestUri":"/associateresourceshare"
      },
      "input":{"shape":"AssociateResourceShareRequest"},
      "output":{"shape":"AssociateResourceShareResponse"},
      "errors":[
        {"shape":"IdempotentParameterMismatchException"},
        {"shape":"UnknownResourceException"},
        {"shape":"InvalidStateTransitionException"},
        {"shape":"ResourceShareLimitExceededException"},
        {"shape":"MalformedArnException"},
        {"shape":"InvalidStateTransitionException"},
        {"shape":"InvalidClientTokenException"},
        {"shape":"InvalidParameterException"},
        {"shape":"OperationNotPermittedException"},
        {"shape":"ServerInternalException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"UnknownResourceException"}
      ],
      "documentation":"<p>Associates the specified resource share with the specified principals and resources.</p>"
    },
    "CreateResourceShare":{
      "name":"CreateResourceShare",
      "http":{
        "method":"POST",
        "requestUri":"/createresourceshare"
      },
      "input":{"shape":"CreateResourceShareRequest"},
      "output":{"shape":"CreateResourceShareResponse"},
      "errors":[
        {"shape":"IdempotentParameterMismatchException"},
        {"shape":"InvalidStateTransitionException"},
        {"shape":"UnknownResourceException"},
        {"shape":"MalformedArnException"},
        {"shape":"InvalidClientTokenException"},
        {"shape":"InvalidParameterException"},
        {"shape":"OperationNotPermittedException"},
        {"shape":"ResourceShareLimitExceededException"},
        {"shape":"ServerInternalException"},
        {"shape":"ServiceUnavailableException"}
      ],
      "documentation":"<p>Creates a resource share.</p>"
    },
    "DeleteResourceShare":{
      "name":"DeleteResourceShare",
      "http":{
        "method":"DELETE",
        "requestUri":"/deleteresourceshare"
      },
      "input":{"shape":"DeleteResourceShareRequest"},
      "output":{"shape":"DeleteResourceShareResponse"},
      "errors":[
        {"shape":"OperationNotPermittedException"},
        {"shape":"IdempotentParameterMismatchException"},
        {"shape":"InvalidStateTransitionException"},
        {"shape":"UnknownResourceException"},
        {"shape":"MalformedArnException"},
        {"shape":"InvalidClientTokenException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ServerInternalException"},
        {"shape":"ServiceUnavailableException"}
      ],
      "documentation":"<p>Deletes the specified resource share.</p>"
    },
    "DisassociateResourceShare":{
      "name":"DisassociateResourceShare",
      "http":{
        "method":"POST",
        "requestUri":"/disassociateresourceshare"
      },
      "input":{"shape":"DisassociateResourceShareRequest"},
      "output":{"shape":"DisassociateResourceShareResponse"},
      "errors":[
        {"shape":"IdempotentParameterMismatchException"},
        {"shape":"ResourceShareLimitExceededException"},
        {"shape":"MalformedArnException"},
        {"shape":"InvalidStateTransitionException"},
        {"shape":"InvalidClientTokenException"},
        {"shape":"InvalidParameterException"},
        {"shape":"OperationNotPermittedException"},
        {"shape":"ServerInternalException"},
        {"shape":"ServiceUnavailableException"},
        {"shape":"UnknownResourceException"}
      ],
      "documentation":"<p>Disassociates the specified principals or resources from the specified resource share.</p>"
    },
    "EnableSharingWithAwsOrganization":{
      "name":"EnableSharingWithAwsOrganization",
      "http":{
        "method":"POST",
        "requestUri":"/enablesharingwithawsorganization"
      },
      "input":{"shape":"EnableSharingWithAwsOrganizationRequest"},
      "output":{"shape":"EnableSharingWithAwsOrganizationResponse"},
      "errors":[
        {"shape":"OperationNotPermittedException"},
        {"shape":"ServerInternalException"},
        {"shape":"ServiceUnavailableException"}
      ],
      "documentation":"<p>Enables resource sharing within your organization.</p>"
    },
    "GetResourcePolicies":{
      "name":"GetResourcePolicies",
      "http":{
        "method":"POST",
        "requestUri":"/getresourcepolicies"
      },
      "input":{"shape":"GetResourcePoliciesRequest"},
      "output":{"shape":"GetResourcePoliciesResponse"},
      "errors":[
        {"shape":"MalformedArnException"},
        {"shape":"InvalidNextTokenException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ServerInternalException"},
        {"shape":"ServiceUnavailableException"}
      ],
      "documentation":"<p>Gets the policies for the specifies resources.</p>"
    },
    "GetResourceShareAssociations":{
      "name":"GetResourceShareAssociations",
      "http":{
        "method":"POST",
        "requestUri":"/getresourceshareassociations"
      },
      "input":{"shape":"GetResourceShareAssociationsRequest"},
      "output":{"shape":"GetResourceShareAssociationsResponse"},
      "errors":[
        {"shape":"UnknownResourceException"},
        {"shape":"MalformedArnException"},
        {"shape":"InvalidNextTokenException"},
        {"shape":"InvalidParameterException"},
        {"shape":"OperationNotPermittedException"},
        {"shape":"ServerInternalException"},
        {"shape":"ServiceUnavailableException"}
      ],
      "documentation":"<p>Gets the associations for the specified resource share.</p>"
    },
    "GetResourceShareInvitations":{
      "name":"GetResourceShareInvitations",
      "http":{
        "method":"POST",
        "requestUri":"/getresourceshareinvitations"
      },
      "input":{"shape":"GetResourceShareInvitationsRequest"},
      "output":{"shape":"GetResourceShareInvitationsResponse"},
      "errors":[
        {"shape":"ResourceShareInvitationArnNotFoundException"},
        {"shape":"InvalidMaxResultsException"},
        {"shape":"MalformedArnException"},
        {"shape":"InvalidNextTokenException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ServerInternalException"},
        {"shape":"ServiceUnavailableException"}
      ],
      "documentation":"<p>Gets the specified invitations for resource sharing.</p>"
    },
    "GetResourceShares":{
      "name":"GetResourceShares",
      "http":{
        "method":"POST",
        "requestUri":"/getresourceshares"
      },
      "input":{"shape":"GetResourceSharesRequest"},
      "output":{"shape":"GetResourceSharesResponse"},
      "errors":[
        {"shape":"UnknownResourceException"},
        {"shape":"MalformedArnException"},
        {"shape":"InvalidNextTokenException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ServerInternalException"},
        {"shape":"ServiceUnavailableException"}
      ],
      "documentation":"<p>Gets the specified resource shares or all of your resource shares.</p>"
    },
    "ListPrincipals":{
      "name":"ListPrincipals",
      "http":{
        "method":"POST",
        "requestUri":"/listprincipals"
      },
      "input":{"shape":"ListPrincipalsRequest"},
      "output":{"shape":"ListPrincipalsResponse"},
      "errors":[
        {"shape":"MalformedArnException"},
        {"shape":"UnknownResourceException"},
        {"shape":"InvalidNextTokenException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ServerInternalException"},
        {"shape":"ServiceUnavailableException"}
      ],
      "documentation":"<p>Lists the principals with access to the specified resource.</p>"
    },
    "ListResources":{
      "name":"ListResources",
      "http":{
        "method":"POST",
        "requestUri":"/listresources"
      },
      "input":{"shape":"ListResourcesRequest"},
      "output":{"shape":"ListResourcesResponse"},
      "errors":[
        {"shape":"InvalidResourceTypeException"},
        {"shape":"UnknownResourceException"},
        {"shape":"MalformedArnException"},
        {"shape":"InvalidNextTokenException"},
        {"shape":"InvalidParameterException"},
        {"shape":"ServerInternalException"},
        {"shape":"ServiceUnavailableException"}
      ],
      "documentation":"<p>Lists the resources that the specified principal can access.</p>"
    },
    "RejectResourceShareInvitation":{
      "name":"RejectResourceShareInvitation",
      "http":{
        "method":"POST",
        "requestUri":"/rejectresourceshareinvitation"
      },
      "input":{"shape":"RejectResourceShareInvitationRequest"},
      "output":{"shape":"RejectResourceShareInvitationResponse"},
      "errors":[
        {"shape":"MalformedArnException"},
        {"shape":"OperationNotPermittedException"},
        {"shape":"ResourceShareInvitationArnNotFoundException"},
        {"shape":"ResourceShareInvitationAlreadyAcceptedException"},
        {"shape":"ResourceShareInvitationAlreadyRejectedException"},
        {"shape":"ResourceShareInvitationExpiredException"},
        {"shape":"ServerInternalException"},
        {"shape":"ServiceUnavailableException"}
      ],
      "documentation":"<p>Rejects an invitation to a resource share from another AWS account.</p>"
    },
    "TagResource":{
      "name":"TagResource",
      "http":{
        "method":"POST",
        "requestUri":"/tagresource"
      },
      "input":{"shape":"TagResourceRequest"},
      "output":{"shape":"TagResourceResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"MalformedArnException"},
        {"shape":"TagLimitExceededException"},
        {"shape":"ResourceArnNotFoundException"},
        {"shape":"ServerInternalException"},
        {"shape":"ServiceUnavailableException"}
      ],
      "documentation":"<p>Adds the specified tags to the specified resource share.</p>"
    },
    "UntagResource":{
      "name":"UntagResource",
      "http":{
        "method":"POST",
        "requestUri":"/untagresource"
      },
      "input":{"shape":"UntagResourceRequest"},
      "output":{"shape":"UntagResourceResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"ServerInternalException"},
        {"shape":"ServiceUnavailableException"}
      ],
      "documentation":"<p>Removes the specified tags from the specified resource share.</p>"
    },
    "UpdateResourceShare":{
      "name":"UpdateResourceShare",
      "http":{
        "method":"POST",
        "requestUri":"/updateresourceshare"
      },
      "input":{"shape":"UpdateResourceShareRequest"},
      "output":{"shape":"UpdateResourceShareResponse"},
      "errors":[
        {"shape":"IdempotentParameterMismatchException"},
        {"shape":"MissingRequiredParameterException"},
        {"shape":"UnknownResourceException"},
        {"shape":"MalformedArnException"},
        {"shape":"InvalidClientTokenException"},
        {"shape":"InvalidParameterException"},
        {"shape":"OperationNotPermittedException"},
        {"shape":"ServerInternalException"},
        {"shape":"ServiceUnavailableException"}
      ],
      "documentation":"<p>Updates the specified resource share.</p>"
    }
  },
  "shapes":{
    "AcceptResourceShareInvitationRequest":{
      "type":"structure",
      "required":["resourceShareInvitationArn"],
      "members":{
        "resourceShareInvitationArn":{
          "shape":"String",
          "documentation":"<p>The Amazon Resource Name (ARN) of the invitation.</p>"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.</p>"
        }
      }
    },
    "AcceptResourceShareInvitationResponse":{
      "type":"structure",
      "members":{
        "resourceShareInvitation":{
          "shape":"ResourceShareInvitation",
          "documentation":"<p>Information about the invitation.</p>"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.</p>"
        }
      }
    },
    "AssociateResourceShareRequest":{
      "type":"structure",
      "required":["resourceShareArn"],
      "members":{
        "resourceShareArn":{
          "shape":"String",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource share.</p>"
        },
        "resourceArns":{
          "shape":"ResourceArnList",
          "documentation":"<p>The Amazon Resource Names (ARN) of the resources.</p>"
        },
        "principals":{
          "shape":"PrincipalArnOrIdList",
          "documentation":"<p>The principals.</p>"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.</p>"
        }
      }
    },
    "AssociateResourceShareResponse":{
      "type":"structure",
      "members":{
        "resourceShareAssociations":{
          "shape":"ResourceShareAssociationList",
          "documentation":"<p>Information about the associations.</p>"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.</p>"
        }
      }
    },
    "Boolean":{"type":"boolean"},
    "CreateResourceShareRequest":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"String",
          "documentation":"<p>The name of the resource share.</p>"
        },
        "resourceArns":{
          "shape":"ResourceArnList",
          "documentation":"<p>The Amazon Resource Names (ARN) of the resources to associate with the resource share.</p>"
        },
        "principals":{
          "shape":"PrincipalArnOrIdList",
          "documentation":"<p>The principals to associate with the resource share. The possible values are IDs of AWS accounts, the ARN of an OU or organization from AWS Organizations.</p>"
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>One or more tags.</p>"
        },
        "allowExternalPrincipals":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether principals outside your organization can be associated with a resource share.</p>"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.</p>"
        }
      }
    },
    "CreateResourceShareResponse":{
      "type":"structure",
      "members":{
        "resourceShare":{
          "shape":"ResourceShare",
          "documentation":"<p>Information about the resource share.</p>"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.</p>"
        }
      }
    },
    "DateTime":{"type":"timestamp"},
    "DeleteResourceShareRequest":{
      "type":"structure",
      "required":["resourceShareArn"],
      "members":{
        "resourceShareArn":{
          "shape":"String",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource share.</p>",
          "location":"querystring",
          "locationName":"resourceShareArn"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.</p>",
          "location":"querystring",
          "locationName":"clientToken"
        }
      }
    },
    "DeleteResourceShareResponse":{
      "type":"structure",
      "members":{
        "returnValue":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether the request succeeded.</p>"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.</p>"
        }
      }
    },
    "DisassociateResourceShareRequest":{
      "type":"structure",
      "required":["resourceShareArn"],
      "members":{
        "resourceShareArn":{
          "shape":"String",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource share.</p>"
        },
        "resourceArns":{
          "shape":"ResourceArnList",
          "documentation":"<p>The Amazon Resource Names (ARN) of the resources.</p>"
        },
        "principals":{
          "shape":"PrincipalArnOrIdList",
          "documentation":"<p>The principals.</p>"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.</p>"
        }
      }
    },
    "DisassociateResourceShareResponse":{
      "type":"structure",
      "members":{
        "resourceShareAssociations":{
          "shape":"ResourceShareAssociationList",
          "documentation":"<p>Information about the associations.</p>"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.</p>"
        }
      }
    },
    "EnableSharingWithAwsOrganizationRequest":{
      "type":"structure",
      "members":{
      }
    },
    "EnableSharingWithAwsOrganizationResponse":{
      "type":"structure",
      "members":{
        "returnValue":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether the request succeeded.</p>"
        }
      }
    },
    "GetResourcePoliciesRequest":{
      "type":"structure",
      "required":["resourceArns"],
      "members":{
        "resourceArns":{
          "shape":"ResourceArnList",
          "documentation":"<p>The Amazon Resource Names (ARN) of the resources.</p>"
        },
        "principal":{
          "shape":"String",
          "documentation":"<p>The principal.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>The token for the next page of results.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
        }
      }
    },
    "GetResourcePoliciesResponse":{
      "type":"structure",
      "members":{
        "policies":{
          "shape":"PolicyList",
          "documentation":"<p>A key policy document, in JSON format.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.</p>"
        }
      }
    },
    "GetResourceShareAssociationsRequest":{
      "type":"structure",
      "required":["associationType"],
      "members":{
        "associationType":{
          "shape":"ResourceShareAssociationType",
          "documentation":"<p>The association type.</p>"
        },
        "resourceShareArns":{
          "shape":"ResourceShareArnList",
          "documentation":"<p>The Amazon Resource Names (ARN) of the resource shares.</p>"
        },
        "resourceArn":{
          "shape":"String",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource.</p>"
        },
        "principal":{
          "shape":"String",
          "documentation":"<p>The principal.</p>"
        },
        "associationStatus":{
          "shape":"ResourceShareAssociationStatus",
          "documentation":"<p>The status of the association.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>The token for the next page of results.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
        }
      }
    },
    "GetResourceShareAssociationsResponse":{
      "type":"structure",
      "members":{
        "resourceShareAssociations":{
          "shape":"ResourceShareAssociationList",
          "documentation":"<p>Information about the association.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.</p>"
        }
      }
    },
    "GetResourceShareInvitationsRequest":{
      "type":"structure",
      "members":{
        "resourceShareInvitationArns":{
          "shape":"ResourceShareInvitationArnList",
          "documentation":"<p>The Amazon Resource Names (ARN) of the invitations.</p>"
        },
        "resourceShareArns":{
          "shape":"ResourceShareArnList",
          "documentation":"<p>The Amazon Resource Names (ARN) of the resource shares.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>The token for the next page of results.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
        }
      }
    },
    "GetResourceShareInvitationsResponse":{
      "type":"structure",
      "members":{
        "resourceShareInvitations":{
          "shape":"ResourceShareInvitationList",
          "documentation":"<p>Information about the invitations.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.</p>"
        }
      }
    },
    "GetResourceSharesRequest":{
      "type":"structure",
      "required":["resourceOwner"],
      "members":{
        "resourceShareArns":{
          "shape":"ResourceShareArnList",
          "documentation":"<p>The Amazon Resource Names (ARN) of the resource shares.</p>"
        },
        "resourceShareStatus":{
          "shape":"ResourceShareStatus",
          "documentation":"<p>The status of the resource share.</p>"
        },
        "resourceOwner":{
          "shape":"ResourceOwner",
          "documentation":"<p>The type of owner.</p>"
        },
        "name":{
          "shape":"String",
          "documentation":"<p>The name of the resource share.</p>"
        },
        "tagFilters":{
          "shape":"TagFilters",
          "documentation":"<p>One or more tag filters.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>The token for the next page of results.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
        }
      }
    },
    "GetResourceSharesResponse":{
      "type":"structure",
      "members":{
        "resourceShares":{
          "shape":"ResourceShareList",
          "documentation":"<p>Information about the resource shares.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.</p>"
        }
      }
    },
    "IdempotentParameterMismatchException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>A client token input parameter was reused with an operation, but at least one of the other input parameters is different from the previous call to the operation.</p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "InvalidClientTokenException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>A client token is not valid.</p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "InvalidMaxResultsException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The specified value for MaxResults is not valid.</p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "InvalidNextTokenException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The specified value for NextToken is not valid.</p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "InvalidParameterException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>A parameter is not valid.</p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "InvalidResourceTypeException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The specified resource type is not valid.</p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "InvalidStateTransitionException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The requested state transition is not valid.</p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "ListPrincipalsRequest":{
      "type":"structure",
      "required":["resourceOwner"],
      "members":{
        "resourceOwner":{
          "shape":"ResourceOwner",
          "documentation":"<p>The type of owner.</p>"
        },
        "resourceArn":{
          "shape":"String",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource.</p>"
        },
        "principals":{
          "shape":"PrincipalArnOrIdList",
          "documentation":"<p>The principals.</p>"
        },
        "resourceType":{
          "shape":"String",
          "documentation":"<p>The resource type.</p>"
        },
        "resourceShareArns":{
          "shape":"ResourceShareArnList",
          "documentation":"<p>The Amazon Resource Names (ARN) of the resource shares.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>The token for the next page of results.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
        }
      }
    },
    "ListPrincipalsResponse":{
      "type":"structure",
      "members":{
        "principals":{
          "shape":"PrincipalList",
          "documentation":"<p>The principals.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.</p>"
        }
      }
    },
    "ListResourcesRequest":{
      "type":"structure",
      "required":["resourceOwner"],
      "members":{
        "resourceOwner":{
          "shape":"ResourceOwner",
          "documentation":"<p>The type of owner.</p>"
        },
        "principal":{
          "shape":"String",
          "documentation":"<p>The principal.</p>"
        },
        "resourceType":{
          "shape":"String",
          "documentation":"<p>The resource type.</p>"
        },
        "resourceArns":{
          "shape":"ResourceArnList",
          "documentation":"<p>The Amazon Resource Names (ARN) of the resources.</p>"
        },
        "resourceShareArns":{
          "shape":"ResourceShareArnList",
          "documentation":"<p>The Amazon Resource Names (ARN) of the resource shares.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>The token for the next page of results.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned <code>nextToken</code> value.</p>"
        }
      }
    },
    "ListResourcesResponse":{
      "type":"structure",
      "members":{
        "resources":{
          "shape":"ResourceList",
          "documentation":"<p>Information about the resources.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>The token to use to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.</p>"
        }
      }
    },
    "MalformedArnException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The format of an Amazon Resource Name (ARN) is not valid.</p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "MaxResults":{
      "type":"integer",
      "max":500,
      "min":1
    },
    "MissingRequiredParameterException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>A required input parameter is missing.</p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "OperationNotPermittedException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The requested operation is not permitted.</p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "Policy":{"type":"string"},
    "PolicyList":{
      "type":"list",
      "member":{"shape":"Policy"}
    },
    "Principal":{
      "type":"structure",
      "members":{
        "id":{
          "shape":"String",
          "documentation":"<p>The ID of the principal.</p>"
        },
        "resourceShareArn":{
          "shape":"String",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource share.</p>"
        },
        "creationTime":{
          "shape":"DateTime",
          "documentation":"<p>The time when the principal was associated with the resource share.</p>"
        },
        "lastUpdatedTime":{
          "shape":"DateTime",
          "documentation":"<p>The time when the association was last updated.</p>"
        },
        "external":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether the principal belongs to the same organization as the AWS account that owns the resource share.</p>"
        }
      },
      "documentation":"<p>Describes a principal for use with AWS Resource Access Manager.</p>"
    },
    "PrincipalArnOrIdList":{
      "type":"list",
      "member":{"shape":"String"}
    },
    "PrincipalList":{
      "type":"list",
      "member":{"shape":"Principal"}
    },
    "RejectResourceShareInvitationRequest":{
      "type":"structure",
      "required":["resourceShareInvitationArn"],
      "members":{
        "resourceShareInvitationArn":{
          "shape":"String",
          "documentation":"<p>The Amazon Resource Name (ARN) of the invitation.</p>"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.</p>"
        }
      }
    },
    "RejectResourceShareInvitationResponse":{
      "type":"structure",
      "members":{
        "resourceShareInvitation":{
          "shape":"ResourceShareInvitation",
          "documentation":"<p>Information about the invitation.</p>"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.</p>"
        }
      }
    },
    "Resource":{
      "type":"structure",
      "members":{
        "arn":{
          "shape":"String",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource.</p>"
        },
        "type":{
          "shape":"String",
          "documentation":"<p>The resource type.</p>"
        },
        "resourceShareArn":{
          "shape":"String",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource share.</p>"
        },
        "status":{
          "shape":"ResourceStatus",
          "documentation":"<p>The status of the resource.</p>"
        },
        "statusMessage":{
          "shape":"String",
          "documentation":"<p>A message about the status of the resource.</p>"
        },
        "creationTime":{
          "shape":"DateTime",
          "documentation":"<p>The time when the resource was associated with the resource share.</p>"
        },
        "lastUpdatedTime":{
          "shape":"DateTime",
          "documentation":"<p>The time when the association was last updated.</p>"
        }
      },
      "documentation":"<p>Describes a resource associated with a resource share.</p>"
    },
    "ResourceArnList":{
      "type":"list",
      "member":{"shape":"String"}
    },
    "ResourceArnNotFoundException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>An Amazon Resource Name (ARN) was not found.</p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "ResourceList":{
      "type":"list",
      "member":{"shape":"Resource"}
    },
    "ResourceOwner":{
      "type":"string",
      "enum":[
        "SELF",
        "OTHER-ACCOUNTS"
      ]
    },
    "ResourceShare":{
      "type":"structure",
      "members":{
        "resourceShareArn":{
          "shape":"String",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource share.</p>"
        },
        "name":{
          "shape":"String",
          "documentation":"<p>The name of the resource share.</p>"
        },
        "owningAccountId":{
          "shape":"String",
          "documentation":"<p>The ID of the AWS account that owns the resource share.</p>"
        },
        "allowExternalPrincipals":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether principals outside your organization can be associated with a resource share.</p>"
        },
        "status":{
          "shape":"ResourceShareStatus",
          "documentation":"<p>The status of the resource share.</p>"
        },
        "statusMessage":{
          "shape":"String",
          "documentation":"<p>A message about the status of the resource share.</p>"
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>The tags for the resource share.</p>"
        },
        "creationTime":{
          "shape":"DateTime",
          "documentation":"<p>The time when the resource share was created.</p>"
        },
        "lastUpdatedTime":{
          "shape":"DateTime",
          "documentation":"<p>The time when the resource share was last updated.</p>"
        }
      },
      "documentation":"<p>Describes a resource share.</p>"
    },
    "ResourceShareArnList":{
      "type":"list",
      "member":{"shape":"String"}
    },
    "ResourceShareAssociation":{
      "type":"structure",
      "members":{
        "resourceShareArn":{
          "shape":"String",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource share.</p>"
        },
        "associatedEntity":{
          "shape":"String",
          "documentation":"<p>The associated entity. For resource associations, this is the ARN of the resource. For principal associations, this is the ID of an AWS account or the ARN of an OU or organization from AWS Organizations.</p>"
        },
        "associationType":{
          "shape":"ResourceShareAssociationType",
          "documentation":"<p>The association type.</p>"
        },
        "status":{
          "shape":"ResourceShareAssociationStatus",
          "documentation":"<p>The status of the association.</p>"
        },
        "statusMessage":{
          "shape":"String",
          "documentation":"<p>A message about the status of the association.</p>"
        },
        "creationTime":{
          "shape":"DateTime",
          "documentation":"<p>The time when the association was created.</p>"
        },
        "lastUpdatedTime":{
          "shape":"DateTime",
          "documentation":"<p>The time when the association was last updated.</p>"
        },
        "external":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether the principal belongs to the same organization as the AWS account that owns the resource share.</p>"
        }
      },
      "documentation":"<p>Describes an association with a resource share.</p>"
    },
    "ResourceShareAssociationList":{
      "type":"list",
      "member":{"shape":"ResourceShareAssociation"}
    },
    "ResourceShareAssociationStatus":{
      "type":"string",
      "enum":[
        "ASSOCIATING",
        "ASSOCIATED",
        "FAILED",
        "DISASSOCIATING",
        "DISASSOCIATED"
      ]
    },
    "ResourceShareAssociationType":{
      "type":"string",
      "enum":[
        "PRINCIPAL",
        "RESOURCE"
      ]
    },
    "ResourceShareInvitation":{
      "type":"structure",
      "members":{
        "resourceShareInvitationArn":{
          "shape":"String",
          "documentation":"<p>The Amazon Resource Name (ARN) of the invitation.</p>"
        },
        "resourceShareName":{
          "shape":"String",
          "documentation":"<p>The name of the resource share.</p>"
        },
        "resourceShareArn":{
          "shape":"String",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource share.</p>"
        },
        "senderAccountId":{
          "shape":"String",
          "documentation":"<p>The ID of the AWS account that sent the invitation.</p>"
        },
        "receiverAccountId":{
          "shape":"String",
          "documentation":"<p>The ID of the AWS account that received the invitation.</p>"
        },
        "invitationTimestamp":{
          "shape":"DateTime",
          "documentation":"<p>The date and time when the invitation was sent.</p>"
        },
        "status":{
          "shape":"ResourceShareInvitationStatus",
          "documentation":"<p>The status of the invitation.</p>"
        },
        "resourceShareAssociations":{
          "shape":"ResourceShareAssociationList",
          "documentation":"<p>The resources associated with the resource share.</p>"
        }
      },
      "documentation":"<p>Describes an invitation to join a resource share.</p>"
    },
    "ResourceShareInvitationAlreadyAcceptedException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The invitation was already accepted.</p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "ResourceShareInvitationAlreadyRejectedException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The invitation was already rejected.</p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "ResourceShareInvitationArnList":{
      "type":"list",
      "member":{"shape":"String"}
    },
    "ResourceShareInvitationArnNotFoundException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The Amazon Resource Name (ARN) for an invitation was not found.</p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "ResourceShareInvitationExpiredException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The invitation is expired.</p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "ResourceShareInvitationList":{
      "type":"list",
      "member":{"shape":"ResourceShareInvitation"}
    },
    "ResourceShareInvitationStatus":{
      "type":"string",
      "enum":[
        "PENDING",
        "ACCEPTED",
        "REJECTED",
        "EXPIRED"
      ]
    },
    "ResourceShareLimitExceededException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The requested resource share exceeds the limit for your account.</p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "ResourceShareList":{
      "type":"list",
      "member":{"shape":"ResourceShare"}
    },
    "ResourceShareStatus":{
      "type":"string",
      "enum":[
        "PENDING",
        "ACTIVE",
        "FAILED",
        "DELETING",
        "DELETED"
      ]
    },
    "ResourceStatus":{
      "type":"string",
      "enum":[
        "AVAILABLE",
        "ZONAL_RESOURCE_INACCESSIBLE",
        "LIMIT_EXCEEDED",
        "UNAVAILABLE"
      ]
    },
    "ServerInternalException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The service could not respond to the request due to an internal problem.</p>",
      "error":{"httpStatusCode":500},
      "exception":true
    },
    "ServiceUnavailableException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The service is not available.</p>",
      "error":{"httpStatusCode":503},
      "exception":true
    },
    "String":{"type":"string"},
    "Tag":{
      "type":"structure",
      "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>Information about a tag.</p>"
    },
    "TagFilter":{
      "type":"structure",
      "members":{
        "tagKey":{
          "shape":"TagKey",
          "documentation":"<p>The tag key.</p>"
        },
        "tagValues":{
          "shape":"TagValueList",
          "documentation":"<p>The tag values.</p>"
        }
      },
      "documentation":"<p>Used to filter information based on tags.</p>"
    },
    "TagFilters":{
      "type":"list",
      "member":{"shape":"TagFilter"}
    },
    "TagKey":{"type":"string"},
    "TagKeyList":{
      "type":"list",
      "member":{"shape":"TagKey"}
    },
    "TagLimitExceededException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The requested tags exceed the limit for your account.</p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "TagList":{
      "type":"list",
      "member":{"shape":"Tag"}
    },
    "TagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceShareArn",
        "tags"
      ],
      "members":{
        "resourceShareArn":{
          "shape":"String",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource share.</p>"
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>One or more tags.</p>"
        }
      }
    },
    "TagResourceResponse":{
      "type":"structure",
      "members":{
      }
    },
    "TagValue":{"type":"string"},
    "TagValueList":{
      "type":"list",
      "member":{"shape":"TagValue"}
    },
    "UnknownResourceException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>A specified resource was not found.</p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "UntagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceShareArn",
        "tagKeys"
      ],
      "members":{
        "resourceShareArn":{
          "shape":"String",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource share.</p>"
        },
        "tagKeys":{
          "shape":"TagKeyList",
          "documentation":"<p>The tag keys of the tags to remove.</p>"
        }
      }
    },
    "UntagResourceResponse":{
      "type":"structure",
      "members":{
      }
    },
    "UpdateResourceShareRequest":{
      "type":"structure",
      "required":["resourceShareArn"],
      "members":{
        "resourceShareArn":{
          "shape":"String",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource share.</p>"
        },
        "name":{
          "shape":"String",
          "documentation":"<p>The name of the resource share.</p>"
        },
        "allowExternalPrincipals":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether principals outside your organization can be associated with a resource share.</p>"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.</p>"
        }
      }
    },
    "UpdateResourceShareResponse":{
      "type":"structure",
      "members":{
        "resourceShare":{
          "shape":"ResourceShare",
          "documentation":"<p>Information about the resource share.</p>"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.</p>"
        }
      }
    }
  },
  "documentation":"<p>Use AWS Resource Access Manager to share AWS resources between AWS accounts. To share a resource, you create a resource share, associate the resource with the resource share, and specify the principals that can access the resource. The following principals are supported:</p> <ul> <li> <p>The ID of an AWS account</p> </li> <li> <p>The Amazon Resource Name (ARN) of an OU from AWS Organizations</p> </li> <li> <p>The Amazon Resource Name (ARN) of an organization from AWS Organizations</p> </li> </ul> <p>If you specify an AWS account that doesn't exist in the same organization as the account that owns the resource share, the owner of the specified account receives an invitation to accept the resource share. After the owner accepts the invitation, they can access the resources in the resource share. An administrator of the specified account can use IAM policies to restrict access resources in the resource share.</p>"
}
