{
  "version": "2.0",
  "service": "<p> With Amazon Route 53 Profiles you can share Route 53 configurations with VPCs and AWS accounts </p>",
  "operations": {
    "AssociateProfile": "<p> Associates a Route 53 Profiles profile with a VPC. A VPC can have only one Profile associated with it, but a Profile can be associated with 1000 of VPCs (and you can request a higher quota). For more information, see <a href=\"https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-entities\">https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-entities</a>. </p>",
    "AssociateResourceToProfile": "<p> Associates a DNS reource configuration to a Route 53 Profile. </p>",
    "CreateProfile": "<p> Creates an empty Route 53 Profile. </p>",
    "DeleteProfile": "<p> Deletes the specified Route 53 Profile. Before you can delete a profile, you must first disassociate it from all VPCs. </p>",
    "DisassociateProfile": "<p> Dissociates a specified Route 53 Profile from the specified VPC. </p>",
    "DisassociateResourceFromProfile": "<p> Dissoaciated a specified resource, from the Route 53 Profile. </p>",
    "GetProfile": "<p> Returns information about a specified Route 53 Profile, such as whether whether the Profile is shared, and the current status of the Profile. </p>",
    "GetProfileAssociation": "<p> Retrieves a Route 53 Profile association for a VPC. A VPC can have only one Profile association, but a Profile can be associated with up to 5000 VPCs. </p>",
    "GetProfileResourceAssociation": "<p> Returns information about a specified Route 53 Profile resource association. </p>",
    "ListProfileAssociations": "<p> Lists all the VPCs that the specified Route 53 Profile is associated with. </p>",
    "ListProfileResourceAssociations": "<p> Lists all the resource associations for the specified Route 53 Profile. </p>",
    "ListProfiles": "<p> Lists all the Route 53 Profiles associated with your Amazon Web Services account. </p>",
    "ListTagsForResource": "<p> Lists the tags that you associated with the specified resource. </p>",
    "TagResource": "<p> Adds one or more tags to a specified resource. </p>",
    "UntagResource": "<p> Removes one or more tags from a specified resource. </p>",
    "UpdateProfileResourceAssociation": "<p> Updates the specified Route 53 Profile resourse association. </p>"
  },
  "shapes": {
    "AccessDeniedException": {
      "base": "<p> The current account doesn't have the IAM permissions required to perform the specified operation. </p>",
      "refs": {
      }
    },
    "AccountId": {
      "base": null,
      "refs": {
        "Profile$OwnerId": "<p> Amazon Web Services account ID of the Profile owner. </p>",
        "ProfileAssociation$OwnerId": "<p> Amazon Web Services account ID of the Profile association owner. </p>",
        "ProfileResourceAssociation$OwnerId": "<p> Amazon Web Services account ID of the Profile resource association owner. </p>"
      }
    },
    "Arn": {
      "base": null,
      "refs": {
        "AssociateResourceToProfileRequest$ResourceArn": "<p> Amazon resource number, ARN, of the DNS resource. </p>",
        "DisassociateResourceFromProfileRequest$ResourceArn": "<p>The Amazon Resource Name (ARN) of the resource. </p>",
        "ListTagsForResourceRequest$ResourceArn": "<p> The Amazon Resource Name (ARN) for the resource that you want to list the tags for. </p>",
        "Profile$Arn": "<p> The Amazon Resource Name (ARN) of the Profile. </p>",
        "ProfileResourceAssociation$ResourceArn": "<p> The Amazon Resource Name (ARN) of the resource association. </p>",
        "ProfileSummary$Arn": "<p> The Amazon Resource Name (ARN) of the Profile. </p>",
        "TagResourceRequest$ResourceArn": "<p> The Amazon Resource Name (ARN) for the resource that you want to add tags to. </p>",
        "UntagResourceRequest$ResourceArn": "<p> The Amazon Resource Name (ARN) for the resource that you want to remove tags from. </p>"
      }
    },
    "AssociateProfileRequest": {
      "base": null,
      "refs": {
      }
    },
    "AssociateProfileResponse": {
      "base": null,
      "refs": {
      }
    },
    "AssociateResourceToProfileRequest": {
      "base": null,
      "refs": {
      }
    },
    "AssociateResourceToProfileResponse": {
      "base": null,
      "refs": {
      }
    },
    "ConflictException": {
      "base": "<p> The request you submitted conflicts with an existing request. </p>",
      "refs": {
      }
    },
    "CreateProfileRequest": {
      "base": null,
      "refs": {
      }
    },
    "CreateProfileResponse": {
      "base": null,
      "refs": {
      }
    },
    "CreatorRequestId": {
      "base": null,
      "refs": {
        "CreateProfileRequest$ClientToken": "<p> <code>ClientToken</code> is an idempotency token that ensures a call to <code>CreateProfile</code> completes only once. You choose the value to pass. For example, an issue might prevent you from getting a response from <code>CreateProfile</code>. In this case, safely retry your call to <code>CreateProfile</code> by using the same <code>CreateProfile</code> parameter value. </p>",
        "Profile$ClientToken": "<p> The <code>ClientToken</code> value that was assigned when the Profile was created. </p>"
      }
    },
    "DeleteProfileRequest": {
      "base": null,
      "refs": {
      }
    },
    "DeleteProfileResponse": {
      "base": null,
      "refs": {
      }
    },
    "DisassociateProfileRequest": {
      "base": null,
      "refs": {
      }
    },
    "DisassociateProfileResponse": {
      "base": null,
      "refs": {
      }
    },
    "DisassociateResourceFromProfileRequest": {
      "base": null,
      "refs": {
      }
    },
    "DisassociateResourceFromProfileResponse": {
      "base": null,
      "refs": {
      }
    },
    "ExceptionMessage": {
      "base": null,
      "refs": {
        "AccessDeniedException$Message": null,
        "ConflictException$Message": null,
        "InternalServiceErrorException$Message": null,
        "InvalidParameterException$Message": null,
        "ThrottlingException$Message": null,
        "ValidationException$Message": null
      }
    },
    "GetProfileAssociationRequest": {
      "base": null,
      "refs": {
      }
    },
    "GetProfileAssociationResponse": {
      "base": null,
      "refs": {
      }
    },
    "GetProfileRequest": {
      "base": null,
      "refs": {
      }
    },
    "GetProfileResourceAssociationRequest": {
      "base": null,
      "refs": {
      }
    },
    "GetProfileResourceAssociationResponse": {
      "base": null,
      "refs": {
      }
    },
    "GetProfileResponse": {
      "base": null,
      "refs": {
      }
    },
    "InternalServiceErrorException": {
      "base": "<p> An internal server error occured. Retry your request. </p>",
      "refs": {
      }
    },
    "InvalidNextTokenException": {
      "base": "<p> The <code>NextToken</code> you provided isn;t valid. </p>",
      "refs": {
      }
    },
    "InvalidParameterException": {
      "base": "<p> One or more parameters in this request are not valid. </p>",
      "refs": {
      }
    },
    "LimitExceededException": {
      "base": "<p> The request caused one or more limits to be exceeded. </p>",
      "refs": {
      }
    },
    "ListProfileAssociationsRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListProfileAssociationsResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListProfileResourceAssociationsRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListProfileResourceAssociationsResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListProfilesRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListProfilesResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListTagsForResourceRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListTagsForResourceResponse": {
      "base": null,
      "refs": {
      }
    },
    "MaxResults": {
      "base": null,
      "refs": {
        "ListProfileAssociationsRequest$MaxResults": "<p> The maximum number of objects that you want to return for this request. If more objects are available, in the response, a <code>NextToken</code> value, which you can use in a subsequent call to get the next batch of objects, is provided.</p> <p> If you don't specify a value for <code>MaxResults</code>, up to 100 objects are returned. </p>",
        "ListProfileResourceAssociationsRequest$MaxResults": "<p> The maximum number of objects that you want to return for this request. If more objects are available, in the response, a <code>NextToken</code> value, which you can use in a subsequent call to get the next batch of objects, is provided.</p> <p> If you don't specify a value for <code>MaxResults</code>, up to 100 objects are returned. </p>",
        "ListProfilesRequest$MaxResults": "<p> The maximum number of objects that you want to return for this request. If more objects are available, in the response, a <code>NextToken</code> value, which you can use in a subsequent call to get the next batch of objects, is provided.</p> <p> If you don't specify a value for <code>MaxResults</code>, up to 100 objects are returned. </p>"
      }
    },
    "Name": {
      "base": null,
      "refs": {
        "AssociateProfileRequest$Name": "<p> A name for the association. </p>",
        "AssociateResourceToProfileRequest$Name": "<p> Name for the resource association. </p>",
        "CreateProfileRequest$Name": "<p> A name for the Profile. </p>",
        "Profile$Name": "<p> Name of the Profile. </p>",
        "ProfileAssociation$Name": "<p> Name of the Profile association. </p>",
        "ProfileResourceAssociation$Name": "<p> Name of the Profile resource association. </p>",
        "ProfileSummary$Name": "<p> Name of the Profile. </p>",
        "UpdateProfileResourceAssociationRequest$Name": "<p> Name of the resource association. </p>"
      }
    },
    "NextToken": {
      "base": null,
      "refs": {
        "ListProfileAssociationsRequest$NextToken": "<p> For the first call to this list request, omit this value. </p> <p>When you request a list of objects, at most the number of objects specified by <code>MaxResults</code> is returned. If more objects are available for retrieval, a <code>NextToken</code> value is returned in the response. To retrieve the next batch of objects, use the token that was returned for the prior request in your next request.</p>",
        "ListProfileAssociationsResponse$NextToken": "<p> If more than <code>MaxResults</code> profile associations match the specified criteria, you can submit another <code>ListProfileAssociations</code> request to get the next group of results. In the next request, specify the value of <code>NextToken</code> from the previous response. </p>",
        "ListProfileResourceAssociationsRequest$NextToken": "<p> For the first call to this list request, omit this value. </p> <p>When you request a list of objects, at most the number of objects specified by <code>MaxResults</code> is returned. If more objects are available for retrieval, a <code>NextToken</code> value is returned in the response. To retrieve the next batch of objects, use the token that was returned for the prior request in your next request.</p>",
        "ListProfileResourceAssociationsResponse$NextToken": "<p> If more than <code>MaxResults</code> resource associations match the specified criteria, you can submit another <code>ListProfileResourceAssociations</code> request to get the next group of results. In the next request, specify the value of <code>NextToken</code> from the previous response. </p>",
        "ListProfilesRequest$NextToken": "<p> For the first call to this list request, omit this value. </p> <p>When you request a list of objects, at most the number of objects specified by <code>MaxResults</code> is returned. If more objects are available for retrieval, a <code>NextToken</code> value is returned in the response. To retrieve the next batch of objects, use the token that was returned for the prior request in your next request.</p>",
        "ListProfilesResponse$NextToken": "<p> If more than <code>MaxResults</code> resource associations match the specified criteria, you can submit another <code>ListProfiles</code> request to get the next group of results. In the next request, specify the value of <code>NextToken</code> from the previous response. </p>"
      }
    },
    "Profile": {
      "base": "<p> A complex type that includes settings for a Route 53 Profile. </p>",
      "refs": {
        "CreateProfileResponse$Profile": "<p> The Profile that you just created. </p>",
        "DeleteProfileResponse$Profile": "<p> Information about the <code>DeleteProfile</code> request, including the status of the request. </p>",
        "GetProfileResponse$Profile": "<p> Information about the Profile, including the status of the Profile. </p>"
      }
    },
    "ProfileAssociation": {
      "base": "<p> An association between a Route 53 Profile and a VPC. </p>",
      "refs": {
        "AssociateProfileResponse$ProfileAssociation": "<p> The association that you just created. The association has an ID that you can use to identify it in other requests, like update and delete. </p>",
        "DisassociateProfileResponse$ProfileAssociation": "<p> Information about the <code>DisassociateProfile</code> request. </p>",
        "GetProfileAssociationResponse$ProfileAssociation": "<p> Information about the Profile association that you specified in a <code>GetProfileAssociation</code> request. </p>",
        "ProfileAssociations$member": null
      }
    },
    "ProfileAssociations": {
      "base": null,
      "refs": {
        "ListProfileAssociationsResponse$ProfileAssociations": "<p> A complex type that containts settings information about the profile's VPC associations. </p>"
      }
    },
    "ProfileResourceAssociation": {
      "base": "<p> The association between a Route 53 Profile and resources. </p>",
      "refs": {
        "AssociateResourceToProfileResponse$ProfileResourceAssociation": "<p> Infromation about the <code>AssociateResourceToProfile</code>, including a status message. </p>",
        "DisassociateResourceFromProfileResponse$ProfileResourceAssociation": "<p> Information about the <code>DisassociateResourceFromProfile</code> request, including the status of the request. </p>",
        "GetProfileResourceAssociationResponse$ProfileResourceAssociation": "<p> Information about the Profile resource association that you specified in a <code>GetProfileResourceAssociation</code> request. </p>",
        "ProfileResourceAssociations$member": null,
        "UpdateProfileResourceAssociationResponse$ProfileResourceAssociation": "<p> Information about the <code>UpdateProfileResourceAssociation</code> request, including a status message. </p>"
      }
    },
    "ProfileResourceAssociations": {
      "base": null,
      "refs": {
        "ListProfileResourceAssociationsResponse$ProfileResourceAssociations": "<p> Information about the profile resource association that you specified in a <code>GetProfileResourceAssociation</code> request. </p>"
      }
    },
    "ProfileStatus": {
      "base": null,
      "refs": {
        "Profile$Status": "<p> The status for the Profile. </p>",
        "ProfileAssociation$Status": "<p> Status of the Profile association. </p>",
        "ProfileResourceAssociation$Status": "<p> Status of the Profile resource association. </p>"
      }
    },
    "ProfileSummary": {
      "base": "<p> Summary information about a Route 53 Profile. </p>",
      "refs": {
        "ProfileSummaryList$member": null
      }
    },
    "ProfileSummaryList": {
      "base": null,
      "refs": {
        "ListProfilesResponse$ProfileSummaries": "<p> Summary information about the Profiles. </p>"
      }
    },
    "ResourceExistsException": {
      "base": "<p> The resource you are trying to associate, has already been associated. </p>",
      "refs": {
      }
    },
    "ResourceId": {
      "base": null,
      "refs": {
        "AssociateProfileRequest$ProfileId": "<p> ID of the Profile. </p>",
        "AssociateProfileRequest$ResourceId": "<p> The ID of the VPC. </p>",
        "AssociateResourceToProfileRequest$ProfileId": "<p> ID of the Profile. </p>",
        "DeleteProfileRequest$ProfileId": "<p> The ID of the Profile that you want to delete. </p>",
        "DisassociateProfileRequest$ProfileId": "<p> ID of the Profile. </p>",
        "DisassociateProfileRequest$ResourceId": "<p> The ID of the VPC. </p>",
        "DisassociateResourceFromProfileRequest$ProfileId": "<p> The ID of the Profile. </p>",
        "GetProfileAssociationRequest$ProfileAssociationId": "<p> The identifier of the association you want to get information about. </p>",
        "GetProfileRequest$ProfileId": "<p> ID of the Profile. </p>",
        "GetProfileResourceAssociationRequest$ProfileResourceAssociationId": "<p> <p>The ID of the profile resource association that you want to get information about.</p> </p>",
        "ListProfileAssociationsRequest$ProfileId": "<p> ID of the Profile. </p>",
        "ListProfileAssociationsRequest$ResourceId": "<p> ID of the VPC. </p>",
        "ListProfileResourceAssociationsRequest$ProfileId": "<p> The ID of the Profile. </p>",
        "Profile$Id": "<p> ID of the Profile. </p>",
        "ProfileAssociation$Id": "<p> ID of the Profile association. </p>",
        "ProfileAssociation$ProfileId": "<p> ID of the Profile. </p>",
        "ProfileAssociation$ResourceId": "<p> The Amazon Resource Name (ARN) of the VPC. </p>",
        "ProfileResourceAssociation$Id": "<p> ID of the Profile resource association. </p>",
        "ProfileResourceAssociation$ProfileId": "<p> Profile ID of the Profile that the resources are associated with. </p>",
        "ProfileSummary$Id": "<p> ID of the Profile. </p>",
        "UpdateProfileResourceAssociationRequest$ProfileResourceAssociationId": "<p> ID of the resource association. </p>"
      }
    },
    "ResourceNotFoundException": {
      "base": "<p> The resource you are associating is not found. </p>",
      "refs": {
      }
    },
    "ResourceProperties": {
      "base": null,
      "refs": {
        "AssociateResourceToProfileRequest$ResourceProperties": "<p> If you are adding a DNS Firewall rule group, include also a priority. The priority indicates the processing order for the rule groups, starting with the priority assinged the lowest value. </p> <p>The allowed values for priority are between 100 and 9900.</p>",
        "ProfileResourceAssociation$ResourceProperties": "<p> If the DNS resource is a DNS Firewall rule group, this indicates the priority. </p>",
        "UpdateProfileResourceAssociationRequest$ResourceProperties": "<p> If you are adding a DNS Firewall rule group, include also a priority. The priority indicates the processing order for the rule groups, starting with the priority assinged the lowest value. </p> <p>The allowed values for priority are between 100 and 9900.</p>"
      }
    },
    "Rfc3339Timestamp": {
      "base": null,
      "refs": {
        "Profile$CreationTime": "<p> The date and time that the Profile was created, in Unix time format and Coordinated Universal Time (UTC). </p>",
        "Profile$ModificationTime": "<p> The date and time that the Profile was modified, in Unix time format and Coordinated Universal Time (UTC). </p>",
        "ProfileAssociation$CreationTime": "<p> The date and time that the Profile association was created, in Unix time format and Coordinated Universal Time (UTC). </p>",
        "ProfileAssociation$ModificationTime": "<p> The date and time that the Profile association was modified, in Unix time format and Coordinated Universal Time (UTC). </p>",
        "ProfileResourceAssociation$CreationTime": "<p> The date and time that the Profile resource association was created, in Unix time format and Coordinated Universal Time (UTC). </p>",
        "ProfileResourceAssociation$ModificationTime": "<p> The date and time that the Profile resource association was modified, in Unix time format and Coordinated Universal Time (UTC). </p>"
      }
    },
    "ShareStatus": {
      "base": null,
      "refs": {
        "Profile$ShareStatus": "<p> Sharing status for the Profile. </p>",
        "ProfileSummary$ShareStatus": "<p> Share status of the Profile. </p>"
      }
    },
    "String": {
      "base": null,
      "refs": {
        "InvalidNextTokenException$Message": null,
        "InvalidParameterException$FieldName": "<p> The parameter field name for the invalid parameter exception. </p>",
        "LimitExceededException$Message": null,
        "LimitExceededException$ResourceType": "<p> The resource type that caused the limits to be exceeded. </p>",
        "ListProfileResourceAssociationsRequest$ResourceType": "<p> ID of a resource if you want information on only one type. </p>",
        "Profile$StatusMessage": "<p> Status message that includes additiona information about the Profile. </p>",
        "ProfileAssociation$StatusMessage": "<p> Additional information about the Profile association. </p>",
        "ProfileResourceAssociation$ResourceType": "<p> Resource type, such as a private hosted zone, or DNS Firewall rule group. </p>",
        "ProfileResourceAssociation$StatusMessage": "<p> Additional information about the Profile resource association. </p>",
        "ResourceExistsException$Message": null,
        "ResourceExistsException$ResourceType": "<p> The resource type that caused the resource exists exception. </p>",
        "ResourceNotFoundException$Message": null,
        "ResourceNotFoundException$ResourceType": "<p> The resource type that caused the resource not found exception. </p>"
      }
    },
    "Tag": {
      "base": "<p> Tag for the Profile. </p>",
      "refs": {
        "TagList$member": null
      }
    },
    "TagKey": {
      "base": null,
      "refs": {
        "Tag$Key": "<p> Key associated with the <code>Tag</code>. </p>",
        "TagKeyList$member": null,
        "TagMap$key": null
      }
    },
    "TagKeyList": {
      "base": null,
      "refs": {
        "UntagResourceRequest$TagKeys": "<p> The tags that you want to remove to the specified resource. </p>"
      }
    },
    "TagList": {
      "base": null,
      "refs": {
        "AssociateProfileRequest$Tags": "<p> A list of the tag keys and values that you want to identify the Profile association. </p>",
        "CreateProfileRequest$Tags": "<p> A list of the tag keys and values that you want to associate with the Route 53 Profile. </p>"
      }
    },
    "TagMap": {
      "base": null,
      "refs": {
        "ListTagsForResourceResponse$Tags": "<p> The tags that are associated with the resource that you specified in the <code>ListTagsForResource</code> request. </p>",
        "TagResourceRequest$Tags": "<p> The tags that you want to add to the specified resource. </p>"
      }
    },
    "TagResourceRequest": {
      "base": null,
      "refs": {
      }
    },
    "TagResourceResponse": {
      "base": null,
      "refs": {
      }
    },
    "TagValue": {
      "base": null,
      "refs": {
        "Tag$Value": "<p> Value for the Tag. </p>",
        "TagMap$value": null
      }
    },
    "ThrottlingException": {
      "base": "<p> The request was throttled. Try again in a few minutes. </p>",
      "refs": {
      }
    },
    "UntagResourceRequest": {
      "base": null,
      "refs": {
      }
    },
    "UntagResourceResponse": {
      "base": null,
      "refs": {
      }
    },
    "UpdateProfileResourceAssociationRequest": {
      "base": null,
      "refs": {
      }
    },
    "UpdateProfileResourceAssociationResponse": {
      "base": null,
      "refs": {
      }
    },
    "ValidationException": {
      "base": "<p> You have provided an invalid command. </p>",
      "refs": {
      }
    }
  }
}
