{
  "swagger": "2.0",
  "info": {
    "version": "v1",
    "title": "Citrix Remote Browser Isolation Session API"
  },
  "host": "session.browser.cloud.com",
  "schemes": [
    "https"
  ],
  "paths": {
    "/{customer}/singleUse/$launchIcaFile": {
      "post": {
        "tags": [
          "SingleUseLaunch"
        ],
        "summary": "Create ICA File",
        "description": "An API for launching arbitrary addresses within the hosted environment, without permanently publishing\r\nthe URL. The returned value is an ICA file that may be passed to any Citrix Workspace app in order to\r\nlaunch the session, typically by saving the ICA data to a local file on the user's endpoint and invoking\r\nthe installed Workspace app.",
        "operationId": "SingleUseLaunch_IcaFile",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json; charset=utf-8"
        ],
        "parameters": [
          {
            "name": "customer",
            "in": "path",
            "description": "Citrix Cloud customer id",
            "required": true,
            "type": "string"
          },
          {
            "name": "request",
            "in": "body",
            "description": "Request that describes the hosted environment for the end user's browser",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SingleUseLaunchRequestModel"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Citrix Cloud authorization bearer token",
            "required": true,
            "type": "string"
          },
          {
            "name": "Citrix-TransactionId",
            "in": "header",
            "required": false,
            "type": "string",
            "format": "uuid"
          },
          {
            "name": "Accept",
            "in": "header",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/SingleUseIcaFileResponse"
            },
            "headers": {
              "Citrix-TransactionId": {
                "type": "string",
                "format": "uuid"
              },
              "Content-Type": {
                "type": "string"
              },
              "X-Content-Type-Options": {
                "type": "string"
              }
            }
          },
          "400": {
            "description": "Body could not be parsed or requested an incompatible combination of options",
            "headers": {
              "Citrix-TransactionId": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          "402": {
            "description": "Customer account not entitled to use Remote Browser Isolation",
            "headers": {
              "Citrix-TransactionId": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          "404": {
            "description": "Customer account not recognized",
            "headers": {
              "Citrix-TransactionId": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          "401": {
            "description": "Authorization header is missing or invalid",
            "headers": {
              "Citrix-TransactionId": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          "415": {
            "description": "Must use application/json;charset=utf-8 media type",
            "headers": {
              "Citrix-TransactionId": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          "406": {
            "description": "Must accept application/json media type",
            "headers": {
              "Citrix-TransactionId": {
                "type": "string",
                "format": "uuid"
              }
            }
          }
        }
      }
    },
    "/{customer}/singleUse/$launchUrl": {
      "post": {
        "tags": [
          "SingleUseLaunch"
        ],
        "summary": "Create Single-Use Launch URL",
        "description": "An API for launching arbitrary addresses within the hosted environment, without permanently\r\npublishing the URL. The returned value is a launch.cloud.com URL which may only be used once and\r\nwill time out if not used within ten minutes.",
        "operationId": "SingleUseLaunch_LaunchUrl",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json; charset=utf-8"
        ],
        "parameters": [
          {
            "name": "customer",
            "in": "path",
            "description": "Citrix Cloud customer id",
            "required": true,
            "type": "string"
          },
          {
            "name": "request",
            "in": "body",
            "description": "Request that describes the hosted environment for the end user's browser",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SingleUseLaunchRequestModel"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Citrix Cloud authorization bearer token",
            "required": true,
            "type": "string"
          },
          {
            "name": "Citrix-TransactionId",
            "in": "header",
            "required": false,
            "type": "string",
            "format": "uuid"
          },
          {
            "name": "Accept",
            "in": "header",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/SingleUseLaunchUrlResponse"
            },
            "headers": {
              "Citrix-TransactionId": {
                "type": "string",
                "format": "uuid"
              },
              "Content-Type": {
                "type": "string"
              },
              "X-Content-Type-Options": {
                "type": "string"
              }
            }
          },
          "400": {
            "description": "Body could not be parsed or requested an incompatible combination of options",
            "headers": {
              "Citrix-TransactionId": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          "402": {
            "description": "Customer account not entitled to use Remote Browser Isolation",
            "headers": {
              "Citrix-TransactionId": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          "404": {
            "description": "Customer account not recognized",
            "headers": {
              "Citrix-TransactionId": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          "401": {
            "description": "Authorization header is missing or invalid",
            "headers": {
              "Citrix-TransactionId": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          "415": {
            "description": "Must use application/json;charset=utf-8 media type",
            "headers": {
              "Citrix-TransactionId": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          "406": {
            "description": "Must accept application/json media type",
            "headers": {
              "Citrix-TransactionId": {
                "type": "string",
                "format": "uuid"
              }
            }
          }
        }
      }
    }
  },
  "definitions": {
    "SingleUseLaunchRequestModel": {
      "required": [
        "address"
      ],
      "type": "object",
      "properties": {
        "name": {
          "description": "Title of the page in the client browser",
          "pattern": "^[^=+\\-@\\\\\\/][^\\/\\\\]*",
          "type": "string"
        },
        "address": {
          "description": "Fully-qualified URL to launch within the session",
          "type": "string"
        },
        "geo": {
          "description": "Geographical region to host the remote session. Acceptable values are \"Auto\", \"WUS\", \"WEurope\",\r\n\"SEAsia\", \"APS\". Default value is \"WUS.\"",
          "type": "string"
        },
        "whitelist": {
          "description": "List of sites that the hosted browser is allowed to contact. Entries are in the\r\nformat \"hostname:port number\", separated by newlines, with asterisks as wild cards.\r\nDefault value is \"*:*\", which allows all traffic.",
          "type": "string"
        },
        "filterProfile": {
          "description": "Profile for URL filtering. Acceptable values are \"None\", \"Lenient\", \"Moderate\", and \"Strict\". Default\r\nvalue is \"None\".",
          "type": "string"
        },
        "userIdentity": {
          "$ref": "#/definitions/SingleUseUserIdentity"
        },
        "policies": {
          "$ref": "#/definitions/SingleUsePolicyModel"
        }
      }
    },
    "SingleUseUserIdentity": {
      "type": "object",
      "properties": {
        "username": {
          "description": "Name of the user. This is used for reporting purposes.",
          "type": "string"
        },
        "clientIP": {
          "description": "IP address of the user. This is used for reporting, and for choosing a geographical region when \"Auto\" is requested.",
          "type": "string"
        }
      }
    },
    "SingleUsePolicyModel": {
      "type": "object",
      "properties": {
        "copyPaste": {
          "description": "Enable clipboard operations between client and session. Disabled by default.",
          "type": "boolean"
        },
        "printing": {
          "description": "Enable printing of remote pages. Disabled by default.",
          "type": "boolean"
        },
        "nonKiosk": {
          "description": "Do not run the hosted browser in kiosk mode. Disabled by default.",
          "type": "boolean"
        },
        "disableRegionFailover": {
          "description": "By default if the geographical region requested is reporting an issue, the session will be automatically\r\ntransferred to another. If disabled, the session may fail instead of connecting to an unexpected region.",
          "type": "boolean"
        },
        "sessionIdleTimeout": {
          "format": "int32",
          "description": "Number of minutes to allow the session to remain idle before closing automatically. Default ten minutes.",
          "type": "integer"
        },
        "sessionIdleTimeoutWarning": {
          "format": "int32",
          "description": "Number of minutes before an automatic log off to display a warning dialog to the user. Default two minutes.",
          "type": "integer"
        }
      }
    },
    "SingleUseIcaFileResponse": {
      "required": [
        "icaFile"
      ],
      "type": "object",
      "properties": {
        "icaFile": {
          "description": "An ICA file that connects to the environment described in the request",
          "type": "string"
        }
      }
    },
    "SingleUseLaunchUrlResponse": {
      "required": [
        "launchUrl"
      ],
      "type": "object",
      "properties": {
        "launchUrl": {
          "description": "A launch.cloud.com URL that connects to the environment described in the request",
          "type": "string"
        }
      }
    }
  }
}