{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2020-07-08",
    "auth":["aws.auth#sigv4"],
    "endpointPrefix":"workspaces-web",
    "protocol":"rest-json",
    "protocols":["rest-json"],
    "serviceFullName":"Amazon WorkSpaces Web",
    "serviceId":"WorkSpaces Web",
    "signatureVersion":"v4",
    "signingName":"workspaces-web",
    "uid":"workspaces-web-2020-07-08"
  },
  "operations":{
    "AssociateBrowserSettings":{
      "name":"AssociateBrowserSettings",
      "http":{
        "method":"PUT",
        "requestUri":"/portals/{portalArn+}/browserSettings",
        "responseCode":200
      },
      "input":{"shape":"AssociateBrowserSettingsRequest"},
      "output":{"shape":"AssociateBrowserSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Associates a browser settings resource with a web portal.</p>",
      "idempotent":true
    },
    "AssociateDataProtectionSettings":{
      "name":"AssociateDataProtectionSettings",
      "http":{
        "method":"PUT",
        "requestUri":"/portals/{portalArn+}/dataProtectionSettings",
        "responseCode":200
      },
      "input":{"shape":"AssociateDataProtectionSettingsRequest"},
      "output":{"shape":"AssociateDataProtectionSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Associates a data protection settings resource with a web portal.</p>",
      "idempotent":true
    },
    "AssociateIpAccessSettings":{
      "name":"AssociateIpAccessSettings",
      "http":{
        "method":"PUT",
        "requestUri":"/portals/{portalArn+}/ipAccessSettings",
        "responseCode":200
      },
      "input":{"shape":"AssociateIpAccessSettingsRequest"},
      "output":{"shape":"AssociateIpAccessSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Associates an IP access settings resource with a web portal.</p>",
      "idempotent":true
    },
    "AssociateNetworkSettings":{
      "name":"AssociateNetworkSettings",
      "http":{
        "method":"PUT",
        "requestUri":"/portals/{portalArn+}/networkSettings",
        "responseCode":200
      },
      "input":{"shape":"AssociateNetworkSettingsRequest"},
      "output":{"shape":"AssociateNetworkSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Associates a network settings resource with a web portal.</p>",
      "idempotent":true
    },
    "AssociateSessionLogger":{
      "name":"AssociateSessionLogger",
      "http":{
        "method":"PUT",
        "requestUri":"/portals/{portalArn+}/sessionLogger",
        "responseCode":200
      },
      "input":{"shape":"AssociateSessionLoggerRequest"},
      "output":{"shape":"AssociateSessionLoggerResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Associates a session logger with a portal.</p>",
      "idempotent":true
    },
    "AssociateTrustStore":{
      "name":"AssociateTrustStore",
      "http":{
        "method":"PUT",
        "requestUri":"/portals/{portalArn+}/trustStores",
        "responseCode":200
      },
      "input":{"shape":"AssociateTrustStoreRequest"},
      "output":{"shape":"AssociateTrustStoreResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Associates a trust store with a web portal.</p>",
      "idempotent":true
    },
    "AssociateUserAccessLoggingSettings":{
      "name":"AssociateUserAccessLoggingSettings",
      "http":{
        "method":"PUT",
        "requestUri":"/portals/{portalArn+}/userAccessLoggingSettings",
        "responseCode":200
      },
      "input":{"shape":"AssociateUserAccessLoggingSettingsRequest"},
      "output":{"shape":"AssociateUserAccessLoggingSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Associates a user access logging settings resource with a web portal.</p>",
      "idempotent":true
    },
    "AssociateUserSettings":{
      "name":"AssociateUserSettings",
      "http":{
        "method":"PUT",
        "requestUri":"/portals/{portalArn+}/userSettings",
        "responseCode":200
      },
      "input":{"shape":"AssociateUserSettingsRequest"},
      "output":{"shape":"AssociateUserSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Associates a user settings resource with a web portal.</p>",
      "idempotent":true
    },
    "CreateBrowserSettings":{
      "name":"CreateBrowserSettings",
      "http":{
        "method":"POST",
        "requestUri":"/browserSettings",
        "responseCode":200
      },
      "input":{"shape":"CreateBrowserSettingsRequest"},
      "output":{"shape":"CreateBrowserSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Creates a browser settings resource that can be associated with a web portal. Once associated with a web portal, browser settings control how the browser will behave once a user starts a streaming session for the web portal. </p>"
    },
    "CreateDataProtectionSettings":{
      "name":"CreateDataProtectionSettings",
      "http":{
        "method":"POST",
        "requestUri":"/dataProtectionSettings",
        "responseCode":200
      },
      "input":{"shape":"CreateDataProtectionSettingsRequest"},
      "output":{"shape":"CreateDataProtectionSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Creates a data protection settings resource that can be associated with a web portal.</p>"
    },
    "CreateIdentityProvider":{
      "name":"CreateIdentityProvider",
      "http":{
        "method":"POST",
        "requestUri":"/identityProviders",
        "responseCode":200
      },
      "input":{"shape":"CreateIdentityProviderRequest"},
      "output":{"shape":"CreateIdentityProviderResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Creates an identity provider resource that is then associated with a web portal.</p>"
    },
    "CreateIpAccessSettings":{
      "name":"CreateIpAccessSettings",
      "http":{
        "method":"POST",
        "requestUri":"/ipAccessSettings",
        "responseCode":200
      },
      "input":{"shape":"CreateIpAccessSettingsRequest"},
      "output":{"shape":"CreateIpAccessSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Creates an IP access settings resource that can be associated with a web portal.</p>"
    },
    "CreateNetworkSettings":{
      "name":"CreateNetworkSettings",
      "http":{
        "method":"POST",
        "requestUri":"/networkSettings",
        "responseCode":200
      },
      "input":{"shape":"CreateNetworkSettingsRequest"},
      "output":{"shape":"CreateNetworkSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Creates a network settings resource that can be associated with a web portal. Once associated with a web portal, network settings define how streaming instances will connect with your specified VPC. </p>"
    },
    "CreatePortal":{
      "name":"CreatePortal",
      "http":{
        "method":"POST",
        "requestUri":"/portals",
        "responseCode":200
      },
      "input":{"shape":"CreatePortalRequest"},
      "output":{"shape":"CreatePortalResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Creates a web portal.</p>"
    },
    "CreateSessionLogger":{
      "name":"CreateSessionLogger",
      "http":{
        "method":"POST",
        "requestUri":"/sessionLoggers",
        "responseCode":200
      },
      "input":{"shape":"CreateSessionLoggerRequest"},
      "output":{"shape":"CreateSessionLoggerResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Creates a session logger.</p>"
    },
    "CreateTrustStore":{
      "name":"CreateTrustStore",
      "http":{
        "method":"POST",
        "requestUri":"/trustStores",
        "responseCode":200
      },
      "input":{"shape":"CreateTrustStoreRequest"},
      "output":{"shape":"CreateTrustStoreResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Creates a trust store that can be associated with a web portal. A trust store contains certificate authority (CA) certificates. Once associated with a web portal, the browser in a streaming session will recognize certificates that have been issued using any of the CAs in the trust store. If your organization has internal websites that use certificates issued by private CAs, you should add the private CA certificate to the trust store. </p>"
    },
    "CreateUserAccessLoggingSettings":{
      "name":"CreateUserAccessLoggingSettings",
      "http":{
        "method":"POST",
        "requestUri":"/userAccessLoggingSettings",
        "responseCode":200
      },
      "input":{"shape":"CreateUserAccessLoggingSettingsRequest"},
      "output":{"shape":"CreateUserAccessLoggingSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Creates a user access logging settings resource that can be associated with a web portal.</p>"
    },
    "CreateUserSettings":{
      "name":"CreateUserSettings",
      "http":{
        "method":"POST",
        "requestUri":"/userSettings",
        "responseCode":200
      },
      "input":{"shape":"CreateUserSettingsRequest"},
      "output":{"shape":"CreateUserSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Creates a user settings resource that can be associated with a web portal. Once associated with a web portal, user settings control how users can transfer data between a streaming session and the their local devices. </p>"
    },
    "DeleteBrowserSettings":{
      "name":"DeleteBrowserSettings",
      "http":{
        "method":"DELETE",
        "requestUri":"/browserSettings/{browserSettingsArn+}",
        "responseCode":200
      },
      "input":{"shape":"DeleteBrowserSettingsRequest"},
      "output":{"shape":"DeleteBrowserSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Deletes browser settings.</p>",
      "idempotent":true
    },
    "DeleteDataProtectionSettings":{
      "name":"DeleteDataProtectionSettings",
      "http":{
        "method":"DELETE",
        "requestUri":"/dataProtectionSettings/{dataProtectionSettingsArn+}",
        "responseCode":200
      },
      "input":{"shape":"DeleteDataProtectionSettingsRequest"},
      "output":{"shape":"DeleteDataProtectionSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Deletes data protection settings.</p>",
      "idempotent":true
    },
    "DeleteIdentityProvider":{
      "name":"DeleteIdentityProvider",
      "http":{
        "method":"DELETE",
        "requestUri":"/identityProviders/{identityProviderArn+}",
        "responseCode":200
      },
      "input":{"shape":"DeleteIdentityProviderRequest"},
      "output":{"shape":"DeleteIdentityProviderResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Deletes the identity provider.</p>",
      "idempotent":true
    },
    "DeleteIpAccessSettings":{
      "name":"DeleteIpAccessSettings",
      "http":{
        "method":"DELETE",
        "requestUri":"/ipAccessSettings/{ipAccessSettingsArn+}",
        "responseCode":200
      },
      "input":{"shape":"DeleteIpAccessSettingsRequest"},
      "output":{"shape":"DeleteIpAccessSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Deletes IP access settings.</p>",
      "idempotent":true
    },
    "DeleteNetworkSettings":{
      "name":"DeleteNetworkSettings",
      "http":{
        "method":"DELETE",
        "requestUri":"/networkSettings/{networkSettingsArn+}",
        "responseCode":200
      },
      "input":{"shape":"DeleteNetworkSettingsRequest"},
      "output":{"shape":"DeleteNetworkSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Deletes network settings.</p>",
      "idempotent":true
    },
    "DeletePortal":{
      "name":"DeletePortal",
      "http":{
        "method":"DELETE",
        "requestUri":"/portals/{portalArn+}",
        "responseCode":200
      },
      "input":{"shape":"DeletePortalRequest"},
      "output":{"shape":"DeletePortalResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Deletes a web portal.</p>",
      "idempotent":true
    },
    "DeleteSessionLogger":{
      "name":"DeleteSessionLogger",
      "http":{
        "method":"DELETE",
        "requestUri":"/sessionLoggers/{sessionLoggerArn+}",
        "responseCode":200
      },
      "input":{"shape":"DeleteSessionLoggerRequest"},
      "output":{"shape":"DeleteSessionLoggerResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Deletes a session logger resource.</p>",
      "idempotent":true
    },
    "DeleteTrustStore":{
      "name":"DeleteTrustStore",
      "http":{
        "method":"DELETE",
        "requestUri":"/trustStores/{trustStoreArn+}",
        "responseCode":200
      },
      "input":{"shape":"DeleteTrustStoreRequest"},
      "output":{"shape":"DeleteTrustStoreResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Deletes the trust store.</p>",
      "idempotent":true
    },
    "DeleteUserAccessLoggingSettings":{
      "name":"DeleteUserAccessLoggingSettings",
      "http":{
        "method":"DELETE",
        "requestUri":"/userAccessLoggingSettings/{userAccessLoggingSettingsArn+}",
        "responseCode":200
      },
      "input":{"shape":"DeleteUserAccessLoggingSettingsRequest"},
      "output":{"shape":"DeleteUserAccessLoggingSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Deletes user access logging settings.</p>",
      "idempotent":true
    },
    "DeleteUserSettings":{
      "name":"DeleteUserSettings",
      "http":{
        "method":"DELETE",
        "requestUri":"/userSettings/{userSettingsArn+}",
        "responseCode":200
      },
      "input":{"shape":"DeleteUserSettingsRequest"},
      "output":{"shape":"DeleteUserSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Deletes user settings.</p>",
      "idempotent":true
    },
    "DisassociateBrowserSettings":{
      "name":"DisassociateBrowserSettings",
      "http":{
        "method":"DELETE",
        "requestUri":"/portals/{portalArn+}/browserSettings",
        "responseCode":200
      },
      "input":{"shape":"DisassociateBrowserSettingsRequest"},
      "output":{"shape":"DisassociateBrowserSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Disassociates browser settings from a web portal.</p>",
      "idempotent":true
    },
    "DisassociateDataProtectionSettings":{
      "name":"DisassociateDataProtectionSettings",
      "http":{
        "method":"DELETE",
        "requestUri":"/portals/{portalArn+}/dataProtectionSettings",
        "responseCode":200
      },
      "input":{"shape":"DisassociateDataProtectionSettingsRequest"},
      "output":{"shape":"DisassociateDataProtectionSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Disassociates data protection settings from a web portal.</p>",
      "idempotent":true
    },
    "DisassociateIpAccessSettings":{
      "name":"DisassociateIpAccessSettings",
      "http":{
        "method":"DELETE",
        "requestUri":"/portals/{portalArn+}/ipAccessSettings",
        "responseCode":200
      },
      "input":{"shape":"DisassociateIpAccessSettingsRequest"},
      "output":{"shape":"DisassociateIpAccessSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Disassociates IP access settings from a web portal.</p>",
      "idempotent":true
    },
    "DisassociateNetworkSettings":{
      "name":"DisassociateNetworkSettings",
      "http":{
        "method":"DELETE",
        "requestUri":"/portals/{portalArn+}/networkSettings",
        "responseCode":200
      },
      "input":{"shape":"DisassociateNetworkSettingsRequest"},
      "output":{"shape":"DisassociateNetworkSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Disassociates network settings from a web portal.</p>",
      "idempotent":true
    },
    "DisassociateSessionLogger":{
      "name":"DisassociateSessionLogger",
      "http":{
        "method":"DELETE",
        "requestUri":"/portals/{portalArn+}/sessionLogger",
        "responseCode":200
      },
      "input":{"shape":"DisassociateSessionLoggerRequest"},
      "output":{"shape":"DisassociateSessionLoggerResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Disassociates a session logger from a portal.</p>",
      "idempotent":true
    },
    "DisassociateTrustStore":{
      "name":"DisassociateTrustStore",
      "http":{
        "method":"DELETE",
        "requestUri":"/portals/{portalArn+}/trustStores",
        "responseCode":200
      },
      "input":{"shape":"DisassociateTrustStoreRequest"},
      "output":{"shape":"DisassociateTrustStoreResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Disassociates a trust store from a web portal.</p>",
      "idempotent":true
    },
    "DisassociateUserAccessLoggingSettings":{
      "name":"DisassociateUserAccessLoggingSettings",
      "http":{
        "method":"DELETE",
        "requestUri":"/portals/{portalArn+}/userAccessLoggingSettings",
        "responseCode":200
      },
      "input":{"shape":"DisassociateUserAccessLoggingSettingsRequest"},
      "output":{"shape":"DisassociateUserAccessLoggingSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Disassociates user access logging settings from a web portal.</p>",
      "idempotent":true
    },
    "DisassociateUserSettings":{
      "name":"DisassociateUserSettings",
      "http":{
        "method":"DELETE",
        "requestUri":"/portals/{portalArn+}/userSettings",
        "responseCode":200
      },
      "input":{"shape":"DisassociateUserSettingsRequest"},
      "output":{"shape":"DisassociateUserSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Disassociates user settings from a web portal.</p>",
      "idempotent":true
    },
    "ExpireSession":{
      "name":"ExpireSession",
      "http":{
        "method":"DELETE",
        "requestUri":"/portals/{portalId}/sessions/{sessionId}",
        "responseCode":200
      },
      "input":{"shape":"ExpireSessionRequest"},
      "output":{"shape":"ExpireSessionResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Expires an active secure browser session.</p>",
      "idempotent":true
    },
    "GetBrowserSettings":{
      "name":"GetBrowserSettings",
      "http":{
        "method":"GET",
        "requestUri":"/browserSettings/{browserSettingsArn+}",
        "responseCode":200
      },
      "input":{"shape":"GetBrowserSettingsRequest"},
      "output":{"shape":"GetBrowserSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Gets browser settings.</p>",
      "readonly":true
    },
    "GetDataProtectionSettings":{
      "name":"GetDataProtectionSettings",
      "http":{
        "method":"GET",
        "requestUri":"/dataProtectionSettings/{dataProtectionSettingsArn+}",
        "responseCode":200
      },
      "input":{"shape":"GetDataProtectionSettingsRequest"},
      "output":{"shape":"GetDataProtectionSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Gets the data protection settings.</p>",
      "readonly":true
    },
    "GetIdentityProvider":{
      "name":"GetIdentityProvider",
      "http":{
        "method":"GET",
        "requestUri":"/identityProviders/{identityProviderArn+}",
        "responseCode":200
      },
      "input":{"shape":"GetIdentityProviderRequest"},
      "output":{"shape":"GetIdentityProviderResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Gets the identity provider.</p>",
      "readonly":true
    },
    "GetIpAccessSettings":{
      "name":"GetIpAccessSettings",
      "http":{
        "method":"GET",
        "requestUri":"/ipAccessSettings/{ipAccessSettingsArn+}",
        "responseCode":200
      },
      "input":{"shape":"GetIpAccessSettingsRequest"},
      "output":{"shape":"GetIpAccessSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Gets the IP access settings.</p>",
      "readonly":true
    },
    "GetNetworkSettings":{
      "name":"GetNetworkSettings",
      "http":{
        "method":"GET",
        "requestUri":"/networkSettings/{networkSettingsArn+}",
        "responseCode":200
      },
      "input":{"shape":"GetNetworkSettingsRequest"},
      "output":{"shape":"GetNetworkSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Gets the network settings.</p>",
      "readonly":true
    },
    "GetPortal":{
      "name":"GetPortal",
      "http":{
        "method":"GET",
        "requestUri":"/portals/{portalArn+}",
        "responseCode":200
      },
      "input":{"shape":"GetPortalRequest"},
      "output":{"shape":"GetPortalResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Gets the web portal.</p>",
      "readonly":true
    },
    "GetPortalServiceProviderMetadata":{
      "name":"GetPortalServiceProviderMetadata",
      "http":{
        "method":"GET",
        "requestUri":"/portalIdp/{portalArn+}",
        "responseCode":200
      },
      "input":{"shape":"GetPortalServiceProviderMetadataRequest"},
      "output":{"shape":"GetPortalServiceProviderMetadataResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Gets the service provider metadata.</p>",
      "readonly":true
    },
    "GetSession":{
      "name":"GetSession",
      "http":{
        "method":"GET",
        "requestUri":"/portals/{portalId}/sessions/{sessionId}",
        "responseCode":200
      },
      "input":{"shape":"GetSessionRequest"},
      "output":{"shape":"GetSessionResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Gets information for a secure browser session.</p>",
      "readonly":true
    },
    "GetSessionLogger":{
      "name":"GetSessionLogger",
      "http":{
        "method":"GET",
        "requestUri":"/sessionLoggers/{sessionLoggerArn+}",
        "responseCode":200
      },
      "input":{"shape":"GetSessionLoggerRequest"},
      "output":{"shape":"GetSessionLoggerResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Gets details about a specific session logger resource.</p>",
      "readonly":true
    },
    "GetTrustStore":{
      "name":"GetTrustStore",
      "http":{
        "method":"GET",
        "requestUri":"/trustStores/{trustStoreArn+}",
        "responseCode":200
      },
      "input":{"shape":"GetTrustStoreRequest"},
      "output":{"shape":"GetTrustStoreResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Gets the trust store.</p>",
      "readonly":true
    },
    "GetTrustStoreCertificate":{
      "name":"GetTrustStoreCertificate",
      "http":{
        "method":"GET",
        "requestUri":"/trustStores/{trustStoreArn+}/certificate",
        "responseCode":200
      },
      "input":{"shape":"GetTrustStoreCertificateRequest"},
      "output":{"shape":"GetTrustStoreCertificateResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Gets the trust store certificate.</p>",
      "readonly":true
    },
    "GetUserAccessLoggingSettings":{
      "name":"GetUserAccessLoggingSettings",
      "http":{
        "method":"GET",
        "requestUri":"/userAccessLoggingSettings/{userAccessLoggingSettingsArn+}",
        "responseCode":200
      },
      "input":{"shape":"GetUserAccessLoggingSettingsRequest"},
      "output":{"shape":"GetUserAccessLoggingSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Gets user access logging settings.</p>",
      "readonly":true
    },
    "GetUserSettings":{
      "name":"GetUserSettings",
      "http":{
        "method":"GET",
        "requestUri":"/userSettings/{userSettingsArn+}",
        "responseCode":200
      },
      "input":{"shape":"GetUserSettingsRequest"},
      "output":{"shape":"GetUserSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Gets user settings.</p>",
      "readonly":true
    },
    "ListBrowserSettings":{
      "name":"ListBrowserSettings",
      "http":{
        "method":"GET",
        "requestUri":"/browserSettings",
        "responseCode":200
      },
      "input":{"shape":"ListBrowserSettingsRequest"},
      "output":{"shape":"ListBrowserSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Retrieves a list of browser settings.</p>",
      "readonly":true
    },
    "ListDataProtectionSettings":{
      "name":"ListDataProtectionSettings",
      "http":{
        "method":"GET",
        "requestUri":"/dataProtectionSettings",
        "responseCode":200
      },
      "input":{"shape":"ListDataProtectionSettingsRequest"},
      "output":{"shape":"ListDataProtectionSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Retrieves a list of data protection settings.</p>",
      "readonly":true
    },
    "ListIdentityProviders":{
      "name":"ListIdentityProviders",
      "http":{
        "method":"GET",
        "requestUri":"/portals/{portalArn+}/identityProviders",
        "responseCode":200
      },
      "input":{"shape":"ListIdentityProvidersRequest"},
      "output":{"shape":"ListIdentityProvidersResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Retrieves a list of identity providers for a specific web portal.</p>",
      "readonly":true
    },
    "ListIpAccessSettings":{
      "name":"ListIpAccessSettings",
      "http":{
        "method":"GET",
        "requestUri":"/ipAccessSettings",
        "responseCode":200
      },
      "input":{"shape":"ListIpAccessSettingsRequest"},
      "output":{"shape":"ListIpAccessSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Retrieves a list of IP access settings.</p>",
      "readonly":true
    },
    "ListNetworkSettings":{
      "name":"ListNetworkSettings",
      "http":{
        "method":"GET",
        "requestUri":"/networkSettings",
        "responseCode":200
      },
      "input":{"shape":"ListNetworkSettingsRequest"},
      "output":{"shape":"ListNetworkSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Retrieves a list of network settings.</p>",
      "readonly":true
    },
    "ListPortals":{
      "name":"ListPortals",
      "http":{
        "method":"GET",
        "requestUri":"/portals",
        "responseCode":200
      },
      "input":{"shape":"ListPortalsRequest"},
      "output":{"shape":"ListPortalsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Retrieves a list or web portals.</p>",
      "readonly":true
    },
    "ListSessionLoggers":{
      "name":"ListSessionLoggers",
      "http":{
        "method":"GET",
        "requestUri":"/sessionLoggers",
        "responseCode":200
      },
      "input":{"shape":"ListSessionLoggersRequest"},
      "output":{"shape":"ListSessionLoggersResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Lists all available session logger resources.</p>",
      "readonly":true
    },
    "ListSessions":{
      "name":"ListSessions",
      "http":{
        "method":"GET",
        "requestUri":"/portals/{portalId}/sessions",
        "responseCode":200
      },
      "input":{"shape":"ListSessionsRequest"},
      "output":{"shape":"ListSessionsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Lists information for multiple secure browser sessions from a specific portal.</p>",
      "readonly":true
    },
    "ListTagsForResource":{
      "name":"ListTagsForResource",
      "http":{
        "method":"GET",
        "requestUri":"/tags/{resourceArn+}",
        "responseCode":200
      },
      "input":{"shape":"ListTagsForResourceRequest"},
      "output":{"shape":"ListTagsForResourceResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Retrieves a list of tags for a resource.</p>",
      "readonly":true
    },
    "ListTrustStoreCertificates":{
      "name":"ListTrustStoreCertificates",
      "http":{
        "method":"GET",
        "requestUri":"/trustStores/{trustStoreArn+}/certificates",
        "responseCode":200
      },
      "input":{"shape":"ListTrustStoreCertificatesRequest"},
      "output":{"shape":"ListTrustStoreCertificatesResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Retrieves a list of trust store certificates.</p>",
      "readonly":true
    },
    "ListTrustStores":{
      "name":"ListTrustStores",
      "http":{
        "method":"GET",
        "requestUri":"/trustStores",
        "responseCode":200
      },
      "input":{"shape":"ListTrustStoresRequest"},
      "output":{"shape":"ListTrustStoresResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Retrieves a list of trust stores.</p>",
      "readonly":true
    },
    "ListUserAccessLoggingSettings":{
      "name":"ListUserAccessLoggingSettings",
      "http":{
        "method":"GET",
        "requestUri":"/userAccessLoggingSettings",
        "responseCode":200
      },
      "input":{"shape":"ListUserAccessLoggingSettingsRequest"},
      "output":{"shape":"ListUserAccessLoggingSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Retrieves a list of user access logging settings.</p>",
      "readonly":true
    },
    "ListUserSettings":{
      "name":"ListUserSettings",
      "http":{
        "method":"GET",
        "requestUri":"/userSettings",
        "responseCode":200
      },
      "input":{"shape":"ListUserSettingsRequest"},
      "output":{"shape":"ListUserSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Retrieves a list of user settings.</p>",
      "readonly":true
    },
    "TagResource":{
      "name":"TagResource",
      "http":{
        "method":"POST",
        "requestUri":"/tags/{resourceArn+}",
        "responseCode":200
      },
      "input":{"shape":"TagResourceRequest"},
      "output":{"shape":"TagResourceResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"TooManyTagsException"}
      ],
      "documentation":"<p>Adds or overwrites one or more tags for the specified resource.</p>"
    },
    "UntagResource":{
      "name":"UntagResource",
      "http":{
        "method":"DELETE",
        "requestUri":"/tags/{resourceArn+}",
        "responseCode":200
      },
      "input":{"shape":"UntagResourceRequest"},
      "output":{"shape":"UntagResourceResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Removes one or more tags from the specified resource.</p>",
      "idempotent":true
    },
    "UpdateBrowserSettings":{
      "name":"UpdateBrowserSettings",
      "http":{
        "method":"PATCH",
        "requestUri":"/browserSettings/{browserSettingsArn+}",
        "responseCode":200
      },
      "input":{"shape":"UpdateBrowserSettingsRequest"},
      "output":{"shape":"UpdateBrowserSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Updates browser settings.</p>"
    },
    "UpdateDataProtectionSettings":{
      "name":"UpdateDataProtectionSettings",
      "http":{
        "method":"PATCH",
        "requestUri":"/dataProtectionSettings/{dataProtectionSettingsArn+}",
        "responseCode":200
      },
      "input":{"shape":"UpdateDataProtectionSettingsRequest"},
      "output":{"shape":"UpdateDataProtectionSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Updates data protection settings.</p>"
    },
    "UpdateIdentityProvider":{
      "name":"UpdateIdentityProvider",
      "http":{
        "method":"PATCH",
        "requestUri":"/identityProviders/{identityProviderArn+}",
        "responseCode":200
      },
      "input":{"shape":"UpdateIdentityProviderRequest"},
      "output":{"shape":"UpdateIdentityProviderResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Updates the identity provider. </p>"
    },
    "UpdateIpAccessSettings":{
      "name":"UpdateIpAccessSettings",
      "http":{
        "method":"PATCH",
        "requestUri":"/ipAccessSettings/{ipAccessSettingsArn+}",
        "responseCode":200
      },
      "input":{"shape":"UpdateIpAccessSettingsRequest"},
      "output":{"shape":"UpdateIpAccessSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Updates IP access settings.</p>"
    },
    "UpdateNetworkSettings":{
      "name":"UpdateNetworkSettings",
      "http":{
        "method":"PATCH",
        "requestUri":"/networkSettings/{networkSettingsArn+}",
        "responseCode":200
      },
      "input":{"shape":"UpdateNetworkSettingsRequest"},
      "output":{"shape":"UpdateNetworkSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Updates network settings.</p>"
    },
    "UpdatePortal":{
      "name":"UpdatePortal",
      "http":{
        "method":"PUT",
        "requestUri":"/portals/{portalArn+}",
        "responseCode":200
      },
      "input":{"shape":"UpdatePortalRequest"},
      "output":{"shape":"UpdatePortalResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"}
      ],
      "documentation":"<p>Updates a web portal.</p>",
      "idempotent":true
    },
    "UpdateSessionLogger":{
      "name":"UpdateSessionLogger",
      "http":{
        "method":"POST",
        "requestUri":"/sessionLoggers/{sessionLoggerArn+}",
        "responseCode":200
      },
      "input":{"shape":"UpdateSessionLoggerRequest"},
      "output":{"shape":"UpdateSessionLoggerResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Updates the details of a session logger.</p>"
    },
    "UpdateTrustStore":{
      "name":"UpdateTrustStore",
      "http":{
        "method":"PATCH",
        "requestUri":"/trustStores/{trustStoreArn+}",
        "responseCode":200
      },
      "input":{"shape":"UpdateTrustStoreRequest"},
      "output":{"shape":"UpdateTrustStoreResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Updates the trust store.</p>"
    },
    "UpdateUserAccessLoggingSettings":{
      "name":"UpdateUserAccessLoggingSettings",
      "http":{
        "method":"PATCH",
        "requestUri":"/userAccessLoggingSettings/{userAccessLoggingSettingsArn+}",
        "responseCode":200
      },
      "input":{"shape":"UpdateUserAccessLoggingSettingsRequest"},
      "output":{"shape":"UpdateUserAccessLoggingSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Updates the user access logging settings.</p>"
    },
    "UpdateUserSettings":{
      "name":"UpdateUserSettings",
      "http":{
        "method":"PATCH",
        "requestUri":"/userSettings/{userSettingsArn+}",
        "responseCode":200
      },
      "input":{"shape":"UpdateUserSettingsRequest"},
      "output":{"shape":"UpdateUserSettingsResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"AccessDeniedException"},
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Updates the user settings.</p>"
    }
  },
  "shapes":{
    "ARN":{
      "type":"string",
      "max":2048,
      "min":20,
      "pattern":"arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36})+"
    },
    "AccessDeniedException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ExceptionMessage"}
      },
      "documentation":"<p>Access is denied.</p>",
      "error":{
        "httpStatusCode":403,
        "senderFault":true
      },
      "exception":true
    },
    "ArnList":{
      "type":"list",
      "member":{"shape":"ARN"}
    },
    "AssociateBrowserSettingsRequest":{
      "type":"structure",
      "required":[
        "portalArn",
        "browserSettingsArn"
      ],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>",
          "location":"uri",
          "locationName":"portalArn"
        },
        "browserSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the browser settings.</p>",
          "location":"querystring",
          "locationName":"browserSettingsArn"
        }
      }
    },
    "AssociateBrowserSettingsResponse":{
      "type":"structure",
      "required":[
        "portalArn",
        "browserSettingsArn"
      ],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>"
        },
        "browserSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the browser settings.</p>"
        }
      }
    },
    "AssociateDataProtectionSettingsRequest":{
      "type":"structure",
      "required":[
        "portalArn",
        "dataProtectionSettingsArn"
      ],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>",
          "location":"uri",
          "locationName":"portalArn"
        },
        "dataProtectionSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the data protection settings.</p>",
          "location":"querystring",
          "locationName":"dataProtectionSettingsArn"
        }
      }
    },
    "AssociateDataProtectionSettingsResponse":{
      "type":"structure",
      "required":[
        "portalArn",
        "dataProtectionSettingsArn"
      ],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>"
        },
        "dataProtectionSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the data protection settings resource.</p>"
        }
      }
    },
    "AssociateIpAccessSettingsRequest":{
      "type":"structure",
      "required":[
        "portalArn",
        "ipAccessSettingsArn"
      ],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>",
          "location":"uri",
          "locationName":"portalArn"
        },
        "ipAccessSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the IP access settings.</p>",
          "location":"querystring",
          "locationName":"ipAccessSettingsArn"
        }
      }
    },
    "AssociateIpAccessSettingsResponse":{
      "type":"structure",
      "required":[
        "portalArn",
        "ipAccessSettingsArn"
      ],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>"
        },
        "ipAccessSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the IP access settings resource.</p>"
        }
      }
    },
    "AssociateNetworkSettingsRequest":{
      "type":"structure",
      "required":[
        "portalArn",
        "networkSettingsArn"
      ],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>",
          "location":"uri",
          "locationName":"portalArn"
        },
        "networkSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the network settings.</p>",
          "location":"querystring",
          "locationName":"networkSettingsArn"
        }
      }
    },
    "AssociateNetworkSettingsResponse":{
      "type":"structure",
      "required":[
        "portalArn",
        "networkSettingsArn"
      ],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>"
        },
        "networkSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the network settings.</p>"
        }
      }
    },
    "AssociateSessionLoggerRequest":{
      "type":"structure",
      "required":[
        "portalArn",
        "sessionLoggerArn"
      ],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the portal to associate to the session logger ARN.</p>",
          "location":"uri",
          "locationName":"portalArn"
        },
        "sessionLoggerArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the session logger to associate to the portal ARN.</p>",
          "location":"querystring",
          "locationName":"sessionLoggerArn"
        }
      }
    },
    "AssociateSessionLoggerResponse":{
      "type":"structure",
      "required":[
        "portalArn",
        "sessionLoggerArn"
      ],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the portal.</p>"
        },
        "sessionLoggerArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the session logger.</p>"
        }
      }
    },
    "AssociateTrustStoreRequest":{
      "type":"structure",
      "required":[
        "portalArn",
        "trustStoreArn"
      ],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>",
          "location":"uri",
          "locationName":"portalArn"
        },
        "trustStoreArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the trust store.</p>",
          "location":"querystring",
          "locationName":"trustStoreArn"
        }
      }
    },
    "AssociateTrustStoreResponse":{
      "type":"structure",
      "required":[
        "portalArn",
        "trustStoreArn"
      ],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>"
        },
        "trustStoreArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the trust store.</p>"
        }
      }
    },
    "AssociateUserAccessLoggingSettingsRequest":{
      "type":"structure",
      "required":[
        "portalArn",
        "userAccessLoggingSettingsArn"
      ],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>",
          "location":"uri",
          "locationName":"portalArn"
        },
        "userAccessLoggingSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the user access logging settings.</p>",
          "location":"querystring",
          "locationName":"userAccessLoggingSettingsArn"
        }
      }
    },
    "AssociateUserAccessLoggingSettingsResponse":{
      "type":"structure",
      "required":[
        "portalArn",
        "userAccessLoggingSettingsArn"
      ],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>"
        },
        "userAccessLoggingSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the user access logging settings.</p>"
        }
      }
    },
    "AssociateUserSettingsRequest":{
      "type":"structure",
      "required":[
        "portalArn",
        "userSettingsArn"
      ],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>",
          "location":"uri",
          "locationName":"portalArn"
        },
        "userSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the user settings.</p>",
          "location":"querystring",
          "locationName":"userSettingsArn"
        }
      }
    },
    "AssociateUserSettingsResponse":{
      "type":"structure",
      "required":[
        "portalArn",
        "userSettingsArn"
      ],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>"
        },
        "userSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the user settings.</p>"
        }
      }
    },
    "AuthenticationType":{
      "type":"string",
      "enum":[
        "Standard",
        "IAM_Identity_Center"
      ]
    },
    "BlockedCategories":{
      "type":"list",
      "member":{"shape":"Category"},
      "max":100,
      "min":1
    },
    "BrandingConfiguration":{
      "type":"structure",
      "required":[
        "logo",
        "favicon",
        "localizedStrings",
        "colorTheme"
      ],
      "members":{
        "logo":{
          "shape":"ImageMetadata",
          "documentation":"<p>Metadata for the logo image file, including the MIME type, file extension, and upload timestamp.</p>"
        },
        "wallpaper":{
          "shape":"ImageMetadata",
          "documentation":"<p>Metadata for the wallpaper image file, including the MIME type, file extension, and upload timestamp.</p>"
        },
        "favicon":{
          "shape":"ImageMetadata",
          "documentation":"<p>Metadata for the favicon image file, including the MIME type, file extension, and upload timestamp.</p>"
        },
        "localizedStrings":{
          "shape":"LocalizedBrandingStringMap",
          "documentation":"<p>A map of localized text strings for different languages, allowing the portal to display content in the user's preferred language.</p>"
        },
        "colorTheme":{
          "shape":"ColorTheme",
          "documentation":"<p>The color theme for components on the web portal.</p>"
        },
        "termsOfService":{
          "shape":"Markdown",
          "documentation":"<p>The terms of service text in Markdown format that users must accept before accessing the portal.</p>"
        }
      },
      "documentation":"<p>The branding configuration output including custom images metadata, localized strings, color theme, and terms of service.</p>"
    },
    "BrandingConfigurationCreateInput":{
      "type":"structure",
      "required":[
        "logo",
        "favicon",
        "localizedStrings",
        "colorTheme"
      ],
      "members":{
        "logo":{
          "shape":"IconImageInput",
          "documentation":"<p>The logo image for the portal. Provide either a binary image file or an S3 URI pointing to the image file. Maximum 100 KB in JPEG, PNG, or ICO format.</p>"
        },
        "wallpaper":{
          "shape":"WallpaperImageInput",
          "documentation":"<p>The wallpaper image for the portal. Provide either a binary image file or an S3 URI pointing to the image file. Maximum 5 MB in JPEG or PNG format. If not provided, a default wallpaper will be used as the background image.</p>"
        },
        "favicon":{
          "shape":"IconImageInput",
          "documentation":"<p>The favicon image for the portal. Provide either a binary image file or an S3 URI pointing to the image file. Maximum 100 KB in JPEG, PNG, or ICO format.</p>"
        },
        "localizedStrings":{
          "shape":"LocalizedBrandingStringMap",
          "documentation":"<p>A map of localized text strings for different supported languages. Each locale must provide the required fields <code>browserTabTitle</code> and <code>welcomeText</code>.</p>"
        },
        "colorTheme":{
          "shape":"ColorTheme",
          "documentation":"<p>The color theme for components on the web portal. Choose <code>Light</code> if you upload a dark wallpaper, or <code>Dark</code> for a light wallpaper.</p>"
        },
        "termsOfService":{
          "shape":"Markdown",
          "documentation":"<p>The terms of service text in Markdown format. Users will be presented with the terms of service after successfully signing in.</p>"
        }
      },
      "documentation":"<p>The input configuration for creating branding settings.</p>"
    },
    "BrandingConfigurationUpdateInput":{
      "type":"structure",
      "members":{
        "logo":{
          "shape":"IconImageInput",
          "documentation":"<p>The logo image for the portal. Provide either a binary image file or an S3 URI pointing to the image file. Maximum 100 KB in JPEG, PNG, or ICO format.</p>"
        },
        "wallpaper":{
          "shape":"WallpaperImageInput",
          "documentation":"<p>The wallpaper image for the portal. Provide either a binary image file or an S3 URI pointing to the image file. Maximum 5 MB in JPEG or PNG format.</p>"
        },
        "favicon":{
          "shape":"IconImageInput",
          "documentation":"<p>The favicon image for the portal. Provide either a binary image file or an S3 URI pointing to the image file. Maximum 100 KB in JPEG, PNG, or ICO format.</p>"
        },
        "localizedStrings":{
          "shape":"LocalizedBrandingStringMap",
          "documentation":"<p>A map of localized text strings for different supported languages. Each locale must provide the required fields <code>browserTabTitle</code> and <code>welcomeText</code>.</p>"
        },
        "colorTheme":{
          "shape":"ColorTheme",
          "documentation":"<p>The color theme for components on the web portal. Choose <code>Light</code> if you upload a dark wallpaper, or <code>Dark</code> for a light wallpaper.</p>"
        },
        "termsOfService":{
          "shape":"Markdown",
          "documentation":"<p>The terms of service text in Markdown format. To remove existing terms of service, provide an empty string.</p>"
        }
      },
      "documentation":"<p>The input configuration for updating branding settings. All fields are optional when updating existing branding.</p>"
    },
    "BrowserPolicy":{
      "type":"string",
      "max":131072,
      "min":2,
      "pattern":"\\{[\\S\\s]*\\}\\s*",
      "sensitive":true
    },
    "BrowserSettings":{
      "type":"structure",
      "required":["browserSettingsArn"],
      "members":{
        "browserSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the browser settings.</p>"
        },
        "associatedPortalArns":{
          "shape":"ArnList",
          "documentation":"<p>A list of web portal ARNs that this browser settings is associated with.</p>"
        },
        "browserPolicy":{
          "shape":"BrowserPolicy",
          "documentation":"<p>A JSON string containing Chrome Enterprise policies that will be applied to all streaming sessions.</p>"
        },
        "customerManagedKey":{
          "shape":"keyArn",
          "documentation":"<p>The customer managed key used to encrypt sensitive information in the browser settings.</p>"
        },
        "additionalEncryptionContext":{
          "shape":"EncryptionContextMap",
          "documentation":"<p>The additional encryption context of the browser settings.</p>"
        },
        "webContentFilteringPolicy":{
          "shape":"WebContentFilteringPolicy",
          "documentation":"<p>The policy that specifies which URLs end users are allowed to access or which URLs or domain categories they are restricted from accessing for enhanced security.</p>"
        }
      },
      "documentation":"<p>The browser settings resource that can be associated with a web portal. Once associated with a web portal, browser settings control how the browser will behave once a user starts a streaming session for the web portal. </p>"
    },
    "BrowserSettingsList":{
      "type":"list",
      "member":{"shape":"BrowserSettingsSummary"}
    },
    "BrowserSettingsSummary":{
      "type":"structure",
      "required":["browserSettingsArn"],
      "members":{
        "browserSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the browser settings.</p>"
        }
      },
      "documentation":"<p>The summary for browser settings.</p>"
    },
    "BrowserType":{
      "type":"string",
      "enum":["Chrome"]
    },
    "BuiltInPatternId":{
      "type":"string",
      "max":50,
      "min":1,
      "pattern":"[_\\-\\d\\w]+",
      "sensitive":true
    },
    "Category":{
      "type":"string",
      "enum":[
        "Cults",
        "Gambling",
        "Nudity",
        "Pornography",
        "SexEducation",
        "Tasteless",
        "Violence",
        "DownloadSites",
        "ImageSharing",
        "PeerToPeer",
        "StreamingMediaAndDownloads",
        "GenerativeAI",
        "CriminalActivity",
        "Hacking",
        "HateAndIntolerance",
        "IllegalDrug",
        "IllegalSoftware",
        "SchoolCheating",
        "SelfHarm",
        "Weapons",
        "Chat",
        "Games",
        "InstantMessaging",
        "ProfessionalNetwork",
        "SocialNetworking",
        "WebBasedEmail",
        "ParkedDomains"
      ]
    },
    "Certificate":{
      "type":"structure",
      "members":{
        "thumbprint":{
          "shape":"CertificateThumbprint",
          "documentation":"<p>A hexadecimal identifier for the certificate.</p>"
        },
        "subject":{
          "shape":"CertificatePrincipal",
          "documentation":"<p>The entity the certificate belongs to.</p>"
        },
        "issuer":{
          "shape":"CertificatePrincipal",
          "documentation":"<p>The entity that issued the certificate.</p>"
        },
        "notValidBefore":{
          "shape":"Timestamp",
          "documentation":"<p>The certificate is not valid before this date.</p>"
        },
        "notValidAfter":{
          "shape":"Timestamp",
          "documentation":"<p>The certificate is not valid after this date.</p>"
        },
        "body":{
          "shape":"CertificateAuthorityBody",
          "documentation":"<p>The body of the certificate.</p>"
        }
      },
      "documentation":"<p>The certificate.</p>"
    },
    "CertificateAuthorityBody":{
      "type":"blob",
      "max":32768,
      "min":1
    },
    "CertificateList":{
      "type":"list",
      "member":{"shape":"CertificateAuthorityBody"}
    },
    "CertificatePrincipal":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"\\S+"
    },
    "CertificateSummary":{
      "type":"structure",
      "members":{
        "thumbprint":{
          "shape":"CertificateThumbprint",
          "documentation":"<p>A hexadecimal identifier for the certificate.</p>"
        },
        "subject":{
          "shape":"CertificatePrincipal",
          "documentation":"<p>The entity the certificate belongs to.</p>"
        },
        "issuer":{
          "shape":"CertificatePrincipal",
          "documentation":"<p>The entity that issued the certificate.</p>"
        },
        "notValidBefore":{
          "shape":"Timestamp",
          "documentation":"<p>The certificate is not valid before this date.</p>"
        },
        "notValidAfter":{
          "shape":"Timestamp",
          "documentation":"<p>The certificate is not valid after this date.</p>"
        }
      },
      "documentation":"<p>The summary of the certificate.</p>"
    },
    "CertificateSummaryList":{
      "type":"list",
      "member":{"shape":"CertificateSummary"}
    },
    "CertificateThumbprint":{
      "type":"string",
      "max":64,
      "min":64,
      "pattern":"[A-Fa-f0-9]{64}"
    },
    "CertificateThumbprintList":{
      "type":"list",
      "member":{"shape":"CertificateThumbprint"}
    },
    "ClientToken":{
      "type":"string",
      "max":512,
      "min":1
    },
    "ColorTheme":{
      "type":"string",
      "enum":[
        "Light",
        "Dark"
      ]
    },
    "ConfidenceLevel":{
      "type":"integer",
      "box":true,
      "max":3,
      "min":1
    },
    "ConflictException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ExceptionMessage"},
        "resourceId":{
          "shape":"ResourceId",
          "documentation":"<p>Identifier of the resource affected.</p>"
        },
        "resourceType":{
          "shape":"ResourceType",
          "documentation":"<p>Type of the resource affected.</p>"
        }
      },
      "documentation":"<p>There is a conflict.</p>",
      "error":{
        "httpStatusCode":409,
        "senderFault":true
      },
      "exception":true
    },
    "ContactLinkUrl":{
      "type":"string",
      "pattern":"(https://|mailto:).*"
    },
    "CookieDomain":{
      "type":"string",
      "max":253,
      "min":0,
      "pattern":"(\\.?)(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9][a-z0-9-]{0,61}[a-z0-9]",
      "sensitive":true
    },
    "CookieName":{
      "type":"string",
      "max":4096,
      "min":0,
      "sensitive":true
    },
    "CookiePath":{
      "type":"string",
      "max":2000,
      "min":0,
      "pattern":"/(\\S)*",
      "sensitive":true
    },
    "CookieSpecification":{
      "type":"structure",
      "required":["domain"],
      "members":{
        "domain":{
          "shape":"CookieDomain",
          "documentation":"<p>The domain of the cookie.</p>"
        },
        "name":{
          "shape":"CookieName",
          "documentation":"<p>The name of the cookie.</p>"
        },
        "path":{
          "shape":"CookiePath",
          "documentation":"<p>The path of the cookie.</p>"
        }
      },
      "documentation":"<p>Specifies a single cookie or set of cookies in an end user's browser.</p>"
    },
    "CookieSpecifications":{
      "type":"list",
      "member":{"shape":"CookieSpecification"},
      "max":10,
      "min":0
    },
    "CookieSynchronizationConfiguration":{
      "type":"structure",
      "required":["allowlist"],
      "members":{
        "allowlist":{
          "shape":"CookieSpecifications",
          "documentation":"<p>The list of cookie specifications that are allowed to be synchronized to the remote browser.</p>"
        },
        "blocklist":{
          "shape":"CookieSpecifications",
          "documentation":"<p>The list of cookie specifications that are blocked from being synchronized to the remote browser.</p>"
        }
      },
      "documentation":"<p>The configuration that specifies which cookies should be synchronized from the end user's local browser to the remote browser.</p>",
      "sensitive":true
    },
    "CreateBrowserSettingsRequest":{
      "type":"structure",
      "members":{
        "tags":{
          "shape":"TagList",
          "documentation":"<p>The tags to add to the browser settings resource. A tag is a key-value pair.</p>"
        },
        "customerManagedKey":{
          "shape":"keyArn",
          "documentation":"<p>The custom managed key of the browser settings.</p>"
        },
        "additionalEncryptionContext":{
          "shape":"EncryptionContextMap",
          "documentation":"<p>Additional encryption context of the browser settings.</p>"
        },
        "browserPolicy":{
          "shape":"BrowserPolicy",
          "documentation":"<p>A JSON string containing Chrome Enterprise policies that will be applied to all streaming sessions.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.</p> <p>If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK. </p>",
          "idempotencyToken":true
        },
        "webContentFilteringPolicy":{
          "shape":"WebContentFilteringPolicy",
          "documentation":"<p>The policy that specifies which URLs end users are allowed to access or which URLs or domain categories they are restricted from accessing for enhanced security.</p>"
        }
      }
    },
    "CreateBrowserSettingsResponse":{
      "type":"structure",
      "required":["browserSettingsArn"],
      "members":{
        "browserSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the browser settings.</p>"
        }
      }
    },
    "CreateDataProtectionSettingsRequest":{
      "type":"structure",
      "members":{
        "displayName":{
          "shape":"DisplayNameSafe",
          "documentation":"<p>The display name of the data protection settings.</p>"
        },
        "description":{
          "shape":"DescriptionSafe",
          "documentation":"<p>The description of the data protection settings.</p>"
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>The tags to add to the data protection settings resource. A tag is a key-value pair.</p>"
        },
        "customerManagedKey":{
          "shape":"keyArn",
          "documentation":"<p>The custom managed key of the data protection settings.</p>"
        },
        "additionalEncryptionContext":{
          "shape":"EncryptionContextMap",
          "documentation":"<p>Additional encryption context of the data protection settings.</p>"
        },
        "inlineRedactionConfiguration":{
          "shape":"InlineRedactionConfiguration",
          "documentation":"<p>The inline redaction configuration of the data protection settings that will be applied to all sessions.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. </p> <p>If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.</p>",
          "idempotencyToken":true
        }
      }
    },
    "CreateDataProtectionSettingsResponse":{
      "type":"structure",
      "required":["dataProtectionSettingsArn"],
      "members":{
        "dataProtectionSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the data protection settings resource.</p>"
        }
      }
    },
    "CreateIdentityProviderRequest":{
      "type":"structure",
      "required":[
        "portalArn",
        "identityProviderName",
        "identityProviderType",
        "identityProviderDetails"
      ],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>"
        },
        "identityProviderName":{
          "shape":"IdentityProviderName",
          "documentation":"<p>The identity provider name.</p>"
        },
        "identityProviderType":{
          "shape":"IdentityProviderType",
          "documentation":"<p>The identity provider type.</p>"
        },
        "identityProviderDetails":{
          "shape":"IdentityProviderDetails",
          "documentation":"<p>The identity provider details. The following list describes the provider detail keys for each identity provider type. </p> <ul> <li> <p>For Google and Login with Amazon:</p> <ul> <li> <p> <code>client_id</code> </p> </li> <li> <p> <code>client_secret</code> </p> </li> <li> <p> <code>authorize_scopes</code> </p> </li> </ul> </li> <li> <p>For Facebook:</p> <ul> <li> <p> <code>client_id</code> </p> </li> <li> <p> <code>client_secret</code> </p> </li> <li> <p> <code>authorize_scopes</code> </p> </li> <li> <p> <code>api_version</code> </p> </li> </ul> </li> <li> <p>For Sign in with Apple:</p> <ul> <li> <p> <code>client_id</code> </p> </li> <li> <p> <code>team_id</code> </p> </li> <li> <p> <code>key_id</code> </p> </li> <li> <p> <code>private_key</code> </p> </li> <li> <p> <code>authorize_scopes</code> </p> </li> </ul> </li> <li> <p>For OIDC providers:</p> <ul> <li> <p> <code>client_id</code> </p> </li> <li> <p> <code>client_secret</code> </p> </li> <li> <p> <code>attributes_request_method</code> </p> </li> <li> <p> <code>oidc_issuer</code> </p> </li> <li> <p> <code>authorize_scopes</code> </p> </li> <li> <p> <code>authorize_url</code> <i>if not available from discovery URL specified by <code>oidc_issuer</code> key</i> </p> </li> <li> <p> <code>token_url</code> <i>if not available from discovery URL specified by <code>oidc_issuer</code> key</i> </p> </li> <li> <p> <code>attributes_url</code> <i>if not available from discovery URL specified by <code>oidc_issuer</code> key</i> </p> </li> <li> <p> <code>jwks_uri</code> <i>if not available from discovery URL specified by <code>oidc_issuer</code> key</i> </p> </li> </ul> </li> <li> <p>For SAML providers:</p> <ul> <li> <p> <code>MetadataFile</code> OR <code>MetadataURL</code> </p> </li> <li> <p> <code>IDPSignout</code> (boolean) <i>optional</i> </p> </li> <li> <p> <code>IDPInit</code> (boolean) <i>optional</i> </p> </li> <li> <p> <code>RequestSigningAlgorithm</code> (string) <i>optional</i> - Only accepts <code>rsa-sha256</code> </p> </li> <li> <p> <code>EncryptedResponses</code> (boolean) <i>optional</i> </p> </li> </ul> </li> </ul>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.</p> <p>If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.</p>",
          "idempotencyToken":true
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>The tags to add to the identity provider resource. A tag is a key-value pair.</p>"
        }
      }
    },
    "CreateIdentityProviderResponse":{
      "type":"structure",
      "required":["identityProviderArn"],
      "members":{
        "identityProviderArn":{
          "shape":"SubresourceARN",
          "documentation":"<p>The ARN of the identity provider.</p>"
        }
      }
    },
    "CreateIpAccessSettingsRequest":{
      "type":"structure",
      "required":["ipRules"],
      "members":{
        "displayName":{
          "shape":"DisplayName",
          "documentation":"<p>The display name of the IP access settings.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the IP access settings.</p>"
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>The tags to add to the IP access settings resource. A tag is a key-value pair.</p>"
        },
        "customerManagedKey":{
          "shape":"keyArn",
          "documentation":"<p>The custom managed key of the IP access settings.</p>"
        },
        "additionalEncryptionContext":{
          "shape":"EncryptionContextMap",
          "documentation":"<p>Additional encryption context of the IP access settings.</p>"
        },
        "ipRules":{
          "shape":"IpRuleList",
          "documentation":"<p>The IP rules of the IP access settings.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. </p> <p>If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.</p>",
          "idempotencyToken":true
        }
      }
    },
    "CreateIpAccessSettingsResponse":{
      "type":"structure",
      "required":["ipAccessSettingsArn"],
      "members":{
        "ipAccessSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the IP access settings resource.</p>"
        }
      }
    },
    "CreateNetworkSettingsRequest":{
      "type":"structure",
      "required":[
        "vpcId",
        "subnetIds",
        "securityGroupIds"
      ],
      "members":{
        "vpcId":{
          "shape":"VpcId",
          "documentation":"<p>The VPC that streaming instances will connect to.</p>"
        },
        "subnetIds":{
          "shape":"SubnetIdList",
          "documentation":"<p>The subnets in which network interfaces are created to connect streaming instances to your VPC. At least two of these subnets must be in different availability zones.</p>"
        },
        "securityGroupIds":{
          "shape":"SecurityGroupIdList",
          "documentation":"<p>One or more security groups used to control access from streaming instances to your VPC.</p>"
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>The tags to add to the network settings resource. A tag is a key-value pair.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. </p> <p>If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.</p>",
          "idempotencyToken":true
        }
      }
    },
    "CreateNetworkSettingsResponse":{
      "type":"structure",
      "required":["networkSettingsArn"],
      "members":{
        "networkSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the network settings.</p>"
        }
      }
    },
    "CreatePortalRequest":{
      "type":"structure",
      "members":{
        "displayName":{
          "shape":"DisplayName",
          "documentation":"<p>The name of the web portal. This is not visible to users who log into the web portal.</p>"
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>The tags to add to the web portal. A tag is a key-value pair.</p>"
        },
        "customerManagedKey":{
          "shape":"keyArn",
          "documentation":"<p>The customer managed key of the web portal.</p>"
        },
        "additionalEncryptionContext":{
          "shape":"EncryptionContextMap",
          "documentation":"<p>The additional encryption context of the portal.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. </p> <p>If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.</p>",
          "idempotencyToken":true
        },
        "authenticationType":{
          "shape":"AuthenticationType",
          "documentation":"<p>The type of authentication integration points used when signing into the web portal. Defaults to <code>Standard</code>.</p> <p> <code>Standard</code> web portals are authenticated directly through your identity provider. You need to call <code>CreateIdentityProvider</code> to integrate your identity provider with your web portal. User and group access to your web portal is controlled through your identity provider.</p> <p> <code>IAM Identity Center</code> web portals are authenticated through IAM Identity Center. Identity sources (including external identity provider integration), plus user and group access to your web portal, can be configured in the IAM Identity Center.</p>"
        },
        "instanceType":{
          "shape":"InstanceType",
          "documentation":"<p>The type and resources of the underlying instance.</p>"
        },
        "maxConcurrentSessions":{
          "shape":"MaxConcurrentSessions",
          "documentation":"<p>The maximum number of concurrent sessions for the portal.</p>"
        },
        "portalCustomDomain":{
          "shape":"PortalCustomDomain",
          "documentation":"<p>The custom domain of the web portal that users access in order to start streaming sessions.</p>"
        }
      }
    },
    "CreatePortalResponse":{
      "type":"structure",
      "required":[
        "portalArn",
        "portalEndpoint"
      ],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>"
        },
        "portalEndpoint":{
          "shape":"PortalEndpoint",
          "documentation":"<p>The endpoint URL of the web portal that users access in order to start streaming sessions.</p>"
        }
      }
    },
    "CreateSessionLoggerRequest":{
      "type":"structure",
      "required":[
        "eventFilter",
        "logConfiguration"
      ],
      "members":{
        "eventFilter":{
          "shape":"EventFilter",
          "documentation":"<p>The filter that specifies the events to monitor.</p>"
        },
        "logConfiguration":{
          "shape":"LogConfiguration",
          "documentation":"<p>The configuration that specifies where logs are delivered.</p>"
        },
        "displayName":{
          "shape":"DisplayNameSafe",
          "documentation":"<p>The human-readable display name for the session logger resource.</p>"
        },
        "customerManagedKey":{
          "shape":"keyArn",
          "documentation":"<p>The custom managed key of the session logger.</p>"
        },
        "additionalEncryptionContext":{
          "shape":"EncryptionContextMap",
          "documentation":"<p>The additional encryption context of the session logger.</p>"
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>The tags to add to the session logger.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. If you do not specify a client token, one is automatically generated by the AWS SDK.</p>",
          "idempotencyToken":true
        }
      }
    },
    "CreateSessionLoggerResponse":{
      "type":"structure",
      "required":["sessionLoggerArn"],
      "members":{
        "sessionLoggerArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the session logger.</p>"
        }
      }
    },
    "CreateTrustStoreRequest":{
      "type":"structure",
      "required":["certificateList"],
      "members":{
        "certificateList":{
          "shape":"CertificateList",
          "documentation":"<p>A list of CA certificates to be added to the trust store.</p>"
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>The tags to add to the trust store. A tag is a key-value pair.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. </p> <p>If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.</p>",
          "idempotencyToken":true
        }
      }
    },
    "CreateTrustStoreResponse":{
      "type":"structure",
      "required":["trustStoreArn"],
      "members":{
        "trustStoreArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the trust store.</p>"
        }
      }
    },
    "CreateUserAccessLoggingSettingsRequest":{
      "type":"structure",
      "required":["kinesisStreamArn"],
      "members":{
        "kinesisStreamArn":{
          "shape":"KinesisStreamArn",
          "documentation":"<p>The ARN of the Kinesis stream.</p>"
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>The tags to add to the user settings resource. A tag is a key-value pair.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. </p> <p>If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.</p>",
          "idempotencyToken":true
        }
      }
    },
    "CreateUserAccessLoggingSettingsResponse":{
      "type":"structure",
      "required":["userAccessLoggingSettingsArn"],
      "members":{
        "userAccessLoggingSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the user access logging settings.</p>"
        }
      }
    },
    "CreateUserSettingsRequest":{
      "type":"structure",
      "required":[
        "copyAllowed",
        "pasteAllowed",
        "downloadAllowed",
        "uploadAllowed",
        "printAllowed"
      ],
      "members":{
        "copyAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can copy text from the streaming session to the local device.</p>"
        },
        "pasteAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can paste text from the local device to the streaming session.</p>"
        },
        "downloadAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can download files from the streaming session to the local device.</p>"
        },
        "uploadAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can upload files from the local device to the streaming session.</p>"
        },
        "printAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can print to the local device.</p>"
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>The tags to add to the user settings resource. A tag is a key-value pair.</p>"
        },
        "disconnectTimeoutInMinutes":{
          "shape":"DisconnectTimeoutInMinutes",
          "documentation":"<p>The amount of time that a streaming session remains active after users disconnect.</p>"
        },
        "idleDisconnectTimeoutInMinutes":{
          "shape":"IdleDisconnectTimeoutInMinutes",
          "documentation":"<p>The amount of time that users can be idle (inactive) before they are disconnected from their streaming session and the disconnect timeout interval begins.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. </p> <p>If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.</p>",
          "idempotencyToken":true
        },
        "cookieSynchronizationConfiguration":{
          "shape":"CookieSynchronizationConfiguration",
          "documentation":"<p>The configuration that specifies which cookies should be synchronized from the end user's local browser to the remote browser.</p>"
        },
        "customerManagedKey":{
          "shape":"keyArn",
          "documentation":"<p>The customer managed key used to encrypt sensitive information in the user settings.</p>"
        },
        "additionalEncryptionContext":{
          "shape":"EncryptionContextMap",
          "documentation":"<p>The additional encryption context of the user settings.</p>"
        },
        "deepLinkAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can use deep links that open automatically when connecting to a session.</p>"
        },
        "toolbarConfiguration":{
          "shape":"ToolbarConfiguration",
          "documentation":"<p>The configuration of the toolbar. This allows administrators to select the toolbar type and visual mode, set maximum display resolution for sessions, and choose which items are visible to end users during their sessions. If administrators do not modify these settings, end users retain control over their toolbar preferences.</p>"
        },
        "brandingConfigurationInput":{
          "shape":"BrandingConfigurationCreateInput",
          "documentation":"<p>The branding configuration input that customizes the appearance of the web portal for end users. This includes a custom logo, favicon, localized strings, color theme, and optionally a wallpaper and terms of service.</p>"
        },
        "webAuthnAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can use WebAuthn redirection for passwordless login to websites within the streaming session.</p>"
        }
      }
    },
    "CreateUserSettingsResponse":{
      "type":"structure",
      "required":["userSettingsArn"],
      "members":{
        "userSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the user settings.</p>"
        }
      }
    },
    "CustomPattern":{
      "type":"structure",
      "required":[
        "patternName",
        "patternRegex"
      ],
      "members":{
        "patternName":{
          "shape":"PatternName",
          "documentation":"<p>The pattern name for the custom pattern.</p>"
        },
        "patternRegex":{
          "shape":"Regex",
          "documentation":"<p>The pattern regex for the customer pattern. The format must follow JavaScript regex format. The pattern must be enclosed between slashes, and can have flags behind the second slash. For example: “/ab+c/gi”.</p>"
        },
        "patternDescription":{
          "shape":"DescriptionSafe",
          "documentation":"<p>The pattern description for the customer pattern.</p>"
        },
        "keywordRegex":{
          "shape":"Regex",
          "documentation":"<p>The keyword regex for the customer pattern. After there is a match to the pattern regex, the keyword regex is used to search within the proximity of the match. If there is a keyword match, then the match is confirmed. If no keyword regex is provided, the pattern regex match will automatically be confirmed. The format must follow JavaScript regex format. The pattern must be enclosed between slashes, and can have flags behind the second slash. For example, “/ab+c/gi”</p>"
        }
      },
      "documentation":"<p>The pattern configuration for redacting custom data types in session.</p>"
    },
    "DataProtectionSettings":{
      "type":"structure",
      "required":["dataProtectionSettingsArn"],
      "members":{
        "dataProtectionSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the data protection settings resource.</p>"
        },
        "inlineRedactionConfiguration":{
          "shape":"InlineRedactionConfiguration",
          "documentation":"<p>The inline redaction configuration for the data protection settings.</p>"
        },
        "associatedPortalArns":{
          "shape":"ArnList",
          "documentation":"<p>A list of web portal ARNs that this data protection settings resource is associated with.</p>"
        },
        "displayName":{
          "shape":"DisplayNameSafe",
          "documentation":"<p>The display name of the data protection settings.</p>"
        },
        "description":{
          "shape":"DescriptionSafe",
          "documentation":"<p>The description of the data protection settings.</p>"
        },
        "creationDate":{
          "shape":"Timestamp",
          "documentation":"<p>The creation date timestamp of the data protection settings.</p>"
        },
        "customerManagedKey":{
          "shape":"keyArn",
          "documentation":"<p>The customer managed key used to encrypt sensitive information in the data protection settings.</p>"
        },
        "additionalEncryptionContext":{
          "shape":"EncryptionContextMap",
          "documentation":"<p>The additional encryption context of the data protection settings.</p>"
        }
      },
      "documentation":"<p>The data protection settings resource that can be associated with a web portal.</p>"
    },
    "DataProtectionSettingsList":{
      "type":"list",
      "member":{"shape":"DataProtectionSettingsSummary"}
    },
    "DataProtectionSettingsSummary":{
      "type":"structure",
      "required":["dataProtectionSettingsArn"],
      "members":{
        "dataProtectionSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the data protection settings.</p>"
        },
        "displayName":{
          "shape":"DisplayNameSafe",
          "documentation":"<p>The display name of the data protection settings.</p>"
        },
        "description":{
          "shape":"DescriptionSafe",
          "documentation":"<p>The description of the data protection settings.</p>"
        },
        "creationDate":{
          "shape":"Timestamp",
          "documentation":"<p>The creation date timestamp of the data protection settings.</p>"
        }
      },
      "documentation":"<p>The summary of the data protection settings.</p>"
    },
    "DeleteBrowserSettingsRequest":{
      "type":"structure",
      "required":["browserSettingsArn"],
      "members":{
        "browserSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the browser settings.</p>",
          "location":"uri",
          "locationName":"browserSettingsArn"
        }
      }
    },
    "DeleteBrowserSettingsResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteDataProtectionSettingsRequest":{
      "type":"structure",
      "required":["dataProtectionSettingsArn"],
      "members":{
        "dataProtectionSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the data protection settings.</p>",
          "location":"uri",
          "locationName":"dataProtectionSettingsArn"
        }
      }
    },
    "DeleteDataProtectionSettingsResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteIdentityProviderRequest":{
      "type":"structure",
      "required":["identityProviderArn"],
      "members":{
        "identityProviderArn":{
          "shape":"SubresourceARN",
          "documentation":"<p>The ARN of the identity provider.</p>",
          "location":"uri",
          "locationName":"identityProviderArn"
        }
      }
    },
    "DeleteIdentityProviderResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteIpAccessSettingsRequest":{
      "type":"structure",
      "required":["ipAccessSettingsArn"],
      "members":{
        "ipAccessSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the IP access settings.</p>",
          "location":"uri",
          "locationName":"ipAccessSettingsArn"
        }
      }
    },
    "DeleteIpAccessSettingsResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteNetworkSettingsRequest":{
      "type":"structure",
      "required":["networkSettingsArn"],
      "members":{
        "networkSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the network settings.</p>",
          "location":"uri",
          "locationName":"networkSettingsArn"
        }
      }
    },
    "DeleteNetworkSettingsResponse":{
      "type":"structure",
      "members":{}
    },
    "DeletePortalRequest":{
      "type":"structure",
      "required":["portalArn"],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>",
          "location":"uri",
          "locationName":"portalArn"
        }
      }
    },
    "DeletePortalResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteSessionLoggerRequest":{
      "type":"structure",
      "required":["sessionLoggerArn"],
      "members":{
        "sessionLoggerArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the session logger.</p>",
          "location":"uri",
          "locationName":"sessionLoggerArn"
        }
      }
    },
    "DeleteSessionLoggerResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteTrustStoreRequest":{
      "type":"structure",
      "required":["trustStoreArn"],
      "members":{
        "trustStoreArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the trust store.</p>",
          "location":"uri",
          "locationName":"trustStoreArn"
        }
      }
    },
    "DeleteTrustStoreResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteUserAccessLoggingSettingsRequest":{
      "type":"structure",
      "required":["userAccessLoggingSettingsArn"],
      "members":{
        "userAccessLoggingSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the user access logging settings.</p>",
          "location":"uri",
          "locationName":"userAccessLoggingSettingsArn"
        }
      }
    },
    "DeleteUserAccessLoggingSettingsResponse":{
      "type":"structure",
      "members":{}
    },
    "DeleteUserSettingsRequest":{
      "type":"structure",
      "required":["userSettingsArn"],
      "members":{
        "userSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the user settings.</p>",
          "location":"uri",
          "locationName":"userSettingsArn"
        }
      }
    },
    "DeleteUserSettingsResponse":{
      "type":"structure",
      "members":{}
    },
    "Description":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":".+",
      "sensitive":true
    },
    "DescriptionSafe":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[ _\\-\\d\\w]+",
      "sensitive":true
    },
    "DisassociateBrowserSettingsRequest":{
      "type":"structure",
      "required":["portalArn"],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>",
          "location":"uri",
          "locationName":"portalArn"
        }
      }
    },
    "DisassociateBrowserSettingsResponse":{
      "type":"structure",
      "members":{}
    },
    "DisassociateDataProtectionSettingsRequest":{
      "type":"structure",
      "required":["portalArn"],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>",
          "location":"uri",
          "locationName":"portalArn"
        }
      }
    },
    "DisassociateDataProtectionSettingsResponse":{
      "type":"structure",
      "members":{}
    },
    "DisassociateIpAccessSettingsRequest":{
      "type":"structure",
      "required":["portalArn"],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>",
          "location":"uri",
          "locationName":"portalArn"
        }
      }
    },
    "DisassociateIpAccessSettingsResponse":{
      "type":"structure",
      "members":{}
    },
    "DisassociateNetworkSettingsRequest":{
      "type":"structure",
      "required":["portalArn"],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>",
          "location":"uri",
          "locationName":"portalArn"
        }
      }
    },
    "DisassociateNetworkSettingsResponse":{
      "type":"structure",
      "members":{}
    },
    "DisassociateSessionLoggerRequest":{
      "type":"structure",
      "required":["portalArn"],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the portal to disassociate from the a session logger.</p>",
          "location":"uri",
          "locationName":"portalArn"
        }
      }
    },
    "DisassociateSessionLoggerResponse":{
      "type":"structure",
      "members":{}
    },
    "DisassociateTrustStoreRequest":{
      "type":"structure",
      "required":["portalArn"],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>",
          "location":"uri",
          "locationName":"portalArn"
        }
      }
    },
    "DisassociateTrustStoreResponse":{
      "type":"structure",
      "members":{}
    },
    "DisassociateUserAccessLoggingSettingsRequest":{
      "type":"structure",
      "required":["portalArn"],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>",
          "location":"uri",
          "locationName":"portalArn"
        }
      }
    },
    "DisassociateUserAccessLoggingSettingsResponse":{
      "type":"structure",
      "members":{}
    },
    "DisassociateUserSettingsRequest":{
      "type":"structure",
      "required":["portalArn"],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>",
          "location":"uri",
          "locationName":"portalArn"
        }
      }
    },
    "DisassociateUserSettingsResponse":{
      "type":"structure",
      "members":{}
    },
    "DisconnectTimeoutInMinutes":{
      "type":"integer",
      "box":true,
      "max":600,
      "min":1
    },
    "DisplayName":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":".+",
      "sensitive":true
    },
    "DisplayNameSafe":{
      "type":"string",
      "max":64,
      "min":1,
      "pattern":"[ _\\-\\d\\w]+",
      "sensitive":true
    },
    "EnabledType":{
      "type":"string",
      "enum":[
        "Disabled",
        "Enabled"
      ]
    },
    "EncryptionContextMap":{
      "type":"map",
      "key":{"shape":"StringType"},
      "value":{"shape":"StringType"}
    },
    "Event":{
      "type":"string",
      "enum":[
        "WebsiteInteract",
        "FileDownloadFromSecureBrowserToRemoteDisk",
        "FileTransferFromRemoteToLocalDisk",
        "FileTransferFromLocalToRemoteDisk",
        "FileUploadFromRemoteDiskToSecureBrowser",
        "ContentPasteToWebsite",
        "ContentTransferFromLocalToRemoteClipboard",
        "ContentCopyFromWebsite",
        "UrlLoad",
        "TabOpen",
        "TabClose",
        "PrintJobSubmit",
        "SessionConnect",
        "SessionStart",
        "SessionDisconnect",
        "SessionEnd",
        "UrlBlockByContentFilter"
      ]
    },
    "EventFilter":{
      "type":"structure",
      "members":{
        "all":{
          "shape":"Unit",
          "documentation":"<p>The filter that monitors all of the available events, including any new events emitted in the future.</p>"
        },
        "include":{
          "shape":"Events",
          "documentation":"<p>The filter that monitors only the listed set of events. New events are not auto-monitored.</p>"
        }
      },
      "documentation":"<p>The filter that specifies the events to monitor.</p>",
      "union":true
    },
    "Events":{
      "type":"list",
      "member":{"shape":"Event"},
      "max":100,
      "min":1
    },
    "ExceptionMessage":{"type":"string"},
    "ExpireSessionRequest":{
      "type":"structure",
      "required":[
        "portalId",
        "sessionId"
      ],
      "members":{
        "portalId":{
          "shape":"PortalId",
          "documentation":"<p>The ID of the web portal for the session.</p>",
          "location":"uri",
          "locationName":"portalId"
        },
        "sessionId":{
          "shape":"SessionId",
          "documentation":"<p>The ID of the session to expire.</p>",
          "location":"uri",
          "locationName":"sessionId"
        }
      }
    },
    "ExpireSessionResponse":{
      "type":"structure",
      "members":{}
    },
    "FieldName":{"type":"string"},
    "FolderStructure":{
      "type":"string",
      "enum":[
        "Flat",
        "NestedByDate"
      ]
    },
    "GetBrowserSettingsRequest":{
      "type":"structure",
      "required":["browserSettingsArn"],
      "members":{
        "browserSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the browser settings.</p>",
          "location":"uri",
          "locationName":"browserSettingsArn"
        }
      }
    },
    "GetBrowserSettingsResponse":{
      "type":"structure",
      "members":{
        "browserSettings":{
          "shape":"BrowserSettings",
          "documentation":"<p>The browser settings.</p>"
        }
      }
    },
    "GetDataProtectionSettingsRequest":{
      "type":"structure",
      "required":["dataProtectionSettingsArn"],
      "members":{
        "dataProtectionSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the data protection settings.</p>",
          "location":"uri",
          "locationName":"dataProtectionSettingsArn"
        }
      }
    },
    "GetDataProtectionSettingsResponse":{
      "type":"structure",
      "members":{
        "dataProtectionSettings":{
          "shape":"DataProtectionSettings",
          "documentation":"<p>The data protection settings.</p>"
        }
      }
    },
    "GetIdentityProviderRequest":{
      "type":"structure",
      "required":["identityProviderArn"],
      "members":{
        "identityProviderArn":{
          "shape":"SubresourceARN",
          "documentation":"<p>The ARN of the identity provider.</p>",
          "location":"uri",
          "locationName":"identityProviderArn"
        }
      }
    },
    "GetIdentityProviderResponse":{
      "type":"structure",
      "members":{
        "identityProvider":{
          "shape":"IdentityProvider",
          "documentation":"<p>The identity provider.</p>"
        }
      }
    },
    "GetIpAccessSettingsRequest":{
      "type":"structure",
      "required":["ipAccessSettingsArn"],
      "members":{
        "ipAccessSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the IP access settings.</p>",
          "location":"uri",
          "locationName":"ipAccessSettingsArn"
        }
      }
    },
    "GetIpAccessSettingsResponse":{
      "type":"structure",
      "members":{
        "ipAccessSettings":{
          "shape":"IpAccessSettings",
          "documentation":"<p>The IP access settings.</p>"
        }
      }
    },
    "GetNetworkSettingsRequest":{
      "type":"structure",
      "required":["networkSettingsArn"],
      "members":{
        "networkSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the network settings.</p>",
          "location":"uri",
          "locationName":"networkSettingsArn"
        }
      }
    },
    "GetNetworkSettingsResponse":{
      "type":"structure",
      "members":{
        "networkSettings":{
          "shape":"NetworkSettings",
          "documentation":"<p>The network settings.</p>"
        }
      }
    },
    "GetPortalRequest":{
      "type":"structure",
      "required":["portalArn"],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>",
          "location":"uri",
          "locationName":"portalArn"
        }
      }
    },
    "GetPortalResponse":{
      "type":"structure",
      "members":{
        "portal":{
          "shape":"Portal",
          "documentation":"<p>The web portal.</p>"
        }
      }
    },
    "GetPortalServiceProviderMetadataRequest":{
      "type":"structure",
      "required":["portalArn"],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>",
          "location":"uri",
          "locationName":"portalArn"
        }
      }
    },
    "GetPortalServiceProviderMetadataResponse":{
      "type":"structure",
      "required":["portalArn"],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>"
        },
        "serviceProviderSamlMetadata":{
          "shape":"SamlMetadata",
          "documentation":"<p>The service provider SAML metadata.</p>"
        }
      }
    },
    "GetSessionLoggerRequest":{
      "type":"structure",
      "required":["sessionLoggerArn"],
      "members":{
        "sessionLoggerArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the session logger.</p>",
          "location":"uri",
          "locationName":"sessionLoggerArn"
        }
      }
    },
    "GetSessionLoggerResponse":{
      "type":"structure",
      "members":{
        "sessionLogger":{
          "shape":"SessionLogger",
          "documentation":"<p>The session logger details.</p>"
        }
      }
    },
    "GetSessionRequest":{
      "type":"structure",
      "required":[
        "portalId",
        "sessionId"
      ],
      "members":{
        "portalId":{
          "shape":"PortalId",
          "documentation":"<p>The ID of the web portal for the session.</p>",
          "location":"uri",
          "locationName":"portalId"
        },
        "sessionId":{
          "shape":"SessionId",
          "documentation":"<p>The ID of the session.</p>",
          "location":"uri",
          "locationName":"sessionId"
        }
      }
    },
    "GetSessionResponse":{
      "type":"structure",
      "members":{
        "session":{
          "shape":"Session",
          "documentation":"<p>The sessions in a list.</p>"
        }
      }
    },
    "GetTrustStoreCertificateRequest":{
      "type":"structure",
      "required":[
        "trustStoreArn",
        "thumbprint"
      ],
      "members":{
        "trustStoreArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the trust store certificate.</p>",
          "location":"uri",
          "locationName":"trustStoreArn"
        },
        "thumbprint":{
          "shape":"CertificateThumbprint",
          "documentation":"<p>The thumbprint of the trust store certificate.</p>",
          "location":"querystring",
          "locationName":"thumbprint"
        }
      }
    },
    "GetTrustStoreCertificateResponse":{
      "type":"structure",
      "required":["trustStoreArn"],
      "members":{
        "trustStoreArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the trust store certificate.</p>"
        },
        "certificate":{
          "shape":"Certificate",
          "documentation":"<p>The certificate of the trust store certificate.</p>"
        }
      }
    },
    "GetTrustStoreRequest":{
      "type":"structure",
      "required":["trustStoreArn"],
      "members":{
        "trustStoreArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the trust store.</p>",
          "location":"uri",
          "locationName":"trustStoreArn"
        }
      }
    },
    "GetTrustStoreResponse":{
      "type":"structure",
      "members":{
        "trustStore":{
          "shape":"TrustStore",
          "documentation":"<p>The trust store.</p>"
        }
      }
    },
    "GetUserAccessLoggingSettingsRequest":{
      "type":"structure",
      "required":["userAccessLoggingSettingsArn"],
      "members":{
        "userAccessLoggingSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the user access logging settings.</p>",
          "location":"uri",
          "locationName":"userAccessLoggingSettingsArn"
        }
      }
    },
    "GetUserAccessLoggingSettingsResponse":{
      "type":"structure",
      "members":{
        "userAccessLoggingSettings":{
          "shape":"UserAccessLoggingSettings",
          "documentation":"<p>The user access logging settings.</p>"
        }
      }
    },
    "GetUserSettingsRequest":{
      "type":"structure",
      "required":["userSettingsArn"],
      "members":{
        "userSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the user settings.</p>",
          "location":"uri",
          "locationName":"userSettingsArn"
        }
      }
    },
    "GetUserSettingsResponse":{
      "type":"structure",
      "members":{
        "userSettings":{
          "shape":"UserSettings",
          "documentation":"<p>The user settings.</p>"
        }
      }
    },
    "GlobalInlineRedactionUrls":{
      "type":"list",
      "member":{"shape":"InlineRedactionUrl"},
      "max":100,
      "min":1
    },
    "HiddenToolbarItemList":{
      "type":"list",
      "member":{"shape":"ToolbarItem"}
    },
    "IconImage":{
      "type":"blob",
      "max":102400,
      "min":0
    },
    "IconImageInput":{
      "type":"structure",
      "members":{
        "blob":{
          "shape":"IconImage",
          "documentation":"<p>The image provided as a binary image file.</p>"
        },
        "s3Uri":{
          "shape":"S3Uri",
          "documentation":"<p>The S3 URI pointing to the image file. The URI must use the format <code>s3://bucket-name/key-name</code>. You must have read access to the S3 object.</p>"
        }
      },
      "documentation":"<p>The input for an icon image (logo or favicon). Provide either a binary image file or an S3 URI pointing to the image file. Maximum 100 KB in JPEG, PNG, or ICO format.</p>",
      "union":true
    },
    "IdentityProvider":{
      "type":"structure",
      "required":["identityProviderArn"],
      "members":{
        "identityProviderArn":{
          "shape":"SubresourceARN",
          "documentation":"<p>The ARN of the identity provider.</p>"
        },
        "identityProviderName":{
          "shape":"IdentityProviderName",
          "documentation":"<p>The identity provider name.</p>"
        },
        "identityProviderType":{
          "shape":"IdentityProviderType",
          "documentation":"<p>The identity provider type.</p>"
        },
        "identityProviderDetails":{
          "shape":"IdentityProviderDetails",
          "documentation":"<p>The identity provider details. The following list describes the provider detail keys for each identity provider type. </p> <ul> <li> <p>For Google and Login with Amazon:</p> <ul> <li> <p> <code>client_id</code> </p> </li> <li> <p> <code>client_secret</code> </p> </li> <li> <p> <code>authorize_scopes</code> </p> </li> </ul> </li> <li> <p>For Facebook:</p> <ul> <li> <p> <code>client_id</code> </p> </li> <li> <p> <code>client_secret</code> </p> </li> <li> <p> <code>authorize_scopes</code> </p> </li> <li> <p> <code>api_version</code> </p> </li> </ul> </li> <li> <p>For Sign in with Apple:</p> <ul> <li> <p> <code>client_id</code> </p> </li> <li> <p> <code>team_id</code> </p> </li> <li> <p> <code>key_id</code> </p> </li> <li> <p> <code>private_key</code> </p> </li> <li> <p> <code>authorize_scopes</code> </p> </li> </ul> </li> <li> <p>For OIDC providers:</p> <ul> <li> <p> <code>client_id</code> </p> </li> <li> <p> <code>client_secret</code> </p> </li> <li> <p> <code>attributes_request_method</code> </p> </li> <li> <p> <code>oidc_issuer</code> </p> </li> <li> <p> <code>authorize_scopes</code> </p> </li> <li> <p> <code>authorize_url</code> <i>if not available from discovery URL specified by oidc_issuer key</i> </p> </li> <li> <p> <code>token_url</code> <i>if not available from discovery URL specified by oidc_issuer key</i> </p> </li> <li> <p> <code>attributes_url</code> <i>if not available from discovery URL specified by oidc_issuer key</i> </p> </li> <li> <p> <code>jwks_uri</code> <i>if not available from discovery URL specified by oidc_issuer key</i> </p> </li> </ul> </li> <li> <p>For SAML providers:</p> <ul> <li> <p> <code>MetadataFile</code> OR <code>MetadataURL</code> </p> </li> <li> <p> <code>IDPSignout</code> (boolean) <i>optional</i> </p> </li> <li> <p> <code>IDPInit</code> (boolean) <i>optional</i> </p> </li> <li> <p> <code>RequestSigningAlgorithm</code> (string) <i>optional</i> - Only accepts <code>rsa-sha256</code> </p> </li> <li> <p> <code>EncryptedResponses</code> (boolean) <i>optional</i> </p> </li> </ul> </li> </ul>"
        }
      },
      "documentation":"<p>The identity provider.</p>"
    },
    "IdentityProviderDetails":{
      "type":"map",
      "key":{"shape":"StringType"},
      "value":{"shape":"StringType"},
      "sensitive":true
    },
    "IdentityProviderList":{
      "type":"list",
      "member":{"shape":"IdentityProviderSummary"}
    },
    "IdentityProviderName":{
      "type":"string",
      "max":32,
      "min":1,
      "pattern":"[^_][\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}][^_]+",
      "sensitive":true
    },
    "IdentityProviderSummary":{
      "type":"structure",
      "required":["identityProviderArn"],
      "members":{
        "identityProviderArn":{
          "shape":"SubresourceARN",
          "documentation":"<p>The ARN of the identity provider.</p>"
        },
        "identityProviderName":{
          "shape":"IdentityProviderName",
          "documentation":"<p>The identity provider name.</p>"
        },
        "identityProviderType":{
          "shape":"IdentityProviderType",
          "documentation":"<p>The identity provider type.</p>"
        }
      },
      "documentation":"<p>The summary of the identity provider.</p>"
    },
    "IdentityProviderType":{
      "type":"string",
      "enum":[
        "SAML",
        "Facebook",
        "Google",
        "LoginWithAmazon",
        "SignInWithApple",
        "OIDC"
      ]
    },
    "IdleDisconnectTimeoutInMinutes":{
      "type":"integer",
      "box":true,
      "max":60,
      "min":0
    },
    "ImageMetadata":{
      "type":"structure",
      "required":[
        "mimeType",
        "fileExtension",
        "lastUploadTimestamp"
      ],
      "members":{
        "mimeType":{
          "shape":"MimeType",
          "documentation":"<p>The MIME type of the image.</p>"
        },
        "fileExtension":{
          "shape":"StringType",
          "documentation":"<p>The file extension of the image.</p>"
        },
        "lastUploadTimestamp":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp when the image was last uploaded.</p>"
        }
      },
      "documentation":"<p>Metadata information about an uploaded image file.</p>"
    },
    "InlineRedactionConfiguration":{
      "type":"structure",
      "required":["inlineRedactionPatterns"],
      "members":{
        "inlineRedactionPatterns":{
          "shape":"InlineRedactionPatterns",
          "documentation":"<p>The inline redaction patterns to be enabled for the inline redaction configuration.</p>"
        },
        "globalEnforcedUrls":{
          "shape":"GlobalInlineRedactionUrls",
          "documentation":"<p>The global enforced URL configuration for the inline redaction configuration. This is applied to patterns that do not have a pattern-level enforced URL list.</p>"
        },
        "globalExemptUrls":{
          "shape":"GlobalInlineRedactionUrls",
          "documentation":"<p>The global exempt URL configuration for the inline redaction configuration. This is applied to patterns that do not have a pattern-level exempt URL list.</p>"
        },
        "globalConfidenceLevel":{
          "shape":"ConfidenceLevel",
          "documentation":"<p>The global confidence level for the inline redaction configuration. This indicates the certainty of data type matches in the redaction process. Confidence level 3 means high confidence, and requires a formatted text pattern match in order for content to be redacted. Confidence level 2 means medium confidence, and redaction considers both formatted and unformatted text, and adds keyword associate to the logic. Confidence level 1 means low confidence, and redaction is enforced for both formatted pattern + unformatted pattern without keyword. This is applied to patterns that do not have a pattern-level confidence level. Defaults to confidence level 2.</p>"
        }
      },
      "documentation":"<p>The configuration for in-session inline redaction.</p>"
    },
    "InlineRedactionPattern":{
      "type":"structure",
      "required":["redactionPlaceHolder"],
      "members":{
        "builtInPatternId":{
          "shape":"BuiltInPatternId",
          "documentation":"<p>The built-in pattern from the list of preconfigured patterns. Either a customPattern or builtInPatternId is required.</p>"
        },
        "customPattern":{
          "shape":"CustomPattern",
          "documentation":"<p>&gt;The configuration for a custom pattern. Either a customPattern or builtInPatternId is required.</p>"
        },
        "redactionPlaceHolder":{
          "shape":"RedactionPlaceHolder",
          "documentation":"<p>The redaction placeholder that will replace the redacted text in session for the inline redaction pattern.</p>"
        },
        "enforcedUrls":{
          "shape":"InlineRedactionUrls",
          "documentation":"<p>The enforced URL configuration for the inline redaction pattern. This will override the global enforced URL configuration.</p>"
        },
        "exemptUrls":{
          "shape":"InlineRedactionUrls",
          "documentation":"<p>The exempt URL configuration for the inline redaction pattern. This will override the global exempt URL configuration for the inline redaction pattern.</p>"
        },
        "confidenceLevel":{
          "shape":"ConfidenceLevel",
          "documentation":"<p>The confidence level for inline redaction pattern. This indicates the certainty of data type matches in the redaction process. Confidence level 3 means high confidence, and requires a formatted text pattern match in order for content to be redacted. Confidence level 2 means medium confidence, and redaction considers both formatted and unformatted text, and adds keyword associate to the logic. Confidence level 1 means low confidence, and redaction is enforced for both formatted pattern + unformatted pattern without keyword. This overrides the global confidence level.</p>"
        }
      },
      "documentation":"<p>The set of patterns that determine the data types redacted in session.</p>"
    },
    "InlineRedactionPatterns":{
      "type":"list",
      "member":{"shape":"InlineRedactionPattern"},
      "max":150,
      "min":0
    },
    "InlineRedactionUrl":{
      "type":"string",
      "pattern":"((([a-zA-Z][a-zA-Z0-9+.-]*):\\/\\/(\\*|[\\w%._\\-\\+~#=@]+)?(\\/[^@\\s]*)?(?:\\?([^*\\s]+(?:\\*?)))?)|(\\*|[\\w%._\\-\\+~#=@]+\\.[\\w%._\\-\\+~#=@]+)(?::(\\d{1,5}))?(\\/[^@\\s]*)?(?:\\?([^*\\s]+(?:\\*?)))?|(([a-zA-Z][a-zA-Z0-9+.-]*):(\\/\\/)?\\*))",
      "sensitive":true
    },
    "InlineRedactionUrls":{
      "type":"list",
      "member":{"shape":"InlineRedactionUrl"},
      "max":20,
      "min":1
    },
    "InstanceType":{
      "type":"string",
      "enum":[
        "standard.regular",
        "standard.large",
        "standard.xlarge"
      ]
    },
    "InternalServerException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ExceptionMessage"},
        "retryAfterSeconds":{
          "shape":"RetryAfterSeconds",
          "documentation":"<p>Advice to clients on when the call can be safely retried.</p>",
          "location":"header",
          "locationName":"Retry-After"
        }
      },
      "documentation":"<p>There is an internal server error.</p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true
    },
    "IpAccessSettings":{
      "type":"structure",
      "required":["ipAccessSettingsArn"],
      "members":{
        "ipAccessSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the IP access settings resource.</p>"
        },
        "associatedPortalArns":{
          "shape":"ArnList",
          "documentation":"<p>A list of web portal ARNs that this IP access settings resource is associated with.</p>"
        },
        "ipRules":{
          "shape":"IpRuleList",
          "documentation":"<p>The IP rules of the IP access settings.</p>"
        },
        "displayName":{
          "shape":"DisplayName",
          "documentation":"<p> The display name of the IP access settings.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the IP access settings.</p>"
        },
        "creationDate":{
          "shape":"Timestamp",
          "documentation":"<p>The creation date timestamp of the IP access settings.</p>"
        },
        "customerManagedKey":{
          "shape":"keyArn",
          "documentation":"<p>The customer managed key used to encrypt sensitive information in the IP access settings.</p>"
        },
        "additionalEncryptionContext":{
          "shape":"EncryptionContextMap",
          "documentation":"<p>The additional encryption context of the IP access settings.</p>"
        }
      },
      "documentation":"<p>The IP access settings resource that can be associated with a web portal. </p>"
    },
    "IpAccessSettingsList":{
      "type":"list",
      "member":{"shape":"IpAccessSettingsSummary"}
    },
    "IpAccessSettingsSummary":{
      "type":"structure",
      "required":["ipAccessSettingsArn"],
      "members":{
        "ipAccessSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of IP access settings.</p>"
        },
        "displayName":{
          "shape":"DisplayName",
          "documentation":"<p>The display name of the IP access settings.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the IP access settings.</p>"
        },
        "creationDate":{
          "shape":"Timestamp",
          "documentation":"<p>The creation date timestamp of the IP access settings.</p>"
        }
      },
      "documentation":"<p>The summary of IP access settings.</p>"
    },
    "IpAddress":{
      "type":"string",
      "max":15,
      "min":1,
      "pattern":"((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$|^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))",
      "sensitive":true
    },
    "IpAddressList":{
      "type":"list",
      "member":{"shape":"IpAddress"},
      "max":45,
      "min":1
    },
    "IpRange":{
      "type":"string",
      "documentation":"<p>A single IP address or an IP address range in CIDR notation</p>",
      "sensitive":true
    },
    "IpRule":{
      "type":"structure",
      "required":["ipRange"],
      "members":{
        "ipRange":{
          "shape":"IpRange",
          "documentation":"<p>The IP range of the IP rule.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the IP rule.</p>"
        }
      },
      "documentation":"<p>The IP rules of the IP access settings.</p>"
    },
    "IpRuleList":{
      "type":"list",
      "member":{"shape":"IpRule"},
      "max":100,
      "min":1,
      "sensitive":true
    },
    "KinesisStreamArn":{
      "type":"string",
      "documentation":"<p>Kinesis stream ARN to which log events are published.</p>",
      "max":2048,
      "min":20,
      "pattern":"arn:[\\w+=/,.@-]+:kinesis:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:stream/.+"
    },
    "ListBrowserSettingsRequest":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token used to retrieve the next page of results for this operation.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to be included in the next page.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListBrowserSettingsResponse":{
      "type":"structure",
      "members":{
        "browserSettings":{
          "shape":"BrowserSettingsList",
          "documentation":"<p>The browser settings.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token used to retrieve the next page of results for this operation.</p>"
        }
      }
    },
    "ListDataProtectionSettingsRequest":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token used to retrieve the next page of results for this operation.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to be included in the next page.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListDataProtectionSettingsResponse":{
      "type":"structure",
      "members":{
        "dataProtectionSettings":{
          "shape":"DataProtectionSettingsList",
          "documentation":"<p>The data protection settings.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token used to retrieve the next page of results for this operation.</p>"
        }
      }
    },
    "ListIdentityProvidersRequest":{
      "type":"structure",
      "required":["portalArn"],
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token used to retrieve the next page of results for this operation.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to be included in the next page.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>",
          "location":"uri",
          "locationName":"portalArn"
        }
      }
    },
    "ListIdentityProvidersResponse":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token used to retrieve the next page of results for this operation.</p>"
        },
        "identityProviders":{
          "shape":"IdentityProviderList",
          "documentation":"<p>The identity providers.</p>"
        }
      }
    },
    "ListIpAccessSettingsRequest":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token used to retrieve the next page of results for this operation.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to be included in the next page.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListIpAccessSettingsResponse":{
      "type":"structure",
      "members":{
        "ipAccessSettings":{
          "shape":"IpAccessSettingsList",
          "documentation":"<p>The IP access settings.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token used to retrieve the next page of results for this operation.</p>"
        }
      }
    },
    "ListNetworkSettingsRequest":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token used to retrieve the next page of results for this operation.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to be included in the next page.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListNetworkSettingsResponse":{
      "type":"structure",
      "members":{
        "networkSettings":{
          "shape":"NetworkSettingsList",
          "documentation":"<p>The network settings.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token used to retrieve the next page of results for this operation.</p>"
        }
      }
    },
    "ListPortalsRequest":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token used to retrieve the next page of results for this operation. </p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to be included in the next page.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListPortalsResponse":{
      "type":"structure",
      "members":{
        "portals":{
          "shape":"PortalList",
          "documentation":"<p>The portals in the list.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token used to retrieve the next page of results for this operation. </p>"
        }
      }
    },
    "ListSessionLoggersRequest":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token used to retrieve the next page of results for this operation.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to be included in the next page.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListSessionLoggersResponse":{
      "type":"structure",
      "members":{
        "sessionLoggers":{
          "shape":"SessionLoggerList",
          "documentation":"<p>The list of session loggers, including summaries of their details.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token used to retrieve the next page of results for this operation.</p>"
        }
      }
    },
    "ListSessionsRequest":{
      "type":"structure",
      "required":["portalId"],
      "members":{
        "portalId":{
          "shape":"PortalId",
          "documentation":"<p>The ID of the web portal for the sessions.</p>",
          "location":"uri",
          "locationName":"portalId"
        },
        "username":{
          "shape":"Username",
          "documentation":"<p>The username of the session.</p>",
          "location":"querystring",
          "locationName":"username"
        },
        "sessionId":{
          "shape":"SessionId",
          "documentation":"<p>The ID of the session.</p>",
          "location":"querystring",
          "locationName":"sessionId"
        },
        "sortBy":{
          "shape":"SessionSortBy",
          "documentation":"<p>The method in which the returned sessions should be sorted.</p>",
          "location":"querystring",
          "locationName":"sortBy"
        },
        "status":{
          "shape":"SessionStatus",
          "documentation":"<p>The status of the session.</p>",
          "location":"querystring",
          "locationName":"status"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to be included in the next page.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token used to retrieve the next page of results for this operation.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        }
      }
    },
    "ListSessionsResponse":{
      "type":"structure",
      "required":["sessions"],
      "members":{
        "sessions":{
          "shape":"SessionSummaryList",
          "documentation":"<p>The sessions in a list.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token used to retrieve the next page of results for this operation.</p>"
        }
      }
    },
    "ListTagsForResourceRequest":{
      "type":"structure",
      "required":["resourceArn"],
      "members":{
        "resourceArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the resource.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        }
      }
    },
    "ListTagsForResourceResponse":{
      "type":"structure",
      "members":{
        "tags":{
          "shape":"TagList",
          "documentation":"<p>The tags of the resource.</p>"
        }
      }
    },
    "ListTrustStoreCertificatesRequest":{
      "type":"structure",
      "required":["trustStoreArn"],
      "members":{
        "trustStoreArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the trust store</p>",
          "location":"uri",
          "locationName":"trustStoreArn"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token used to retrieve the next page of results for this operation.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to be included in the next page.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListTrustStoreCertificatesResponse":{
      "type":"structure",
      "required":["trustStoreArn"],
      "members":{
        "certificateList":{
          "shape":"CertificateSummaryList",
          "documentation":"<p>The certificate list.</p>"
        },
        "trustStoreArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the trust store.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token used to retrieve the next page of results for this operation.&gt;</p>"
        }
      }
    },
    "ListTrustStoresRequest":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token used to retrieve the next page of results for this operation.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to be included in the next page.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListTrustStoresResponse":{
      "type":"structure",
      "members":{
        "trustStores":{
          "shape":"TrustStoreSummaryList",
          "documentation":"<p>The trust stores.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token used to retrieve the next page of results for this operation.</p>"
        }
      }
    },
    "ListUserAccessLoggingSettingsRequest":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token used to retrieve the next page of results for this operation.</p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to be included in the next page.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListUserAccessLoggingSettingsResponse":{
      "type":"structure",
      "members":{
        "userAccessLoggingSettings":{
          "shape":"UserAccessLoggingSettingsList",
          "documentation":"<p>The user access logging settings.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token used to retrieve the next page of results for this operation.</p>"
        }
      }
    },
    "ListUserSettingsRequest":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token used to retrieve the next page of results for this operation. </p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to be included in the next page.</p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      }
    },
    "ListUserSettingsResponse":{
      "type":"structure",
      "members":{
        "userSettings":{
          "shape":"UserSettingsList",
          "documentation":"<p>The user settings.</p>"
        },
        "nextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The pagination token used to retrieve the next page of results for this operation. </p>"
        }
      }
    },
    "Locale":{
      "type":"string",
      "enum":[
        "de-DE",
        "en-US",
        "es-ES",
        "fr-FR",
        "id-ID",
        "it-IT",
        "ja-JP",
        "ko-KR",
        "pt-BR",
        "zh-CN",
        "zh-TW"
      ]
    },
    "LocalizedBrandingStringMap":{
      "type":"map",
      "key":{"shape":"Locale"},
      "value":{"shape":"LocalizedBrandingStrings"}
    },
    "LocalizedBrandingStrings":{
      "type":"structure",
      "required":[
        "browserTabTitle",
        "welcomeText"
      ],
      "members":{
        "browserTabTitle":{
          "shape":"LocalizedBrandingStringsBrowserTabTitleString",
          "documentation":"<p>The text displayed in the browser tab title.</p>"
        },
        "welcomeText":{
          "shape":"LocalizedBrandingStringsWelcomeTextString",
          "documentation":"<p>The welcome text displayed on the sign-in page.</p>"
        },
        "loginTitle":{
          "shape":"LocalizedBrandingStringsLoginTitleString",
          "documentation":"<p>The title text for the login section. This field is optional and defaults to \"Sign In\".</p>"
        },
        "loginDescription":{
          "shape":"LocalizedBrandingStringsLoginDescriptionString",
          "documentation":"<p>The description text for the login section. This field is optional and defaults to \"Sign in to your session\".</p>"
        },
        "loginButtonText":{
          "shape":"LocalizedBrandingStringsLoginButtonTextString",
          "documentation":"<p>The text displayed on the login button. This field is optional and defaults to \"Sign In\".</p>"
        },
        "contactLink":{
          "shape":"ContactLinkUrl",
          "documentation":"<p>A contact link URL. The URL must start with <code>https://</code> or <code>mailto:</code>. If not provided, the contact button will be hidden from the web portal screen.</p>"
        },
        "contactButtonText":{
          "shape":"LocalizedBrandingStringsContactButtonTextString",
          "documentation":"<p>The text displayed on the contact button. This field is optional and defaults to \"Contact us\".</p>"
        },
        "loadingText":{
          "shape":"LocalizedBrandingStringsLoadingTextString",
          "documentation":"<p>The text displayed during session loading. This field is optional and defaults to \"Loading your session\".</p>"
        }
      },
      "documentation":"<p>Localized text strings for a specific language that customize the web portal.</p>"
    },
    "LocalizedBrandingStringsBrowserTabTitleString":{
      "type":"string",
      "max":25,
      "min":0,
      "pattern":"[^<>&'`~\\\\]*"
    },
    "LocalizedBrandingStringsContactButtonTextString":{
      "type":"string",
      "max":30,
      "min":0,
      "pattern":"[^<>&'`~\\\\]*"
    },
    "LocalizedBrandingStringsLoadingTextString":{
      "type":"string",
      "max":300,
      "min":0,
      "pattern":"[^<>&'`~\\\\]*"
    },
    "LocalizedBrandingStringsLoginButtonTextString":{
      "type":"string",
      "max":30,
      "min":0,
      "pattern":"[^<>&'`~\\\\]*"
    },
    "LocalizedBrandingStringsLoginDescriptionString":{
      "type":"string",
      "max":250,
      "min":0,
      "pattern":"[^<>&'`~\\\\]*"
    },
    "LocalizedBrandingStringsLoginTitleString":{
      "type":"string",
      "max":100,
      "min":0,
      "pattern":"[^<>&'`~\\\\]*"
    },
    "LocalizedBrandingStringsWelcomeTextString":{
      "type":"string",
      "max":150,
      "min":0,
      "pattern":"[^<>&'`~\\\\]*"
    },
    "LogConfiguration":{
      "type":"structure",
      "members":{
        "s3":{
          "shape":"S3LogConfiguration",
          "documentation":"<p>The configuration for delivering the logs to S3.</p>"
        }
      },
      "documentation":"<p>The configuration of the log.</p>"
    },
    "LogFileFormat":{
      "type":"string",
      "enum":[
        "JSONLines",
        "Json"
      ]
    },
    "Markdown":{
      "type":"string",
      "max":153600,
      "min":0,
      "sensitive":true
    },
    "MaxConcurrentSessions":{
      "type":"integer",
      "box":true,
      "max":5000,
      "min":1
    },
    "MaxDisplayResolution":{
      "type":"string",
      "enum":[
        "size4096X2160",
        "size3840X2160",
        "size3440X1440",
        "size2560X1440",
        "size1920X1080",
        "size1280X720",
        "size1024X768",
        "size800X600"
      ]
    },
    "MaxResults":{
      "type":"integer",
      "box":true,
      "min":1
    },
    "MimeType":{
      "type":"string",
      "enum":[
        "image/png",
        "image/jpeg",
        "image/x-icon"
      ]
    },
    "NetworkSettings":{
      "type":"structure",
      "required":["networkSettingsArn"],
      "members":{
        "networkSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the network settings.</p>"
        },
        "associatedPortalArns":{
          "shape":"ArnList",
          "documentation":"<p>A list of web portal ARNs that this network settings is associated with.</p>"
        },
        "vpcId":{
          "shape":"VpcId",
          "documentation":"<p>The VPC that streaming instances will connect to.</p>"
        },
        "subnetIds":{
          "shape":"SubnetIdList",
          "documentation":"<p>The subnets in which network interfaces are created to connect streaming instances to your VPC. At least two of these subnets must be in different availability zones.</p>"
        },
        "securityGroupIds":{
          "shape":"SecurityGroupIdList",
          "documentation":"<p>One or more security groups used to control access from streaming instances to your VPC. </p>"
        }
      },
      "documentation":"<p>A network settings resource that can be associated with a web portal. Once associated with a web portal, network settings define how streaming instances will connect with your specified VPC. </p>"
    },
    "NetworkSettingsList":{
      "type":"list",
      "member":{"shape":"NetworkSettingsSummary"}
    },
    "NetworkSettingsSummary":{
      "type":"structure",
      "required":["networkSettingsArn"],
      "members":{
        "networkSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the network settings.</p>"
        },
        "vpcId":{
          "shape":"VpcId",
          "documentation":"<p>The VPC ID of the network settings.</p>"
        }
      },
      "documentation":"<p>The summary of network settings.</p>"
    },
    "PaginationToken":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"\\S+"
    },
    "PatternName":{
      "type":"string",
      "max":20,
      "min":1,
      "pattern":"[_\\-\\d\\w]+",
      "sensitive":true
    },
    "Portal":{
      "type":"structure",
      "required":["portalArn"],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>"
        },
        "rendererType":{
          "shape":"RendererType",
          "documentation":"<p>The renderer that is used in streaming sessions.</p>"
        },
        "browserType":{
          "shape":"BrowserType",
          "documentation":"<p>The browser that users see when using a streaming session.</p>"
        },
        "portalStatus":{
          "shape":"PortalStatus",
          "documentation":"<p>The status of the web portal.</p>"
        },
        "portalEndpoint":{
          "shape":"PortalEndpoint",
          "documentation":"<p>The endpoint URL of the web portal that users access in order to start streaming sessions.</p>"
        },
        "displayName":{
          "shape":"DisplayName",
          "documentation":"<p>The name of the web portal.</p>"
        },
        "creationDate":{
          "shape":"Timestamp",
          "documentation":"<p>The creation date of the web portal.</p>"
        },
        "browserSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the browser settings that is associated with this web portal.</p>"
        },
        "dataProtectionSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the data protection settings.</p>"
        },
        "userSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the user settings that is associated with the web portal.</p>"
        },
        "networkSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the network settings that is associated with the web portal.</p>"
        },
        "sessionLoggerArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the session logger that is assocaited with the portal.</p>"
        },
        "trustStoreArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the trust store that is associated with the web portal.</p>"
        },
        "statusReason":{
          "shape":"StatusReason",
          "documentation":"<p>A message that explains why the web portal is in its current status.</p>"
        },
        "userAccessLoggingSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the user access logging settings that is associated with the web portal.</p>"
        },
        "authenticationType":{
          "shape":"AuthenticationType",
          "documentation":"<p>The type of authentication integration points used when signing into the web portal. Defaults to <code>Standard</code>.</p> <p> <code>Standard</code> web portals are authenticated directly through your identity provider. You need to call <code>CreateIdentityProvider</code> to integrate your identity provider with your web portal. User and group access to your web portal is controlled through your identity provider.</p> <p> <code>IAM Identity Center</code> web portals are authenticated through IAM Identity Center. Identity sources (including external identity provider integration), plus user and group access to your web portal, can be configured in the IAM Identity Center.</p>"
        },
        "ipAccessSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the IP access settings.</p>"
        },
        "customerManagedKey":{
          "shape":"keyArn",
          "documentation":"<p>The customer managed key used to encrypt sensitive information in the portal.</p>"
        },
        "additionalEncryptionContext":{
          "shape":"EncryptionContextMap",
          "documentation":"<p>The additional encryption context of the portal.</p>"
        },
        "instanceType":{
          "shape":"InstanceType",
          "documentation":"<p>The type and resources of the underlying instance.</p>"
        },
        "maxConcurrentSessions":{
          "shape":"MaxConcurrentSessions",
          "documentation":"<p>The maximum number of concurrent sessions for the portal.</p>"
        },
        "portalCustomDomain":{
          "shape":"PortalCustomDomain",
          "documentation":"<p>The custom domain of the web portal that users access in order to start streaming sessions.</p>"
        }
      },
      "documentation":"<p>The web portal.</p>"
    },
    "PortalCustomDomain":{
      "type":"string",
      "max":128,
      "min":0,
      "pattern":"(|[a-zA-Z0-9]?((?!-)([A-Za-z0-9-]*[A-Za-z0-9])\\.)+[a-zA-Z0-9]+)"
    },
    "PortalEndpoint":{
      "type":"string",
      "max":253,
      "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]"
    },
    "PortalId":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"[a-zA-Z0-9\\-]+"
    },
    "PortalList":{
      "type":"list",
      "member":{"shape":"PortalSummary"}
    },
    "PortalStatus":{
      "type":"string",
      "enum":[
        "Incomplete",
        "Pending",
        "Active"
      ]
    },
    "PortalSummary":{
      "type":"structure",
      "required":["portalArn"],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>"
        },
        "rendererType":{
          "shape":"RendererType",
          "documentation":"<p>The renderer that is used in streaming sessions.</p>"
        },
        "browserType":{
          "shape":"BrowserType",
          "documentation":"<p>The browser type of the web portal.</p>"
        },
        "portalStatus":{
          "shape":"PortalStatus",
          "documentation":"<p>The status of the web portal.</p>"
        },
        "portalEndpoint":{
          "shape":"PortalEndpoint",
          "documentation":"<p>The endpoint URL of the web portal that users access in order to start streaming sessions.</p>"
        },
        "displayName":{
          "shape":"DisplayName",
          "documentation":"<p>The name of the web portal.</p>"
        },
        "creationDate":{
          "shape":"Timestamp",
          "documentation":"<p>The creation date of the web portal.</p>"
        },
        "browserSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the browser settings that is associated with the web portal.</p>"
        },
        "dataProtectionSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the data protection settings.</p>"
        },
        "userSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the user settings that is associated with the web portal.</p>"
        },
        "networkSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the network settings that is associated with the web portal.</p>"
        },
        "sessionLoggerArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the session logger that is assocaited with the portal.</p>"
        },
        "trustStoreArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the trust that is associated with this web portal.</p>"
        },
        "userAccessLoggingSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the user access logging settings that is associated with the web portal.</p>"
        },
        "authenticationType":{
          "shape":"AuthenticationType",
          "documentation":"<p>The type of authentication integration points used when signing into the web portal. Defaults to <code>Standard</code>.</p> <p> <code>Standard</code> web portals are authenticated directly through your identity provider. You need to call <code>CreateIdentityProvider</code> to integrate your identity provider with your web portal. User and group access to your web portal is controlled through your identity provider.</p> <p> <code>IAM Identity Center</code> web portals are authenticated through IAM Identity Center. Identity sources (including external identity provider integration), plus user and group access to your web portal, can be configured in the IAM Identity Center.</p>"
        },
        "ipAccessSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the IP access settings.</p>"
        },
        "instanceType":{
          "shape":"InstanceType",
          "documentation":"<p>The type and resources of the underlying instance.</p>"
        },
        "maxConcurrentSessions":{
          "shape":"MaxConcurrentSessions",
          "documentation":"<p>The maximum number of concurrent sessions for the portal.</p>"
        },
        "portalCustomDomain":{
          "shape":"PortalCustomDomain",
          "documentation":"<p>The custom domain of the web portal that users access in order to start streaming sessions.</p>"
        }
      },
      "documentation":"<p>The summary of the portal.</p>"
    },
    "QuotaCode":{"type":"string"},
    "RedactionPlaceHolder":{
      "type":"structure",
      "required":["redactionPlaceHolderType"],
      "members":{
        "redactionPlaceHolderType":{
          "shape":"RedactionPlaceHolderType",
          "documentation":"<p>The redaction placeholder type that will replace the redacted text in session.</p>"
        },
        "redactionPlaceHolderText":{
          "shape":"RedactionPlaceHolderText",
          "documentation":"<p>The redaction placeholder text that will replace the redacted text in session for the custom text redaction placeholder type.</p>"
        }
      },
      "documentation":"<p>The redaction placeholder that will replace the redacted text in session.</p>"
    },
    "RedactionPlaceHolderText":{
      "type":"string",
      "max":20,
      "min":1,
      "pattern":"[*_\\-\\d\\w]+",
      "sensitive":true
    },
    "RedactionPlaceHolderType":{
      "type":"string",
      "enum":["CustomText"]
    },
    "Regex":{
      "type":"string",
      "max":300,
      "min":0,
      "pattern":"\\/((?:[^\\n])+)\\/([gimsuyvd]{0,8})",
      "sensitive":true
    },
    "RendererType":{
      "type":"string",
      "enum":["AppStream"]
    },
    "ResourceId":{"type":"string"},
    "ResourceNotFoundException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ExceptionMessage"},
        "resourceId":{
          "shape":"ResourceId",
          "documentation":"<p>Hypothetical identifier of the resource affected.</p>"
        },
        "resourceType":{
          "shape":"ResourceType",
          "documentation":"<p>Hypothetical type of the resource affected.</p>"
        }
      },
      "documentation":"<p>The resource cannot be found.</p>",
      "error":{
        "httpStatusCode":404,
        "senderFault":true
      },
      "exception":true
    },
    "ResourceType":{"type":"string"},
    "RetryAfterSeconds":{"type":"integer"},
    "S3Bucket":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]",
      "sensitive":true
    },
    "S3BucketOwner":{
      "type":"string",
      "pattern":"[0-9]{12}"
    },
    "S3KeyPrefix":{
      "type":"string",
      "max":256,
      "min":1,
      "pattern":"[\\d\\w\\-_/!().*']+",
      "sensitive":true
    },
    "S3LogConfiguration":{
      "type":"structure",
      "required":[
        "bucket",
        "logFileFormat",
        "folderStructure"
      ],
      "members":{
        "bucket":{
          "shape":"S3Bucket",
          "documentation":"<p>The S3 bucket name where logs are delivered.</p>"
        },
        "keyPrefix":{
          "shape":"S3KeyPrefix",
          "documentation":"<p>The S3 path prefix that determines where log files are stored.</p>"
        },
        "bucketOwner":{
          "shape":"S3BucketOwner",
          "documentation":"<p>The expected bucket owner of the target S3 bucket. The caller must have permissions to write to the target bucket.</p>"
        },
        "logFileFormat":{
          "shape":"LogFileFormat",
          "documentation":"<p>The format of the LogFile that is written to S3.</p>"
        },
        "folderStructure":{
          "shape":"FolderStructure",
          "documentation":"<p>The folder structure that defines the organizational structure for log files in S3.</p>"
        }
      },
      "documentation":"<p>The S3 log configuration.</p>"
    },
    "S3Uri":{
      "type":"string",
      "pattern":"s3://[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]/.+"
    },
    "SamlMetadata":{
      "type":"string",
      "max":204800,
      "min":1,
      "pattern":".+"
    },
    "SecurityGroupId":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"[\\w+\\-]+"
    },
    "SecurityGroupIdList":{
      "type":"list",
      "member":{"shape":"SecurityGroupId"},
      "max":5,
      "min":1
    },
    "ServiceCode":{"type":"string"},
    "ServiceQuotaExceededException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ExceptionMessage"},
        "resourceId":{
          "shape":"ResourceId",
          "documentation":"<p>Identifier of the resource affected.</p>"
        },
        "resourceType":{
          "shape":"ResourceType",
          "documentation":"<p> Type of the resource affected.</p>"
        },
        "serviceCode":{
          "shape":"ServiceCode",
          "documentation":"<p>The originating service.</p>"
        },
        "quotaCode":{
          "shape":"QuotaCode",
          "documentation":"<p>The originating quota.</p>"
        }
      },
      "documentation":"<p>The service quota has been exceeded.</p>",
      "error":{
        "httpStatusCode":402,
        "senderFault":true
      },
      "exception":true
    },
    "Session":{
      "type":"structure",
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>"
        },
        "sessionId":{
          "shape":"StringType",
          "documentation":"<p>The ID of the session.</p>"
        },
        "username":{
          "shape":"Username",
          "documentation":"<p>The username of the session.</p>"
        },
        "clientIpAddresses":{
          "shape":"IpAddressList",
          "documentation":"<p>The IP address of the client.</p>"
        },
        "status":{
          "shape":"SessionStatus",
          "documentation":"<p>The status of the session.</p>"
        },
        "startTime":{
          "shape":"Timestamp",
          "documentation":"<p>The start time of the session.</p>"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>The end time of the session.</p>"
        }
      },
      "documentation":"<p>Information about a secure browser session.</p>"
    },
    "SessionId":{
      "type":"string",
      "max":36,
      "min":36,
      "pattern":"[a-zA-Z0-9\\-]+"
    },
    "SessionLogger":{
      "type":"structure",
      "required":["sessionLoggerArn"],
      "members":{
        "sessionLoggerArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the session logger resource.</p>"
        },
        "eventFilter":{
          "shape":"EventFilter",
          "documentation":"<p>The filter that specifies which events to monitor.</p>"
        },
        "logConfiguration":{
          "shape":"LogConfiguration",
          "documentation":"<p>The configuration that specifies where logs are fowarded.</p>"
        },
        "customerManagedKey":{
          "shape":"keyArn",
          "documentation":"<p>The custom managed key of the session logger.</p>"
        },
        "additionalEncryptionContext":{
          "shape":"EncryptionContextMap",
          "documentation":"<p>The additional encryption context of the session logger.</p>"
        },
        "associatedPortalArns":{
          "shape":"ArnList",
          "documentation":"<p>The associated portal ARN.</p>"
        },
        "displayName":{
          "shape":"DisplayNameSafe",
          "documentation":"<p>The human-readable display name.</p>"
        },
        "creationDate":{
          "shape":"Timestamp",
          "documentation":"<p>The date the session logger resource was created.</p>"
        }
      },
      "documentation":"<p>The session logger resource.</p>"
    },
    "SessionLoggerList":{
      "type":"list",
      "member":{"shape":"SessionLoggerSummary"}
    },
    "SessionLoggerSummary":{
      "type":"structure",
      "required":["sessionLoggerArn"],
      "members":{
        "sessionLoggerArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the session logger resource.</p>"
        },
        "logConfiguration":{
          "shape":"LogConfiguration",
          "documentation":"<p>The configuration that specifies where the logs are fowarded.</p>"
        },
        "displayName":{
          "shape":"DisplayNameSafe",
          "documentation":"<p>The human-readable display name.</p>"
        },
        "creationDate":{
          "shape":"Timestamp",
          "documentation":"<p>The date the session logger resource was created.</p>"
        }
      },
      "documentation":"<p>The summary of the session logger resource.</p>"
    },
    "SessionSortBy":{
      "type":"string",
      "enum":[
        "StartTimeAscending",
        "StartTimeDescending"
      ]
    },
    "SessionStatus":{
      "type":"string",
      "enum":[
        "Active",
        "Terminated"
      ]
    },
    "SessionSummary":{
      "type":"structure",
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>"
        },
        "sessionId":{
          "shape":"StringType",
          "documentation":"<p>The ID of the session.</p>"
        },
        "username":{
          "shape":"Username",
          "documentation":"<p>The username of the session.</p>"
        },
        "status":{
          "shape":"SessionStatus",
          "documentation":"<p>The status of the session.</p>"
        },
        "startTime":{
          "shape":"Timestamp",
          "documentation":"<p>The start time of the session.</p>"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>The end time of the session.</p>"
        }
      },
      "documentation":"<p>Summary information about a secure browser session.</p>"
    },
    "SessionSummaryList":{
      "type":"list",
      "member":{"shape":"SessionSummary"}
    },
    "StatusReason":{
      "type":"string",
      "max":1024,
      "min":1,
      "pattern":".*"
    },
    "StringType":{
      "type":"string",
      "max":131072,
      "min":0,
      "pattern":"[\\s\\S]*"
    },
    "SubnetId":{
      "type":"string",
      "max":32,
      "min":1,
      "pattern":"subnet-([0-9a-f]{8}|[0-9a-f]{17})"
    },
    "SubnetIdList":{
      "type":"list",
      "member":{"shape":"SubnetId"},
      "max":5,
      "min":2
    },
    "SubresourceARN":{
      "type":"string",
      "max":2048,
      "min":20,
      "pattern":"arn:[\\w+=\\/,.@-]+:[a-zA-Z0-9\\-]+:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:[a-zA-Z]+(\\/[a-fA-F0-9\\-]{36}){2,}"
    },
    "Tag":{
      "type":"structure",
      "required":[
        "Key",
        "Value"
      ],
      "members":{
        "Key":{
          "shape":"TagKey",
          "documentation":"<p>The key of the tag.</p>"
        },
        "Value":{
          "shape":"TagValue",
          "documentation":"<p>The value of the tag</p>"
        }
      },
      "documentation":"<p>The tag.</p>",
      "sensitive":true
    },
    "TagExceptionMessage":{"type":"string"},
    "TagKey":{
      "type":"string",
      "max":128,
      "min":1,
      "pattern":"([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)",
      "sensitive":true
    },
    "TagKeyList":{
      "type":"list",
      "member":{"shape":"TagKey"},
      "max":200,
      "min":0
    },
    "TagList":{
      "type":"list",
      "member":{"shape":"Tag"},
      "max":200,
      "min":0
    },
    "TagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tags"
      ],
      "members":{
        "resourceArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the resource.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tags":{
          "shape":"TagList",
          "documentation":"<p>The tags of the resource.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request. </p> <p>If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.</p>",
          "idempotencyToken":true
        }
      }
    },
    "TagResourceResponse":{
      "type":"structure",
      "members":{}
    },
    "TagValue":{
      "type":"string",
      "max":256,
      "min":0,
      "pattern":"([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)",
      "sensitive":true
    },
    "ThrottlingException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ExceptionMessage"},
        "serviceCode":{
          "shape":"ServiceCode",
          "documentation":"<p>The originating service.</p>"
        },
        "quotaCode":{
          "shape":"QuotaCode",
          "documentation":"<p>The originating quota.</p>"
        },
        "retryAfterSeconds":{
          "shape":"RetryAfterSeconds",
          "documentation":"<p>Advice to clients on when the call can be safely retried.</p>",
          "location":"header",
          "locationName":"Retry-After"
        }
      },
      "documentation":"<p>There is a throttling error.</p>",
      "error":{
        "httpStatusCode":429,
        "senderFault":true
      },
      "exception":true
    },
    "Timestamp":{"type":"timestamp"},
    "TooManyTagsException":{
      "type":"structure",
      "members":{
        "message":{"shape":"TagExceptionMessage"},
        "resourceName":{
          "shape":"ARN",
          "documentation":"<p>Name of the resource affected.</p>"
        }
      },
      "documentation":"<p>There are too many tags.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "ToolbarConfiguration":{
      "type":"structure",
      "members":{
        "toolbarType":{
          "shape":"ToolbarType",
          "documentation":"<p>The type of toolbar displayed during the session.</p>"
        },
        "visualMode":{
          "shape":"VisualMode",
          "documentation":"<p>The visual mode of the toolbar.</p>"
        },
        "hiddenToolbarItems":{
          "shape":"HiddenToolbarItemList",
          "documentation":"<p>The list of toolbar items to be hidden.</p>"
        },
        "maxDisplayResolution":{
          "shape":"MaxDisplayResolution",
          "documentation":"<p>The maximum display resolution that is allowed for the session.</p>"
        }
      },
      "documentation":"<p>The configuration of the toolbar. This allows administrators to select the toolbar type and visual mode, set maximum display resolution for sessions, and choose which items are visible to end users during their sessions. If administrators do not modify these settings, end users retain control over their toolbar preferences.</p>"
    },
    "ToolbarItem":{
      "type":"string",
      "enum":[
        "Windows",
        "DualMonitor",
        "FullScreen",
        "Webcam",
        "Microphone"
      ]
    },
    "ToolbarType":{
      "type":"string",
      "enum":[
        "Floating",
        "Docked"
      ]
    },
    "TrustStore":{
      "type":"structure",
      "required":["trustStoreArn"],
      "members":{
        "associatedPortalArns":{
          "shape":"ArnList",
          "documentation":"<p>A list of web portal ARNs that this trust store is associated with.</p>"
        },
        "trustStoreArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the trust store.</p>"
        }
      },
      "documentation":"<p>A trust store that can be associated with a web portal. A trust store contains certificate authority (CA) certificates. Once associated with a web portal, the browser in a streaming session will recognize certificates that have been issued using any of the CAs in the trust store. If your organization has internal websites that use certificates issued by private CAs, you should add the private CA certificate to the trust store. </p>"
    },
    "TrustStoreSummary":{
      "type":"structure",
      "members":{
        "trustStoreArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the trust store.</p>"
        }
      },
      "documentation":"<p>The summary of the trust store.</p>"
    },
    "TrustStoreSummaryList":{
      "type":"list",
      "member":{"shape":"TrustStoreSummary"}
    },
    "Unit":{
      "type":"structure",
      "members":{}
    },
    "UntagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "tagKeys"
      ],
      "members":{
        "resourceArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the resource.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "tagKeys":{
          "shape":"TagKeyList",
          "documentation":"<p>The list of tag keys to remove from the resource.</p>",
          "location":"querystring",
          "locationName":"tagKeys"
        }
      }
    },
    "UntagResourceResponse":{
      "type":"structure",
      "members":{}
    },
    "UpdateBrowserSettingsRequest":{
      "type":"structure",
      "required":["browserSettingsArn"],
      "members":{
        "browserSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the browser settings.</p>",
          "location":"uri",
          "locationName":"browserSettingsArn"
        },
        "browserPolicy":{
          "shape":"BrowserPolicy",
          "documentation":"<p>A JSON string containing Chrome Enterprise policies that will be applied to all streaming sessions. </p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request. </p> <p>If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.</p>",
          "idempotencyToken":true
        },
        "webContentFilteringPolicy":{
          "shape":"WebContentFilteringPolicy",
          "documentation":"<p>The policy that specifies which URLs end users are allowed to access or which URLs or domain categories they are restricted from accessing for enhanced security.</p>"
        }
      }
    },
    "UpdateBrowserSettingsResponse":{
      "type":"structure",
      "required":["browserSettings"],
      "members":{
        "browserSettings":{
          "shape":"BrowserSettings",
          "documentation":"<p>The browser settings.</p>"
        }
      }
    },
    "UpdateDataProtectionSettingsRequest":{
      "type":"structure",
      "required":["dataProtectionSettingsArn"],
      "members":{
        "dataProtectionSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the data protection settings.</p>",
          "location":"uri",
          "locationName":"dataProtectionSettingsArn"
        },
        "inlineRedactionConfiguration":{
          "shape":"InlineRedactionConfiguration",
          "documentation":"<p>The inline redaction configuration of the data protection settings that will be applied to all sessions.</p>"
        },
        "displayName":{
          "shape":"DisplayNameSafe",
          "documentation":"<p>The display name of the data protection settings.</p>"
        },
        "description":{
          "shape":"DescriptionSafe",
          "documentation":"<p>The description of the data protection settings.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request. </p> <p>If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.</p>",
          "idempotencyToken":true
        }
      }
    },
    "UpdateDataProtectionSettingsResponse":{
      "type":"structure",
      "required":["dataProtectionSettings"],
      "members":{
        "dataProtectionSettings":{
          "shape":"DataProtectionSettings",
          "documentation":"<p>The data protection settings.</p>"
        }
      }
    },
    "UpdateIdentityProviderRequest":{
      "type":"structure",
      "required":["identityProviderArn"],
      "members":{
        "identityProviderArn":{
          "shape":"SubresourceARN",
          "documentation":"<p>The ARN of the identity provider.</p>",
          "location":"uri",
          "locationName":"identityProviderArn"
        },
        "identityProviderName":{
          "shape":"IdentityProviderName",
          "documentation":"<p>The name of the identity provider.</p>"
        },
        "identityProviderType":{
          "shape":"IdentityProviderType",
          "documentation":"<p>The type of the identity provider.</p>"
        },
        "identityProviderDetails":{
          "shape":"IdentityProviderDetails",
          "documentation":"<p>The details of the identity provider. The following list describes the provider detail keys for each identity provider type. </p> <ul> <li> <p>For Google and Login with Amazon:</p> <ul> <li> <p> <code>client_id</code> </p> </li> <li> <p> <code>client_secret</code> </p> </li> <li> <p> <code>authorize_scopes</code> </p> </li> </ul> </li> <li> <p>For Facebook:</p> <ul> <li> <p> <code>client_id</code> </p> </li> <li> <p> <code>client_secret</code> </p> </li> <li> <p> <code>authorize_scopes</code> </p> </li> <li> <p> <code>api_version</code> </p> </li> </ul> </li> <li> <p>For Sign in with Apple:</p> <ul> <li> <p> <code>client_id</code> </p> </li> <li> <p> <code>team_id</code> </p> </li> <li> <p> <code>key_id</code> </p> </li> <li> <p> <code>private_key</code> </p> </li> <li> <p> <code>authorize_scopes</code> </p> </li> </ul> </li> <li> <p>For OIDC providers:</p> <ul> <li> <p> <code>client_id</code> </p> </li> <li> <p> <code>client_secret</code> </p> </li> <li> <p> <code>attributes_request_method</code> </p> </li> <li> <p> <code>oidc_issuer</code> </p> </li> <li> <p> <code>authorize_scopes</code> </p> </li> <li> <p> <code>authorize_url</code> <i>if not available from discovery URL specified by <code>oidc_issuer</code> key</i> </p> </li> <li> <p> <code>token_url</code> <i>if not available from discovery URL specified by <code>oidc_issuer</code> key</i> </p> </li> <li> <p> <code>attributes_url</code> <i>if not available from discovery URL specified by <code>oidc_issuer</code> key</i> </p> </li> <li> <p> <code>jwks_uri</code> <i>if not available from discovery URL specified by <code>oidc_issuer</code> key</i> </p> </li> </ul> </li> <li> <p>For SAML providers:</p> <ul> <li> <p> <code>MetadataFile</code> OR <code>MetadataURL</code> </p> </li> <li> <p> <code>IDPSignout</code> (boolean) <i>optional</i> </p> </li> <li> <p> <code>IDPInit</code> (boolean) <i>optional</i> </p> </li> <li> <p> <code>RequestSigningAlgorithm</code> (string) <i>optional</i> - Only accepts <code>rsa-sha256</code> </p> </li> <li> <p> <code>EncryptedResponses</code> (boolean) <i>optional</i> </p> </li> </ul> </li> </ul>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request. </p> <p>If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.</p>",
          "idempotencyToken":true
        }
      }
    },
    "UpdateIdentityProviderResponse":{
      "type":"structure",
      "required":["identityProvider"],
      "members":{
        "identityProvider":{
          "shape":"IdentityProvider",
          "documentation":"<p>The identity provider.</p>"
        }
      }
    },
    "UpdateIpAccessSettingsRequest":{
      "type":"structure",
      "required":["ipAccessSettingsArn"],
      "members":{
        "ipAccessSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the IP access settings.</p>",
          "location":"uri",
          "locationName":"ipAccessSettingsArn"
        },
        "displayName":{
          "shape":"DisplayName",
          "documentation":"<p>The display name of the IP access settings.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the IP access settings.</p>"
        },
        "ipRules":{
          "shape":"IpRuleList",
          "documentation":"<p>The updated IP rules of the IP access settings.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request. </p> <p>If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.</p>",
          "idempotencyToken":true
        }
      }
    },
    "UpdateIpAccessSettingsResponse":{
      "type":"structure",
      "required":["ipAccessSettings"],
      "members":{
        "ipAccessSettings":{
          "shape":"IpAccessSettings",
          "documentation":"<p>The IP access settings.</p>"
        }
      }
    },
    "UpdateNetworkSettingsRequest":{
      "type":"structure",
      "required":["networkSettingsArn"],
      "members":{
        "networkSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the network settings.</p>",
          "location":"uri",
          "locationName":"networkSettingsArn"
        },
        "vpcId":{
          "shape":"VpcId",
          "documentation":"<p>The VPC that streaming instances will connect to.</p>"
        },
        "subnetIds":{
          "shape":"SubnetIdList",
          "documentation":"<p>The subnets in which network interfaces are created to connect streaming instances to your VPC. At least two of these subnets must be in different availability zones.</p>"
        },
        "securityGroupIds":{
          "shape":"SecurityGroupIdList",
          "documentation":"<p>One or more security groups used to control access from streaming instances to your VPC.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request. </p> <p>If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.</p>",
          "idempotencyToken":true
        }
      }
    },
    "UpdateNetworkSettingsResponse":{
      "type":"structure",
      "required":["networkSettings"],
      "members":{
        "networkSettings":{
          "shape":"NetworkSettings",
          "documentation":"<p>The network settings.</p>"
        }
      }
    },
    "UpdatePortalRequest":{
      "type":"structure",
      "required":["portalArn"],
      "members":{
        "portalArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the web portal.</p>",
          "location":"uri",
          "locationName":"portalArn"
        },
        "displayName":{
          "shape":"DisplayName",
          "documentation":"<p>The name of the web portal. This is not visible to users who log into the web portal.</p>"
        },
        "authenticationType":{
          "shape":"AuthenticationType",
          "documentation":"<p>The type of authentication integration points used when signing into the web portal. Defaults to <code>Standard</code>.</p> <p> <code>Standard</code> web portals are authenticated directly through your identity provider. You need to call <code>CreateIdentityProvider</code> to integrate your identity provider with your web portal. User and group access to your web portal is controlled through your identity provider.</p> <p> <code>IAM Identity Center</code> web portals are authenticated through IAM Identity Center. Identity sources (including external identity provider integration), plus user and group access to your web portal, can be configured in the IAM Identity Center.</p>"
        },
        "instanceType":{
          "shape":"InstanceType",
          "documentation":"<p>The type and resources of the underlying instance.</p>"
        },
        "maxConcurrentSessions":{
          "shape":"MaxConcurrentSessions",
          "documentation":"<p>The maximum number of concurrent sessions for the portal.</p>"
        },
        "portalCustomDomain":{
          "shape":"PortalCustomDomain",
          "documentation":"<p>The custom domain of the web portal that users access in order to start streaming sessions. </p>"
        }
      }
    },
    "UpdatePortalResponse":{
      "type":"structure",
      "members":{
        "portal":{
          "shape":"Portal",
          "documentation":"<p>The web portal.</p>"
        }
      }
    },
    "UpdateSessionLoggerRequest":{
      "type":"structure",
      "required":["sessionLoggerArn"],
      "members":{
        "sessionLoggerArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the session logger to update.</p>",
          "location":"uri",
          "locationName":"sessionLoggerArn"
        },
        "eventFilter":{
          "shape":"EventFilter",
          "documentation":"<p>The updated eventFilter.</p>"
        },
        "logConfiguration":{
          "shape":"LogConfiguration",
          "documentation":"<p>The updated logConfiguration.</p>"
        },
        "displayName":{
          "shape":"DisplayNameSafe",
          "documentation":"<p>The updated display name.</p>"
        }
      }
    },
    "UpdateSessionLoggerResponse":{
      "type":"structure",
      "required":["sessionLogger"],
      "members":{
        "sessionLogger":{
          "shape":"SessionLogger",
          "documentation":"<p>The updated details of the session logger.</p>"
        }
      }
    },
    "UpdateTrustStoreRequest":{
      "type":"structure",
      "required":["trustStoreArn"],
      "members":{
        "trustStoreArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the trust store.</p>",
          "location":"uri",
          "locationName":"trustStoreArn"
        },
        "certificatesToAdd":{
          "shape":"CertificateList",
          "documentation":"<p>A list of CA certificates to add to the trust store.</p>"
        },
        "certificatesToDelete":{
          "shape":"CertificateThumbprintList",
          "documentation":"<p>A list of CA certificates to delete from a trust store.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request. </p> <p>If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.</p>",
          "idempotencyToken":true
        }
      }
    },
    "UpdateTrustStoreResponse":{
      "type":"structure",
      "required":["trustStoreArn"],
      "members":{
        "trustStoreArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the trust store.</p>"
        }
      }
    },
    "UpdateUserAccessLoggingSettingsRequest":{
      "type":"structure",
      "required":["userAccessLoggingSettingsArn"],
      "members":{
        "userAccessLoggingSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the user access logging settings.</p>",
          "location":"uri",
          "locationName":"userAccessLoggingSettingsArn"
        },
        "kinesisStreamArn":{
          "shape":"KinesisStreamArn",
          "documentation":"<p>The ARN of the Kinesis stream.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request. </p> <p>If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.</p>",
          "idempotencyToken":true
        }
      }
    },
    "UpdateUserAccessLoggingSettingsResponse":{
      "type":"structure",
      "required":["userAccessLoggingSettings"],
      "members":{
        "userAccessLoggingSettings":{
          "shape":"UserAccessLoggingSettings",
          "documentation":"<p>The user access logging settings.</p>"
        }
      }
    },
    "UpdateUserSettingsRequest":{
      "type":"structure",
      "required":["userSettingsArn"],
      "members":{
        "userSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the user settings.</p>",
          "location":"uri",
          "locationName":"userSettingsArn"
        },
        "copyAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can copy text from the streaming session to the local device.</p>"
        },
        "pasteAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can paste text from the local device to the streaming session.</p>"
        },
        "downloadAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can download files from the streaming session to the local device.</p>"
        },
        "uploadAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can upload files from the local device to the streaming session.</p>"
        },
        "printAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can print to the local device.</p>"
        },
        "disconnectTimeoutInMinutes":{
          "shape":"DisconnectTimeoutInMinutes",
          "documentation":"<p>The amount of time that a streaming session remains active after users disconnect.</p>"
        },
        "idleDisconnectTimeoutInMinutes":{
          "shape":"IdleDisconnectTimeoutInMinutes",
          "documentation":"<p>The amount of time that users can be idle (inactive) before they are disconnected from their streaming session and the disconnect timeout interval begins.</p>"
        },
        "clientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request. </p> <p>If you do not specify a client token, one is automatically generated by the Amazon Web Services SDK.</p>",
          "idempotencyToken":true
        },
        "cookieSynchronizationConfiguration":{
          "shape":"CookieSynchronizationConfiguration",
          "documentation":"<p>The configuration that specifies which cookies should be synchronized from the end user's local browser to the remote browser.</p> <p>If the allowlist and blocklist are empty, the configuration becomes null.</p>"
        },
        "deepLinkAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can use deep links that open automatically when connecting to a session.</p>"
        },
        "toolbarConfiguration":{
          "shape":"ToolbarConfiguration",
          "documentation":"<p>The configuration of the toolbar. This allows administrators to select the toolbar type and visual mode, set maximum display resolution for sessions, and choose which items are visible to end users during their sessions. If administrators do not modify these settings, end users retain control over their toolbar preferences.</p>"
        },
        "brandingConfigurationInput":{
          "shape":"BrandingConfigurationUpdateInput",
          "documentation":"<p>The branding configuration that customizes the appearance of the web portal for end users. When updating user settings without an existing branding configuration, all fields (logo, favicon, localized strings, and color theme) are required except for wallpaper and terms of service. When updating user settings with an existing branding configuration, all fields are optional.</p>"
        },
        "webAuthnAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can use WebAuthn redirection for passwordless login to websites within the streaming session.</p>"
        }
      }
    },
    "UpdateUserSettingsResponse":{
      "type":"structure",
      "required":["userSettings"],
      "members":{
        "userSettings":{
          "shape":"UserSettings",
          "documentation":"<p>The user settings.</p>"
        }
      }
    },
    "UrlPattern":{
      "type":"string",
      "pattern":"((([a-zA-Z][a-zA-Z0-9+.-]*):\\/\\/(\\*|[\\w%._\\-\\+~#=@]+)?(\\/[^@\\s]*)?(?:\\?([^*\\s]+(?:\\*?)))?)|(\\*|[\\w%._\\-\\+~#=@]+\\.[\\w%._\\-\\+~#=@]+)(?::(\\d{1,5}))?(\\/[^@\\s]*)?(?:\\?([^*\\s]+(?:\\*?)))?|(([a-zA-Z][a-zA-Z0-9+.-]*):(\\/\\/)?\\*))",
      "sensitive":true
    },
    "UrlPatternList":{
      "type":"list",
      "member":{"shape":"UrlPattern"},
      "max":1000,
      "min":1
    },
    "UserAccessLoggingSettings":{
      "type":"structure",
      "required":["userAccessLoggingSettingsArn"],
      "members":{
        "userAccessLoggingSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the user access logging settings.</p>"
        },
        "associatedPortalArns":{
          "shape":"ArnList",
          "documentation":"<p>A list of web portal ARNs that this user access logging settings is associated with.</p>"
        },
        "kinesisStreamArn":{
          "shape":"KinesisStreamArn",
          "documentation":"<p>The ARN of the Kinesis stream.</p>"
        }
      },
      "documentation":"<p>A user access logging settings resource that can be associated with a web portal.</p>"
    },
    "UserAccessLoggingSettingsList":{
      "type":"list",
      "member":{"shape":"UserAccessLoggingSettingsSummary"}
    },
    "UserAccessLoggingSettingsSummary":{
      "type":"structure",
      "required":["userAccessLoggingSettingsArn"],
      "members":{
        "userAccessLoggingSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the user access logging settings.</p>"
        },
        "kinesisStreamArn":{
          "shape":"KinesisStreamArn",
          "documentation":"<p>The ARN of the Kinesis stream.</p>"
        }
      },
      "documentation":"<p>The summary of user access logging settings.</p>"
    },
    "UserSettings":{
      "type":"structure",
      "required":["userSettingsArn"],
      "members":{
        "userSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the user settings.</p>"
        },
        "associatedPortalArns":{
          "shape":"ArnList",
          "documentation":"<p>A list of web portal ARNs that this user settings is associated with.</p>"
        },
        "copyAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can copy text from the streaming session to the local device.</p>"
        },
        "pasteAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can paste text from the local device to the streaming session.</p>"
        },
        "downloadAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can download files from the streaming session to the local device.</p>"
        },
        "uploadAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can upload files from the local device to the streaming session.</p>"
        },
        "printAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can print to the local device.</p>"
        },
        "disconnectTimeoutInMinutes":{
          "shape":"DisconnectTimeoutInMinutes",
          "documentation":"<p>The amount of time that a streaming session remains active after users disconnect.</p>"
        },
        "idleDisconnectTimeoutInMinutes":{
          "shape":"IdleDisconnectTimeoutInMinutes",
          "documentation":"<p>The amount of time that users can be idle (inactive) before they are disconnected from their streaming session and the disconnect timeout interval begins.</p>"
        },
        "cookieSynchronizationConfiguration":{
          "shape":"CookieSynchronizationConfiguration",
          "documentation":"<p>The configuration that specifies which cookies should be synchronized from the end user's local browser to the remote browser.</p>"
        },
        "customerManagedKey":{
          "shape":"keyArn",
          "documentation":"<p>The customer managed key used to encrypt sensitive information in the user settings.</p>"
        },
        "additionalEncryptionContext":{
          "shape":"EncryptionContextMap",
          "documentation":"<p>The additional encryption context of the user settings.</p>"
        },
        "deepLinkAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can use deep links that open automatically when connecting to a session.</p>"
        },
        "toolbarConfiguration":{
          "shape":"ToolbarConfiguration",
          "documentation":"<p>The configuration of the toolbar. This allows administrators to select the toolbar type and visual mode, set maximum display resolution for sessions, and choose which items are visible to end users during their sessions. If administrators do not modify these settings, end users retain control over their toolbar preferences.</p>"
        },
        "brandingConfiguration":{
          "shape":"BrandingConfiguration",
          "documentation":"<p>The branding configuration output that customizes the appearance of the web portal for end users.</p>"
        },
        "webAuthnAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can use WebAuthn redirection for passwordless login to websites within the streaming session.</p>"
        }
      },
      "documentation":"<p>A user settings resource that can be associated with a web portal. Once associated with a web portal, user settings control how users can transfer data between a streaming session and the their local devices. </p>"
    },
    "UserSettingsList":{
      "type":"list",
      "member":{"shape":"UserSettingsSummary"}
    },
    "UserSettingsSummary":{
      "type":"structure",
      "required":["userSettingsArn"],
      "members":{
        "userSettingsArn":{
          "shape":"ARN",
          "documentation":"<p>The ARN of the user settings.</p>"
        },
        "copyAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can copy text from the streaming session to the local device.</p>"
        },
        "pasteAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can paste text from the local device to the streaming session.</p>"
        },
        "downloadAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can download files from the streaming session to the local device.</p>"
        },
        "uploadAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can upload files from the local device to the streaming session.</p>"
        },
        "printAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can print to the local device.</p>"
        },
        "disconnectTimeoutInMinutes":{
          "shape":"DisconnectTimeoutInMinutes",
          "documentation":"<p>The amount of time that a streaming session remains active after users disconnect.</p>"
        },
        "idleDisconnectTimeoutInMinutes":{
          "shape":"IdleDisconnectTimeoutInMinutes",
          "documentation":"<p>The amount of time that users can be idle (inactive) before they are disconnected from their streaming session and the disconnect timeout interval begins.</p>"
        },
        "cookieSynchronizationConfiguration":{
          "shape":"CookieSynchronizationConfiguration",
          "documentation":"<p>The configuration that specifies which cookies should be synchronized from the end user's local browser to the remote browser.</p>"
        },
        "deepLinkAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can use deep links that open automatically when connecting to a session.</p>"
        },
        "toolbarConfiguration":{
          "shape":"ToolbarConfiguration",
          "documentation":"<p>The configuration of the toolbar. This allows administrators to select the toolbar type and visual mode, set maximum display resolution for sessions, and choose which items are visible to end users during their sessions. If administrators do not modify these settings, end users retain control over their toolbar preferences.</p>"
        },
        "brandingConfiguration":{
          "shape":"BrandingConfiguration",
          "documentation":"<p>The branding configuration output that customizes the appearance of the web portal for end users.</p>"
        },
        "webAuthnAllowed":{
          "shape":"EnabledType",
          "documentation":"<p>Specifies whether the user can use WebAuthn redirection for passwordless login to websites within the streaming session.</p>"
        }
      },
      "documentation":"<p>The summary of user settings.</p>"
    },
    "Username":{
      "type":"string",
      "max":256,
      "min":0,
      "pattern":"[\\s\\S]*",
      "sensitive":true
    },
    "ValidationException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ExceptionMessage"},
        "reason":{
          "shape":"ValidationExceptionReason",
          "documentation":"<p>Reason the request failed validation</p>"
        },
        "fieldList":{
          "shape":"ValidationExceptionFieldList",
          "documentation":"<p>The field that caused the error.</p>"
        }
      },
      "documentation":"<p>There is a validation error.</p>",
      "error":{
        "httpStatusCode":400,
        "senderFault":true
      },
      "exception":true
    },
    "ValidationExceptionField":{
      "type":"structure",
      "required":[
        "name",
        "message"
      ],
      "members":{
        "name":{
          "shape":"FieldName",
          "documentation":"<p>The name of the field that failed validation.</p>"
        },
        "message":{
          "shape":"ExceptionMessage",
          "documentation":"<p>The message describing why the field failed validation.</p>"
        }
      },
      "documentation":"<p>Information about a field passed inside a request that resulted in an exception.</p>"
    },
    "ValidationExceptionFieldList":{
      "type":"list",
      "member":{"shape":"ValidationExceptionField"}
    },
    "ValidationExceptionReason":{
      "type":"string",
      "enum":[
        "unknownOperation",
        "cannotParse",
        "fieldValidationFailed",
        "other"
      ]
    },
    "VisualMode":{
      "type":"string",
      "enum":[
        "Dark",
        "Light"
      ]
    },
    "VpcId":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"vpc-[0-9a-z]*"
    },
    "WallpaperImage":{
      "type":"blob",
      "max":5242880,
      "min":0
    },
    "WallpaperImageInput":{
      "type":"structure",
      "members":{
        "blob":{
          "shape":"WallpaperImage",
          "documentation":"<p>The image provided as a binary image file.</p>"
        },
        "s3Uri":{
          "shape":"S3Uri",
          "documentation":"<p>The S3 URI pointing to the image file. The URI must use the format <code>s3://bucket-name/key-name</code>. You must have read access to the S3 object.</p>"
        }
      },
      "documentation":"<p>The input for a wallpaper image. Provide the image as either a binary image file or an S3 URI. Maximum 5 MB in JPEG or PNG format.</p>",
      "union":true
    },
    "WebContentFilteringPolicy":{
      "type":"structure",
      "members":{
        "blockedCategories":{
          "shape":"BlockedCategories",
          "documentation":"<p>Categories of websites that are blocked on the end user’s browsers.</p>"
        },
        "allowedUrls":{
          "shape":"UrlPatternList",
          "documentation":"<p>URLs and domains that are always accessible to end users.</p>"
        },
        "blockedUrls":{
          "shape":"UrlPatternList",
          "documentation":"<p>URLs and domains that end users cannot access.</p>"
        }
      },
      "documentation":"<p>The policy that specifies which URLs end users are allowed to access or which URLs or domain categories they are restricted from accessing for enhanced security.</p>"
    },
    "keyArn":{
      "type":"string",
      "max":2048,
      "min":20,
      "pattern":"arn:[\\w+=\\/,.@-]+:kms:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:key\\/[a-zA-Z0-9-]+"
    }
  },
  "documentation":"<p>Amazon WorkSpaces Secure Browser is a low cost, fully managed WorkSpace built specifically to facilitate secure, web-based workloads. WorkSpaces Secure Browser makes it easy for customers to safely provide their employees with access to internal websites and SaaS web applications without the administrative burden of appliances or specialized client software. WorkSpaces Secure Browser provides simple policy tools tailored for user interactions, while offloading common tasks like capacity management, scaling, and maintaining browser images.</p>"
}
