{
 "additionalProperties": false,
 "definitions": {
  "BrandingConfiguration": {
   "additionalProperties": false,
   "properties": {
    "ColorTheme": {
     "$ref": "#/definitions/ColorTheme"
    },
    "Favicon": {
     "pattern": "(^s3://[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]/.+$)|(^(?=(.{4})*$)[A-Za-z0-9+/]*={0,2}$)",
     "type": "string"
    },
    "FaviconMetadata": {
     "$ref": "#/definitions/ImageMetadata"
    },
    "LocalizedStrings": {
     "$ref": "#/definitions/LocalizedBrandingStringMap"
    },
    "Logo": {
     "pattern": "(^s3://[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]/.+$)|(^(?=(.{4})*$)[A-Za-z0-9+/]*={0,2}$)",
     "type": "string"
    },
    "LogoMetadata": {
     "$ref": "#/definitions/ImageMetadata"
    },
    "TermsOfService": {
     "maxLength": 153600,
     "type": "string"
    },
    "Wallpaper": {
     "pattern": "(^s3://[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]/.+$)|(^(?=(.{4})*$)[A-Za-z0-9+/]*={0,2}$)",
     "type": "string"
    },
    "WallpaperMetadata": {
     "$ref": "#/definitions/ImageMetadata"
    }
   },
   "type": "object"
  },
  "ColorTheme": {
   "enum": [
    "Light",
    "Dark"
   ],
   "type": "string"
  },
  "CookieSpecification": {
   "additionalProperties": false,
   "properties": {
    "Domain": {
     "maxLength": 253,
     "minLength": 0,
     "pattern": "^(\\.?)(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$",
     "type": "string"
    },
    "Name": {
     "maxLength": 4096,
     "minLength": 0,
     "type": "string"
    },
    "Path": {
     "maxLength": 2000,
     "minLength": 0,
     "pattern": "^/(\\S)*$",
     "type": "string"
    }
   },
   "required": [
    "Domain"
   ],
   "type": "object"
  },
  "CookieSynchronizationConfiguration": {
   "additionalProperties": false,
   "properties": {
    "Allowlist": {
     "insertionOrder": false,
     "items": {
      "$ref": "#/definitions/CookieSpecification"
     },
     "maxItems": 10,
     "minItems": 0,
     "type": "array"
    },
    "Blocklist": {
     "insertionOrder": false,
     "items": {
      "$ref": "#/definitions/CookieSpecification"
     },
     "maxItems": 10,
     "minItems": 0,
     "type": "array"
    }
   },
   "required": [
    "Allowlist"
   ],
   "type": "object"
  },
  "EnabledType": {
   "enum": [
    "Disabled",
    "Enabled"
   ],
   "type": "string"
  },
  "EncryptionContextMap": {
   "additionalProperties": false,
   "patternProperties": {
    "^[\\s\\S]*$": {
     "maxLength": 131072,
     "minLength": 0,
     "pattern": "^[\\s\\S]*$",
     "type": "string"
    }
   },
   "type": "object"
  },
  "ImageMetadata": {
   "additionalProperties": false,
   "properties": {
    "FileExtension": {
     "maxLength": 131072,
     "minLength": 0,
     "pattern": "^[\\s\\S]*$",
     "type": "string"
    },
    "LastUploadTimestamp": {
     "format": "date-time",
     "type": "string"
    },
    "MimeType": {
     "$ref": "#/definitions/MimeType"
    }
   },
   "required": [
    "FileExtension",
    "LastUploadTimestamp",
    "MimeType"
   ],
   "type": "object"
  },
  "Locale": {
   "enum": [
    "de-DE",
    "en-US",
    "es-ES",
    "fr-FR",
    "id-ID",
    "it-IT",
    "ja-JP",
    "ko-KR",
    "pt-BR",
    "zh-CN",
    "zh-TW"
   ],
   "type": "string"
  },
  "LocalizedBrandingStringMap": {
   "additionalProperties": false,
   "patternProperties": {
    ".+": {
     "$ref": "#/definitions/LocalizedBrandingStrings"
    }
   },
   "type": "object"
  },
  "LocalizedBrandingStrings": {
   "additionalProperties": false,
   "properties": {
    "BrowserTabTitle": {
     "pattern": "^[^<>&'`~\\\\]*$",
     "type": "string"
    },
    "ContactButtonText": {
     "pattern": "^[^<>&'`~\\\\]*$",
     "type": "string"
    },
    "ContactLink": {
     "pattern": "^(https?://|mailto:).*",
     "type": "string"
    },
    "LoadingText": {
     "pattern": "^[^<>&'`~\\\\]*$",
     "type": "string"
    },
    "LoginButtonText": {
     "pattern": "^[^<>&'`~\\\\]*$",
     "type": "string"
    },
    "LoginDescription": {
     "pattern": "^[^<>&'`~\\\\]*$",
     "type": "string"
    },
    "LoginTitle": {
     "pattern": "^[^<>&'`~\\\\]*$",
     "type": "string"
    },
    "WelcomeText": {
     "pattern": "^[^<>&'`~\\\\]*$",
     "type": "string"
    }
   },
   "required": [
    "BrowserTabTitle",
    "WelcomeText"
   ],
   "type": "object"
  },
  "MaxDisplayResolution": {
   "enum": [
    "size4096X2160",
    "size3840X2160",
    "size3440X1440",
    "size2560X1440",
    "size1920X1080",
    "size1280X720",
    "size1024X768",
    "size800X600"
   ],
   "type": "string"
  },
  "MimeType": {
   "enum": [
    "image/png",
    "image/jpeg",
    "image/x-icon"
   ],
   "type": "string"
  },
  "Tag": {
   "additionalProperties": false,
   "properties": {
    "Key": {
     "maxLength": 128,
     "minLength": 1,
     "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$",
     "type": "string"
    },
    "Value": {
     "maxLength": 256,
     "minLength": 0,
     "pattern": "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$",
     "type": "string"
    }
   },
   "required": [
    "Key",
    "Value"
   ],
   "type": "object"
  },
  "ToolbarConfiguration": {
   "additionalProperties": false,
   "properties": {
    "HiddenToolbarItems": {
     "items": {
      "$ref": "#/definitions/ToolbarItem"
     },
     "type": "array"
    },
    "MaxDisplayResolution": {
     "$ref": "#/definitions/MaxDisplayResolution"
    },
    "ToolbarType": {
     "$ref": "#/definitions/ToolbarType"
    },
    "VisualMode": {
     "$ref": "#/definitions/VisualMode"
    }
   },
   "type": "object"
  },
  "ToolbarItem": {
   "enum": [
    "Windows",
    "DualMonitor",
    "FullScreen",
    "Webcam",
    "Microphone"
   ],
   "type": "string"
  },
  "ToolbarType": {
   "enum": [
    "Floating",
    "Docked"
   ],
   "type": "string"
  },
  "VisualMode": {
   "enum": [
    "Dark",
    "Light"
   ],
   "type": "string"
  }
 },
 "primaryIdentifier": [
  "/properties/UserSettingsArn"
 ],
 "properties": {
  "AdditionalEncryptionContext": {
   "$ref": "#/definitions/EncryptionContextMap"
  },
  "AssociatedPortalArns": {
   "insertionOrder": false,
   "items": {
    "maxLength": 2048,
    "minLength": 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})+$",
    "type": "string"
   },
   "type": "array"
  },
  "BrandingConfiguration": {
   "$ref": "#/definitions/BrandingConfiguration"
  },
  "CookieSynchronizationConfiguration": {
   "$ref": "#/definitions/CookieSynchronizationConfiguration"
  },
  "CopyAllowed": {
   "$ref": "#/definitions/EnabledType"
  },
  "CustomerManagedKey": {
   "maxLength": 2048,
   "minLength": 20,
   "pattern": "^arn:[\\w+=\\/,.@-]+:kms:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:key\\/[a-zA-Z0-9-]+$",
   "type": "string"
  },
  "DeepLinkAllowed": {
   "$ref": "#/definitions/EnabledType"
  },
  "DisconnectTimeoutInMinutes": {
   "default": null,
   "maximum": 600,
   "minimum": 1,
   "type": "number"
  },
  "DownloadAllowed": {
   "$ref": "#/definitions/EnabledType"
  },
  "IdleDisconnectTimeoutInMinutes": {
   "default": null,
   "maximum": 60,
   "minimum": 0,
   "type": "number"
  },
  "PasteAllowed": {
   "$ref": "#/definitions/EnabledType"
  },
  "PrintAllowed": {
   "$ref": "#/definitions/EnabledType"
  },
  "Tags": {
   "insertionOrder": false,
   "items": {
    "$ref": "#/definitions/Tag"
   },
   "maxItems": 200,
   "minItems": 0,
   "type": "array"
  },
  "ToolbarConfiguration": {
   "$ref": "#/definitions/ToolbarConfiguration"
  },
  "UploadAllowed": {
   "$ref": "#/definitions/EnabledType"
  },
  "UserSettingsArn": {
   "maxLength": 2048,
   "minLength": 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})+$",
   "type": "string"
  }
 },
 "readOnlyProperties": [
  "/properties/AssociatedPortalArns",
  "/properties/UserSettingsArn",
  "/properties/BrandingConfiguration/LogoMetadata",
  "/properties/BrandingConfiguration/FaviconMetadata",
  "/properties/BrandingConfiguration/WallpaperMetadata"
 ],
 "required": [
  "CopyAllowed",
  "DownloadAllowed",
  "PasteAllowed",
  "PrintAllowed",
  "UploadAllowed"
 ],
 "tagging": {
  "cloudFormationSystemTags": false,
  "tagOnCreate": true,
  "tagProperty": "/properties/Tags",
  "tagUpdatable": true,
  "taggable": true
 },
 "typeName": "AWS::WorkSpacesWeb::UserSettings",
 "writeOnlyProperties": [
  "/properties/BrandingConfiguration/Logo",
  "/properties/BrandingConfiguration/Favicon",
  "/properties/BrandingConfiguration/Wallpaper"
 ]
}
