{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2023-05-15",
    "auth":["aws.auth#sigv4"],
    "endpointPrefix":"rtbfabric",
    "jsonVersion":"1.1",
    "protocol":"rest-json",
    "protocols":["rest-json"],
    "serviceAbbreviation":"RTBFabric",
    "serviceFullName":"RTBFabric",
    "serviceId":"RTBFabric",
    "signatureVersion":"v4",
    "signingName":"rtbfabric",
    "uid":"rtbfabric-2023-05-15"
  },
  "operations":{
    "AcceptLink":{
      "name":"AcceptLink",
      "http":{
        "method":"POST",
        "requestUri":"/gateway/{gatewayId}/link/{linkId}/accept",
        "responseCode":200
      },
      "input":{"shape":"AcceptLinkRequest"},
      "output":{"shape":"AcceptLinkResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Accepts a link request between gateways.</p> <p>When a requester gateway requests to link with a responder gateway, the responder can use this operation to accept the link request and establish the connection.</p>",
      "idempotent":true
    },
    "AssociateCertificate":{
      "name":"AssociateCertificate",
      "http":{
        "method":"POST",
        "requestUri":"/responder-gateway/{gatewayId}/certificate",
        "responseCode":200
      },
      "input":{"shape":"AssociateCertificateRequest"},
      "output":{"shape":"AssociateCertificateResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Associates an ACM certificate with a responder gateway.</p>",
      "idempotent":true
    },
    "CreateInboundExternalLink":{
      "name":"CreateInboundExternalLink",
      "http":{
        "method":"POST",
        "requestUri":"/responder-gateway/{gatewayId}/inbound-external-link",
        "responseCode":200
      },
      "input":{"shape":"CreateInboundExternalLinkRequest"},
      "output":{"shape":"CreateInboundExternalLinkResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Creates an inbound external link.</p>",
      "idempotent":true
    },
    "CreateLink":{
      "name":"CreateLink",
      "http":{
        "method":"POST",
        "requestUri":"/gateway/{gatewayId}/create-link",
        "responseCode":200
      },
      "input":{"shape":"CreateLinkRequest"},
      "output":{"shape":"CreateLinkResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Creates a new link between gateways.</p> <p>Establishes a connection that allows gateways to communicate and exchange bid requests and responses.</p>",
      "idempotent":true
    },
    "CreateLinkRoutingRule":{
      "name":"CreateLinkRoutingRule",
      "http":{
        "method":"POST",
        "requestUri":"/responder-gateway/{gatewayId}/link/{linkId}/routing-rule",
        "responseCode":200
      },
      "input":{"shape":"CreateLinkRoutingRuleRequest"},
      "output":{"shape":"CreateLinkRoutingRuleResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Creates a routing rule for a link.</p> <p>Routing rules use priority-based evaluation where lower priority numbers are evaluated first. Each rule specifies conditions that must all match for the rule to apply.</p>",
      "idempotent":true
    },
    "CreateOutboundExternalLink":{
      "name":"CreateOutboundExternalLink",
      "http":{
        "method":"POST",
        "requestUri":"/requester-gateway/{gatewayId}/outbound-external-link",
        "responseCode":200
      },
      "input":{"shape":"CreateOutboundExternalLinkRequest"},
      "output":{"shape":"CreateOutboundExternalLinkResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Creates an outbound external link.</p>",
      "idempotent":true
    },
    "CreateRequesterGateway":{
      "name":"CreateRequesterGateway",
      "http":{
        "method":"POST",
        "requestUri":"/requester-gateway",
        "responseCode":200
      },
      "input":{"shape":"CreateRequesterGatewayRequest"},
      "output":{"shape":"CreateRequesterGatewayResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Creates a requester gateway.</p>",
      "idempotent":true
    },
    "CreateResponderGateway":{
      "name":"CreateResponderGateway",
      "http":{
        "method":"POST",
        "requestUri":"/responder-gateway",
        "responseCode":200
      },
      "input":{"shape":"CreateResponderGatewayRequest"},
      "output":{"shape":"CreateResponderGatewayResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Creates a responder gateway.</p> <important> <p>A domain name or managed endpoint is required.</p> </important>",
      "idempotent":true
    },
    "DeleteInboundExternalLink":{
      "name":"DeleteInboundExternalLink",
      "http":{
        "method":"DELETE",
        "requestUri":"/responder-gateway/{gatewayId}/inbound-external-link/{linkId}",
        "responseCode":200
      },
      "input":{"shape":"DeleteInboundExternalLinkRequest"},
      "output":{"shape":"DeleteInboundExternalLinkResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Deletes an inbound external link.</p>",
      "idempotent":true
    },
    "DeleteLink":{
      "name":"DeleteLink",
      "http":{
        "method":"DELETE",
        "requestUri":"/gateway/{gatewayId}/link/{linkId}",
        "responseCode":200
      },
      "input":{"shape":"DeleteLinkRequest"},
      "output":{"shape":"DeleteLinkResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Deletes a link between gateways.</p> <p>Permanently removes the connection between gateways. This action cannot be undone.</p>",
      "idempotent":true
    },
    "DeleteLinkRoutingRule":{
      "name":"DeleteLinkRoutingRule",
      "http":{
        "method":"DELETE",
        "requestUri":"/responder-gateway/{gatewayId}/link/{linkId}/routing-rule/{ruleId}",
        "responseCode":200
      },
      "input":{"shape":"DeleteLinkRoutingRuleRequest"},
      "output":{"shape":"DeleteLinkRoutingRuleResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Deletes a routing rule from a link.</p>",
      "idempotent":true
    },
    "DeleteOutboundExternalLink":{
      "name":"DeleteOutboundExternalLink",
      "http":{
        "method":"DELETE",
        "requestUri":"/requester-gateway/{gatewayId}/outbound-external-link/{linkId}",
        "responseCode":200
      },
      "input":{"shape":"DeleteOutboundExternalLinkRequest"},
      "output":{"shape":"DeleteOutboundExternalLinkResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Deletes an outbound external link.</p>",
      "idempotent":true
    },
    "DeleteRequesterGateway":{
      "name":"DeleteRequesterGateway",
      "http":{
        "method":"DELETE",
        "requestUri":"/requester-gateway/{gatewayId}",
        "responseCode":200
      },
      "input":{"shape":"DeleteRequesterGatewayRequest"},
      "output":{"shape":"DeleteRequesterGatewayResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Deletes a requester gateway.</p>",
      "idempotent":true
    },
    "DeleteResponderGateway":{
      "name":"DeleteResponderGateway",
      "http":{
        "method":"DELETE",
        "requestUri":"/responder-gateway/{gatewayId}",
        "responseCode":200
      },
      "input":{"shape":"DeleteResponderGatewayRequest"},
      "output":{"shape":"DeleteResponderGatewayResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Deletes a responder gateway.</p>",
      "idempotent":true
    },
    "DisassociateCertificate":{
      "name":"DisassociateCertificate",
      "http":{
        "method":"DELETE",
        "requestUri":"/responder-gateway/{gatewayId}/certificate",
        "responseCode":200
      },
      "input":{"shape":"DisassociateCertificateRequest"},
      "output":{"shape":"DisassociateCertificateResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Removes a certificate association from a responder gateway.</p>",
      "idempotent":true
    },
    "GetCertificateAssociation":{
      "name":"GetCertificateAssociation",
      "http":{
        "method":"GET",
        "requestUri":"/responder-gateway/{gatewayId}/certificate",
        "responseCode":200
      },
      "input":{"shape":"GetCertificateAssociationRequest"},
      "output":{"shape":"GetCertificateAssociationResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Retrieves the details of a certificate association with a responder gateway.</p>",
      "readonly":true
    },
    "GetInboundExternalLink":{
      "name":"GetInboundExternalLink",
      "http":{
        "method":"GET",
        "requestUri":"/responder-gateway/{gatewayId}/inbound-external-link/{linkId}",
        "responseCode":200
      },
      "input":{"shape":"GetInboundExternalLinkRequest"},
      "output":{"shape":"GetInboundExternalLinkResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Retrieves information about an inbound external link.</p>",
      "readonly":true
    },
    "GetLink":{
      "name":"GetLink",
      "http":{
        "method":"GET",
        "requestUri":"/gateway/{gatewayId}/link/{linkId}",
        "responseCode":200
      },
      "input":{"shape":"GetLinkRequest"},
      "output":{"shape":"GetLinkResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Retrieves information about a link between gateways.</p> <p>Returns detailed information about the link configuration, status, and associated gateways.</p>",
      "readonly":true
    },
    "GetLinkRoutingRule":{
      "name":"GetLinkRoutingRule",
      "http":{
        "method":"GET",
        "requestUri":"/responder-gateway/{gatewayId}/link/{linkId}/routing-rule/{ruleId}",
        "responseCode":200
      },
      "input":{"shape":"GetLinkRoutingRuleRequest"},
      "output":{"shape":"GetLinkRoutingRuleResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Retrieves the details of a routing rule for a link.</p>",
      "readonly":true
    },
    "GetOutboundExternalLink":{
      "name":"GetOutboundExternalLink",
      "http":{
        "method":"GET",
        "requestUri":"/requester-gateway/{gatewayId}/outbound-external-link/{linkId}",
        "responseCode":200
      },
      "input":{"shape":"GetOutboundExternalLinkRequest"},
      "output":{"shape":"GetOutboundExternalLinkResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Retrieves information about an outbound external link.</p>",
      "readonly":true
    },
    "GetRequesterGateway":{
      "name":"GetRequesterGateway",
      "http":{
        "method":"GET",
        "requestUri":"/requester-gateway/{gatewayId}",
        "responseCode":200
      },
      "input":{"shape":"GetRequesterGatewayRequest"},
      "output":{"shape":"GetRequesterGatewayResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Retrieves information about a requester gateway.</p>",
      "readonly":true
    },
    "GetResponderGateway":{
      "name":"GetResponderGateway",
      "http":{
        "method":"GET",
        "requestUri":"/responder-gateway/{gatewayId}",
        "responseCode":200
      },
      "input":{"shape":"GetResponderGatewayRequest"},
      "output":{"shape":"GetResponderGatewayResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Retrieves information about a responder gateway.</p>",
      "readonly":true
    },
    "ListCertificateAssociations":{
      "name":"ListCertificateAssociations",
      "http":{
        "method":"GET",
        "requestUri":"/responder-gateway/{gatewayId}/certificates",
        "responseCode":200
      },
      "input":{"shape":"ListCertificateAssociationsRequest"},
      "output":{"shape":"ListCertificateAssociationsResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Lists the certificate associations for a responder gateway.</p>",
      "readonly":true
    },
    "ListLinkRoutingRules":{
      "name":"ListLinkRoutingRules",
      "http":{
        "method":"GET",
        "requestUri":"/responder-gateway/{gatewayId}/link/{linkId}/routing-rules",
        "responseCode":200
      },
      "input":{"shape":"ListLinkRoutingRulesRequest"},
      "output":{"shape":"ListLinkRoutingRulesResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Lists the routing rules for a link.</p>",
      "readonly":true
    },
    "ListLinks":{
      "name":"ListLinks",
      "http":{
        "method":"GET",
        "requestUri":"/gateway/{gatewayId}/links/",
        "responseCode":200
      },
      "input":{"shape":"ListLinksRequest"},
      "output":{"shape":"ListLinksResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Lists links associated with gateways.</p> <p>Returns a list of all links for the specified gateways, including their status and configuration details.</p>",
      "readonly":true
    },
    "ListRequesterGateways":{
      "name":"ListRequesterGateways",
      "http":{
        "method":"GET",
        "requestUri":"/requester-gateways",
        "responseCode":200
      },
      "input":{"shape":"ListRequesterGatewaysRequest"},
      "output":{"shape":"ListRequesterGatewaysResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Lists requester gateways.</p>",
      "readonly":true
    },
    "ListResponderGateways":{
      "name":"ListResponderGateways",
      "http":{
        "method":"GET",
        "requestUri":"/responder-gateways",
        "responseCode":200
      },
      "input":{"shape":"ListResponderGatewaysRequest"},
      "output":{"shape":"ListResponderGatewaysResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Lists reponder gateways.</p>",
      "readonly":true
    },
    "ListTagsForResource":{
      "name":"ListTagsForResource",
      "http":{
        "method":"GET",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":200
      },
      "input":{"shape":"ListTagsForResourceRequest"},
      "output":{"shape":"ListTagsForResourceResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Lists tags for a resource.</p>",
      "readonly":true
    },
    "RejectLink":{
      "name":"RejectLink",
      "http":{
        "method":"POST",
        "requestUri":"/gateway/{gatewayId}/link/{linkId}/reject",
        "responseCode":200
      },
      "input":{"shape":"RejectLinkRequest"},
      "output":{"shape":"RejectLinkResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Rejects a link request between gateways.</p> <p>When a requester gateway requests to link with a responder gateway, the responder can use this operation to decline the link request.</p>",
      "idempotent":true
    },
    "TagResource":{
      "name":"TagResource",
      "http":{
        "method":"POST",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":204
      },
      "input":{"shape":"TagResourceRequest"},
      "output":{"shape":"TagResourceResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Assigns one or more tags (key-value pairs) to the specified resource.</p>",
      "idempotent":true
    },
    "UntagResource":{
      "name":"UntagResource",
      "http":{
        "method":"DELETE",
        "requestUri":"/tags/{resourceArn}",
        "responseCode":204
      },
      "input":{"shape":"UntagResourceRequest"},
      "output":{"shape":"UntagResourceResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Removes a tag or tags from a resource.</p>",
      "idempotent":true
    },
    "UpdateLink":{
      "name":"UpdateLink",
      "http":{
        "method":"PATCH",
        "requestUri":"/gateway/{gatewayId}/link/{linkId}",
        "responseCode":200
      },
      "input":{"shape":"UpdateLinkRequest"},
      "output":{"shape":"UpdateLinkResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Updates the configuration of a link between gateways.</p> <p>Allows you to modify settings and parameters for an existing link.</p>",
      "idempotent":true
    },
    "UpdateLinkModuleFlow":{
      "name":"UpdateLinkModuleFlow",
      "http":{
        "method":"POST",
        "requestUri":"/gateway/{gatewayId}/link/{linkId}/module-flow",
        "responseCode":200
      },
      "input":{"shape":"UpdateLinkModuleFlowRequest"},
      "output":{"shape":"UpdateLinkModuleFlowResponse"},
      "errors":[
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Updates a link module flow.</p>",
      "idempotent":true
    },
    "UpdateLinkRoutingRule":{
      "name":"UpdateLinkRoutingRule",
      "http":{
        "method":"PUT",
        "requestUri":"/responder-gateway/{gatewayId}/link/{linkId}/routing-rule/{ruleId}",
        "responseCode":200
      },
      "input":{"shape":"UpdateLinkRoutingRuleRequest"},
      "output":{"shape":"UpdateLinkRoutingRuleResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Updates a routing rule for a link.</p>",
      "idempotent":true
    },
    "UpdateRequesterGateway":{
      "name":"UpdateRequesterGateway",
      "http":{
        "method":"POST",
        "requestUri":"/requester-gateway/{gatewayId}/update",
        "responseCode":200
      },
      "input":{"shape":"UpdateRequesterGatewayRequest"},
      "output":{"shape":"UpdateRequesterGatewayResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Updates a requester gateway.</p>",
      "idempotent":true
    },
    "UpdateResponderGateway":{
      "name":"UpdateResponderGateway",
      "http":{
        "method":"POST",
        "requestUri":"/responder-gateway/{gatewayId}/update",
        "responseCode":200
      },
      "input":{"shape":"UpdateResponderGatewayRequest"},
      "output":{"shape":"UpdateResponderGatewayResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ThrottlingException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Updates a responder gateway.</p>",
      "idempotent":true
    }
  },
  "shapes":{
    "AcceptLinkRequest":{
      "type":"structure",
      "required":[
        "gatewayId",
        "linkId",
        "logSettings"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>",
          "location":"uri",
          "locationName":"linkId"
        },
        "attributes":{
          "shape":"LinkAttributes",
          "documentation":"<p>Attributes of the link.</p>"
        },
        "logSettings":{
          "shape":"LinkLogSettings",
          "documentation":"<p>Settings for the application logs.</p>"
        },
        "timeoutInMillis":{
          "shape":"LinkTimeoutInMillis",
          "documentation":"<p>The timeout value in milliseconds.</p>"
        }
      }
    },
    "AcceptLinkResponse":{
      "type":"structure",
      "required":[
        "gatewayId",
        "peerGatewayId",
        "status",
        "createdAt",
        "updatedAt",
        "linkId"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>"
        },
        "peerGatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the peer gateway.</p>"
        },
        "status":{
          "shape":"LinkStatus",
          "documentation":"<p>The status of the link.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the link was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the link was updated.</p>"
        },
        "direction":{
          "shape":"LinkDirection",
          "documentation":"<p>The direction of the link.</p>"
        },
        "flowModules":{
          "shape":"ModuleConfigurationList",
          "documentation":"<p>The configuration of flow modules.</p>"
        },
        "pendingFlowModules":{
          "shape":"ModuleConfigurationList",
          "documentation":"<p>The configuration of pending flow modules.</p>"
        },
        "attributes":{
          "shape":"LinkAttributes",
          "documentation":"<p>Attributes of the link.</p>"
        },
        "logSettings":{"shape":"LinkLogSettings"},
        "connectivityType":{
          "shape":"ConnectivityType",
          "documentation":"<p>The connectivity type of the link.</p>"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>"
        }
      }
    },
    "AccessDeniedException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The request could not be completed because you do not have sufficient access to perform this action.</p>",
      "error":{
        "httpStatusCode":403,
        "senderFault":true
      },
      "exception":true
    },
    "AcmCertificateArn":{
      "type":"string",
      "max":256,
      "min":75,
      "pattern":"arn:(aws|aws-cn|aws-us-gov):acm:[a-z0-9-]+:[0-9]{12}:certificate/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
    },
    "Action":{
      "type":"structure",
      "members":{
        "noBid":{
          "shape":"NoBidAction",
          "documentation":"<p>Describes a no bid action.</p>"
        },
        "headerTag":{
          "shape":"HeaderTagAction",
          "documentation":"<p>Describes the header tag for a bid action.</p>"
        }
      },
      "documentation":"<p>Describes a bid action.</p>",
      "union":true
    },
    "AssociateCertificateRequest":{
      "type":"structure",
      "required":[
        "gatewayId",
        "acmCertificateArn",
        "clientToken"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "acmCertificateArn":{
          "shape":"AcmCertificateArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the ACM certificate to associate.</p>"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>Specifies a unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a second time. Passing the same value to a later call to an operation requires that you also pass the same value for all other parameters. We recommend that you use a <a href=\"https://wikipedia.org/wiki/Universally_unique_identifier\">UUID type of value</a>.</p> <p>If you don't provide this value, then Amazon Web Services generates a random one for you.</p> <p>If you retry the operation with the same <code>ClientToken</code>, but with different parameters, the retry fails with an <code>IdempotentParameterMismatch</code> error.</p>",
          "idempotencyToken":true
        }
      }
    },
    "AssociateCertificateResponse":{
      "type":"structure",
      "required":[
        "gatewayId",
        "acmCertificateArn",
        "status"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>"
        },
        "acmCertificateArn":{
          "shape":"AcmCertificateArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the ACM certificate.</p>"
        },
        "status":{
          "shape":"CertificateAssociationStatus",
          "documentation":"<p>The status of the certificate association.</p>"
        }
      }
    },
    "AutoScalingGroupName":{
      "type":"string",
      "max":255,
      "min":1
    },
    "AutoScalingGroupNameList":{
      "type":"list",
      "member":{"shape":"AutoScalingGroupName"}
    },
    "AutoScalingGroupsConfiguration":{
      "type":"structure",
      "required":[
        "autoScalingGroupNames",
        "roleArn"
      ],
      "members":{
        "autoScalingGroupNames":{
          "shape":"AutoScalingGroupNameList",
          "documentation":"<p>The names of the auto scaling group.</p>"
        },
        "roleArn":{
          "shape":"AutoScalingGroupsConfigurationRoleArnString",
          "documentation":"<p>The role ARN of the auto scaling group.</p>"
        },
        "healthCheckConfig":{
          "shape":"HealthCheckConfig",
          "documentation":"<p>The health check configuration for the Auto Scaling group managed endpoint.</p>"
        }
      },
      "documentation":"<p>Describes the configuration of an auto scaling group.</p>"
    },
    "AutoScalingGroupsConfigurationRoleArnString":{
      "type":"string",
      "pattern":"arn:aws:iam::[0-9]{12}:role/.{1,2048}"
    },
    "Base64EncodedCertificateChain":{
      "type":"string",
      "max":2097152,
      "min":1,
      "sensitive":true
    },
    "Boolean":{
      "type":"boolean",
      "box":true
    },
    "CertificateAssociationStatus":{
      "type":"string",
      "documentation":"<p>The status of a certificate association with a gateway.</p>",
      "enum":[
        "PENDING_ASSOCIATION",
        "ASSOCIATED",
        "PENDING_DISASSOCIATION",
        "DISASSOCIATED",
        "FAILED"
      ]
    },
    "CertificateAssociationSummary":{
      "type":"structure",
      "required":[
        "acmCertificateArn",
        "status"
      ],
      "members":{
        "acmCertificateArn":{
          "shape":"AcmCertificateArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the ACM certificate.</p>"
        },
        "status":{
          "shape":"CertificateAssociationStatus",
          "documentation":"<p>The status of the certificate association.</p>"
        },
        "associatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the certificate was associated.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the certificate association was last updated.</p>"
        }
      },
      "documentation":"<p>Describes a summary of a certificate association.</p>"
    },
    "CertificateAssociationSummaryList":{
      "type":"list",
      "member":{"shape":"CertificateAssociationSummary"}
    },
    "CertificateAuthorityCertificates":{
      "type":"list",
      "member":{"shape":"Base64EncodedCertificateChain"},
      "max":2,
      "min":0
    },
    "ConflictException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The request could not be completed because of a conflict in the current state of the resource.</p>",
      "error":{
        "httpStatusCode":409,
        "senderFault":true
      },
      "exception":true
    },
    "ConnectivityType":{
      "type":"string",
      "documentation":"<p>The connectivity type for a link or gateway.</p>",
      "enum":[
        "DEFAULT",
        "PUBLIC_INGRESS",
        "PUBLIC_EGRESS",
        "EXTERNAL_INBOUND"
      ]
    },
    "CreateInboundExternalLinkRequest":{
      "type":"structure",
      "required":[
        "clientToken",
        "gatewayId",
        "logSettings"
      ],
      "members":{
        "clientToken":{
          "shape":"String",
          "documentation":"<p>The unique client token.</p>",
          "idempotencyToken":true
        },
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "attributes":{
          "shape":"LinkAttributes",
          "documentation":"<p>Attributes of the link.</p>"
        },
        "logSettings":{
          "shape":"LinkLogSettings",
          "documentation":"<p>Settings for the application logs.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of the key-value pairs of the tag or tags to assign to the resource.</p>"
        }
      }
    },
    "CreateInboundExternalLinkResponse":{
      "type":"structure",
      "required":[
        "gatewayId",
        "linkId",
        "status",
        "domainName"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>"
        },
        "status":{
          "shape":"LinkStatus",
          "documentation":"<p>The status of the request.</p>"
        },
        "domainName":{
          "shape":"DomainName",
          "documentation":"<p>The domain name.</p>"
        }
      }
    },
    "CreateLinkRequest":{
      "type":"structure",
      "required":[
        "gatewayId",
        "peerGatewayId",
        "logSettings"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "peerGatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the peer gateway.</p>"
        },
        "attributes":{
          "shape":"LinkAttributes",
          "documentation":"<p>Attributes of the link.</p>"
        },
        "httpResponderAllowed":{
          "shape":"Boolean",
          "documentation":"<p>Boolean to specify if an HTTP responder is allowed.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of the key-value pairs of the tag or tags to assign to the resource.</p>"
        },
        "logSettings":{
          "shape":"LinkLogSettings",
          "documentation":"<p>Settings for the application logs.</p>"
        },
        "timeoutInMillis":{
          "shape":"LinkTimeoutInMillis",
          "documentation":"<p>The timeout value in milliseconds.</p>"
        }
      }
    },
    "CreateLinkResponse":{
      "type":"structure",
      "required":[
        "gatewayId",
        "peerGatewayId",
        "status",
        "createdAt",
        "updatedAt",
        "linkId"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>"
        },
        "peerGatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the peer gateway.</p>"
        },
        "status":{
          "shape":"LinkStatus",
          "documentation":"<p>The status of the request.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the link was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the link was updated.</p>"
        },
        "direction":{
          "shape":"LinkDirection",
          "documentation":"<p>The direction of the link.</p>"
        },
        "flowModules":{
          "shape":"ModuleConfigurationList",
          "documentation":"<p>The configuration of flow modules.</p>"
        },
        "pendingFlowModules":{
          "shape":"ModuleConfigurationList",
          "documentation":"<p>The configuration of pending flow modules.</p>"
        },
        "attributes":{
          "shape":"LinkAttributes",
          "documentation":"<p>Attributes of the link.</p>"
        },
        "logSettings":{"shape":"LinkLogSettings"},
        "connectivityType":{
          "shape":"ConnectivityType",
          "documentation":"<p>The connectivity type of the link.</p>"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>"
        },
        "customerProvidedId":{
          "shape":"CreateLinkResponseCustomerProvidedIdString",
          "documentation":"<p>The customer-provided unique identifier of the link.</p>"
        }
      }
    },
    "CreateLinkResponseCustomerProvidedIdString":{
      "type":"string",
      "pattern":"[a-zA-Z0-9_-]{5,50}"
    },
    "CreateLinkRoutingRuleRequest":{
      "type":"structure",
      "required":[
        "clientToken",
        "gatewayId",
        "linkId",
        "priority",
        "conditions"
      ],
      "members":{
        "clientToken":{
          "shape":"String",
          "documentation":"<p>Specifies a unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a second time. Passing the same value to a later call to an operation requires that you also pass the same value for all other parameters. We recommend that you use a <a href=\"https://wikipedia.org/wiki/Universally_unique_identifier\">UUID type of value</a>.</p> <p>If you don't provide this value, then Amazon Web Services generates a random one for you.</p> <p>If you retry the operation with the same <code>ClientToken</code>, but with different parameters, the retry fails with an <code>IdempotentParameterMismatch</code> error.</p>",
          "idempotencyToken":true
        },
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>",
          "location":"uri",
          "locationName":"linkId"
        },
        "priority":{
          "shape":"RulePriority",
          "documentation":"<p>The priority of the routing rule. Lower numbers are evaluated first. Valid values are 1 to 1000. Priority must be unique among non-deleted rules within a link.</p>"
        },
        "conditions":{
          "shape":"RuleCondition",
          "documentation":"<p>The conditions for the routing rule. All specified fields must match for the rule to apply. At least one condition field must be set.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of the key-value pairs of the tag or tags to assign to the resource.</p>"
        }
      }
    },
    "CreateLinkRoutingRuleResponse":{
      "type":"structure",
      "required":[
        "ruleId",
        "status",
        "createdAt"
      ],
      "members":{
        "ruleId":{
          "shape":"RuleId",
          "documentation":"<p>The unique identifier of the routing rule.</p>"
        },
        "status":{
          "shape":"RuleStatus",
          "documentation":"<p>The status of the routing rule.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the routing rule was created.</p>"
        }
      }
    },
    "CreateOutboundExternalLinkRequest":{
      "type":"structure",
      "required":[
        "clientToken",
        "gatewayId",
        "publicEndpoint",
        "logSettings"
      ],
      "members":{
        "clientToken":{
          "shape":"String",
          "documentation":"<p>The unique client token.</p>",
          "idempotencyToken":true
        },
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "attributes":{
          "shape":"LinkAttributes",
          "documentation":"<p>Attributes of the link.</p>"
        },
        "publicEndpoint":{
          "shape":"URL",
          "documentation":"<p>The public endpoint of the link.</p>"
        },
        "logSettings":{
          "shape":"LinkLogSettings",
          "documentation":"<p>Settings for the application logs.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of the key-value pairs of the tag or tags to assign to the resource.</p>"
        }
      }
    },
    "CreateOutboundExternalLinkResponse":{
      "type":"structure",
      "required":[
        "gatewayId",
        "linkId",
        "status"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>"
        },
        "status":{
          "shape":"LinkStatus",
          "documentation":"<p>The status of the request.</p>"
        }
      }
    },
    "CreateRequesterGatewayRequest":{
      "type":"structure",
      "required":[
        "vpcId",
        "subnetIds",
        "securityGroupIds",
        "clientToken"
      ],
      "members":{
        "vpcId":{
          "shape":"VpcId",
          "documentation":"<p>The unique identifier of the Virtual Private Cloud (VPC).</p>"
        },
        "subnetIds":{
          "shape":"CreateRequesterGatewayRequestSubnetIdsList",
          "documentation":"<p>The unique identifiers of the subnets.</p>"
        },
        "securityGroupIds":{
          "shape":"CreateRequesterGatewayRequestSecurityGroupIdsList",
          "documentation":"<p>The unique identifiers of the security groups.</p>"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>The unique client token.</p>",
          "idempotencyToken":true
        },
        "description":{
          "shape":"CreateRequesterGatewayRequestDescriptionString",
          "documentation":"<p>An optional description for the requester gateway.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of the key-value pairs of the tag or tags to assign to the resource.</p>"
        }
      }
    },
    "CreateRequesterGatewayRequestDescriptionString":{
      "type":"string",
      "max":255,
      "min":0,
      "pattern":"([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)"
    },
    "CreateRequesterGatewayRequestSecurityGroupIdsList":{
      "type":"list",
      "member":{"shape":"SecurityGroupId"},
      "min":1
    },
    "CreateRequesterGatewayRequestSubnetIdsList":{
      "type":"list",
      "member":{"shape":"SubnetId"},
      "min":1
    },
    "CreateRequesterGatewayResponse":{
      "type":"structure",
      "required":[
        "gatewayId",
        "domainName",
        "status"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>"
        },
        "domainName":{
          "shape":"DomainName",
          "documentation":"<p>The domain name of the requester gateway.</p>"
        },
        "status":{
          "shape":"RequesterGatewayStatus",
          "documentation":"<p>The status of the request.</p>"
        }
      }
    },
    "CreateResponderGatewayRequest":{
      "type":"structure",
      "required":[
        "vpcId",
        "subnetIds",
        "securityGroupIds",
        "port",
        "protocol",
        "clientToken"
      ],
      "members":{
        "vpcId":{
          "shape":"VpcId",
          "documentation":"<p>The unique identifier of the Virtual Private Cloud (VPC).</p>"
        },
        "subnetIds":{
          "shape":"CreateResponderGatewayRequestSubnetIdsList",
          "documentation":"<p>The unique identifiers of the subnets.</p>"
        },
        "securityGroupIds":{
          "shape":"CreateResponderGatewayRequestSecurityGroupIdsList",
          "documentation":"<p>The unique identifiers of the security groups.</p>"
        },
        "domainName":{
          "shape":"DomainName",
          "documentation":"<p>The domain name for the responder gateway.</p>"
        },
        "port":{
          "shape":"CreateResponderGatewayRequestPortInteger",
          "documentation":"<p>The networking port to use.</p>"
        },
        "protocol":{
          "shape":"Protocol",
          "documentation":"<p>The networking protocol to use.</p>"
        },
        "listenerConfig":{"shape":"ListenerConfig"},
        "trustStoreConfiguration":{
          "shape":"TrustStoreConfiguration",
          "documentation":"<p>The configuration of the trust store.</p>"
        },
        "managedEndpointConfiguration":{
          "shape":"ManagedEndpointConfiguration",
          "documentation":"<p>The configuration for the managed endpoint.</p>"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>The unique client token.</p>",
          "idempotencyToken":true
        },
        "description":{
          "shape":"CreateResponderGatewayRequestDescriptionString",
          "documentation":"<p>An optional description for the responder gateway.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of the key-value pairs of the tag or tags to assign to the resource.</p>"
        },
        "gatewayType":{
          "shape":"GatewayType",
          "documentation":"<p>The type of gateway. Valid values are <code>EXTERNAL</code> or <code>INTERNAL</code>.</p>"
        }
      }
    },
    "CreateResponderGatewayRequestDescriptionString":{
      "type":"string",
      "max":255,
      "min":0,
      "pattern":"([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)"
    },
    "CreateResponderGatewayRequestPortInteger":{
      "type":"integer",
      "box":true,
      "max":65535,
      "min":1
    },
    "CreateResponderGatewayRequestSecurityGroupIdsList":{
      "type":"list",
      "member":{"shape":"SecurityGroupId"},
      "min":1
    },
    "CreateResponderGatewayRequestSubnetIdsList":{
      "type":"list",
      "member":{"shape":"SubnetId"},
      "min":1
    },
    "CreateResponderGatewayResponse":{
      "type":"structure",
      "required":[
        "gatewayId",
        "status"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>"
        },
        "status":{
          "shape":"ResponderGatewayStatus",
          "documentation":"<p>The status of the request.</p>"
        },
        "listenerConfig":{
          "shape":"ListenerConfig",
          "documentation":"<p>The listener configuration for the responder gateway.</p>"
        },
        "externalInboundEndpoint":{
          "shape":"DomainName",
          "documentation":"<p>The external inbound endpoint for the responder gateway.</p>"
        }
      }
    },
    "CustomerProvidedId":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"[a-zA-Z0-9_-]+"
    },
    "DeleteInboundExternalLinkRequest":{
      "type":"structure",
      "required":[
        "gatewayId",
        "linkId"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>",
          "location":"uri",
          "locationName":"linkId"
        }
      }
    },
    "DeleteInboundExternalLinkResponse":{
      "type":"structure",
      "required":[
        "linkId",
        "status"
      ],
      "members":{
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>"
        },
        "status":{
          "shape":"LinkStatus",
          "documentation":"<p>The status of the request.</p>"
        }
      }
    },
    "DeleteLinkRequest":{
      "type":"structure",
      "required":[
        "gatewayId",
        "linkId"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>",
          "location":"uri",
          "locationName":"linkId"
        }
      }
    },
    "DeleteLinkResponse":{
      "type":"structure",
      "required":[
        "linkId",
        "status"
      ],
      "members":{
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>"
        },
        "status":{
          "shape":"LinkStatus",
          "documentation":"<p>The status of the link.</p>"
        }
      }
    },
    "DeleteLinkRoutingRuleRequest":{
      "type":"structure",
      "required":[
        "gatewayId",
        "linkId",
        "ruleId"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>",
          "location":"uri",
          "locationName":"linkId"
        },
        "ruleId":{
          "shape":"RuleId",
          "documentation":"<p>The unique identifier of the routing rule.</p>",
          "location":"uri",
          "locationName":"ruleId"
        }
      }
    },
    "DeleteLinkRoutingRuleResponse":{
      "type":"structure",
      "required":[
        "ruleId",
        "status"
      ],
      "members":{
        "ruleId":{
          "shape":"RuleId",
          "documentation":"<p>The unique identifier of the routing rule.</p>"
        },
        "status":{
          "shape":"RuleStatus",
          "documentation":"<p>The status of the routing rule.</p>"
        }
      }
    },
    "DeleteOutboundExternalLinkRequest":{
      "type":"structure",
      "required":[
        "gatewayId",
        "linkId"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>",
          "location":"uri",
          "locationName":"linkId"
        }
      }
    },
    "DeleteOutboundExternalLinkResponse":{
      "type":"structure",
      "required":[
        "linkId",
        "status"
      ],
      "members":{
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>"
        },
        "status":{
          "shape":"LinkStatus",
          "documentation":"<p>The status of the request.</p>"
        }
      }
    },
    "DeleteRequesterGatewayRequest":{
      "type":"structure",
      "required":["gatewayId"],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        }
      }
    },
    "DeleteRequesterGatewayResponse":{
      "type":"structure",
      "required":[
        "gatewayId",
        "status"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>"
        },
        "status":{
          "shape":"RequesterGatewayStatus",
          "documentation":"<p>The status of the request.</p>"
        }
      }
    },
    "DeleteResponderGatewayRequest":{
      "type":"structure",
      "required":["gatewayId"],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        }
      }
    },
    "DeleteResponderGatewayResponse":{
      "type":"structure",
      "required":[
        "gatewayId",
        "status"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>"
        },
        "status":{
          "shape":"ResponderGatewayStatus",
          "documentation":"<p>The status of the request.</p>"
        }
      }
    },
    "DisassociateCertificateRequest":{
      "type":"structure",
      "required":[
        "gatewayId",
        "acmCertificateArn"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "acmCertificateArn":{
          "shape":"AcmCertificateArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the ACM certificate to disassociate.</p>",
          "location":"querystring",
          "locationName":"acmCertificateArn"
        }
      }
    },
    "DisassociateCertificateResponse":{
      "type":"structure",
      "required":[
        "gatewayId",
        "acmCertificateArn",
        "status"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>"
        },
        "acmCertificateArn":{
          "shape":"AcmCertificateArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the ACM certificate.</p>"
        },
        "status":{
          "shape":"CertificateAssociationStatus",
          "documentation":"<p>The status of the certificate association.</p>"
        }
      }
    },
    "DomainName":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)(?:\\.(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?))+"
    },
    "EksEndpointsConfiguration":{
      "type":"structure",
      "required":[
        "endpointsResourceName",
        "endpointsResourceNamespace",
        "clusterApiServerEndpointUri",
        "clusterApiServerCaCertificateChain",
        "clusterName",
        "roleArn"
      ],
      "members":{
        "endpointsResourceName":{
          "shape":"KubernetesEndpointsResourceName",
          "documentation":"<p>The name of the endpoint resource.</p>"
        },
        "endpointsResourceNamespace":{
          "shape":"KubernetesNamespace",
          "documentation":"<p>The namespace of the endpoint resource.</p>"
        },
        "clusterApiServerEndpointUri":{
          "shape":"URI",
          "documentation":"<p>The URI of the cluster API server endpoint.</p>"
        },
        "clusterApiServerCaCertificateChain":{
          "shape":"Base64EncodedCertificateChain",
          "documentation":"<p>The CA certificate chain of the cluster API server.</p>"
        },
        "clusterName":{
          "shape":"KubernetesClusterName",
          "documentation":"<p>The name of the cluster.</p>"
        },
        "roleArn":{
          "shape":"EksEndpointsConfigurationRoleArnString",
          "documentation":"<p>The role ARN for the cluster.</p>"
        }
      },
      "documentation":"<p>Describes the configuration of an Amazon Elastic Kubernetes Service endpoint.</p>"
    },
    "EksEndpointsConfigurationRoleArnString":{
      "type":"string",
      "pattern":"arn:aws:iam::[0-9]{12}:role/.{1,2048}"
    },
    "Filter":{
      "type":"structure",
      "required":["criteria"],
      "members":{
        "criteria":{
          "shape":"FilterCriteria",
          "documentation":"<p>Describes the criteria for a filter.</p>"
        }
      },
      "documentation":"<p>Describes the configuration of a filter.</p>"
    },
    "FilterConfiguration":{
      "type":"list",
      "member":{"shape":"Filter"}
    },
    "FilterCriteria":{
      "type":"list",
      "member":{"shape":"FilterCriterion"}
    },
    "FilterCriterion":{
      "type":"structure",
      "required":[
        "path",
        "values"
      ],
      "members":{
        "path":{
          "shape":"String",
          "documentation":"<p>The path to filter.</p>"
        },
        "values":{
          "shape":"FilterCriterionValuesList",
          "documentation":"<p>The value to filter.</p>"
        }
      },
      "documentation":"<p>Describes the criteria for a filter.</p>"
    },
    "FilterCriterionValuesList":{
      "type":"list",
      "member":{"shape":"String"},
      "min":1
    },
    "FilterType":{
      "type":"string",
      "enum":[
        "INCLUDE",
        "EXCLUDE"
      ]
    },
    "Float":{
      "type":"float",
      "box":true
    },
    "FlowModuleName":{
      "type":"string",
      "max":255,
      "min":0,
      "pattern":"[A-Za-z0-9 -]+"
    },
    "FlowModuleNameList":{
      "type":"list",
      "member":{"shape":"FlowModuleName"}
    },
    "GatewayId":{
      "type":"string",
      "max":32,
      "min":8,
      "pattern":"rtb-gw-[a-z0-9-]{1,25}"
    },
    "GatewayIdList":{
      "type":"list",
      "member":{"shape":"GatewayId"}
    },
    "GatewayType":{
      "type":"string",
      "documentation":"<p>The type of gateway.</p>",
      "enum":[
        "EXTERNAL",
        "INTERNAL"
      ]
    },
    "GetCertificateAssociationRequest":{
      "type":"structure",
      "required":[
        "gatewayId",
        "acmCertificateArn"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "acmCertificateArn":{
          "shape":"AcmCertificateArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the ACM certificate.</p>",
          "location":"querystring",
          "locationName":"acmCertificateArn"
        }
      }
    },
    "GetCertificateAssociationResponse":{
      "type":"structure",
      "required":[
        "gatewayId",
        "acmCertificateArn",
        "status"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>"
        },
        "acmCertificateArn":{
          "shape":"AcmCertificateArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the ACM certificate.</p>"
        },
        "status":{
          "shape":"CertificateAssociationStatus",
          "documentation":"<p>The status of the certificate association.</p>"
        },
        "associatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the certificate was associated.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the certificate association was last updated.</p>"
        }
      }
    },
    "GetInboundExternalLinkRequest":{
      "type":"structure",
      "required":[
        "gatewayId",
        "linkId"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>",
          "location":"uri",
          "locationName":"linkId"
        }
      }
    },
    "GetInboundExternalLinkResponse":{
      "type":"structure",
      "required":[
        "gatewayId",
        "linkId",
        "status",
        "domainName"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>"
        },
        "status":{
          "shape":"LinkStatus",
          "documentation":"<p>The status of the request.</p>"
        },
        "domainName":{
          "shape":"DomainName",
          "documentation":"<p>The domain name.</p>"
        },
        "flowModules":{
          "shape":"ModuleConfigurationList",
          "documentation":"<p>The configuration of flow modules.</p>"
        },
        "pendingFlowModules":{
          "shape":"ModuleConfigurationList",
          "documentation":"<p>The configuration of pending flow modules.</p>"
        },
        "attributes":{
          "shape":"LinkAttributes",
          "documentation":"<p>Attributes of the link.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the inbound external link was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the inbound external link was updated.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of the key-value pairs for the tag or tags assigned to the specified resource.</p>"
        },
        "logSettings":{
          "shape":"LinkLogSettings",
          "documentation":"<p>Settings for the application logs.</p>"
        },
        "connectivityType":{
          "shape":"ConnectivityType",
          "documentation":"<p>The connectivity type of the link.</p>"
        }
      }
    },
    "GetLinkRequest":{
      "type":"structure",
      "required":[
        "gatewayId",
        "linkId"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>",
          "location":"uri",
          "locationName":"linkId"
        }
      }
    },
    "GetLinkResponse":{
      "type":"structure",
      "required":[
        "gatewayId",
        "peerGatewayId",
        "status",
        "createdAt",
        "updatedAt",
        "linkId"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>"
        },
        "peerGatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the peer gateway.</p>"
        },
        "status":{
          "shape":"LinkStatus",
          "documentation":"<p>The status of the link.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the link was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the link was updated.</p>"
        },
        "direction":{
          "shape":"LinkDirection",
          "documentation":"<p>The direction of the link.</p>"
        },
        "flowModules":{
          "shape":"ModuleConfigurationList",
          "documentation":"<p>The configuration of flow modules.</p>"
        },
        "pendingFlowModules":{
          "shape":"ModuleConfigurationList",
          "documentation":"<p>The configuration of pending flow modules.</p>"
        },
        "attributes":{
          "shape":"LinkAttributes",
          "documentation":"<p>Attributes of the link.</p>"
        },
        "logSettings":{
          "shape":"LinkLogSettings",
          "documentation":"<p>Settings for the application logs.</p>"
        },
        "connectivityType":{
          "shape":"ConnectivityType",
          "documentation":"<p>The connectivity type of the link.</p>"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of the key-value pairs for the tag or tags assigned to the specified resource.</p>"
        },
        "httpResponderAllowed":{
          "shape":"Boolean",
          "documentation":"<p>Boolean to specify if an HTTP responder is allowed.</p>"
        },
        "timeoutInMillis":{
          "shape":"LinkTimeoutInMillis",
          "documentation":"<p>The timeout value in milliseconds.</p>"
        }
      }
    },
    "GetLinkRoutingRuleRequest":{
      "type":"structure",
      "required":[
        "gatewayId",
        "linkId",
        "ruleId"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>",
          "location":"uri",
          "locationName":"linkId"
        },
        "ruleId":{
          "shape":"RuleId",
          "documentation":"<p>The unique identifier of the routing rule.</p>",
          "location":"uri",
          "locationName":"ruleId"
        }
      }
    },
    "GetLinkRoutingRuleResponse":{
      "type":"structure",
      "required":[
        "gatewayId",
        "linkId",
        "ruleId",
        "priority",
        "conditions",
        "status",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>"
        },
        "ruleId":{
          "shape":"RuleId",
          "documentation":"<p>The unique identifier of the routing rule.</p>"
        },
        "priority":{
          "shape":"RulePriority",
          "documentation":"<p>The priority of the routing rule.</p>"
        },
        "conditions":{
          "shape":"RuleCondition",
          "documentation":"<p>The conditions for the routing rule.</p>"
        },
        "status":{
          "shape":"RuleStatus",
          "documentation":"<p>The status of the routing rule.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the routing rule was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the routing rule was last updated.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of the key-value pairs for the tag or tags assigned to the specified resource.</p>"
        }
      }
    },
    "GetOutboundExternalLinkRequest":{
      "type":"structure",
      "required":[
        "gatewayId",
        "linkId"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>",
          "location":"uri",
          "locationName":"linkId"
        }
      }
    },
    "GetOutboundExternalLinkResponse":{
      "type":"structure",
      "required":[
        "gatewayId",
        "linkId",
        "status",
        "publicEndpoint"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>"
        },
        "status":{
          "shape":"LinkStatus",
          "documentation":"<p>The status of the request.</p>"
        },
        "publicEndpoint":{
          "shape":"URL",
          "documentation":"<p>The public endpoint for the link.</p>"
        },
        "flowModules":{
          "shape":"ModuleConfigurationList",
          "documentation":"<p>The configuration of flow modules.</p>"
        },
        "pendingFlowModules":{
          "shape":"ModuleConfigurationList",
          "documentation":"<p>The configuration of pending flow modules.</p>"
        },
        "attributes":{"shape":"LinkAttributes"},
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the outbound external link was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the outbound external link was updated.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of the key-value pairs for the tag or tags assigned to the specified resource.</p>"
        },
        "logSettings":{
          "shape":"LinkLogSettings",
          "documentation":"<p>Settings for the application logs.</p>"
        },
        "connectivityType":{
          "shape":"ConnectivityType",
          "documentation":"<p>The connectivity type of the link.</p>"
        }
      }
    },
    "GetRequesterGatewayRequest":{
      "type":"structure",
      "required":["gatewayId"],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        }
      }
    },
    "GetRequesterGatewayResponse":{
      "type":"structure",
      "required":[
        "status",
        "domainName",
        "vpcId",
        "subnetIds",
        "securityGroupIds",
        "gatewayId"
      ],
      "members":{
        "status":{
          "shape":"RequesterGatewayStatus",
          "documentation":"<p>The status of the request.</p>"
        },
        "domainName":{
          "shape":"DomainName",
          "documentation":"<p>The domain name of the requester gateway.</p>"
        },
        "description":{
          "shape":"GetRequesterGatewayResponseDescriptionString",
          "documentation":"<p>The description of the requester gateway.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the requester gateway was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the requester gateway was updated.</p>"
        },
        "vpcId":{
          "shape":"VpcId",
          "documentation":"<p>The unique identifier of the Virtual Private Cloud (VPC).</p>"
        },
        "subnetIds":{
          "shape":"GetRequesterGatewayResponseSubnetIdsList",
          "documentation":"<p>The unique identifiers of the subnets.</p>"
        },
        "securityGroupIds":{
          "shape":"GetRequesterGatewayResponseSecurityGroupIdsList",
          "documentation":"<p>The unique identifiers of the security groups.</p>"
        },
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of the key-value pairs for the tag or tags assigned to the specified resource.</p>"
        },
        "activeLinksCount":{
          "shape":"Integer",
          "documentation":"<p>The count of active links for the requester gateway.</p>"
        },
        "totalLinksCount":{
          "shape":"Integer",
          "documentation":"<p>The total count of links for the requester gateway.</p>"
        }
      }
    },
    "GetRequesterGatewayResponseDescriptionString":{
      "type":"string",
      "pattern":"[A-Za-z0-9 ]+"
    },
    "GetRequesterGatewayResponseSecurityGroupIdsList":{
      "type":"list",
      "member":{"shape":"SecurityGroupId"},
      "min":1
    },
    "GetRequesterGatewayResponseSubnetIdsList":{
      "type":"list",
      "member":{"shape":"SubnetId"},
      "min":1
    },
    "GetResponderGatewayRequest":{
      "type":"structure",
      "required":["gatewayId"],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        }
      }
    },
    "GetResponderGatewayResponse":{
      "type":"structure",
      "required":[
        "vpcId",
        "subnetIds",
        "securityGroupIds",
        "status",
        "port",
        "protocol",
        "gatewayId"
      ],
      "members":{
        "vpcId":{
          "shape":"VpcId",
          "documentation":"<p>The unique identifier of the Virtual Private Cloud (VPC).</p>"
        },
        "subnetIds":{
          "shape":"GetResponderGatewayResponseSubnetIdsList",
          "documentation":"<p>The unique identifiers of the subnets.</p>"
        },
        "securityGroupIds":{
          "shape":"GetResponderGatewayResponseSecurityGroupIdsList",
          "documentation":"<p>The unique identifiers of the security groups.</p>"
        },
        "status":{
          "shape":"ResponderGatewayStatus",
          "documentation":"<p>The status of the request.</p>"
        },
        "description":{
          "shape":"GetResponderGatewayResponseDescriptionString",
          "documentation":"<p>The description of the responder gateway.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the responder gateway was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the responder gateway was updated.</p>"
        },
        "domainName":{
          "shape":"DomainName",
          "documentation":"<p>The domain name of the responder gateway.</p>"
        },
        "port":{
          "shape":"GetResponderGatewayResponsePortInteger",
          "documentation":"<p>The networking port.</p>"
        },
        "protocol":{
          "shape":"Protocol",
          "documentation":"<p>The networking protocol.</p>"
        },
        "listenerConfig":{
          "shape":"ListenerConfig",
          "documentation":"<p>The listener configuration for the responder gateway.</p>"
        },
        "trustStoreConfiguration":{
          "shape":"TrustStoreConfiguration",
          "documentation":"<p>The configuration of the trust store.</p>"
        },
        "managedEndpointConfiguration":{
          "shape":"ManagedEndpointConfiguration",
          "documentation":"<p>The configuration of the managed endpoint.</p>"
        },
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of the key-value pairs for the tag or tags assigned to the specified resource.</p>"
        },
        "activeLinksCount":{
          "shape":"Integer",
          "documentation":"<p>The count of active links for the responder gateway.</p>"
        },
        "totalLinksCount":{
          "shape":"Integer",
          "documentation":"<p>The total count of links for the responder gateway.</p>"
        },
        "inboundLinksCount":{
          "shape":"Integer",
          "documentation":"<p>Deprecated. Use 'linksRequestedCount' instead.</p>",
          "deprecated":true,
          "deprecatedMessage":"Use linksRequestedCount instead",
          "deprecatedSince":"2026-05-11"
        },
        "linksRequestedCount":{
          "shape":"Integer",
          "documentation":"<p>The count of requested links waiting for the responder gateway to accept or reject.</p>"
        },
        "gatewayType":{
          "shape":"GatewayType",
          "documentation":"<p>The type of gateway. Valid values are <code>EXTERNAL</code> or <code>INTERNAL</code>.</p>"
        },
        "externalInboundEndpoint":{
          "shape":"DomainName",
          "documentation":"<p>The external inbound endpoint for the responder gateway.</p>"
        }
      }
    },
    "GetResponderGatewayResponseDescriptionString":{
      "type":"string",
      "pattern":"[A-Za-z0-9 ]+"
    },
    "GetResponderGatewayResponsePortInteger":{
      "type":"integer",
      "box":true,
      "max":65535,
      "min":1
    },
    "GetResponderGatewayResponseSecurityGroupIdsList":{
      "type":"list",
      "member":{"shape":"SecurityGroupId"},
      "min":1
    },
    "GetResponderGatewayResponseSubnetIdsList":{
      "type":"list",
      "member":{"shape":"SubnetId"},
      "min":1
    },
    "HeaderTagAction":{
      "type":"structure",
      "required":[
        "name",
        "value"
      ],
      "members":{
        "name":{
          "shape":"String",
          "documentation":"<p>The name of the bid action.</p>"
        },
        "value":{
          "shape":"String",
          "documentation":"<p>The value of the bid action.</p>"
        }
      },
      "documentation":"<p>Describes the header tag for a bid action.</p>"
    },
    "HealthCheckConfig":{
      "type":"structure",
      "required":[
        "port",
        "path"
      ],
      "members":{
        "port":{
          "shape":"HealthCheckConfigPortInteger",
          "documentation":"<p>The port to use for health check probes. Valid range is 80 to 65535.</p>"
        },
        "path":{
          "shape":"HealthCheckConfigPathString",
          "documentation":"<p>The destination path for the health check request. Must start with <code>/</code>.</p>"
        },
        "protocol":{
          "shape":"Protocol",
          "documentation":"<p>The protocol to use for health check probes.</p>"
        },
        "timeoutMs":{
          "shape":"HealthCheckConfigTimeoutMsInteger",
          "documentation":"<p>The timeout for each health check probe, in milliseconds. Valid range is 100 to 5000.</p>"
        },
        "intervalSeconds":{
          "shape":"HealthCheckConfigIntervalSecondsInteger",
          "documentation":"<p>The interval between health check probes, in seconds. Valid range is 5 to 60.</p>"
        },
        "statusCodeMatcher":{
          "shape":"StatusCodeMatcher",
          "documentation":"<p>The expected HTTP status code or status code pattern from healthy instances. Supports a single code (for example, <code>200</code>), a range (for example, <code>200-299</code>), or a comma-separated list (for example, <code>200,204</code>).</p>"
        },
        "healthyThresholdCount":{
          "shape":"HealthCheckConfigHealthyThresholdCountInteger",
          "documentation":"<p>The number of consecutive successful health checks required before an instance is considered healthy. Valid range is 2 to 10.</p>"
        },
        "unhealthyThresholdCount":{
          "shape":"HealthCheckConfigUnhealthyThresholdCountInteger",
          "documentation":"<p>The number of consecutive failed health checks required before an instance is considered unhealthy. Valid range is 2 to 10.</p>"
        }
      },
      "documentation":"<p>The health check configuration for a managed endpoint. Defines how the service probes instances in the Auto Scaling group to determine their health status.</p>"
    },
    "HealthCheckConfigHealthyThresholdCountInteger":{
      "type":"integer",
      "box":true,
      "max":10,
      "min":2
    },
    "HealthCheckConfigIntervalSecondsInteger":{
      "type":"integer",
      "box":true,
      "max":60,
      "min":5
    },
    "HealthCheckConfigPathString":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"/.*"
    },
    "HealthCheckConfigPortInteger":{
      "type":"integer",
      "box":true,
      "max":65535,
      "min":80
    },
    "HealthCheckConfigTimeoutMsInteger":{
      "type":"integer",
      "box":true,
      "max":5000,
      "min":100
    },
    "HealthCheckConfigUnhealthyThresholdCountInteger":{
      "type":"integer",
      "box":true,
      "max":10,
      "min":2
    },
    "Integer":{
      "type":"integer",
      "box":true
    },
    "InternalServerException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The request could not be completed because of an internal server error. Try your call again.</p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true,
      "retryable":{"throttling":false}
    },
    "KubernetesClusterName":{
      "type":"string",
      "max":63,
      "min":2,
      "pattern":"[A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9]"
    },
    "KubernetesEndpointsResourceName":{
      "type":"string",
      "max":63,
      "min":2,
      "pattern":"[A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9]"
    },
    "KubernetesNamespace":{
      "type":"string",
      "max":63,
      "min":2,
      "pattern":"[A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9]"
    },
    "LinkApplicationLogConfiguration":{
      "type":"structure",
      "required":["sampling"],
      "members":{
        "sampling":{
          "shape":"LinkApplicationLogSampling",
          "documentation":"<p>Describes a link application log sample.</p>"
        }
      },
      "documentation":"<p>Describes the configuration of a link application log.</p>"
    },
    "LinkApplicationLogSampling":{
      "type":"structure",
      "required":[
        "errorLog",
        "filterLog"
      ],
      "members":{
        "errorLog":{
          "shape":"LinkApplicationLogSamplingErrorLogDouble",
          "documentation":"<p>An error log entry.</p>"
        },
        "filterLog":{
          "shape":"LinkApplicationLogSamplingFilterLogDouble",
          "documentation":"<p>A filter log entry.</p>"
        }
      },
      "documentation":"<p>Describes a link application log sample.</p>"
    },
    "LinkApplicationLogSamplingErrorLogDouble":{
      "type":"double",
      "box":true,
      "max":100.0,
      "min":0.0
    },
    "LinkApplicationLogSamplingFilterLogDouble":{
      "type":"double",
      "box":true,
      "max":100.0,
      "min":0.0
    },
    "LinkAttributes":{
      "type":"structure",
      "members":{
        "responderErrorMasking":{
          "shape":"ResponderErrorMasking",
          "documentation":"<p>Describes the masking for HTTP error codes.</p>"
        },
        "customerProvidedId":{
          "shape":"CustomerProvidedId",
          "documentation":"<p>The customer-provided unique identifier of the link.</p>"
        }
      },
      "documentation":"<p>Describes the attributes of a link.</p>"
    },
    "LinkDirection":{
      "type":"string",
      "enum":[
        "RESPONSE",
        "REQUEST"
      ]
    },
    "LinkId":{
      "type":"string",
      "max":30,
      "min":6,
      "pattern":"link-[a-z0-9-]{1,25}"
    },
    "LinkList":{
      "type":"list",
      "member":{"shape":"ListLinksResponseStructure"}
    },
    "LinkLogSettings":{
      "type":"structure",
      "required":["applicationLogs"],
      "members":{
        "applicationLogs":{
          "shape":"LinkApplicationLogConfiguration",
          "documentation":"<p>Describes the configuration of a link application log.</p>"
        }
      },
      "documentation":"<p>Describes the settings for a link log.</p>"
    },
    "LinkRoutingRuleList":{
      "type":"list",
      "member":{"shape":"LinkRoutingRuleSummary"}
    },
    "LinkRoutingRuleSummary":{
      "type":"structure",
      "required":[
        "ruleId",
        "priority",
        "conditions",
        "status",
        "createdAt",
        "updatedAt"
      ],
      "members":{
        "ruleId":{
          "shape":"RuleId",
          "documentation":"<p>The unique identifier of the routing rule.</p>"
        },
        "priority":{
          "shape":"RulePriority",
          "documentation":"<p>The priority of the routing rule.</p>"
        },
        "conditions":{
          "shape":"RuleCondition",
          "documentation":"<p>The conditions for the routing rule.</p>"
        },
        "status":{
          "shape":"RuleStatus",
          "documentation":"<p>The status of the routing rule.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the routing rule was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the routing rule was last updated.</p>"
        }
      },
      "documentation":"<p>A summary of a link routing rule.</p>"
    },
    "LinkStatus":{
      "type":"string",
      "enum":[
        "PENDING_CREATION",
        "PENDING_REQUEST",
        "REQUESTED",
        "ACCEPTED",
        "ACTIVE",
        "REJECTED",
        "FAILED",
        "PENDING_DELETION",
        "DELETED",
        "PENDING_UPDATE",
        "PENDING_ISOLATION",
        "ISOLATED",
        "PENDING_RESTORATION"
      ]
    },
    "LinkTimeoutInMillis":{
      "type":"long",
      "box":true,
      "max":5000,
      "min":100
    },
    "ListCertificateAssociationsRequest":{
      "type":"structure",
      "required":["gatewayId"],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>If <code>nextToken</code> is returned, there are more results available. The value of <code>nextToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an <i>HTTP 400 InvalidToken error</i>.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"ListCertificateAssociationsRequestMaxResultsInteger",
          "documentation":"<p>The maximum number of results that are returned per call. You can use <code>nextToken</code> to obtain further pages of results.</p> <p>This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListCertificateAssociationsRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":10,
      "min":1
    },
    "ListCertificateAssociationsResponse":{
      "type":"structure",
      "required":["certificateAssociations"],
      "members":{
        "certificateAssociations":{
          "shape":"CertificateAssociationSummaryList",
          "documentation":"<p>The list of certificate associations for the gateway.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>If <code>nextToken</code> is returned, there are more results available. The value of <code>nextToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an <i>HTTP 400 InvalidToken error</i>.</p>"
        }
      }
    },
    "ListLinkRoutingRulesRequest":{
      "type":"structure",
      "required":[
        "gatewayId",
        "linkId"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>",
          "location":"uri",
          "locationName":"linkId"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>If <code>nextToken</code> is returned, there are more results available. The value of <code>nextToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an <i>HTTP 400 InvalidToken error</i>.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"ListLinkRoutingRulesRequestMaxResultsInteger",
          "documentation":"<p>The maximum number of results that are returned per call. You can use <code>nextToken</code> to obtain further pages of results.</p> <p>This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListLinkRoutingRulesRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":10,
      "min":1
    },
    "ListLinkRoutingRulesResponse":{
      "type":"structure",
      "members":{
        "rules":{
          "shape":"LinkRoutingRuleList",
          "documentation":"<p>The list of routing rules for the link.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>If <code>nextToken</code> is returned, there are more results available. The value of <code>nextToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an <i>HTTP 400 InvalidToken error</i>.</p>"
        }
      }
    },
    "ListLinksRequest":{
      "type":"structure",
      "required":["gatewayId"],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>If <code>nextToken</code> is returned, there are more results available. The value of <code>nextToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an <i>HTTP 400 InvalidToken error</i>.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"Integer",
          "documentation":"<p>The maximum number of results that are returned per call. You can use <code>nextToken</code> to obtain further pages of results.</p> <p>This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListLinksResponse":{
      "type":"structure",
      "members":{
        "links":{
          "shape":"LinkList",
          "documentation":"<p>Information about created links.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>If <code>nextToken</code> is returned, there are more results available. The value of <code>nextToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an <i>HTTP 400 InvalidToken error</i>.</p>"
        }
      }
    },
    "ListLinksResponseStructure":{
      "type":"structure",
      "required":[
        "gatewayId",
        "peerGatewayId",
        "status",
        "createdAt",
        "updatedAt",
        "linkId"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>"
        },
        "peerGatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the peer gateway.</p>"
        },
        "status":{
          "shape":"LinkStatus",
          "documentation":"<p>The status of the link.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the link was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the link was updated.</p>"
        },
        "direction":{
          "shape":"LinkDirection",
          "documentation":"<p>The direction of the link.</p>"
        },
        "flowModules":{
          "shape":"ModuleConfigurationList",
          "documentation":"<p>Describes the configuration of flow modules.</p>"
        },
        "pendingFlowModules":{
          "shape":"ModuleConfigurationList",
          "documentation":"<p>Describes the configuration of pending flow modules.</p>"
        },
        "attributes":{
          "shape":"LinkAttributes",
          "documentation":"<p>Describes attributes of a link.</p>"
        },
        "logSettings":{"shape":"LinkLogSettings"},
        "connectivityType":{
          "shape":"ConnectivityType",
          "documentation":"<p>The connectivity type of the link.</p>"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of the key-value pairs of the tag or tags to assign to the resource.</p>"
        },
        "publicEndpoint":{
          "shape":"URL",
          "documentation":"<p>The public endpoint of the outbound link.</p>"
        }
      },
      "documentation":"<p>Describes a link.</p>"
    },
    "ListRequesterGatewaysRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"ListRequesterGatewaysRequestMaxResultsInteger",
          "documentation":"<p>The maximum number of results that are returned per call. You can use <code>nextToken</code> to obtain further pages of results.</p> <p>This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>If <code>nextToken</code> is returned, there are more results available. The value of <code>nextToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an <i>HTTP 400 InvalidToken error</i>.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListRequesterGatewaysRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":10,
      "min":1
    },
    "ListRequesterGatewaysResponse":{
      "type":"structure",
      "members":{
        "gatewayIds":{
          "shape":"GatewayIdList",
          "documentation":"<p>The unique identifier of the gateways.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>If <code>nextToken</code> is returned, there are more results available. The value of <code>nextToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an <i>HTTP 400 InvalidToken error</i>.</p>"
        }
      }
    },
    "ListResponderGatewaysRequest":{
      "type":"structure",
      "members":{
        "maxResults":{
          "shape":"ListResponderGatewaysRequestMaxResultsInteger",
          "documentation":"<p>The maximum number of results that are returned per call. You can use <code>nextToken</code> to obtain further pages of results.</p> <p>This is only an upper limit. The actual number of results returned per call might be fewer than the specified maximum.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>If <code>nextToken</code> is returned, there are more results available. The value of <code>nextToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an <i>HTTP 400 InvalidToken error</i>.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListResponderGatewaysRequestMaxResultsInteger":{
      "type":"integer",
      "box":true,
      "max":10,
      "min":1
    },
    "ListResponderGatewaysResponse":{
      "type":"structure",
      "members":{
        "gatewayIds":{
          "shape":"GatewayIdList",
          "documentation":"<p>The unique identifier of the gateways.</p>"
        },
        "nextToken":{
          "shape":"String",
          "documentation":"<p>If <code>nextToken</code> is returned, there are more results available. The value of <code>nextToken</code> is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. Keep all other arguments unchanged. Each pagination token expires after 24 hours. Using an expired pagination token will return an <i>HTTP 400 InvalidToken error</i>.</p>"
        }
      }
    },
    "ListTagsForResourceRequest":{
      "type":"structure",
      "required":["resourceArn"],
      "members":{
        "resourceArn":{
          "shape":"RtbTaggableResourceArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource for which you want to retrieve tags.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        }
      }
    },
    "ListTagsForResourceResponse":{
      "type":"structure",
      "members":{
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of the key-value pairs for the tag or tags assigned to the specified resource.</p>"
        }
      }
    },
    "ListenerConfig":{
      "type":"structure",
      "required":["protocols"],
      "members":{
        "protocols":{
          "shape":"ProtocolList",
          "documentation":"<p>The protocol for connections from clients to the gateway</p>"
        }
      },
      "documentation":"<p>Listener configuration for the protocols (HTTP, HTTPS, or both) accepted by the gateway.</p>"
    },
    "ManagedEndpointConfiguration":{
      "type":"structure",
      "members":{
        "autoScalingGroups":{
          "shape":"AutoScalingGroupsConfiguration",
          "documentation":"<p>Describes the configuration of an auto scaling group.</p>"
        },
        "eksEndpoints":{
          "shape":"EksEndpointsConfiguration",
          "documentation":"<p>Describes the configuration of an Amazon Elastic Kubernetes Service endpoint.</p>"
        }
      },
      "documentation":"<p>Describes the configuration of a managed endpoint.</p>",
      "union":true
    },
    "ModuleConfiguration":{
      "type":"structure",
      "required":["name"],
      "members":{
        "version":{
          "shape":"Version",
          "documentation":"<p>The version of the module.</p>"
        },
        "name":{
          "shape":"FlowModuleName",
          "documentation":"<p>The name of the module.</p>"
        },
        "dependsOn":{
          "shape":"FlowModuleNameList",
          "documentation":"<p>The dependencies of the module.</p>"
        },
        "moduleParameters":{
          "shape":"ModuleParameters",
          "documentation":"<p>Describes the parameters of a module.</p>"
        }
      },
      "documentation":"<p>Describes the configuration of a module.</p>"
    },
    "ModuleConfigurationList":{
      "type":"list",
      "member":{"shape":"ModuleConfiguration"}
    },
    "ModuleParameters":{
      "type":"structure",
      "members":{
        "noBid":{
          "shape":"NoBidModuleParameters",
          "documentation":"<p>Describes the parameters of a no bid module.</p>"
        },
        "openRtbAttribute":{
          "shape":"OpenRtbAttributeModuleParameters",
          "documentation":"<p>Describes the parameters of an open RTB attribute module.</p>"
        },
        "rateLimiter":{
          "shape":"RateLimiterModuleParameters",
          "documentation":"<p>Describes the parameters of a rate limit.</p>"
        }
      },
      "documentation":"<p>Describes the parameters of a module.</p>",
      "union":true
    },
    "NoBidAction":{
      "type":"structure",
      "members":{
        "noBidReasonCode":{
          "shape":"NoBidActionNoBidReasonCodeInteger",
          "documentation":"<p>The reason code for the no bid action.</p>"
        }
      },
      "documentation":"<p>Describes a no bid action.</p>"
    },
    "NoBidActionNoBidReasonCodeInteger":{
      "type":"integer",
      "box":true,
      "min":0
    },
    "NoBidModuleParameters":{
      "type":"structure",
      "members":{
        "reason":{
          "shape":"NoBidModuleParametersReasonString",
          "documentation":"<p>The reason description.</p>"
        },
        "reasonCode":{
          "shape":"NoBidModuleParametersReasonCodeInteger",
          "documentation":"<p>The reason code.</p>"
        },
        "passThroughPercentage":{
          "shape":"NoBidModuleParametersPassThroughPercentageFloat",
          "documentation":"<p>The pass through percentage.</p>"
        }
      },
      "documentation":"<p>Describes the parameters of a no bid module.</p>"
    },
    "NoBidModuleParametersPassThroughPercentageFloat":{
      "type":"float",
      "box":true,
      "max":100,
      "min":0
    },
    "NoBidModuleParametersReasonCodeInteger":{
      "type":"integer",
      "box":true,
      "max":10,
      "min":0
    },
    "NoBidModuleParametersReasonString":{
      "type":"string",
      "max":50,
      "min":1,
      "pattern":"[a-zA-Z0-9]*"
    },
    "OpenRtbAttributeModuleParameters":{
      "type":"structure",
      "required":[
        "filterType",
        "filterConfiguration",
        "action",
        "holdbackPercentage"
      ],
      "members":{
        "filterType":{
          "shape":"FilterType",
          "documentation":"<p>The filter type.</p>"
        },
        "filterConfiguration":{
          "shape":"FilterConfiguration",
          "documentation":"<p>Describes the configuration of a filter.</p>"
        },
        "action":{
          "shape":"Action",
          "documentation":"<p>Describes a bid action.</p>"
        },
        "holdbackPercentage":{
          "shape":"OpenRtbAttributeModuleParametersHoldbackPercentageFloat",
          "documentation":"<p>The hold back percentage.</p>"
        }
      },
      "documentation":"<p>Describes the parameters of an open RTB attribute module.</p>"
    },
    "OpenRtbAttributeModuleParametersHoldbackPercentageFloat":{
      "type":"float",
      "box":true,
      "max":100,
      "min":0
    },
    "Protocol":{
      "type":"string",
      "enum":[
        "HTTP",
        "HTTPS"
      ]
    },
    "ProtocolList":{
      "type":"list",
      "member":{"shape":"Protocol"},
      "max":2,
      "min":1
    },
    "QueryStringKeyValuePair":{
      "type":"structure",
      "required":[
        "key",
        "value"
      ],
      "members":{
        "key":{
          "shape":"QueryStringKeyValuePairKeyString",
          "documentation":"<p>The key of the query string parameter to match. Must contain only RFC 3986 unreserved characters.</p>"
        },
        "value":{
          "shape":"QueryStringKeyValuePairValueString",
          "documentation":"<p>The value of the query string parameter to match. Must contain only RFC 3986 unreserved characters.</p>"
        }
      },
      "documentation":"<p>A key-value pair for query string matching in a routing rule condition.</p>"
    },
    "QueryStringKeyValuePairKeyString":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[A-Za-z0-9._~-]+"
    },
    "QueryStringKeyValuePairValueString":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[A-Za-z0-9._~-]+"
    },
    "RateLimiterModuleParameters":{
      "type":"structure",
      "members":{
        "tps":{
          "shape":"Float",
          "documentation":"<p>The transactions per second rate limit.</p>"
        }
      },
      "documentation":"<p>Describes the parameters of a rate limit.</p>"
    },
    "RejectLinkRequest":{
      "type":"structure",
      "required":[
        "gatewayId",
        "linkId"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>",
          "location":"uri",
          "locationName":"linkId"
        }
      }
    },
    "RejectLinkResponse":{
      "type":"structure",
      "required":[
        "gatewayId",
        "peerGatewayId",
        "status",
        "createdAt",
        "updatedAt",
        "linkId"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>"
        },
        "peerGatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the peer gateway.</p>"
        },
        "status":{
          "shape":"LinkStatus",
          "documentation":"<p>The status of the link.</p>"
        },
        "createdAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the link was created.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the link was updated.</p>"
        },
        "direction":{
          "shape":"LinkDirection",
          "documentation":"<p>The direction of the link.</p>"
        },
        "flowModules":{
          "shape":"ModuleConfigurationList",
          "documentation":"<p>The configuration of flow modules.</p>"
        },
        "pendingFlowModules":{
          "shape":"ModuleConfigurationList",
          "documentation":"<p>The configuration of pending flow modules.</p>"
        },
        "attributes":{
          "shape":"LinkAttributes",
          "documentation":"<p>Attributes of the link.</p>"
        },
        "logSettings":{"shape":"LinkLogSettings"},
        "connectivityType":{
          "shape":"ConnectivityType",
          "documentation":"<p>The connectivity type of the link.</p>"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>"
        }
      }
    },
    "RequesterGatewayStatus":{
      "type":"string",
      "enum":[
        "PENDING_CREATION",
        "ACTIVE",
        "PENDING_DELETION",
        "DELETED",
        "ERROR",
        "PENDING_UPDATE",
        "ISOLATED",
        "PENDING_ISOLATION",
        "PENDING_RESTORATION"
      ]
    },
    "ResourceNotFoundException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The request could not be completed because the resource does not exist.</p>",
      "error":{
        "httpStatusCode":404,
        "senderFault":true
      },
      "exception":true
    },
    "ResponderErrorMasking":{
      "type":"list",
      "member":{"shape":"ResponderErrorMaskingForHttpCode"},
      "max":200,
      "min":1
    },
    "ResponderErrorMaskingAction":{
      "type":"string",
      "enum":[
        "NO_BID",
        "PASSTHROUGH"
      ]
    },
    "ResponderErrorMaskingForHttpCode":{
      "type":"structure",
      "required":[
        "httpCode",
        "action",
        "loggingTypes"
      ],
      "members":{
        "httpCode":{
          "shape":"ResponderErrorMaskingForHttpCodeHttpCodeString",
          "documentation":"<p>The HTTP error code.</p>"
        },
        "action":{
          "shape":"ResponderErrorMaskingAction",
          "documentation":"<p>The action for the error..</p>"
        },
        "loggingTypes":{
          "shape":"ResponderErrorMaskingLoggingTypes",
          "documentation":"<p>The error log type.</p>"
        },
        "responseLoggingPercentage":{
          "shape":"ResponderErrorMaskingForHttpCodeResponseLoggingPercentageFloat",
          "documentation":"<p>The percentage of response logging.</p>"
        }
      },
      "documentation":"<p>Describes the masking for HTTP error codes.</p>"
    },
    "ResponderErrorMaskingForHttpCodeHttpCodeString":{
      "type":"string",
      "max":7,
      "min":3,
      "pattern":"DEFAULT|4XX|5XX|\\d{3}"
    },
    "ResponderErrorMaskingForHttpCodeResponseLoggingPercentageFloat":{
      "type":"float",
      "box":true,
      "max":100,
      "min":0
    },
    "ResponderErrorMaskingLoggingType":{
      "type":"string",
      "enum":[
        "NONE",
        "METRIC",
        "RESPONSE"
      ]
    },
    "ResponderErrorMaskingLoggingTypes":{
      "type":"list",
      "member":{"shape":"ResponderErrorMaskingLoggingType"},
      "max":2,
      "min":1
    },
    "ResponderGatewayStatus":{
      "type":"string",
      "enum":[
        "PENDING_CREATION",
        "ACTIVE",
        "PENDING_DELETION",
        "DELETED",
        "ERROR",
        "PENDING_UPDATE",
        "ISOLATED",
        "PENDING_ISOLATION",
        "PENDING_RESTORATION"
      ]
    },
    "RtbTaggableResourceArn":{
      "type":"string",
      "max":1600,
      "min":1,
      "pattern":"arn:aws:rtbfabric:[a-zA-Z0-9_-]+:[0-9]{12}:gateway/[a-zA-Z0-9-]+(/link/[a-zA-Z0-9-]+(/routing-rule/[a-zA-Z0-9-]+)?)?"
    },
    "RuleCondition":{
      "type":"structure",
      "members":{
        "hostHeader":{
          "shape":"RuleConditionHostHeaderString",
          "documentation":"<p>The exact host header value to match.</p>"
        },
        "hostHeaderWildcard":{
          "shape":"RuleConditionHostHeaderWildcardString",
          "documentation":"<p>A wildcard pattern for host header matching (for example, <code>*.example.com</code>).</p>"
        },
        "pathPrefix":{
          "shape":"RuleConditionPathPrefixString",
          "documentation":"<p>The path prefix to match. The request path must start with this value. Must start with <code>/</code>.</p>"
        },
        "pathExact":{
          "shape":"RuleConditionPathExactString",
          "documentation":"<p>The exact path to match. Must start with <code>/</code>.</p>"
        },
        "queryStringEquals":{
          "shape":"QueryStringKeyValuePair",
          "documentation":"<p>A query string key-value pair that must be present and match exactly.</p>"
        },
        "queryStringExists":{
          "shape":"RuleConditionQueryStringExistsString",
          "documentation":"<p>A query string key that must be present in the request (any value is accepted).</p>"
        }
      },
      "documentation":"<p>The conditions for a routing rule. All specified fields must match for the rule to apply (AND logic). At least one condition field must be set.</p>"
    },
    "RuleConditionHostHeaderString":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"[A-Za-z0-9._~-]+"
    },
    "RuleConditionHostHeaderWildcardString":{
      "type":"string",
      "max":255,
      "min":3,
      "pattern":"[A-Za-z0-9._~*-]+"
    },
    "RuleConditionPathExactString":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"/[A-Za-z0-9._~/-]*"
    },
    "RuleConditionPathPrefixString":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"/[A-Za-z0-9._~/-]*"
    },
    "RuleConditionQueryStringExistsString":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[A-Za-z0-9._~-]+"
    },
    "RuleId":{
      "type":"string",
      "documentation":"<p>Identifier for a routing rule</p>",
      "max":30,
      "min":6,
      "pattern":"rule-[a-z0-9-]{1,25}"
    },
    "RulePriority":{
      "type":"integer",
      "documentation":"<p>WAF-style evaluation priority. Lower number = evaluated first (priority 1 before 10). Gaps are allowed (1, 10, 20 is valid). Must be between 1 and 1000 inclusive. Uniqueness per link among non-deleted rules is enforced at the API layer (HTTP 409 on conflict).</p>",
      "box":true,
      "max":1000,
      "min":1
    },
    "RuleStatus":{
      "type":"string",
      "documentation":"<p>Status of a routing rule</p>",
      "enum":[
        "CREATION_IN_PROGRESS",
        "ACTIVE",
        "UPDATE_IN_PROGRESS",
        "DELETION_IN_PROGRESS",
        "DELETED",
        "FAILED"
      ]
    },
    "SecurityGroupId":{
      "type":"string",
      "max":43,
      "min":11,
      "pattern":"sg-[0-9a-f]{8,40}"
    },
    "ServiceQuotaExceededException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The request could not be completed because you exceeded a service quota.</p>",
      "error":{
        "httpStatusCode":402,
        "senderFault":true
      },
      "exception":true
    },
    "StatusCodeMatcher":{
      "type":"string",
      "max":64,
      "min":1
    },
    "String":{"type":"string"},
    "SubnetId":{
      "type":"string",
      "max":24,
      "min":15,
      "pattern":"subnet-\\w{8,17}"
    },
    "TagKey":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"(resourceArn|internalId|[a-zA-Z0-9+\\-=._:/@]+)"
    },
    "TagKeyList":{
      "type":"list",
      "member":{"shape":"TagKey"},
      "max":50,
      "min":1
    },
    "TagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tags"
      ],
      "members":{
        "resourceArn":{
          "shape":"RtbTaggableResourceArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource that you want to tag.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tags":{
          "shape":"TagsMap",
          "documentation":"<p>A map of the key-value pairs of the tag or tags to assign to the resource.</p>"
        }
      }
    },
    "TagResourceResponse":{
      "type":"structure",
      "members":{}
    },
    "TagValue":{
      "type":"string",
      "max":1600,
      "min":0
    },
    "TagsMap":{
      "type":"map",
      "key":{"shape":"TagKey"},
      "value":{"shape":"TagValue"}
    },
    "ThrottlingException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The request was denied due to request throttling.</p>",
      "error":{
        "httpStatusCode":429,
        "senderFault":true
      },
      "exception":true,
      "retryable":{"throttling":false}
    },
    "Timestamp":{"type":"timestamp"},
    "TrustStoreConfiguration":{
      "type":"structure",
      "required":["certificateAuthorityCertificates"],
      "members":{
        "certificateAuthorityCertificates":{
          "shape":"CertificateAuthorityCertificates",
          "documentation":"<p>The certificate authority certificate.</p>"
        }
      },
      "documentation":"<p>Describes the configuration of a trust store.</p>"
    },
    "URI":{
      "type":"string",
      "max":255,
      "min":0,
      "pattern":"(https|http)://(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)(?:\\.(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?))+"
    },
    "URL":{
      "type":"string",
      "max":255,
      "min":0,
      "pattern":"(https|http)://.+"
    },
    "UntagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tagKeys"
      ],
      "members":{
        "resourceArn":{
          "shape":"RtbTaggableResourceArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource that you want to untag.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tagKeys":{
          "shape":"TagKeyList",
          "documentation":"<p>The keys of the key-value pairs for the tag or tags you want to remove from the specified resource.</p>",
          "location":"querystring",
          "locationName":"tagKeys"
        }
      }
    },
    "UntagResourceResponse":{
      "type":"structure",
      "members":{}
    },
    "UpdateLinkModuleFlowRequest":{
      "type":"structure",
      "required":[
        "clientToken",
        "gatewayId",
        "linkId",
        "modules"
      ],
      "members":{
        "clientToken":{
          "shape":"String",
          "documentation":"<p>The unique client token.</p>",
          "idempotencyToken":true
        },
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>",
          "location":"uri",
          "locationName":"linkId"
        },
        "modules":{
          "shape":"ModuleConfigurationList",
          "documentation":"<p>The configuration of a module.</p>"
        }
      }
    },
    "UpdateLinkModuleFlowResponse":{
      "type":"structure",
      "required":[
        "gatewayId",
        "linkId",
        "status"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>"
        },
        "status":{
          "shape":"LinkStatus",
          "documentation":"<p>The status of the request.</p>"
        }
      }
    },
    "UpdateLinkRequest":{
      "type":"structure",
      "required":[
        "gatewayId",
        "linkId"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>",
          "location":"uri",
          "locationName":"linkId"
        },
        "logSettings":{
          "shape":"LinkLogSettings",
          "documentation":"<p>Settings for the application logs.</p>"
        },
        "timeoutInMillis":{
          "shape":"LinkTimeoutInMillis",
          "documentation":"<p>The timeout value in milliseconds.</p>"
        }
      }
    },
    "UpdateLinkResponse":{
      "type":"structure",
      "required":[
        "linkId",
        "status"
      ],
      "members":{
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>"
        },
        "status":{
          "shape":"LinkStatus",
          "documentation":"<p>The status of the request.</p>"
        }
      }
    },
    "UpdateLinkRoutingRuleRequest":{
      "type":"structure",
      "required":[
        "gatewayId",
        "linkId",
        "ruleId",
        "priority",
        "conditions"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "linkId":{
          "shape":"LinkId",
          "documentation":"<p>The unique identifier of the link.</p>",
          "location":"uri",
          "locationName":"linkId"
        },
        "ruleId":{
          "shape":"RuleId",
          "documentation":"<p>The unique identifier of the routing rule.</p>",
          "location":"uri",
          "locationName":"ruleId"
        },
        "priority":{
          "shape":"RulePriority",
          "documentation":"<p>The updated priority of the routing rule. Lower numbers are evaluated first. Valid values are 1 to 1000. Priority must be unique among non-deleted rules within a link.</p>"
        },
        "conditions":{
          "shape":"RuleCondition",
          "documentation":"<p>The updated conditions for the routing rule. All specified fields must match for the rule to apply. At least one condition field must be set.</p>"
        }
      }
    },
    "UpdateLinkRoutingRuleResponse":{
      "type":"structure",
      "required":[
        "ruleId",
        "status",
        "updatedAt"
      ],
      "members":{
        "ruleId":{
          "shape":"RuleId",
          "documentation":"<p>The unique identifier of the routing rule.</p>"
        },
        "status":{
          "shape":"RuleStatus",
          "documentation":"<p>The status of the routing rule.</p>"
        },
        "updatedAt":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of when the routing rule was last updated.</p>"
        }
      }
    },
    "UpdateRequesterGatewayRequest":{
      "type":"structure",
      "required":[
        "clientToken",
        "gatewayId"
      ],
      "members":{
        "clientToken":{
          "shape":"String",
          "documentation":"<p>The unique client token.</p>",
          "idempotencyToken":true
        },
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "description":{
          "shape":"UpdateRequesterGatewayRequestDescriptionString",
          "documentation":"<p>An optional description for the requester gateway.</p>"
        }
      }
    },
    "UpdateRequesterGatewayRequestDescriptionString":{
      "type":"string",
      "pattern":"[A-Za-z0-9 ]+"
    },
    "UpdateRequesterGatewayResponse":{
      "type":"structure",
      "required":[
        "gatewayId",
        "status"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>"
        },
        "status":{
          "shape":"RequesterGatewayStatus",
          "documentation":"<p>The status of the request.</p>"
        }
      }
    },
    "UpdateResponderGatewayRequest":{
      "type":"structure",
      "required":[
        "port",
        "protocol",
        "clientToken",
        "gatewayId"
      ],
      "members":{
        "domainName":{
          "shape":"DomainName",
          "documentation":"<p>The domain name for the responder gateway.</p>"
        },
        "port":{
          "shape":"UpdateResponderGatewayRequestPortInteger",
          "documentation":"<p>The networking port to use.</p>"
        },
        "protocol":{
          "shape":"Protocol",
          "documentation":"<p>The networking protocol to use.</p>"
        },
        "listenerConfig":{
          "shape":"ListenerConfig",
          "documentation":"<p>The listener configuration for the responder gateway.</p>"
        },
        "trustStoreConfiguration":{
          "shape":"TrustStoreConfiguration",
          "documentation":"<p>The configuration of the trust store.</p>"
        },
        "managedEndpointConfiguration":{
          "shape":"ManagedEndpointConfiguration",
          "documentation":"<p>The configuration for the managed endpoint.</p>"
        },
        "clientToken":{
          "shape":"String",
          "documentation":"<p>The unique client token.</p>",
          "idempotencyToken":true
        },
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>",
          "location":"uri",
          "locationName":"gatewayId"
        },
        "description":{
          "shape":"UpdateResponderGatewayRequestDescriptionString",
          "documentation":"<p>An optional description for the responder gateway.</p>"
        }
      }
    },
    "UpdateResponderGatewayRequestDescriptionString":{
      "type":"string",
      "pattern":"[A-Za-z0-9 ]+"
    },
    "UpdateResponderGatewayRequestPortInteger":{
      "type":"integer",
      "box":true,
      "max":65535,
      "min":1
    },
    "UpdateResponderGatewayResponse":{
      "type":"structure",
      "required":[
        "gatewayId",
        "status"
      ],
      "members":{
        "gatewayId":{
          "shape":"GatewayId",
          "documentation":"<p>The unique identifier of the gateway.</p>"
        },
        "status":{
          "shape":"ResponderGatewayStatus",
          "documentation":"<p>The status of the request.</p>"
        }
      }
    },
    "ValidationException":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{"shape":"String"}
      },
      "documentation":"<p>The request could not be completed because it fails satisfy the constraints specified by the service.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "Version":{
      "type":"string",
      "max":25,
      "min":1,
      "pattern":"[a-z0-9-]{1,25}"
    },
    "VpcId":{
      "type":"string",
      "max":21,
      "min":12,
      "pattern":"vpc-[a-f0-9]{8,17}"
    }
  },
  "documentation":"<p>Amazon Web Services RTB Fabric provides secure, low-latency infrastructure for connecting real-time bidding (RTB) applications. Rather than hosting applications directly, RTB Fabric acts as the connecting fabric that enables your applications to communicate efficiently over private networks instead of the public internet. You maintain complete control over your applications, data, and bidding decisions, while RTB Fabric provides the underlying infrastructure for secure, reliable connectivity.</p> <p>You can use these APIs to complete RTB Fabric tasks, such as setting up audit log ingestions or viewing user access. For more information about RTB Fabric, including the required permissions to use the service, see the <a href=\"https://docs.aws.amazon.com/rtb-fabric/latest/userguide/\">Amazon Web Services RTB Fabric User Guide</a>.</p>"
}
