{
  "openapi": "3.0.1",
  "info": {
    "title": "Cognos Analytics 12.0.x",
    "description": "REST API for Cognos Analytics 12.0.x",
    "version": "1.0.0"
  },
  "externalDocs": {
    "url": "https://www.ibm.com/docs/en/cognos-analytics/12.0.x?topic=apis-rest-api"
  },
  "servers": [
    {
      "url": "{endpoint}/api/v1",
      "variables": {
        "endpoint": {
          "description": "Provide the scheme, server and port.",
          "default": "http://localhost:9300"
        }
      }
    }
  ],
  "security": [
    {
      "CAM": []
    }
  ],
  "tags": [
    {
      "name": "session",
      "description": "Establish, update or delete a session."
    },
    {
      "name": "security",
      "description": "Operations on security."
    },
    {
      "name": "configuration",
      "description": "Operations on configuration."
    },
    {
      "name": "tenants",
      "description": "Operations on tenants."
    },
    {
      "name": "accounts",
      "description": "Operations on accounts."
    },
    {
      "name": "customizations",
      "description": "Operations on customizations."
    },
    {
      "name": "storage",
      "description": "Operations on storage."
    },
    {
      "name": "datasources",
      "description": "Operations on datasources."
    },
    {
      "name": "content",
      "description": "Operations on content."
    },
    {
      "name": "modules",
      "description": "Operations on modules."
    },
    {
      "name": "files",
      "description": "Operations on files."
    },
    {
      "name": "metadata",
      "description": "Operations on metadata."
    }
  ],
  "paths": {
    "/capabilities": {
      "get": {
        "tags": ["accounts"],
        "summary": "List of capabilities.",
        "operationId": "list_capabilities",
        "responses": {
          "200": {
            "description": "Successful operation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Capabilities"
                }
              }
            }
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/capabilities/{id}": {
      "get": {
        "tags": ["accounts"],
        "summary": "Get capability by {id}.",
        "operationId": "get_capability",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the capability.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The capability object.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Capabilities"
                }
              }
            }
          },
          "404": {
            "description": "Capability not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "put": {
        "tags": ["accounts"],
        "summary": "Update the capability with {id}.",
        "operationId": "replace_update_capability",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the capability.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "customization object",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateContent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successful operation."
          },
          "404": {
            "description": "Capability not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/configuration/data_governors": {
      "get": {
        "tags": ["configuration"],
        "summary": "Get global data governors.",
        "operationId": "get_global_data_governors",
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "put": {
        "tags": ["configuration"],
        "summary": "Update global data governors.",
        "operationId": "update_global_data_governors",
        "requestBody": {
          "description": "Data governors to be updated for global level.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DataGovernors"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Action Successful."
          },
          "400": {
            "description": "Invalid values or parameters."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "post": {
        "tags": ["configuration"],
        "summary": "Perform action on global data governors.",
        "operationId": "action_global_data_governors",
        "parameters": [
          {
            "name": "action",
            "in": "query",
            "description": "Action to perform. Accepted values [reset]",
            "required": true,
            "schema": {
              "type": "string",
              "enum": ["reset"]
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Action Successful."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/configuration/keys": {
      "get": {
        "tags": ["configuration"],
        "summary": "List global keys.",
        "operationId": "get_keys",
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "put": {
        "tags": ["configuration"],
        "summary": "Update one or multiple global keys.",
        "operationId": "update_keys",
        "requestBody": {
          "description": "Object containing the key value pairs.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GlobalKeys"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "post": {
        "tags": ["configuration"],
        "summary": "Create one or multiple global keys.",
        "operationId": "create_keys",
        "requestBody": {
          "description": "Object containing the key value pairs.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GlobalKeys"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/configuration/keys/{key}": {
      "get": {
        "tags": ["configuration"],
        "summary": "Get the current value for the provided configuration key.",
        "operationId": "get_key",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "description": "Key name.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "delete": {
        "tags": ["configuration"],
        "summary": "Delete (clear) the current value for the provided configuration key. Value will reset to default.",
        "operationId": "delete_key",
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "description": "Key name.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/configuration/namespaces": {
      "get": {
        "tags": ["configuration"],
        "summary": "List namespace instances.",
        "operationId": "get_namespace_instances",
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "post": {
        "tags": ["configuration"],
        "summary": "Create a namespace instance.",
        "operationId": "create_namespace_instance",
        "requestBody": {
          "description": "Object containing the namespace configuration. The properties required are specific to your namespace type. An example schema for an OpenID Connect (OIDC) Generic namespace is shown.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NamespaceConfiguration"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/configuration/namespaces/test/{id}": {
      "get": {
        "tags": ["configuration"],
        "summary": "Test a namespace instance configuration.",
        "operationId": "test_namespace_instance",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Namespace id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "400": {
            "description": "Test failed."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/configuration/namespaces/{id}": {
      "get": {
        "tags": ["configuration"],
        "summary": "Get a namespace instance.",
        "operationId": "get_namespace_instance",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Namespace id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          },
          "404": {
            "description": "Namespace not found."
          }
        }
      },
      "put": {
        "tags": ["configuration"],
        "summary": "Update a namespace instance.",
        "operationId": "update_namespace_instance",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Namespace id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Object containing the namespace configuration. The properties required are specific to your namespace type. An example schema for an OpenID Connect (OIDC) Generic namespace is shown.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NamespaceConfiguration"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          },
          "404": {
            "description": "Namespace not found."
          }
        }
      },
      "delete": {
        "tags": ["configuration"],
        "summary": "Delete a namespace instance.",
        "operationId": "delete_namespace_instance",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Namespace id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          },
          "403": {
            "description": "Forbidden."
          },
          "404": {
            "description": "Namespace not found."
          }
        }
      }
    },
    "/content": {
      "get": {
        "tags": ["content"],
        "summary": "Get root objects.",
        "operationId": "list_root_objects",
        "responses": {
          "200": {
            "description": "Successful operation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1ContentResponse"
                }
              }
            }
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/content/copy": {
      "post": {
        "tags": ["content"],
        "summary": "Copy an object optionally with all its decendants.",
        "operationId": "copy_object",
        "requestBody": {
          "description": "The source and destination container.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CopyObject"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Object copied.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentServiceObject"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. See response for details."
          },
          "404": {
            "description": "Object or parent object not found."
          },
          "403": {
            "description": "Permission denied."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/content/move": {
      "put": {
        "tags": ["content"],
        "summary": "Move an object with all its decendants.",
        "operationId": "move_object",
        "requestBody": {
          "description": "The source and destination container.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MoveObject"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Object moved."
          },
          "400": {
            "description": "Bad request. See response for details."
          },
          "404": {
            "description": "Object or parent object not found."
          },
          "403": {
            "description": "Permission denied."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/content/{id}": {
      "get": {
        "tags": ["content"],
        "summary": "Get object by {id}.",
        "operationId": "get_object",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the object.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma separated list of extra fields to return.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentServiceObject"
                }
              }
            }
          },
          "404": {
            "description": "Object not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "put": {
        "tags": ["content"],
        "summary": "Update the object with {id}.",
        "operationId": "replace_update_object",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the object.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Object containing the properties to modify.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateContent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successful operation."
          },
          "404": {
            "description": "Object not found."
          },
          "401": {
            "description": "Authentication required."
          },
          "409": {
            "description": "Object has changed since you fetched it."
          }
        }
      },
      "delete": {
        "tags": ["content"],
        "summary": "Delete an object with {id}.",
        "operationId": "delete_object",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the object.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "force",
            "in": "query",
            "description": "Force delete.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "recursive",
            "in": "query",
            "description": "Delete contained objects.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Object(s) deleted."
          },
          "404": {
            "description": "Object not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/content/{id}/items": {
      "get": {
        "tags": ["content"],
        "summary": "Get child objects of {id}.",
        "operationId": "list_child_objects",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the object.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma separated list of extra fields to return.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "nav_filter",
            "in": "query",
            "description": "Don't return hidden objects.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1ContentResponse"
                }
              }
            }
          },
          "404": {
            "description": "Parent object not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "post": {
        "tags": ["content"],
        "summary": "Add an object as a child of {id}.",
        "operationId": "add_child_object",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the object.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The object to add. 'type' field is required, all others are optional.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewContent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Object created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentServiceObject"
                }
              }
            }
          },
          "404": {
            "description": "Parent object not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/customizations/{role}": {
      "get": {
        "tags": ["customizations"],
        "summary": "List the customizations.",
        "operationId": "list_customizations",
        "parameters": [
          {
            "name": "role",
            "in": "path",
            "description": "Role ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Authentication required."
          },
          "200": {
            "description": "The list of customizations."
          }
        }
      },
      "put": {
        "tags": ["customizations"],
        "summary": "Set the customizations for a particular role.",
        "operationId": "set_customizations",
        "parameters": [
          {
            "name": "role",
            "in": "path",
            "description": "Role ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "customization object",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomizationObject"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/datasources": {
      "get": {
        "tags": ["datasources"],
        "summary": "List existing data sources.",
        "operationId": "list_data_sources",
        "responses": {
          "200": {
            "description": "Successful operation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DataSources"
                }
              }
            }
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "post": {
        "tags": ["datasources"],
        "summary": "Add a new data source. Optionally include connection and signon information.",
        "operationId": "add_datasource",
        "requestBody": {
          "description": "Data source definition.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewDataSource"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Data source added."
          },
          "401": {
            "description": "Authentiation required."
          },
          "400": {
            "description": "Bad request. Data source name already exists."
          }
        }
      }
    },
    "/datasources/import/tasks/{taskid}": {
      "get": {
        "tags": ["metadata"],
        "summary": "Get metadata import task status.",
        "operationId": "get_metadata_import_task",
        "parameters": [
          {
            "name": "X-CA-Affinity",
            "in": "header",
            "description": "Value of the X-CA-Affinity header returned from start_import request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "taskid",
            "in": "path",
            "description": "ID of the task.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieves task status.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetadataImportTask"
                }
              }
            }
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "delete": {
        "tags": ["metadata"],
        "summary": "Cancel import task.",
        "operationId": "delete_metadata_import_task",
        "parameters": [
          {
            "name": "X-CA-Affinity",
            "in": "header",
            "description": "Value of the X-CA-Affinity header returned from start_import request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "taskid",
            "in": "path",
            "description": "ID of the task.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Import task cancelled."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/datasources/import_metadata": {
      "post": {
        "tags": ["metadata"],
        "summary": "Start metadata import.",
        "operationId": "start_import",
        "requestBody": {
          "description": "Relevant ids.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportMetadata"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Import metadata started.",
            "headers": {
              "X-CA-Affinity": {
                "description": "Identifies the server handling the upload. Send this header on subsequent segment PUT requests.",
                "style": "simple",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportStarted"
                }
              }
            }
          },
          "400": {
            "description": "Request error. See response for details."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/datasources/test": {
      "post": {
        "tags": ["datasources"],
        "summary": "Test a data source connection with a user name and password.",
        "operationId": "test_data_source_connection",
        "requestBody": {
          "description": "Parameters for testing a data source connection with user name and password. Optionally, test against specific dispatcher(s) by providing a list of dispatcher ID's.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TestConnection"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Test successful."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "Authentiation required."
          }
        }
      }
    },
    "/datasources/{datasourceid}": {
      "get": {
        "tags": ["datasources"],
        "summary": "Retrieve a data source by id.",
        "operationId": "get_data_source",
        "parameters": [
          {
            "name": "datasourceid",
            "in": "path",
            "description": "ID of the data source.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional list of extra fields to retrieve.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DataSource"
                }
              }
            }
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "put": {
        "tags": ["datasources"],
        "summary": "Update a data source by id.",
        "operationId": "update_data_source",
        "parameters": [
          {
            "name": "datasourceid",
            "in": "path",
            "description": "ID of the data source.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Updated data source definition.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDataSource"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Data source updated."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "delete": {
        "tags": ["datasources"],
        "summary": "Delete a data source by id.",
        "operationId": "delete_data_source",
        "parameters": [
          {
            "name": "datasourceid",
            "in": "path",
            "description": "ID of the data source.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Data source deleted."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/datasources/{datasourceid}/connections": {
      "get": {
        "tags": ["datasources"],
        "summary": "List existing connections for the given data source.",
        "operationId": "list_connections",
        "parameters": [
          {
            "name": "datasourceid",
            "in": "path",
            "description": "ID of the data source.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Connections"
                }
              }
            }
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "post": {
        "tags": ["datasources"],
        "summary": "Add a new connection to the data source. Optionally include signons.",
        "operationId": "add_connection",
        "parameters": [
          {
            "name": "datasourceid",
            "in": "path",
            "description": "ID of the data source.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Connection definition.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewConnection"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Connection added."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/datasources/{datasourceid}/connections/{connectionid}": {
      "get": {
        "tags": ["datasources"],
        "summary": "Retrieve a connection.",
        "operationId": "get_connection",
        "parameters": [
          {
            "name": "datasourceid",
            "in": "path",
            "description": "ID of the data source.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "connectionid",
            "in": "path",
            "description": "ID of the connection.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional list of fields to retrieve.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Connection"
                }
              }
            }
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "put": {
        "tags": ["datasources"],
        "summary": "Update a connection.",
        "operationId": "replace_connection",
        "parameters": [
          {
            "name": "datasourceid",
            "in": "path",
            "description": "ID of the data source.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "connectionid",
            "in": "path",
            "description": "ID of the connection.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Updated Connection definition.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateConnection"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Connection added."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "delete": {
        "tags": ["datasources"],
        "summary": "Delete a connection.",
        "operationId": "delete_connection",
        "parameters": [
          {
            "name": "datasourceid",
            "in": "path",
            "description": "ID of the data source.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "connectionid",
            "in": "path",
            "description": "ID of the connection.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Connection deleted."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/datasources/{datasourceid}/connections/{connectionid}/signons": {
      "get": {
        "tags": ["datasources"],
        "summary": "List existing signons for the given data source and connection.",
        "operationId": "list_signons",
        "parameters": [
          {
            "name": "datasourceid",
            "in": "path",
            "description": "ID of the data souce.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "connectionid",
            "in": "path",
            "description": "ID of the connection.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Signons"
                }
              }
            }
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "post": {
        "tags": ["datasources"],
        "summary": "Add a signon.",
        "operationId": "add_signon",
        "parameters": [
          {
            "name": "datasourceid",
            "in": "path",
            "description": "ID of the data souce.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "connectionid",
            "in": "path",
            "description": "ID of the connection.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Signon definition.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewSignon"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Signon added."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/datasources/{datasourceid}/connections/{connectionid}/signons/{signonid}": {
      "get": {
        "tags": ["datasources"],
        "summary": "Get a signon.",
        "operationId": "get_signon",
        "parameters": [
          {
            "name": "datasourceid",
            "in": "path",
            "description": "ID of the data souce.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "connectionid",
            "in": "path",
            "description": "ID of the connection.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "signonid",
            "in": "path",
            "description": "ID of the signon.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Optional list of fields to return.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Signons"
                }
              }
            }
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "put": {
        "tags": ["datasources"],
        "summary": "Update a signon.",
        "operationId": "replace_signon",
        "parameters": [
          {
            "name": "datasourceid",
            "in": "path",
            "description": "ID of the data souce.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "connectionid",
            "in": "path",
            "description": "ID of the connection.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "signonid",
            "in": "path",
            "description": "ID of the signon.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Signon definition.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSignon"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Signon updated."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "delete": {
        "tags": ["datasources"],
        "summary": "Delete a signon.",
        "operationId": "delete_signon",
        "parameters": [
          {
            "name": "datasourceid",
            "in": "path",
            "description": "ID of the data souce.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "connectionid",
            "in": "path",
            "description": "ID of the connection.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "signonid",
            "in": "path",
            "description": "ID of the signon.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Signon deleted."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/datasources/{datasourceid}/connections/{connectionid}/signons/{signonid}/schemas": {
      "get": {
        "tags": ["metadata"],
        "summary": "List available schemas in the data source connection.",
        "operationId": "list_schemas",
        "parameters": [
          {
            "name": "datasourceid",
            "in": "path",
            "description": "ID of the data source.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "connectionid",
            "in": "path",
            "description": "ID of the connection.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "signonid",
            "in": "path",
            "description": "ID of the signon.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a list of schemas.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/Schemas"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "post": {
        "tags": ["metadata"],
        "summary": "Create a schema object with a metadata import definition.",
        "operationId": "create_schema_object",
        "parameters": [
          {
            "name": "datasourceid",
            "in": "path",
            "description": "ID of the data source.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "connectionid",
            "in": "path",
            "description": "ID of the connection.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "signonid",
            "in": "path",
            "description": "ID of the signon.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Schema definition.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewSchema"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Import definition created."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/datasources/{datasourceid}/connections/{connectionid}/signons/{signonid}/schemas/tables": {
      "get": {
        "tags": ["metadata"],
        "summary": "List available tables in a schema.",
        "operationId": "list_tables",
        "parameters": [
          {
            "name": "datasourceid",
            "in": "path",
            "description": "ID of the data source.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "connectionid",
            "in": "path",
            "description": "ID of the connection.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "signonid",
            "in": "path",
            "description": "ID of the signon.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "schemaid",
            "in": "query",
            "description": "Database schema identifier or schema object id.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "datasourcename:connectionname:catalogname:schema"
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the list of table names.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tables"
                }
              }
            }
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/datasources/{datasourceid}/connections/{connectionid}/signons/{signonid}/schemas/{schemaid}": {
      "get": {
        "tags": ["metadata"],
        "summary": "Get specification for schema object.",
        "operationId": "get_schema",
        "parameters": [
          {
            "name": "datasourceid",
            "in": "path",
            "description": "ID of the data source.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "connectionid",
            "in": "path",
            "description": "ID of the connection.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "signonid",
            "in": "path",
            "description": "ID of the signon.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "schemaid",
            "in": "path",
            "description": "Database schema identifier or schema object id.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "datasourcename:connectionname:catalogname:schema"
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the schema.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/Schemas"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "put": {
        "tags": ["metadata"],
        "summary": "Update a schema object with a metadata import definition.",
        "operationId": "update_schema_object",
        "parameters": [
          {
            "name": "datasourceid",
            "in": "path",
            "description": "ID of the data source.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "connectionid",
            "in": "path",
            "description": "ID of the connection.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "signonid",
            "in": "path",
            "description": "ID of the signon.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "schemaid",
            "in": "path",
            "description": "ID of the schema object.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Schema definition.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewSchema"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Import definition created."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "delete": {
        "tags": ["metadata"],
        "summary": "Delete a schema object and clear the loaded metadata.",
        "operationId": "delete_schema",
        "parameters": [
          {
            "name": "datasourceid",
            "in": "path",
            "description": "ID of the data source.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "connectionid",
            "in": "path",
            "description": "ID of the connection.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "signonid",
            "in": "path",
            "description": "ID of the signon.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "schemaid",
            "in": "path",
            "description": "ID of the schema object.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Schema object deleted. Loaded metadata cleared."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/extensions": {
      "get": {
        "tags": ["customizations"],
        "summary": "List the existing extensions.",
        "operationId": "list_extensions",
        "responses": {
          "401": {
            "description": "Authentication required."
          },
          "200": {
            "description": "The list of available extensions.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Extensions"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["customizations"],
        "summary": "Add an extension.",
        "operationId": "add_extension",
        "requestBody": {
          "description": "Extension zip payload.",
          "content": {
            "application/zip": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "401": {
            "description": "Authentication required."
          },
          "201": {
            "description": "Extension added.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomizationAddResponse"
                }
              }
            }
          }
        }
      }
    },
    "/extensions/file": {
      "post": {
        "tags": ["customizations"],
        "summary": "Upload an extension zip file.",
        "operationId": "upload_extension",
        "requestBody": {
          "description": "Extension zip file.",
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/IMultipartBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "401": {
            "description": "Authentication required."
          },
          "201": {
            "description": "Extension added."
          }
        },
        "deprecated": true
      }
    },
    "/extensions/{name}": {
      "delete": {
        "tags": ["customizations"],
        "summary": "Remove an extension.",
        "operationId": "delete_extension",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Name of the extension.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Authentication required."
          },
          "204": {
            "description": "Extension deleted."
          }
        }
      }
    },
    "/files": {
      "get": {
        "tags": ["files"],
        "summary": "List the existing imported files.",
        "operationId": "list_files",
        "responses": {
          "401": {
            "description": "Authentication required."
          },
          "200": {
            "description": "The list of uploaded files.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Files"
                }
              }
            }
          }
        }
      }
    },
    "/files/assets": {
      "get": {
        "tags": ["files"],
        "summary": "Get the uploaded files details of everyone or a specific owner.",
        "operationId": "get_manage_assets",
        "parameters": [
          {
            "name": "owner_id",
            "in": "query",
            "description": "id of owner whose assets needs to be retrieved",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          },
          "404": {
            "description": "Owner not found."
          }
        }
      }
    },
    "/files/import": {
      "post": {
        "tags": ["files"],
        "summary": "Initiate a file import to the default or given location.",
        "operationId": "upload_file",
        "requestBody": {
          "description": "An object identifying file name and destination folder object store ID.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FileImport"
              }
            }
          },
          "required": true
        },
        "responses": {
          "401": {
            "description": "Authentication required."
          },
          "409": {
            "description": "File already imported."
          },
          "202": {
            "description": "Accepting the file import.",
            "headers": {
              "X-CA-Affinity": {
                "description": "Identifies the server handling the upload. Send this header on subsequent segment PUT requests.",
                "style": "simple",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileUpload"
                }
              }
            }
          }
        }
      }
    },
    "/files/import/segment/{data_collector_id}": {
      "put": {
        "tags": ["files"],
        "summary": "Upload a segment of the file.",
        "operationId": "upload_file_segment",
        "parameters": [
          {
            "name": "X-CA-Affinity",
            "in": "header",
            "description": "Value of the X-CA-Affinity header returned from upload_file or update_file request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "data_collector_id",
            "in": "path",
            "description": "Data collector id returned from file import initiation.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "index",
            "in": "query",
            "description": "Segment index. Use -1 to indicate all segments have been loaded.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "File segment.",
          "content": {
            "text/csv": {
              "schema": {
                "type": "object"
              }
            },
            "application/vnd.ms-excel": {
              "schema": {
                "type": "object"
              }
            },
            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "401": {
            "description": "Authentication required."
          },
          "202": {
            "description": "Segment accepted.",
            "headers": {
              "X-CA-Affinity": {
                "description": "Identifies the server handling the upload. Send this header on subsequent segment PUT requests.",
                "style": "simple",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileUpload"
                }
              }
            }
          }
        }
      }
    },
    "/files/import/tasks": {
      "get": {
        "tags": ["files"],
        "summary": "List the existing import tasks.",
        "operationId": "list_tasks",
        "responses": {
          "401": {
            "description": "Authentication required."
          },
          "200": {
            "description": "The list of import tasks.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tasks"
                }
              }
            }
          }
        }
      }
    },
    "/files/import/tasks/{taskid}": {
      "get": {
        "tags": ["files"],
        "summary": "Retrieve a single import task.",
        "operationId": "get_task",
        "parameters": [
          {
            "name": "X-CA-Affinity",
            "in": "header",
            "description": "Value of the X-CA-Affinity header returned from upload_file or update_file request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "taskid",
            "in": "path",
            "description": "Task id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Authentication required."
          },
          "200": {
            "description": "The task.",
            "headers": {
              "X-CA-Affinity": {
                "description": "Identifies the server handling the upload. Send this header on subsequent segment PUT requests.",
                "style": "simple",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Task"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": ["files"],
        "summary": "Cancel an import task.",
        "operationId": "delete_task",
        "parameters": [
          {
            "name": "X-CA-Affinity",
            "in": "header",
            "description": "Value of the X-CA-Affinity header returned from upload_file or update_file request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "taskid",
            "in": "path",
            "description": "Task id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Authentication required."
          },
          "204": {
            "description": "Task cancelled."
          }
        }
      }
    },
    "/files/import/{id}": {
      "put": {
        "tags": ["files"],
        "summary": "Update an existing file import.",
        "operationId": "update_file",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the file to update.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "append",
            "in": "query",
            "description": "Append data.",
            "required": true,
            "schema": {
              "type": "boolean",
              "enum": [true, false]
            }
          },
          {
            "name": "filename",
            "in": "query",
            "description": "Name of the file to update.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Authentication required."
          },
          "202": {
            "description": "Accepting the update.",
            "headers": {
              "X-CA-Affinity": {
                "description": "Identifies the server handling the upload. Send this header on subsequent segment PUT requests.",
                "style": "simple",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileUpload"
                }
              }
            }
          }
        }
      }
    },
    "/files/{id}": {
      "delete": {
        "tags": ["files"],
        "summary": "Delete an existing imported file.",
        "operationId": "delete_file",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the file to delete.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Authentication required."
          },
          "204": {
            "description": "File deleted."
          }
        }
      }
    },
    "/groups": {
      "get": {
        "tags": ["accounts"],
        "summary": "Get groups.",
        "operationId": "list_group_objects",
        "parameters": [
          {
            "name": "parent_id",
            "in": "query",
            "description": "id of the parent namespace or folder to retrieve groups from",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Pagination values (default 0|100). Format: startFrom|maxObjects",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The list of available groups.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/groups/import": {
      "post": {
        "tags": ["accounts"],
        "summary": "Import a csv file containing a list of groups.",
        "operationId": "import_group",
        "parameters": [
          {
            "name": "namespace",
            "in": "query",
            "description": "namespace defaultName",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Group csv file",
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/IMultipartBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/groups/{id}": {
      "get": {
        "tags": ["accounts"],
        "summary": "Get group by {id}.",
        "operationId": "get_group",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the group.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The group object.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupOrRoleObject"
                }
              }
            }
          },
          "404": {
            "description": "group not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "put": {
        "tags": ["accounts"],
        "summary": "Update the group with {id}.",
        "operationId": "replace_update_group",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the group.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "customization object",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateContent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successful operation."
          },
          "404": {
            "description": "group not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "post": {
        "tags": ["accounts"],
        "summary": "Create a group as a child of {id}.",
        "operationId": "create",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id of the parent namespace or folder where the group is going to be created",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "group object",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewContent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "group created."
          },
          "404": {
            "description": "Parent object not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "delete": {
        "tags": ["accounts"],
        "summary": "Delete a group with {id}.",
        "operationId": "delete_group",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the group.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "group deleted."
          },
          "404": {
            "description": "group not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/groups/{id}/members": {
      "get": {
        "tags": ["accounts"],
        "summary": "Return the members of a group with {id}.",
        "operationId": "list_group_members",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the group.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of group members.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupMembersResponse"
                }
              }
            }
          },
          "404": {
            "description": "group not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "post": {
        "tags": ["accounts"],
        "summary": "Add a member to a group with {id}.",
        "operationId": "add_member_to_group",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the group",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "customization object",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupMembersRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "404": {
            "description": "group not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/groups/{id}/members/{type}/{member_id}": {
      "delete": {
        "tags": ["accounts"],
        "summary": "Remove the member from a group with {id} using {member_id}.",
        "operationId": "delete_member_from_group",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the group",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "path",
            "description": "Type of object to remove",
            "required": true,
            "schema": {
              "type": "string",
              "enum": ["user", "group"]
            }
          },
          {
            "name": "member_id",
            "in": "path",
            "description": "ID of the account, group or group.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "404": {
            "description": "group not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/modules": {
      "get": {
        "tags": ["modules"],
        "summary": "List available modules.",
        "operationId": "list_modules",
        "responses": {
          "200": {
            "description": "Returns a list of modules.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Modules"
                }
              }
            }
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "post": {
        "tags": ["modules"],
        "summary": "Create a module.",
        "operationId": "add_module",
        "parameters": [
          {
            "name": "location",
            "in": "query",
            "description": "ID of the location to store the module.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The module definition.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Module created."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/modules/{moduleid}": {
      "get": {
        "tags": ["modules"],
        "summary": "Get a module.",
        "operationId": "get_module",
        "parameters": [
          {
            "name": "moduleid",
            "in": "path",
            "description": "ID of the module.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns a module."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "put": {
        "tags": ["modules"],
        "summary": "Updates a module.",
        "operationId": "put_module",
        "parameters": [
          {
            "name": "moduleid",
            "in": "path",
            "description": "ID of the module.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The module definition.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Module updated."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "delete": {
        "tags": ["modules"],
        "summary": "Delete a module.",
        "operationId": "delete_module",
        "parameters": [
          {
            "name": "moduleid",
            "in": "path",
            "description": "ID of the module.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Module deleted."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/modules/{moduleid}/metadata": {
      "get": {
        "tags": ["modules"],
        "summary": "Get module metadata.",
        "operationId": "get_module_metadata",
        "parameters": [
          {
            "name": "moduleid",
            "in": "path",
            "description": "ID of the module.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Returns module metadata."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/namespace_folder/{id}/items": {
      "get": {
        "tags": ["accounts"],
        "summary": "Get all items in a namespace folder.",
        "operationId": "get_namespace_folder_items",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Folder id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of objects to return (default = 100).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The offset of the first item returned (default = 0).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sorts the response in ascending or descending order based on the specified field. E.g. defaultName|asc",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "types",
            "in": "query",
            "description": "The object types to return.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "The object fields to return.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/palettes/my": {
      "get": {
        "tags": ["customizations"],
        "summary": "List my palettes.",
        "operationId": "get_my_palettes",
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "post": {
        "tags": ["customizations"],
        "summary": "Create new personal palettes.",
        "operationId": "create_my_palettes",
        "requestBody": {
          "description": "Object containing the palette properties. Name is required, the rest is optional.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PalettePayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/palettes/public": {
      "get": {
        "tags": ["customizations"],
        "summary": "List public palettes.",
        "operationId": "get_public_palettes",
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/palettes/{id}": {
      "get": {
        "tags": ["customizations"],
        "summary": "Get a palette by id.",
        "operationId": "get_palettes_by_id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Palette id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "put": {
        "tags": ["customizations"],
        "summary": "Update a palette by id.",
        "operationId": "update_palettes_by_id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Palette id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Object containing the palette properties. All properties are optional, those provided are merged in.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PalettePayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "delete": {
        "tags": ["customizations"],
        "summary": "Delete a palette by id.",
        "operationId": "delete_palettes_by_id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Palette id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "forced",
            "in": "query",
            "description": "Force deletion even if the palette is referenced.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/perspectives": {
      "get": {
        "tags": ["customizations"],
        "summary": "List the perspectives available for customization.",
        "operationId": "list_perspectives",
        "responses": {
          "401": {
            "description": "Authentication required."
          },
          "200": {
            "description": "The list of perspectives available for customization.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Perspectives"
                }
              }
            }
          }
        }
      }
    },
    "/roles": {
      "get": {
        "tags": ["accounts"],
        "summary": "Get roles.",
        "operationId": "list_role_objects",
        "parameters": [
          {
            "name": "parent_id",
            "in": "query",
            "description": "id of the parent namespace or folder to retrieve roles from",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The list of available roles.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RolesResponse"
                }
              }
            }
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/roles/{id}": {
      "get": {
        "tags": ["accounts"],
        "summary": "Get role by {id}.",
        "operationId": "get_role",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the role.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The role object.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupOrRoleObject"
                }
              }
            }
          },
          "404": {
            "description": "Role not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "put": {
        "tags": ["accounts"],
        "summary": "Update the role with {id}.",
        "operationId": "replace_update_role",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the role.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Object containing the role properties to modify.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateContent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successful operation."
          },
          "404": {
            "description": "Role not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "post": {
        "tags": ["accounts"],
        "summary": "Create a role as a child of {id}.",
        "operationId": "create_role",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id of the parent namespace or folder where the role is going to be created",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Role definition",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewContent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Role created."
          },
          "404": {
            "description": "Parent object not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "delete": {
        "tags": ["accounts"],
        "summary": "Delete a role with {id}.",
        "operationId": "delete_role",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the role.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Role deleted."
          },
          "404": {
            "description": "Role not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/roles/{id}/members": {
      "get": {
        "tags": ["accounts"],
        "summary": "Return the members of a role with {id}.",
        "operationId": "list_role_members",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the role.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of role members.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleMembersResponse"
                }
              }
            }
          },
          "404": {
            "description": "Role not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "post": {
        "tags": ["accounts"],
        "summary": "Add a member to a role with {id}.",
        "operationId": "add_member_to_role",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the role",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Collection of users,groups and roles to add as members",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RoleMembersRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "404": {
            "description": "Role not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/roles/{id}/members/users": {
      "post": {
        "tags": ["accounts"],
        "summary": "Add a user to a role with {id} using the unique identifier.",
        "operationId": "add_user_member_from_role",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the role",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "identifier",
            "in": "query",
            "description": "unique identifier",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "404": {
            "description": "Role or user not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "delete": {
        "tags": ["accounts"],
        "summary": "Remove the user from a role with {id} using the specified identifier.",
        "operationId": "remove_user_member_from_role",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the role",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "identifier",
            "in": "query",
            "description": "unique identifier",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "404": {
            "description": "Role or user not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/roles/{id}/members/{type}/{member_id}": {
      "delete": {
        "tags": ["accounts"],
        "summary": "Delete the member from a role with {id} using {member_id}.",
        "operationId": "delete_member_from_role",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the role",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "path",
            "description": "Type of object to remove",
            "required": true,
            "schema": {
              "type": "string",
              "enum": ["user", "group", "role"]
            }
          },
          {
            "name": "member_id",
            "in": "path",
            "description": "ID of the account, group or role.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "404": {
            "description": "Role not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/security/login_api_keys": {
      "get": {
        "tags": ["security"],
        "summary": "List all API keys.",
        "operationId": "list_login_api_keys",
        "responses": {
          "200": {
            "description": "Successful operation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginApiKeys"
                }
              }
            }
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "post": {
        "tags": ["security"],
        "summary": "Create a new API key.",
        "operationId": "create_login_api_key",
        "requestBody": {
          "description": "Object containing the properties of the API key to be created.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginApiKeyPayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Key created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginApiKeyPostResponse"
                }
              }
            }
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/security/login_api_keys/{id}": {
      "get": {
        "tags": ["security"],
        "summary": "Get an API key by id.",
        "operationId": "get_login_api_key_by_id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Key id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginApiKey"
                }
              }
            }
          },
          "401": {
            "description": "Authentication required."
          },
          "404": {
            "description": "Object not found."
          }
        }
      },
      "put": {
        "tags": ["security"],
        "summary": "Update an API key.",
        "operationId": "update_login_api_key_by_id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Key id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Object containing the modified properties of the API key to be updated.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginApiKeyPayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Key updated."
          },
          "401": {
            "description": "Authentication required."
          },
          "404": {
            "description": "Object not found."
          }
        }
      },
      "delete": {
        "tags": ["security"],
        "summary": "Delete an API key.",
        "operationId": "delete_login_api_key_by_id",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Key id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Key deleted."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/session": {
      "get": {
        "tags": ["session"],
        "summary": "Get the session info.",
        "operationId": "get_session",
        "responses": {
          "401": {
            "description": "Authentication required."
          },
          "200": {
            "description": "Returns the session information.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Session"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": ["session"],
        "summary": "Initiate or update a session (log in).",
        "operationId": "create_update_session",
        "requestBody": {
          "description": "Authentication parameters.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSession"
              }
            }
          },
          "required": true
        },
        "responses": {
          "401": {
            "description": "Authentication required."
          },
          "403": {
            "description": "Invalid namespace."
          },
          "201": {
            "description": "Session created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Session"
                }
              }
            }
          },
          "200": {
            "description": "Session updated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Session"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": ["session"],
        "summary": "Delete the session (log out).",
        "operationId": "delete_session",
        "responses": {
          "401": {
            "description": "Authentication required."
          },
          "204": {
            "description": "Session deleted."
          }
        }
      }
    },
    "/storage": {
      "get": {
        "tags": ["storage"],
        "summary": "Get cloud storage connections",
        "description": "Retrieves a list of all existing cloud storage connections.",
        "operationId": "list_storage_connections",
        "responses": {
          "200": {
            "description": "Cloud storage connections retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorageConnections"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["storage"],
        "summary": "Create cloud storage connection",
        "description": "Creates a new cloud storage connection.",
        "operationId": "add_storage_connection",
        "requestBody": {
          "description": "Cloud storage connection definition.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewStorageConnection"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Cloud storage connection created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/new_storage_object_response"
                }
              }
            }
          }
        }
      }
    },
    "/storage/limited": {
      "get": {
        "tags": ["storage"],
        "summary": "Get cloud storage connections limited information",
        "description": "Retrieves a list of all existing cloud storage connections, providing a subset of connection properties.",
        "operationId": "list_storage_connections_limited",
        "responses": {
          "200": {
            "description": "Cloud storage connections retrieved with limited set of properties.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorageConnections"
                }
              }
            }
          }
        }
      }
    },
    "/storage/locations/test": {
      "post": {
        "tags": ["storage"],
        "summary": "Test cloud storage location",
        "description": "Tests a new cloud storage location.",
        "operationId": "test_storage_location",
        "requestBody": {
          "description": "Cloud storage location test parameters.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StorageTestLocation"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Cloud storage location test succeeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorageTestSuccess"
                }
              }
            }
          }
        }
      }
    },
    "/storage/locations/{locationid}": {
      "get": {
        "tags": ["storage"],
        "summary": "Get cloud storage location",
        "description": "Retrieves the cloud storage location with id {locationid}.",
        "operationId": "get_storage_location",
        "parameters": [
          {
            "name": "locationid",
            "in": "path",
            "description": "unique id of the cloud storage location.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Cloud storage location successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorageLocation"
                }
              }
            }
          },
          "404": {
            "description": "Cloud storage location with id {locationid} not found."
          }
        }
      },
      "put": {
        "tags": ["storage"],
        "summary": "Update cloud storage location",
        "description": "Updates cloud storage location with id {locationid}",
        "operationId": "replace_storage_location",
        "parameters": [
          {
            "name": "locationid",
            "in": "path",
            "description": "Unique id of the cloud storage location to update.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Updated cloud storage location definition.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStorageLocation"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Storage location updated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/updated_storage_object_response"
                }
              }
            }
          },
          "404": {
            "description": "Cloud storage location with id {locationid} not found."
          }
        }
      },
      "delete": {
        "tags": ["storage"],
        "summary": "Delete cloud storage location",
        "description": "Deletes cloud storage location with id {locationid}",
        "operationId": "delete_storage_location",
        "parameters": [
          {
            "name": "locationid",
            "in": "path",
            "description": "Unique id of the cloud storage location to delete.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Cloud storage location deleted."
          },
          "404": {
            "description": "Cloud storage location with id {locationid} not found."
          }
        }
      }
    },
    "/storage/locations/{locationid}/files": {
      "get": {
        "tags": ["storage"],
        "summary": "Get cloud storage location files",
        "description": "Retrieves the list of files at cloud storage location with id {locationid}.",
        "operationId": "get_storage_location_files",
        "parameters": [
          {
            "name": "locationid",
            "in": "path",
            "description": "unique id of the cloud storage location.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of files at cloud storage location successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/storage_location_file"
                }
              }
            }
          },
          "404": {
            "description": "Files not found at cloud storage location with id {locationid}."
          }
        }
      }
    },
    "/storage/regions/{providerid}": {
      "get": {
        "tags": ["storage"],
        "summary": "Get cloud storage regions",
        "description": "Retrieves a list of regions for cloud storage provider with id {providerid}",
        "operationId": "get_storage_regions",
        "parameters": [
          {
            "name": "providerid",
            "in": "path",
            "description": "Unique id of the cloud storage provider.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Cloud storage regions retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorageRegions"
                }
              }
            }
          },
          "404": {
            "description": "Cloud storage provider with id {providerid} not found."
          }
        }
      }
    },
    "/storage/test": {
      "post": {
        "tags": ["storage"],
        "summary": "Test cloud storage connection",
        "description": "Tests a new cloud storage connection.",
        "operationId": "test_storage_connection",
        "requestBody": {
          "description": "Cloud storage connection test parameters.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StorageTestConnection"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Cloud storage connection test succeeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorageTestSuccess"
                }
              }
            }
          }
        }
      }
    },
    "/storage/{connectionid}": {
      "get": {
        "tags": ["storage"],
        "summary": "Get cloud storage connection",
        "description": "Retrieves the cloud storage connection with id {connectionid}.",
        "operationId": "get_storage_connection",
        "parameters": [
          {
            "name": "connectionid",
            "in": "path",
            "description": "Unique id of the cloud storage connection to get.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Cloud storage connection successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorageConnection"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": ["storage"],
        "summary": "Update cloud storage connection",
        "description": "Updates cloud storage connection with id {connectionid}",
        "operationId": "replace_storage_connection",
        "parameters": [
          {
            "name": "connectionid",
            "in": "path",
            "description": "Unique id of the cloud storage connection to update.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Updated cloud storage connection definition.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateStorageConnection"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Cloud storage connection updated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/updated_storage_object_response"
                }
              }
            }
          },
          "404": {
            "description": "Cloud storage connection with id {connectionid} not found."
          }
        }
      },
      "delete": {
        "tags": ["storage"],
        "summary": "Delete cloud storage connection",
        "description": "Deletes cloud storage connection with id {connectionid}",
        "operationId": "delete_storage_connection",
        "parameters": [
          {
            "name": "connectionid",
            "in": "path",
            "description": "unique id of the cloud storage connection to delete.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Connection deleted."
          },
          "404": {
            "description": "Cloud storage connection with id {connectionid} not found."
          }
        }
      }
    },
    "/storage/{connectionid}/buckets": {
      "get": {
        "tags": ["storage"],
        "summary": "Get cloud storage buckets",
        "description": "Retrieves a list of all cloud storage buckets for connection with id {connectionid}",
        "operationId": "get_storage_connection_buckets",
        "parameters": [
          {
            "name": "connectionid",
            "in": "path",
            "description": "Unique id of the storage connection.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorageBucket"
                }
              }
            }
          }
        }
      }
    },
    "/storage/{connectionid}/locations": {
      "get": {
        "tags": ["storage"],
        "summary": "Get cloud storage locations",
        "description": "Retrieves a list of all cloud storage locations for connection with id {connectionid}.",
        "operationId": "list_storage_locations",
        "parameters": [
          {
            "name": "connectionid",
            "in": "path",
            "description": "unique id of the cloud storage connection to retrieve locations for.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorageLocations"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["storage"],
        "summary": "Create cloud storage location",
        "description": "Creates a new storage location under parent cloud storage connection with id {connectionid}.",
        "operationId": "update_storage_locations",
        "parameters": [
          {
            "name": "connectionid",
            "in": "path",
            "description": "Unique id of the parent cloud storage connection.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Cloud storage location definition.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewStorageLocation"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Cloud storage location created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/new_storage_object_response"
                }
              }
            }
          },
          "404": {
            "description": "Cloud storage connection with id {connectionid} not found."
          }
        }
      }
    },
    "/storage/{connectionid}/locations/limited": {
      "get": {
        "tags": ["storage"],
        "summary": "Get cloud storage locations limited information",
        "description": "Retrieves a list of all cloud storage locations for connection with id {connectionid}, providing a subset of location properties.",
        "operationId": "list_storage_locations_limited",
        "parameters": [
          {
            "name": "connectionid",
            "in": "path",
            "description": "unique id of the cloud storage connection to retrieve locations for.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorageLocations"
                }
              }
            }
          }
        }
      }
    },
    "/system_profile_settings": {
      "get": {
        "tags": ["customizations"],
        "summary": "Get the system profile settings.",
        "operationId": "get_system_profile_settings",
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "put": {
        "tags": ["customizations"],
        "summary": "Update the system profile settings.",
        "operationId": "update_system_profile_settings",
        "requestBody": {
          "description": "Object containing the system profile settings properties.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SystemProfileSettings"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/tenants": {
      "get": {
        "tags": ["tenants"],
        "summary": "List existing tenants or retrieve a tenant by its tenant id.",
        "operationId": "list_tenants",
        "parameters": [
          {
            "name": "tenant_id",
            "in": "query",
            "description": "tenant id",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tenants"
                }
              }
            }
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "put": {
        "tags": ["tenants"],
        "summary": "Update the tenant by its tenant id.",
        "operationId": "update_tenant",
        "parameters": [
          {
            "name": "tenant_id",
            "in": "query",
            "description": "tenant id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Object containing the tenant properties to modify.",
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successful operation."
          },
          "404": {
            "description": "Tenant not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "post": {
        "tags": ["tenants"],
        "summary": "Create a tenant.",
        "operationId": "add_tenant",
        "parameters": [
          {
            "name": "create_team_folder",
            "in": "query",
            "description": "create_team_folder",
            "schema": {
              "type": "string",
              "default": "true",
              "enum": ["true", "false"]
            }
          }
        ],
        "requestBody": {
          "description": "Tenant definition.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewTenant"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "delete": {
        "tags": ["tenants"],
        "summary": "Delete a tenant by its tenant id.",
        "operationId": "delete_tenant",
        "parameters": [
          {
            "name": "tenant_id",
            "in": "query",
            "description": "tenant id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Tenant deleted."
          },
          "404": {
            "description": "Tenant not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/tenants/preferences": {
      "get": {
        "tags": ["tenants"],
        "summary": "Get the tenant account preferences.",
        "operationId": "get_tenant_preferences",
        "parameters": [
          {
            "name": "tenant_id",
            "in": "query",
            "description": "tenant id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "put": {
        "tags": ["tenants"],
        "summary": "Update the tenant account preferences.",
        "operationId": "update_tenant_preferences",
        "parameters": [
          {
            "name": "tenant_id",
            "in": "query",
            "description": "tenant id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Object containing the tenant account preferences.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DefaultUserProfile"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successful operation."
          },
          "404": {
            "description": "Tenant not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/tenants/profile": {
      "delete": {
        "tags": ["tenants"],
        "summary": "Delete the profile of a tenant.",
        "operationId": "delete_tenant_profile",
        "parameters": [
          {
            "name": "tenant_id",
            "in": "query",
            "description": "tenant id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful operation."
          },
          "404": {
            "description": "Tenant not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/tenants/sessions": {
      "delete": {
        "tags": ["tenants"],
        "summary": "Terminate all active sessions associated with a tenant by its tenant id.",
        "operationId": "delete_tenant_sessions",
        "parameters": [
          {
            "name": "tenant_id",
            "in": "query",
            "description": "tenant id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Terminated sessions count."
          },
          "404": {
            "description": "Tenant not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/tenants/set": {
      "put": {
        "tags": ["tenants"],
        "summary": "Operate as a member of the given tenant.",
        "operationId": "operate_as_tenant",
        "parameters": [
          {
            "name": "tenant_id",
            "in": "query",
            "description": "tenant id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful operation."
          },
          "404": {
            "description": "Tenant not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/tenants/user_profile_settings": {
      "get": {
        "tags": ["tenants"],
        "summary": "Get the user profile settings of a tenant.",
        "operationId": "get_tenant_user_profile_settings",
        "parameters": [
          {
            "name": "tenant_id",
            "in": "query",
            "description": "tenant id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma separated list of settings to return.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "404": {
            "description": "Tenant not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "put": {
        "tags": ["tenants"],
        "summary": "Update the user profile settings of a tenant.",
        "operationId": "update_tenant_user_profile_settings",
        "parameters": [
          {
            "name": "tenant_id",
            "in": "query",
            "description": "tenant id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Object containing the tenant user profile settings properties to modify.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SystemProfileSettings"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successful operation."
          },
          "404": {
            "description": "Tenant not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "delete": {
        "tags": ["tenants"],
        "summary": "Delete the user profile settings of a tenant.",
        "operationId": "delete_tenant_user_profile_settings",
        "parameters": [
          {
            "name": "tenant_id",
            "in": "query",
            "description": "tenant id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma separated list of settings to delete.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful operation."
          },
          "404": {
            "description": "Tenant not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/tenants/{id}": {
      "get": {
        "tags": ["tenants"],
        "summary": "Get tenant by {id}.",
        "operationId": "get_tenant",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Content Store ID of the tenant.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The tenant object.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tenant"
                }
              }
            }
          },
          "404": {
            "description": "Tenant not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/tenants/{id}/data_governors": {
      "get": {
        "tags": ["tenants"],
        "summary": "Get tenant data governors.",
        "operationId": "get_tenant_data_governors",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "tenant id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          },
          "404": {
            "description": "Tenant not found."
          }
        }
      },
      "put": {
        "tags": ["tenants"],
        "summary": "Update tenant data governors.",
        "operationId": "update_tenant_data_governors",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "tenant id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Values to be updated for tenant",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DataGovernors"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successful operation."
          },
          "400": {
            "description": "Invalid values or parameters."
          },
          "401": {
            "description": "Authentication required."
          },
          "404": {
            "description": "Tenant not found."
          }
        }
      },
      "post": {
        "tags": ["tenants"],
        "summary": "Perform actions on tenant data governors.",
        "operationId": "action_tenant_data_governors",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "tenant id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action",
            "in": "query",
            "description": "Action to perform. Accepted values [reset]",
            "required": true,
            "schema": {
              "type": "string",
              "enum": ["reset"]
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          },
          "404": {
            "description": "Tenant not found."
          }
        }
      }
    },
    "/themes": {
      "get": {
        "tags": ["customizations"],
        "summary": "List the existing themes.",
        "operationId": "list_themes",
        "responses": {
          "401": {
            "description": "Authentication required."
          },
          "200": {
            "description": "The list of available themes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Themes"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": ["customizations"],
        "summary": "Add a theme.",
        "operationId": "add_themes",
        "requestBody": {
          "description": "Zip input stream",
          "content": {
            "application/zip": {
              "schema": {
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "401": {
            "description": "Authentication required."
          },
          "201": {
            "description": "Theme added.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomizationAddResponse"
                }
              }
            }
          }
        }
      }
    },
    "/themes/file": {
      "post": {
        "tags": ["customizations"],
        "summary": "Upload a theme zip file.",
        "operationId": "upload_theme",
        "requestBody": {
          "description": "Theme zip file",
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/IMultipartBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "401": {
            "description": "Authentication required."
          },
          "201": {
            "description": "Theme added."
          }
        },
        "deprecated": true
      }
    },
    "/themes/{name}": {
      "delete": {
        "tags": ["customizations"],
        "summary": "Remove a theme.",
        "operationId": "delete_themes",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Name of the theme.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Authentication required."
          },
          "204": {
            "description": "Theme deleted."
          }
        }
      }
    },
    "/user_profile_settings": {
      "get": {
        "tags": ["customizations"],
        "summary": "Get the default user profile.",
        "operationId": "get_default_user_profile",
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "put": {
        "tags": ["customizations"],
        "summary": "Update the default user profile.",
        "operationId": "update_default_user_profile",
        "requestBody": {
          "description": "Object containing the user profile settings properties. Properties should be updated all together.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DefaultUserProfile"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/users": {
      "get": {
        "tags": ["accounts"],
        "summary": "List existing users with the given user identifier.",
        "operationId": "list_user_objects",
        "parameters": [
          {
            "name": "identifier",
            "in": "query",
            "description": "Unique id from Cognos Access Manager Identifier or CAMID of the user. I.e., if a user's CAMID value is <b>CAMID(\"APPID:u:jdoe<span>@</span>ibm.com\")</b>, the value of identifier is <b>jdoe<span>@</span>ibm</b>",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Users"
                }
              }
            }
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "post": {
        "tags": ["accounts"],
        "summary": "Add a user to the namespace.",
        "operationId": "add_user",
        "parameters": [
          {
            "name": "namespace",
            "in": "query",
            "description": "namespace defaultName",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "User definition.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewUser"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/users/import": {
      "post": {
        "tags": ["accounts"],
        "summary": "Import a csv file containing a list of users.",
        "operationId": "import_user",
        "parameters": [
          {
            "name": "namespace",
            "in": "query",
            "description": "namespace defaultName",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "User csv file",
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/IMultipartBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/users/{id}": {
      "get": {
        "tags": ["accounts"],
        "summary": "Get user by {id}.",
        "operationId": "get_user",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Content store id of user.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The user object.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "404": {
            "description": "User not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "put": {
        "tags": ["accounts"],
        "summary": "Update the user with {id}.",
        "operationId": "replace_update_user",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Content store id of user.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Object containing the user properties to modify.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateContent"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successful operation."
          },
          "404": {
            "description": "User not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      },
      "delete": {
        "tags": ["accounts"],
        "summary": "Delete a user with {id}.",
        "operationId": "delete_user",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Content store id of user.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "User deleted."
          },
          "404": {
            "description": "User not found."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    },
    "/users/{id}/copy_profile": {
      "post": {
        "tags": ["accounts"],
        "summary": "Copy the profile of a user to other users.",
        "operationId": "copy_user_profile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Content store id of user to copy.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Object containing a list of target users (ids).",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CopyUserProfilePayload"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful operation."
          },
          "401": {
            "description": "Authentication required."
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Ancestor": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Ancestor id."
          }
        },
        "description": "Ancestor."
      },
      "BucketOwner": {
        "type": "object",
        "properties": {
          "displayName": {
            "type": "string"
          },
          "id": {
            "type": "string"
          }
        },
        "description": "Models a Bucket Owner."
      },
      "CASchema": {
        "type": "object",
        "properties": {
          "catalog": {
            "type": "string",
            "description": "CASchema catalog."
          },
          "defaultDescription": {
            "type": "string",
            "description": "CASchema description."
          },
          "defaultName": {
            "type": "string",
            "description": "CASchema name."
          },
          "id": {
            "type": "string",
            "description": "CASchema id."
          },
          "modificationTime": {
            "type": "string",
            "description": "Last modified time."
          },
          "schema": {
            "type": "string",
            "description": "CASchema name."
          },
          "schemaType": {
            "type": "string",
            "description": "CASchema type."
          },
          "specification": {
            "$ref": "#/components/schemas/ImportSpec"
          },
          "status": {
            "type": "string",
            "description": "CASchema import status."
          },
          "statusInfo": {
            "type": "object",
            "description": "CASchema import status."
          }
        },
        "description": "Models an CASchema object."
      },
      "Capabilities": {
        "type": "object",
        "properties": {
          "capabilities": {
            "type": "array",
            "description": "List of capabilities.",
            "items": {
              "$ref": "#/components/schemas/Capability"
            }
          },
          "data": {
            "type": "array",
            "description": "Capabilities data.",
            "writeOnly": true,
            "items": {
              "$ref": "#/components/schemas/Capability"
            }
          }
        },
        "description": "List of capabilities."
      },
      "Capability": {
        "type": "object",
        "properties": {
          "defaultName": {
            "type": "string",
            "description": "Capability name (locale specific)."
          },
          "disabled": {
            "type": "boolean",
            "description": "Capability is disabled."
          },
          "hidden": {
            "type": "boolean",
            "description": "Capability is hidden."
          },
          "id": {
            "type": "string",
            "description": "Capability id."
          },
          "links": {
            "type": "array",
            "description": "Links to related resources.",
            "items": {
              "$ref": "#/components/schemas/JsonLink"
            }
          },
          "modificationTime": {
            "type": "string",
            "description": "Last time the capability was modified."
          },
          "permissions": {
            "type": "array",
            "description": "Permissions",
            "items": {
              "type": "string",
              "description": "Permissions"
            }
          },
          "policies": {
            "type": "array",
            "description": "Policies",
            "items": {
              "type": "object",
              "description": "Policies"
            }
          },
          "searchPath": {
            "type": "string",
            "description": "Capability searchPath."
          },
          "type": {
            "type": "string",
            "description": "Capability type."
          },
          "userCapability": {
            "type": "string",
            "description": "Capability enum."
          },
          "version": {
            "type": "integer",
            "description": "Capability version.",
            "format": "int32"
          }
        },
        "description": "Models a Capability object."
      },
      "Connection": {
        "type": "object",
        "properties": {
          "ancestors": {
            "type": "array",
            "writeOnly": true,
            "items": {
              "$ref": "#/components/schemas/Ancestor"
            }
          },
          "connectionString": {
            "type": "string",
            "description": "Connection string."
          },
          "defaultName": {
            "type": "string",
            "description": "Object name (locale specific)."
          },
          "disabled": {
            "type": "boolean",
            "description": "Object is disabled."
          },
          "fields": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "description": "Additional fields."
            },
            "description": "Additional fields."
          },
          "hidden": {
            "type": "boolean",
            "description": "Object is hidden."
          },
          "id": {
            "type": "string",
            "description": "Object id."
          },
          "links": {
            "type": "array",
            "description": "Links to related resources.",
            "items": {
              "$ref": "#/components/schemas/JsonLink"
            }
          },
          "modificationTime": {
            "type": "string",
            "description": "Last time the object was modified."
          },
          "parent": {
            "type": "array",
            "description": "Parent",
            "writeOnly": true,
            "items": {
              "$ref": "#/components/schemas/DataSource"
            }
          },
          "permissions": {
            "type": "array",
            "description": "Permissions",
            "items": {
              "type": "string",
              "description": "Permissions"
            }
          },
          "type": {
            "type": "string",
            "description": "Object type."
          },
          "version": {
            "type": "integer",
            "description": "Object version.",
            "format": "int32"
          }
        },
        "description": "Models an DataSource object."
      },
      "Connections": {
        "type": "object",
        "properties": {
          "connections": {
            "type": "array",
            "description": "List of connections.",
            "items": {
              "$ref": "#/components/schemas/Connection"
            }
          },
          "data": {
            "type": "array",
            "description": "Connections data.",
            "writeOnly": true,
            "items": {
              "$ref": "#/components/schemas/Connection"
            }
          }
        },
        "description": "List of connections."
      },
      "ContentServiceObject": {
        "type": "object",
        "properties": {
          "defaultName": {
            "type": "string",
            "description": "Object name (locale specific)."
          },
          "fields": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "description": "Additional fields."
            },
            "description": "Additional fields."
          },
          "id": {
            "type": "string",
            "description": "Object id."
          },
          "links": {
            "type": "array",
            "description": "Links to related resources.",
            "items": {
              "$ref": "#/components/schemas/JsonLink"
            }
          },
          "modificationTime": {
            "type": "string",
            "description": "Last time the object was modified."
          },
          "owner": {
            "type": "array",
            "description": "Object owner.",
            "items": {
              "$ref": "#/components/schemas/Owner"
            }
          },
          "type": {
            "type": "string",
            "description": "Object type."
          },
          "version": {
            "type": "integer",
            "description": "Object version.",
            "format": "int32"
          }
        },
        "description": "Models an object returned from CA content-service."
      },
      "CopyObject": {
        "type": "object",
        "properties": {
          "destination_id": {
            "type": "string",
            "description": "ID of the container object to copy to."
          },
          "recursive": {
            "type": "boolean",
            "description": "Copy descendants."
          },
          "source_id": {
            "type": "string",
            "description": "ID of the object to copy."
          }
        },
        "description": "Specify the object to copy and the destination."
      },
      "CopyUserProfilePayload": {
        "type": "object",
        "properties": {
          "folders": {
            "type": "boolean",
            "description": "Folders."
          },
          "pages": {
            "type": "boolean",
            "description": "Pages."
          },
          "preferences": {
            "type": "boolean",
            "description": "Preferences."
          },
          "targetUsers": {
            "type": "array",
            "description": "Target users.",
            "items": {
              "type": "string",
              "description": "Target users."
            }
          }
        },
        "description": "Models a copy user profile payload object."
      },
      "CreateSession": {
        "type": "object",
        "properties": {
          "parameters": {
            "type": "array",
            "description": "Parameters.",
            "items": {
              "$ref": "#/components/schemas/NameValue"
            }
          }
        },
        "description": "Parameters to create/update the session. (e.g. CAMNamespace, CAMUsername, CAMPassword)"
      },
      "CustomizationAddResponse": {
        "type": "object",
        "properties": {
          "defaultName": {
            "type": "string",
            "description": "Object name (locale specific)."
          },
          "id": {
            "type": "string",
            "description": "Object id."
          },
          "links": {
            "type": "array",
            "description": "Links to access object directly.",
            "items": {
              "$ref": "#/components/schemas/JsonLink"
            }
          },
          "modificationTime": {
            "type": "string",
            "description": "Object modification time."
          },
          "type": {
            "type": "string",
            "description": "Object type."
          },
          "version": {
            "type": "integer",
            "description": "Object version.",
            "format": "int32"
          }
        },
        "description": "Models an add response returned when adding customizations."
      },
      "CustomizationObject": {
        "type": "object",
        "properties": {
          "ui_excludedFeatures": {
            "type": "object",
            "description": "Excluded features."
          },
          "ui_theme": {
            "type": "string",
            "description": "Customized theme."
          }
        },
        "description": "Models a customization returned from CA."
      },
      "DataGovernors": {
        "type": "object",
        "properties": {
          "enableEncryption": {
            "type": "boolean",
            "description": "Enable encryption.",
            "default": true
          },
          "maxColumnsForDataSet": {
            "type": "integer",
            "description": "Maximum columns for a dataset.",
            "format": "int64",
            "default": 100
          },
          "maxColumnsForUploadedFile": {
            "type": "integer",
            "description": "Maximum columns for an uploaded file.",
            "format": "int64",
            "default": 100
          },
          "maxRowsForDataSet": {
            "type": "integer",
            "description": "Maximum rows for dataset.",
            "format": "int64",
            "default": 100
          },
          "maxRowsForUploadedFile": {
            "type": "integer",
            "description": "Maximum rows for an uploaded file.",
            "format": "int64",
            "default": 100
          },
          "maxStorageMBytes": {
            "type": "integer",
            "description": "Maximum storage in MB.",
            "format": "int64",
            "default": 100
          },
          "maxUploadSizeDatasetMBytes": {
            "type": "integer",
            "description": "Maximum upload size of dataset in MB.",
            "format": "int64",
            "default": 100
          },
          "maxUploadSizeMBytes": {
            "type": "integer",
            "description": "Maximum upload size in MB.",
            "format": "int64",
            "default": 100
          },
          "uploadTimeout": {
            "type": "integer",
            "description": "Upload timeout in seconds.",
            "format": "int64",
            "default": 100
          }
        },
        "description": "All the properties are optional while updating."
      },
      "DataSource": {
        "type": "object",
        "properties": {
          "capabilities": {
            "type": "array",
            "description": "Capabilities",
            "items": {
              "type": "string",
              "description": "Capabilities"
            }
          },
          "defaultName": {
            "type": "string",
            "description": "Object name (locale specific)."
          },
          "disabled": {
            "type": "boolean",
            "description": "Object is disabled."
          },
          "fields": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "description": "Additional fields."
            },
            "description": "Additional fields."
          },
          "hidden": {
            "type": "boolean",
            "description": "Object is hidden."
          },
          "id": {
            "type": "string",
            "description": "Object id."
          },
          "links": {
            "type": "array",
            "description": "Links to related resources.",
            "items": {
              "$ref": "#/components/schemas/JsonLink"
            }
          },
          "modificationTime": {
            "type": "string",
            "description": "Last time the object was modified."
          },
          "permissions": {
            "type": "array",
            "description": "Permissions",
            "items": {
              "type": "string",
              "description": "Permissions"
            }
          },
          "type": {
            "type": "string",
            "description": "Object type."
          },
          "version": {
            "type": "integer",
            "description": "Object version.",
            "format": "int32"
          }
        },
        "description": "Models an DataSource object."
      },
      "DataSources": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "description": "Datasources data.",
            "writeOnly": true,
            "items": {
              "$ref": "#/components/schemas/DataSource"
            }
          },
          "dataSources": {
            "type": "array",
            "description": "List of data sources.",
            "items": {
              "$ref": "#/components/schemas/DataSource"
            }
          }
        },
        "description": "List of data sources."
      },
      "DefaultUserProfile": {
        "type": "object",
        "properties": {
          "accessibilityFeatures": {
            "type": "boolean",
            "description": "Accessibility features."
          },
          "automaticPageRefresh": {
            "type": "integer",
            "description": "Automatic page refresh.",
            "format": "int32"
          },
          "backgroundSessionLogging": {
            "type": "string",
            "description": "Background session logging."
          },
          "baseTextDirection": {
            "type": "string",
            "description": "Base text direction."
          },
          "biDirectionalFeaturesEnabled": {
            "type": "boolean",
            "description": "Bidirectional features enabled."
          },
          "cmmPortal": {
            "type": "string",
            "description": "cmm portal."
          },
          "columnsPerPage": {
            "type": "integer",
            "description": "Columns per page.",
            "format": "int32"
          },
          "contentLocale": {
            "type": "string",
            "description": "Content locale."
          },
          "displayMode": {
            "type": "string",
            "description": "Display mode."
          },
          "email": {
            "type": "string",
            "description": "Email."
          },
          "format": {
            "type": "string",
            "description": "Format."
          },
          "homePage": {
            "type": "string",
            "description": "Home page."
          },
          "linesPerPage": {
            "type": "integer",
            "description": "Number of lines per page.",
            "format": "int32"
          },
          "listViewSeparator": {
            "type": "string",
            "description": "List view separator."
          },
          "productLocale": {
            "type": "string",
            "description": "Product locale."
          },
          "showHiddenObjects": {
            "type": "boolean",
            "description": "Show hidden objects."
          },
          "showHints": {
            "type": "string",
            "description": "Show hints."
          },
          "showOptionSummary": {
            "type": "boolean",
            "description": "Show option summary."
          },
          "showWelcomePage": {
            "type": "boolean",
            "description": "Show welcome page."
          },
          "skin": {
            "type": "string",
            "description": "Skin."
          },
          "timeZoneID": {
            "type": "string",
            "description": "Time zone id."
          },
          "type": {
            "type": "string",
            "description": "Type."
          }
        },
        "description": "Object containing the default user profile properties."
      },
      "ExtensionObject": {
        "type": "object",
        "properties": {
          "defaultName": {
            "type": "string",
            "description": "Object name (locale specific)."
          },
          "id": {
            "type": "string",
            "description": "Object id."
          },
          "links": {
            "type": "array",
            "description": "Links to access object directly.",
            "items": {
              "$ref": "#/components/schemas/JsonLink"
            }
          },
          "modificationTime": {
            "type": "string",
            "description": "Last time the object was modified."
          },
          "tenantID": {
            "type": "string",
            "description": "Tenant ID of the extension."
          },
          "type": {
            "type": "string",
            "description": "Object type."
          },
          "version": {
            "type": "integer",
            "description": "Object version.",
            "format": "int32"
          }
        },
        "description": "Models a customization returned from CA."
      },
      "Extensions": {
        "type": "object",
        "properties": {
          "extensions": {
            "type": "array",
            "description": "List of extensions.",
            "items": {
              "$ref": "#/components/schemas/ExtensionObject"
            }
          },
          "objects": {
            "type": "array",
            "description": "Extension objects.",
            "writeOnly": true,
            "items": {
              "$ref": "#/components/schemas/ExtensionObject"
            }
          }
        },
        "description": "List of extensions."
      },
      "FileImport": {
        "required": ["filename"],
        "type": "object",
        "properties": {
          "destination": {
            "type": "string",
            "description": "Optional: ID of the destination folder."
          },
          "filename": {
            "type": "string",
            "description": "File name."
          }
        },
        "description": "A file import specification."
      },
      "FileObject": {
        "type": "object",
        "properties": {
          "defaultDescription": {
            "type": "string",
            "description": "Object description."
          },
          "defaultName": {
            "type": "string",
            "description": "Object name."
          },
          "id": {
            "type": "string",
            "description": "Object id."
          },
          "modificationTime": {
            "type": "string",
            "description": "Modification time."
          }
        },
        "description": "Response to a file upload request."
      },
      "FileUpload": {
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
            "description": "Path to import task object."
          },
          "importPath": {
            "type": "string",
            "description": "Path to send file segments."
          },
          "taskID": {
            "type": "string",
            "description": "ID of the import task."
          }
        },
        "description": "File upload initial response."
      },
      "Files": {
        "type": "object",
        "properties": {
          "files": {
            "type": "array",
            "description": "List of files.",
            "items": {
              "$ref": "#/components/schemas/FileObject"
            }
          },
          "results": {
            "type": "array",
            "description": "Results.",
            "writeOnly": true,
            "items": {
              "$ref": "#/components/schemas/FileObject"
            }
          }
        },
        "description": "List of uploaded files."
      },
      "GlobalKeys": {
        "type": "object",
        "properties": {
          "firstKeyName": {
            "type": "string",
            "description": "Value for associated key name."
          },
          "secondKeyName": {
            "type": "string",
            "description": "Value for associated key name."
          }
        },
        "description": "Object containing global configuration keys."
      },
      "GroupMembersRequest": {
        "type": "object",
        "properties": {
          "groups": {
            "type": "array",
            "description": "List of members which are groups.",
            "items": {
              "$ref": "#/components/schemas/MemberRequest"
            }
          },
          "users": {
            "type": "array",
            "description": "List of members which are users.",
            "items": {
              "$ref": "#/components/schemas/MemberRequest"
            }
          }
        },
        "description": "Models a members list to be added to a group or role object."
      },
      "GroupMembersResponse": {
        "type": "object",
        "properties": {
          "groups": {
            "type": "array",
            "description": "List of members which are groups.",
            "items": {
              "$ref": "#/components/schemas/MemberResponse"
            }
          },
          "users": {
            "type": "array",
            "description": "List of members which are users.",
            "items": {
              "$ref": "#/components/schemas/MemberResponse"
            }
          }
        },
        "description": "Models a members list for groups."
      },
      "GroupOrRoleObject": {
        "type": "object",
        "properties": {
          "defaultName": {
            "type": "string",
            "description": "Role/Group name (locale specific)."
          },
          "id": {
            "type": "string",
            "description": "Role/Group id."
          },
          "link": {
            "type": "array",
            "description": "Represents links to access roles or groups.",
            "items": {
              "$ref": "#/components/schemas/JsonLink"
            }
          },
          "modificationTime": {
            "type": "string",
            "description": "Last time the role/group was modified."
          },
          "type": {
            "type": "string",
            "description": "Role/Group type."
          }
        },
        "description": "Models a role or group."
      },
      "GroupsResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "description": "Groups data.",
            "writeOnly": true,
            "items": {
              "$ref": "#/components/schemas/GroupOrRoleObject"
            }
          },
          "groups": {
            "type": "array",
            "description": "Represents the collection of group.",
            "items": {
              "$ref": "#/components/schemas/GroupOrRoleObject"
            }
          }
        },
        "description": "Models the collection of roles."
      },
      "IAttachment": {
        "type": "object",
        "properties": {
          "contentId": {
            "type": "string"
          },
          "contentType": {
            "type": "object",
            "properties": {
              "parameters": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "subtype": {
                "type": "string"
              },
              "type": {
                "type": "string"
              },
              "wildcardSubtype": {
                "type": "boolean"
              },
              "wildcardType": {
                "type": "boolean"
              }
            }
          },
          "dataHandler": {
            "type": "object",
            "properties": {
              "allCommands": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "commandName": {
                      "type": "string"
                    },
                    "commandClass": {
                      "type": "string"
                    }
                  }
                }
              },
              "commandMap": {
                "type": "object",
                "properties": {
                  "mimeTypes": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "writeOnly": true
              },
              "content": {
                "type": "object"
              },
              "contentType": {
                "type": "string"
              },
              "dataSource": {
                "type": "object",
                "properties": {
                  "contentType": {
                    "type": "string"
                  },
                  "inputStream": {
                    "type": "object"
                  },
                  "name": {
                    "type": "string"
                  },
                  "outputStream": {
                    "type": "object"
                  }
                }
              },
              "inputStream": {
                "type": "object"
              },
              "name": {
                "type": "string"
              },
              "outputStream": {
                "type": "object"
              },
              "preferredCommands": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "commandName": {
                      "type": "string"
                    },
                    "commandClass": {
                      "type": "string"
                    }
                  }
                }
              },
              "transferDataFlavors": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "mimeType": {
                      "type": "string"
                    },
                    "humanPresentableName": {
                      "type": "string"
                    },
                    "primaryType": {
                      "type": "string"
                    },
                    "subType": {
                      "type": "string"
                    },
                    "mimeTypeSerializedObject": {
                      "type": "boolean"
                    },
                    "defaultRepresentationClassAsString": {
                      "type": "string"
                    },
                    "representationClassInputStream": {
                      "type": "boolean"
                    },
                    "representationClassReader": {
                      "type": "boolean"
                    },
                    "representationClassCharBuffer": {
                      "type": "boolean"
                    },
                    "representationClassByteBuffer": {
                      "type": "boolean"
                    },
                    "representationClassSerializable": {
                      "type": "boolean"
                    },
                    "representationClassRemote": {
                      "type": "boolean"
                    },
                    "flavorSerializedObjectType": {
                      "type": "boolean"
                    },
                    "flavorRemoteObjectType": {
                      "type": "boolean"
                    },
                    "flavorJavaFileListType": {
                      "type": "boolean"
                    },
                    "flavorTextType": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "headers": {
            "type": "object",
            "properties": {
              "empty": {
                "type": "boolean"
              }
            },
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      },
      "IMultipartBody": {
        "type": "object",
        "properties": {
          "allAttachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IAttachment"
            }
          },
          "childAttachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IAttachment"
            }
          },
          "rootAttachment": {
            "$ref": "#/components/schemas/IAttachment"
          },
          "type": {
            "type": "object",
            "properties": {
              "parameters": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "subtype": {
                "type": "string"
              },
              "type": {
                "type": "string"
              },
              "wildcardSubtype": {
                "type": "boolean"
              },
              "wildcardType": {
                "type": "boolean"
              }
            }
          }
        }
      },
      "ImportMetadata": {
        "type": "object",
        "properties": {
          "connection_id": {
            "type": "string",
            "description": "Data source connection ID."
          },
          "datasource_id": {
            "type": "string",
            "description": "Data source ID."
          },
          "schema_id": {
            "type": "string",
            "description": "Data source schema object ID."
          },
          "signon_id": {
            "type": "string",
            "description": "Data source signon ID."
          }
        },
        "description": "Import metadata command."
      },
      "ImportSpec": {
        "required": ["cleanColumnLabels", "cleanTableLabels", "prettifyLabels"],
        "type": "object",
        "properties": {
          "cleanColumnLabels": {
            "type": "boolean",
            "description": "Clean column labels.",
            "deprecated": true
          },
          "cleanTableLabels": {
            "type": "boolean",
            "description": "Clean table labels.",
            "deprecated": true
          },
          "dataSamplingSize": {
            "type": "integer",
            "description": "Number of rows to sample.",
            "format": "int32",
            "example": 1000
          },
          "dataStatistics": {
            "type": "string",
            "description": "Data statistics.",
            "example": "all"
          },
          "excludedTables": {
            "type": "array",
            "description": "List of tables to exclude",
            "items": {
              "type": "string",
              "description": "List of tables to exclude"
            }
          },
          "importPrimaryForeignKeys": {
            "type": "boolean",
            "description": "Import primary and foreign keys."
          },
          "includedTables": {
            "type": "array",
            "description": "List of tables to include",
            "items": {
              "type": "string",
              "description": "List of tables to include"
            }
          },
          "prettifyLabels": {
            "type": "boolean",
            "description": "Clean table and column labels."
          }
        },
        "description": "Metadata import specification."
      },
      "ImportStarted": {
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
            "description": "Path to task object."
          },
          "taskID": {
            "type": "string",
            "description": "ID of the import task."
          }
        },
        "description": "Metadata import started response."
      },
      "JsonLink": {
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
            "description": "Path of the resource."
          },
          "rel": {
            "type": "string",
            "description": "Type of link."
          },
          "type": {
            "type": "string",
            "description": "Mimetype of link."
          }
        },
        "description": "Represents links to access related resources."
      },
      "JsonObject": {
        "type": "object",
        "properties": {
          "empty": {
            "type": "boolean"
          }
        },
        "additionalProperties": {
          "type": "object"
        }
      },
      "LoginApiKey": {
        "type": "object",
        "properties": {
          "creationTime": {
            "type": "string",
            "description": "Key creation time."
          },
          "defaultDescription": {
            "type": "string",
            "description": "Key default description."
          },
          "defaultName": {
            "type": "string",
            "description": "Key default name."
          },
          "disabled": {
            "type": "boolean",
            "description": "Key is disabled."
          },
          "id": {
            "type": "string",
            "description": "Key id."
          }
        },
        "description": "Object containing the login API key properties."
      },
      "LoginApiKeyPayload": {
        "type": "object",
        "properties": {
          "defaultDescription": {
            "type": "string",
            "description": "Key default description."
          },
          "defaultName": {
            "type": "string",
            "description": "Key default name."
          },
          "disabled": {
            "type": "boolean",
            "description": "Key is disabled."
          }
        },
        "description": "Object containing the properties for creating a login API key."
      },
      "LoginApiKeyPostResponse": {
        "type": "object",
        "properties": {
          "apiKey": {
            "type": "string",
            "description": "API key."
          },
          "creationTime": {
            "type": "string",
            "description": "Key creation time."
          },
          "defaultDescription": {
            "type": "string",
            "description": "Key default description."
          },
          "defaultName": {
            "type": "string",
            "description": "Key default name."
          },
          "disabled": {
            "type": "boolean",
            "description": "Key is disabled."
          },
          "id": {
            "type": "string",
            "description": "Key id."
          }
        },
        "description": "Object containing the login API key properties."
      },
      "LoginApiKeys": {
        "type": "object",
        "properties": {
          "keys": {
            "type": "array",
            "description": "List of login API keys.",
            "items": {
              "$ref": "#/components/schemas/LoginApiKey"
            }
          }
        },
        "description": "List of login API keys."
      },
      "MemberRequest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Member id."
          }
        },
        "description": "Models a member to be added to a group or role object."
      },
      "MemberResponse": {
        "type": "object",
        "properties": {
          "defaultName": {
            "type": "string",
            "description": "Member name (locale specific)."
          },
          "id": {
            "type": "string",
            "description": "Member id."
          },
          "searchPath": {
            "type": "string",
            "description": "Member searchPath."
          },
          "type": {
            "type": "string",
            "description": "Member type."
          },
          "userName": {
            "type": "string",
            "description": "Member userName."
          }
        },
        "description": "Models a member object returned from CA accounts-service."
      },
      "MetadataImportTask": {
        "type": "object",
        "properties": {
          "resourceID": {
            "type": "string",
            "description": "Schema ID."
          },
          "response": {
            "type": "object",
            "description": "Task completed response information."
          },
          "state": {
            "type": "string",
            "description": "Current state of the task."
          },
          "taskID": {
            "type": "string",
            "description": "Task ID."
          },
          "taskStep": {
            "type": "object",
            "description": "Currently executing step."
          },
          "taskType": {
            "type": "string",
            "description": "Task type."
          }
        },
        "description": "State of a metadata import task."
      },
      "Module": {
        "type": "object",
        "properties": {
          "defaultDescription": {
            "type": "string",
            "description": "Description of the module."
          },
          "id": {
            "type": "string",
            "description": "ID of the module."
          },
          "label": {
            "type": "string",
            "description": "Label of the module."
          },
          "lastModified": {
            "type": "string",
            "description": "Last modified time of the module."
          },
          "links": {
            "type": "array",
            "description": "Links to related resources.",
            "items": {
              "$ref": "#/components/schemas/JsonLink"
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the module."
          }
        },
        "description": "Models a module."
      },
      "Modules": {
        "type": "object",
        "properties": {
          "modules": {
            "type": "array",
            "description": "List of modules.",
            "items": {
              "$ref": "#/components/schemas/Module"
            }
          }
        },
        "description": "List of modules."
      },
      "MoveObject": {
        "type": "object",
        "properties": {
          "destination_id": {
            "type": "string",
            "description": "ID of the container object to copy to."
          },
          "source_id": {
            "type": "string",
            "description": "ID of the object to copy."
          }
        },
        "description": "Specify the object to move and the destination."
      },
      "NameValue": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Property name."
          },
          "value": {
            "type": "string",
            "description": "Property value."
          }
        },
        "description": "Name/value pair."
      },
      "NamespaceConfiguration": {
        "type": "object",
        "properties": {
          "acBusinessPhone": {
            "type": "string",
            "description": "Specifies the OIDC claim used for the \"businessPhone\" property for an account."
          },
          "acContentLocale": {
            "type": "string",
            "description": "Specifies the OIDC claim used for the \"contentLocale\" property for an account."
          },
          "acDescription": {
            "type": "string",
            "description": "Specifies the OIDC claim used for the \"description\" property for an account."
          },
          "acEmail": {
            "type": "string",
            "description": "Specifies the OIDC claim used for the \"email\" property for an account."
          },
          "acEncoding": {
            "type": "string",
            "description": "Specifies if the claims in the id_token are URL encoded."
          },
          "acFaxPhone": {
            "type": "string",
            "description": "Specifies the OIDC claim used for the \"faxPhone\" property for an account."
          },
          "acGivenName": {
            "type": "string",
            "description": "Specifies the OIDC claim used for the \"givenName\" property for an account."
          },
          "acHomePhone": {
            "type": "string",
            "description": "Specifies the OIDC claim used for the \"homePhone\" property for an account."
          },
          "acMemberOf": {
            "type": "string",
            "description": "Specifies the OIDC claim used for the \"memberOf\" property for an account."
          },
          "acMobilePhone": {
            "type": "string",
            "description": "Specifies the OIDC claim used for the \"mobilePhone\" property for an account."
          },
          "acName": {
            "type": "string",
            "description": "Specifies the OIDC claim used for the \"name\" property for an account."
          },
          "acPagerPhone": {
            "type": "string",
            "description": "Specifies the OIDC claim used for the \"pagerPhone\" property for an account."
          },
          "acPostalAddr": {
            "type": "string",
            "description": "Specifies the OIDC claim used for the \"postalAddress\" property for an account."
          },
          "acProductLocale": {
            "type": "string",
            "description": "Specifies the OIDC claim used for the \"productLocale\" property for an account."
          },
          "acSurname": {
            "type": "string",
            "description": "Specifies the OIDC claim used for the \"surname\" property for an account."
          },
          "acUsername": {
            "type": "string",
            "description": "Specifies the OIDC claim used for the \"userName\" property for an account."
          },
          "accountCamidProperty": {
            "type": "string",
            "description": "Specifies the value used to uniquely identify account objects."
          },
          "accountClaims": {
            "type": "string",
            "description": "Specifies if the id_token contains all of the account claims."
          },
          "advancedProperties": {
            "type": "object",
            "description": "Specifies a set of advanced properties."
          },
          "authScope": {
            "type": "string",
            "description": "Specifies the scope parameter values provided to the authorize endpoint."
          },
          "class": {
            "type": "string",
            "description": "Namespace class."
          },
          "clientId": {
            "type": "string",
            "description": "Specifies the OpenID Connect client identifier."
          },
          "clientSecret": {
            "type": "string",
            "description": "Specifies the client secret that is assigned to the application by the OpenID Connect identity provider."
          },
          "customProperties": {
            "type": "object",
            "description": "Specifies a set of custom properties."
          },
          "id": {
            "type": "string",
            "description": "Specifies a unique identifier for the authentication namespace."
          },
          "identityProviderType": {
            "type": "string",
            "description": "Specifies the implementation of an OpenID Connect identity provider."
          },
          "idpCertificateFile": {
            "type": "string",
            "description": "Specifies the location of the certificate that is used by the OpenID Connect identity provider to sign the identity token."
          },
          "issuer": {
            "type": "string",
            "description": "Specifies the OpenID claim issuer."
          },
          "jwksEndpoint": {
            "type": "string",
            "description": "Specifies the OpenID Connect endpoint for retrieving JWT signing keys."
          },
          "keyLocation": {
            "type": "string",
            "description": "Specifies the location of the signing public key or certificate."
          },
          "name": {
            "type": "string",
            "description": "Namespace name."
          },
          "oidcAuthEndpoint": {
            "type": "string",
            "description": "Specifies the OpenID Connect authorization endpoint, using the following syntax: https://<hostname:port>/<path>"
          },
          "oidcDiscEndpoint": {
            "type": "string",
            "description": "Specifies the OpenID Connect discovery endpoint."
          },
          "oidcTokenEndpoint": {
            "type": "string",
            "description": "Specifies the OpenID Connect token endpoint, using the following syntax: https://<hostname:port>/<path>"
          },
          "pgAddParams": {
            "type": "string",
            "description": "Specifies any additional parameters that are required for the password grant flow."
          },
          "pgInclScope": {
            "type": "boolean",
            "description": "Specifies that the scope should be included when using the password grant flow."
          },
          "pgStrategy": {
            "type": "string",
            "description": "Specifies how to get the user's identity when using the password grant flow."
          },
          "privateKeyFile": {
            "type": "string",
            "description": "Specifies the file that contains the private signing key."
          },
          "privateKeyId": {
            "type": "string",
            "description": "Specifies the key identifier that should be placed in the JWT header."
          },
          "privateKeyPassword": {
            "type": "string",
            "description": "Specifies the private key password used to protect the private signing key."
          },
          "returnUrl": {
            "type": "string",
            "description": "Return URL that is configured with the OpenID Connect identity provider."
          },
          "selectableForAuth": {
            "type": "boolean",
            "description": "Specifies whether the namespace is selectable for authentication."
          },
          "tcAccountClaims": {
            "type": "string",
            "description": "Specifies if the id_token contains all of the account claims."
          },
          "tcStrategy": {
            "type": "string",
            "description": "Specifies the information that should be stored for scheduling jobs."
          },
          "tenantBoundingSetMapping": {
            "type": "object",
            "description": "Specifies how the tenant bounding set is determined for a user."
          },
          "tenantIdMapping": {
            "type": "object",
            "description": "Specifies how namespace users are mapped to tenant IDs."
          },
          "tokenEndpointAuth": {
            "type": "string",
            "description": "Specifies how to authenticate to the Identity Provider when invoking the token endpoint."
          },
          "useDiscoveryEndpoint": {
            "type": "boolean",
            "description": "Specifies whether the Identity Provider returns a discovery document."
          },
          "version": {
            "type": "string",
            "description": "Version."
          }
        },
        "description": "Object containing the OpenID Connect (OIDC) Generic namespace configuration."
      },
      "NewConnection": {
        "required": ["connectionString"],
        "type": "object",
        "properties": {
          "connectionString": {
            "type": "string",
            "description": "Cognos data source connection string.",
            "example": "^User ID:^?Password:;LOCAL;D2;DSN=;UID=%s;PWD=%s;@ASYNC=0@0/0@COLSEQ=IBM_JD_CNX_STR:^User ID:^?Password:;LOCAL;JD-D2;URL=jdbc:db2://localhost:50000/GS_DB;DRIVER_NAME=com.ibm.db2.jcc.DB2Driver;"
          },
          "defaultName": {
            "type": "string",
            "description": "Object name (locale specific)."
          },
          "signons": {
            "type": "array",
            "description": "List of signons.",
            "items": {
              "$ref": "#/components/schemas/NewSignon"
            }
          }
        },
        "description": "Connection definition."
      },
      "NewContent": {
        "required": ["type"],
        "type": "object",
        "properties": {
          "defaultName": {
            "type": "string",
            "description": "Object name."
          },
          "type": {
            "type": "string",
            "description": "Object type."
          }
        },
        "description": "The 'type' property is required, all other fields are optional."
      },
      "NewCredential": {
        "required": ["password"],
        "type": "object",
        "properties": {
          "password": {
            "type": "string",
            "description": "Password."
          },
          "username": {
            "type": "string",
            "description": "User name."
          }
        },
        "description": "Credentials."
      },
      "NewDataSource": {
        "required": ["defaultName"],
        "type": "object",
        "properties": {
          "connections": {
            "type": "array",
            "description": "List of connections.",
            "items": {
              "$ref": "#/components/schemas/NewConnection"
            }
          },
          "defaultName": {
            "type": "string",
            "description": "Object name (locale specific)."
          }
        },
        "description": "All in one data source, connection and signon definition."
      },
      "NewSchema": {
        "required": ["schema", "schemaType"],
        "type": "object",
        "properties": {
          "catalog": {
            "type": "string",
            "description": "Schema catalog."
          },
          "defaultName": {
            "type": "string",
            "description": "Schema name."
          },
          "schema": {
            "type": "string",
            "description": "Schema name."
          },
          "schemaType": {
            "type": "string",
            "description": "Schema type.",
            "enum": ["user", "system"]
          },
          "specification": {
            "$ref": "#/components/schemas/ImportSpec"
          }
        },
        "description": "Schema metadata import defintion."
      },
      "NewSignon": {
        "required": ["credentialsEx"],
        "type": "object",
        "properties": {
          "credentialsEx": {
            "$ref": "#/components/schemas/NewCredential"
          },
          "defaultName": {
            "type": "string",
            "description": "Object name (locale specific)."
          }
        },
        "description": "Signon definition."
      },
      "NewStorageConnection": {
        "required": ["defaultName"],
        "type": "object",
        "properties": {
          "accessKey": {
            "type": "string",
            "description": "Access key for the storage connection"
          },
          "connectionType": {
            "type": "string",
            "description": "Storage connection type"
          },
          "custom_headers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/custom_header"
            }
          },
          "defaultName": {
            "type": "string",
            "description": "Storage connection name (locale specific)"
          },
          "endpointUrl": {
            "type": "string",
            "description": "Storage connection endpoint URL"
          },
          "secretKey": {
            "type": "string",
            "description": "Secret key for the storage connection"
          }
        },
        "description": "Defines the payload for creating a new storage connection."
      },
      "NewStorageLocation": {
        "required": ["defaultName"],
        "type": "object",
        "properties": {
          "bucket": {
            "type": "string",
            "description": "Storage bucket (optional)"
          },
          "custom_headers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/custom_header"
            }
          },
          "defaultName": {
            "type": "string",
            "description": "Storage location name (locale specific)"
          },
          "endpointUrl": {
            "type": "string",
            "description": "Storage location endpoint URL"
          },
          "prefix": {
            "type": "string",
            "description": "Storage location prefix (optional)"
          },
          "region": {
            "type": "string",
            "description": "Storage region (required for IBM and Amazon S3 storage)"
          }
        },
        "description": "New storage location."
      },
      "NewTenant": {
        "required": ["defaultName", "disabled", "tenantID"],
        "type": "object",
        "properties": {
          "defaultName": {
            "type": "string",
            "description": "Object name (locale specific)."
          },
          "disabled": {
            "type": "boolean",
            "description": "Tenant is disabled."
          },
          "tenantID": {
            "type": "string",
            "description": "Unique id of tenant."
          }
        },
        "description": "Tenant definition."
      },
      "NewUser": {
        "required": ["defaultName", "identity"],
        "type": "object",
        "properties": {
          "defaultName": {
            "type": "string",
            "description": "Object name (locale specific)."
          },
          "identity": {
            "type": "string",
            "description": "Uniqueidentifier of user."
          }
        },
        "description": "User definition."
      },
      "Owner": {
        "type": "object",
        "properties": {
          "defaultName": {
            "type": "string",
            "description": "Owner's display name."
          },
          "type": {
            "type": "string",
            "description": "Type of owner."
          }
        },
        "description": "Storage connection owner."
      },
      "PalettePayload": {
        "type": "object",
        "properties": {
          "content": {
            "type": "object",
            "description": "Content."
          },
          "defaultName": {
            "type": "string",
            "description": "Palette default name."
          },
          "isMine": {
            "type": "boolean",
            "description": "Is mine."
          },
          "public": {
            "type": "boolean",
            "description": "Public."
          },
          "tags": {
            "type": "array",
            "description": "Tags.",
            "items": {
              "type": "string",
              "description": "Tags."
            }
          },
          "type": {
            "type": "string",
            "description": "Palette type."
          }
        },
        "description": "Models a Palette object."
      },
      "PerspectiveObject": {
        "type": "object",
        "properties": {
          "definition": {
            "type": "object",
            "description": "Perspective definition."
          },
          "name": {
            "type": "string",
            "description": "Perspective name."
          }
        },
        "description": "Models a perspective returned from CA."
      },
      "Perspectives": {
        "type": "object",
        "properties": {
          "objects": {
            "type": "array",
            "description": "Perspectives objects.",
            "writeOnly": true,
            "items": {
              "$ref": "#/components/schemas/PerspectiveObject"
            }
          },
          "perspectives": {
            "type": "array",
            "description": "List of perspectives.",
            "items": {
              "$ref": "#/components/schemas/PerspectiveObject"
            }
          }
        },
        "description": "List of perspectives."
      },
      "RoleMembersRequest": {
        "type": "object",
        "properties": {
          "groups": {
            "type": "array",
            "description": "List of members which are groups.",
            "items": {
              "$ref": "#/components/schemas/MemberRequest"
            }
          },
          "roles": {
            "type": "array",
            "description": "List of members which are roles.",
            "items": {
              "$ref": "#/components/schemas/MemberRequest"
            }
          },
          "users": {
            "type": "array",
            "description": "List of members which are users.",
            "items": {
              "$ref": "#/components/schemas/MemberRequest"
            }
          }
        },
        "description": "Models a members list to be added to a group or role object."
      },
      "RoleMembersResponse": {
        "type": "object",
        "properties": {
          "groups": {
            "type": "array",
            "description": "List of members which are groups.",
            "items": {
              "$ref": "#/components/schemas/MemberResponse"
            }
          },
          "roles": {
            "type": "array",
            "description": "List of members which are roles.",
            "items": {
              "$ref": "#/components/schemas/MemberResponse"
            }
          },
          "users": {
            "type": "array",
            "description": "List of members which are users.",
            "items": {
              "$ref": "#/components/schemas/MemberResponse"
            }
          }
        },
        "description": "Models a members list for roles."
      },
      "RolesResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "description": "Roles data.",
            "writeOnly": true,
            "items": {
              "$ref": "#/components/schemas/GroupOrRoleObject"
            }
          },
          "roles": {
            "type": "array",
            "description": "Represents the collection of roles.",
            "items": {
              "$ref": "#/components/schemas/GroupOrRoleObject"
            }
          }
        },
        "description": "Models the collection of roles."
      },
      "Schemas": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "description": "Schema data.",
            "writeOnly": true,
            "items": {
              "$ref": "#/components/schemas/CASchema"
            }
          },
          "schemas": {
            "type": "array",
            "description": "List of Schemas.",
            "items": {
              "$ref": "#/components/schemas/CASchema"
            }
          }
        },
        "description": "List of data source Schemas."
      },
      "Session": {
        "type": "object",
        "properties": {
          "anonymous": {
            "type": "boolean",
            "description": "User is anonymous."
          },
          "cafContextId": {
            "type": "string",
            "description": "CAF context id."
          },
          "canCallLogon": {
            "type": "boolean",
            "description": "User can call logon."
          },
          "generation": {
            "type": "integer",
            "description": "Passport generation.",
            "format": "int32"
          },
          "logEnabled": {
            "type": "boolean",
            "description": "Log is enabled."
          },
          "session_key": {
            "type": "string",
            "description": "CAM session key."
          },
          "shareable": {
            "type": "boolean",
            "description": "Passport is shareable."
          },
          "url": {
            "type": "string",
            "description": "Logon URL."
          }
        },
        "description": "Session properties."
      },
      "Signon": {
        "type": "object",
        "properties": {
          "ancestors": {
            "type": "array",
            "writeOnly": true,
            "items": {
              "$ref": "#/components/schemas/Ancestor"
            }
          },
          "credentials": {
            "type": "string",
            "description": "Signon credentials."
          },
          "defaultName": {
            "type": "string",
            "description": "Object name (locale specific)."
          },
          "disabled": {
            "type": "boolean",
            "description": "Object is disabled."
          },
          "fields": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "description": "Fields."
            },
            "description": "Fields."
          },
          "hidden": {
            "type": "boolean",
            "description": "Object is hidden."
          },
          "id": {
            "type": "string",
            "description": "Object id."
          },
          "links": {
            "type": "array",
            "description": "Links to related resources.",
            "items": {
              "$ref": "#/components/schemas/JsonLink"
            }
          },
          "modificationTime": {
            "type": "string",
            "description": "Last time the object was modified."
          },
          "parent": {
            "type": "array",
            "description": "parent",
            "writeOnly": true,
            "items": {
              "$ref": "#/components/schemas/Connection"
            }
          },
          "permissions": {
            "type": "array",
            "description": "Permissions",
            "items": {
              "type": "string",
              "description": "Permissions"
            }
          },
          "type": {
            "type": "string",
            "description": "Object type."
          },
          "version": {
            "type": "integer",
            "description": "Object version.",
            "format": "int32"
          }
        },
        "description": "Models an data source signon object."
      },
      "Signons": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "description": "Signons data.",
            "writeOnly": true,
            "items": {
              "$ref": "#/components/schemas/Signon"
            }
          },
          "signons": {
            "type": "array",
            "description": "List of signons.",
            "items": {
              "$ref": "#/components/schemas/Signon"
            }
          }
        },
        "description": "List of signons."
      },
      "StorageBucket": {
        "type": "object",
        "properties": {
          "created": {
            "type": "string",
            "description": "Date-time when Bucket was created."
          },
          "name": {
            "type": "string",
            "description": "Name of bucket."
          },
          "owner": {
            "$ref": "#/components/schemas/BucketOwner"
          }
        },
        "description": "models a StorageConnection Bucket."
      },
      "StorageConnection": {
        "type": "object",
        "properties": {
          "accessKey": {
            "type": "string",
            "description": "Access key."
          },
          "connectionType": {
            "type": "string",
            "description": "Connection type."
          },
          "creationTime": {
            "type": "string",
            "description": "Time the object was created."
          },
          "credentials": {
            "type": "string",
            "description": "Signon credentials."
          },
          "custom_headers": {
            "type": "array",
            "description": "Custom headers for this storage location.",
            "items": {
              "$ref": "#/components/schemas/custom_header"
            }
          },
          "defaultName": {
            "type": "string",
            "description": "Object name (locale specific)."
          },
          "disabled": {
            "type": "boolean",
            "description": "Object is disabled."
          },
          "endpointUrl": {
            "type": "string",
            "description": "Storage connection endpoint URL"
          },
          "id": {
            "type": "string",
            "description": "Object id."
          },
          "links": {
            "type": "array",
            "description": "Links to related resources.",
            "items": {
              "$ref": "#/components/schemas/JsonLink"
            }
          },
          "modificationTime": {
            "type": "string",
            "description": "Last time the object was modified."
          },
          "owner": {
            "type": "array",
            "description": "Object owner.",
            "items": {
              "$ref": "#/components/schemas/Owner"
            }
          },
          "permissions": {
            "type": "array",
            "description": "Permissions",
            "items": {
              "type": "string",
              "description": "Permissions"
            }
          },
          "policies": {
            "type": "array",
            "description": "Policies",
            "items": {
              "type": "object",
              "description": "Policies"
            }
          },
          "tenantID": {
            "type": "string",
            "description": "User tenantID."
          },
          "version": {
            "type": "integer",
            "description": "Object version.",
            "format": "int32"
          }
        },
        "description": "Models a StorageConnection object."
      },
      "StorageConnections": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "description": "Storage connection data.",
            "writeOnly": true,
            "items": {
              "$ref": "#/components/schemas/StorageConnection"
            }
          },
          "storageConnections": {
            "type": "array",
            "description": "List of storage connections.",
            "items": {
              "$ref": "#/components/schemas/StorageConnection"
            }
          }
        },
        "description": "List of storage connections."
      },
      "StorageLocation": {
        "type": "object",
        "properties": {
          "bucket": {
            "type": "string",
            "description": "Storage location bucket."
          },
          "creationTime": {
            "type": "string",
            "description": "Time the object was created."
          },
          "custom_headers": {
            "type": "array",
            "description": "Custom headers for this storage location.",
            "items": {
              "$ref": "#/components/schemas/custom_header"
            }
          },
          "defaultName": {
            "type": "string",
            "description": "Object name (locale specific)."
          },
          "disabled": {
            "type": "boolean",
            "description": "Object is disabled."
          },
          "hidden": {
            "type": "boolean",
            "description": "Object is hidden."
          },
          "id": {
            "type": "string",
            "description": "Object id."
          },
          "links": {
            "type": "array",
            "description": "Links to related resources.",
            "items": {
              "$ref": "#/components/schemas/JsonLink"
            }
          },
          "modificationTime": {
            "type": "string",
            "description": "Last time the object was modified."
          },
          "owner": {
            "type": "array",
            "description": "Object owner.",
            "items": {
              "$ref": "#/components/schemas/Owner"
            }
          },
          "permissions": {
            "type": "array",
            "description": "Permissions",
            "items": {
              "type": "string",
              "description": "Permissions"
            }
          },
          "policies": {
            "type": "array",
            "description": "Policies",
            "items": {
              "type": "object",
              "description": "Policies"
            }
          },
          "region": {
            "type": "string",
            "description": "Storage location region."
          },
          "tenantID": {
            "type": "string",
            "description": "User tenantID."
          },
          "type": {
            "type": "string",
            "description": "Object type."
          },
          "version": {
            "type": "integer",
            "description": "Object version.",
            "format": "int32"
          }
        },
        "description": "Models a StorageLocation object."
      },
      "StorageLocations": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "description": "StorageLocations data.",
            "writeOnly": true,
            "items": {
              "$ref": "#/components/schemas/StorageLocation"
            }
          },
          "storageLocations": {
            "type": "array",
            "description": "List of storage locations.",
            "items": {
              "$ref": "#/components/schemas/StorageLocation"
            }
          }
        },
        "description": "List of storage locations."
      },
      "StorageRegions": {
        "type": "object",
        "properties": {
          "regions": {
            "type": "array",
            "description": "Storage regions",
            "items": {
              "type": "string",
              "description": "Storage regions"
            }
          }
        },
        "description": "Models a storage regions object."
      },
      "StorageTestConnection": {
        "type": "object",
        "properties": {
          "accessKey": {
            "type": "string",
            "description": "Access key for the storage connection"
          },
          "connectionType": {
            "type": "string",
            "description": "Storage connection type"
          },
          "custom_headers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/custom_header"
            }
          },
          "secretKey": {
            "type": "string",
            "description": "Secret key for the storage connection"
          }
        },
        "description": "Models a StorageConnection test payload."
      },
      "StorageTestLocation": {
        "type": "object",
        "properties": {
          "bucket": {
            "type": "string",
            "description": "Storage bucket (optional)."
          },
          "connectionId": {
            "type": "string",
            "description": "ID of parent storage connection."
          },
          "prefix": {
            "type": "string",
            "description": "Storage location prefix (optional)."
          },
          "region": {
            "type": "string",
            "description": "Storage region (required for IBM and Amazon S3 storage)."
          }
        },
        "description": "Storage location test payload."
      },
      "StorageTestSuccess": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Message indicating storage connection test was successful."
          }
        },
        "description": "Storage test success response."
      },
      "SystemProfileSettings": {
        "type": "object",
        "properties": {
          "fileUpload_location": {
            "type": "string",
            "description": "File upload location."
          },
          "implicit_learning": {
            "type": "boolean",
            "description": "Implicit learning."
          },
          "implicit_learning_userCanOverride": {
            "type": "boolean",
            "description": "Implicit learning user can override."
          },
          "parameter_values": {
            "type": "object",
            "description": "Parameter values."
          },
          "parameters": {
            "type": "object",
            "description": "Parameters."
          },
          "rootFolder_teamContent": {
            "type": "string",
            "description": "Team content root folder."
          },
          "treeSettings": {
            "type": "object",
            "description": "Tree settings."
          },
          "treeSettings_userCanOverride": {
            "type": "boolean",
            "description": "Tree settings user can override."
          },
          "ui_excludedFeatures": {
            "type": "object",
            "description": "UI excluded features."
          },
          "ui_homePage": {
            "type": "object",
            "description": "UI home page."
          },
          "ui_loginPage": {
            "type": "string",
            "description": "UI login page."
          },
          "ui_teamFolders": {
            "type": "object",
            "description": "UI team folders."
          },
          "ui_theme": {
            "type": "string",
            "description": "UI theme."
          }
        },
        "description": "Object containing the 'userProfileSettings' property of the CM 'System Profile Settings' object."
      },
      "Tables": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "description": "Tables data.",
            "writeOnly": true,
            "items": {
              "type": "string",
              "description": "Tables data."
            }
          },
          "tables": {
            "type": "array",
            "description": "List of tables.",
            "items": {
              "type": "string",
              "description": "List of tables."
            }
          }
        },
        "description": "List of tables."
      },
      "Task": {
        "type": "object",
        "properties": {
          "response": {
            "type": "object",
            "description": "Completed task response."
          },
          "state": {
            "type": "string",
            "description": "Task state."
          },
          "taskID": {
            "type": "string",
            "description": "The ID of the task."
          },
          "taskStep": {
            "type": "object",
            "description": "Describes the current step in the task."
          },
          "taskType": {
            "type": "string",
            "description": "Describes the type of the task."
          }
        },
        "description": "List of uploaded files."
      },
      "Tasks": {
        "type": "object",
        "properties": {
          "tasks": {
            "type": "array",
            "description": "List of tasks.",
            "items": {
              "$ref": "#/components/schemas/Task"
            }
          }
        },
        "description": "List of uploaded files."
      },
      "Tenant": {
        "type": "object",
        "properties": {
          "defaultName": {
            "type": "string",
            "description": "Tenant name (locale specific)."
          },
          "disabled": {
            "type": "boolean",
            "description": "Tenant is disabled."
          },
          "hidden": {
            "type": "boolean",
            "description": "Tenant is hidden."
          },
          "id": {
            "type": "string",
            "description": "Tenant id."
          },
          "links": {
            "type": "array",
            "description": "Links to related resources.",
            "items": {
              "$ref": "#/components/schemas/JsonLink"
            }
          },
          "modificationTime": {
            "type": "string",
            "description": "Last time the tenant was modified."
          },
          "searchPath": {
            "type": "string",
            "description": "Tenant searchPath."
          },
          "tenantID": {
            "type": "string",
            "description": "Tenant tenantID."
          },
          "tenantMembers": {
            "type": "array",
            "description": "Tenant members",
            "items": {
              "type": "object",
              "description": "Tenant members"
            }
          },
          "type": {
            "type": "string",
            "description": "Tenant type."
          },
          "version": {
            "type": "integer",
            "description": "Tenant version.",
            "format": "int32"
          }
        },
        "description": "Models a Tenant object."
      },
      "Tenants": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "description": "Tenants data.",
            "writeOnly": true,
            "items": {
              "$ref": "#/components/schemas/Tenant"
            }
          },
          "tenants": {
            "type": "array",
            "description": "List of tenants.",
            "items": {
              "$ref": "#/components/schemas/Tenant"
            }
          }
        },
        "description": "List of tenants."
      },
      "TestConnection": {
        "required": ["connectionString", "password", "userName"],
        "type": "object",
        "properties": {
          "connectionString": {
            "type": "string",
            "description": "Cognos data source connection string.",
            "example": "^User ID:^?Password:;LOCAL;D2;DSN=;UID=%s;PWD=%s;@ASYNC=0@0/0@COLSEQ=IBM_JD_CNX_STR:^User ID:^?Password:;LOCAL;JD-D2;URL=jdbc:db2://localhost:50000/GS_DB;DRIVER_NAME=com.ibm.db2.jcc.DB2Driver;"
          },
          "dispatcherID": {
            "type": "array",
            "description": "List of dispatcher ID's to test against (optional).",
            "items": {
              "type": "string",
              "description": "List of dispatcher ID's to test against (optional)."
            }
          },
          "password": {
            "type": "string",
            "description": "Password."
          },
          "userName": {
            "type": "string",
            "description": "User name."
          }
        },
        "description": "Connection details for testing."
      },
      "ThemeObject": {
        "type": "object",
        "properties": {
          "builtInTheme": {
            "type": "boolean",
            "description": "Is this a built in theme."
          },
          "defaultName": {
            "type": "string",
            "description": "Object name (locale specific)."
          },
          "label": {
            "type": "string",
            "description": "Theme label."
          },
          "links": {
            "type": "array",
            "description": "Links to access object directly.",
            "items": {
              "$ref": "#/components/schemas/JsonLink"
            }
          },
          "tenantID": {
            "type": "string",
            "description": "Tenant ID of the extension."
          }
        },
        "description": "Models a customization returned from CA."
      },
      "Themes": {
        "type": "object",
        "properties": {
          "objects": {
            "type": "array",
            "description": "Themes objects.",
            "writeOnly": true,
            "items": {
              "$ref": "#/components/schemas/ThemeObject"
            }
          },
          "themes": {
            "type": "array",
            "description": "List of themes.",
            "items": {
              "$ref": "#/components/schemas/ThemeObject"
            }
          }
        },
        "description": "List of themes."
      },
      "UpdateConnection": {
        "type": "object",
        "properties": {
          "connectionString": {
            "type": "string",
            "description": "Cognos data source connection string.",
            "example": "^User ID:^?Password:;LOCAL;D2;DSN=;UID=%s;PWD=%s;@ASYNC=0@0/0@COLSEQ=IBM_JD_CNX_STR:^User ID:^?Password:;LOCAL;JD-D2;URL=jdbc:db2://localhost:50000/GS_DB;DRIVER_NAME=com.ibm.db2.jcc.DB2Driver;"
          },
          "defaultName": {
            "type": "string",
            "description": "Object name (locale specific)."
          },
          "disabled": {
            "type": "boolean",
            "description": "Object is disabled."
          },
          "hidden": {
            "type": "boolean",
            "description": "Object is hidden."
          }
        },
        "description": "Connection definition."
      },
      "UpdateContent": {
        "required": ["type"],
        "type": "object",
        "properties": {
          "defaultDescriptions": {
            "type": "string",
            "description": "Object description."
          },
          "defaultName": {
            "type": "string",
            "description": "Object name."
          },
          "type": {
            "type": "string",
            "description": "Object type."
          },
          "version": {
            "type": "integer",
            "description": "Optional object version. Specify the current version to implement optimistic concurrency.",
            "format": "int32"
          }
        },
        "description": "List of fields to update. 'type' is required."
      },
      "UpdateDataSource": {
        "type": "object",
        "properties": {
          "defaultName": {
            "type": "string",
            "description": "Object name (locale specific)."
          },
          "disabled": {
            "type": "boolean",
            "description": "Object is disabled."
          },
          "hidden": {
            "type": "boolean",
            "description": "Object is hidden."
          }
        },
        "description": "One data source."
      },
      "UpdateSignon": {
        "required": ["credentialsEx"],
        "type": "object",
        "properties": {
          "credentialsEx": {
            "$ref": "#/components/schemas/NewCredential"
          },
          "defaultName": {
            "type": "string",
            "description": "Object name (locale specific)."
          },
          "disabled": {
            "type": "boolean",
            "description": "Object is disabled."
          },
          "hidden": {
            "type": "boolean",
            "description": "Object is hidden."
          }
        },
        "description": "Models an signon update object."
      },
      "UpdateStorageConnection": {
        "required": ["defaultName"],
        "type": "object",
        "properties": {
          "accessKey": {
            "type": "string",
            "description": "Access key."
          },
          "connectionType": {
            "type": "string",
            "description": "Storage connection type."
          },
          "custom_headers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/custom_header"
            }
          },
          "defaultName": {
            "type": "string",
            "description": "Storage connection name (locale specific)."
          },
          "endpointUrl": {
            "type": "string",
            "description": "storage connection endpoint URL."
          },
          "secretKey": {
            "type": "string",
            "description": "Secret key."
          }
        },
        "description": "Modified storage connection."
      },
      "UpdateStorageLocation": {
        "required": ["defaultName"],
        "type": "object",
        "properties": {
          "bucket": {
            "type": "string",
            "description": "Storage location bucket."
          },
          "custom_headers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/custom_header"
            }
          },
          "defaultName": {
            "type": "string",
            "description": "Storage connection name (locale specific)."
          },
          "endpointUrl": {
            "type": "string",
            "description": "storage location endpoint URL."
          },
          "prefix": {
            "type": "string",
            "description": "Storage location prefix."
          },
          "region": {
            "type": "string",
            "description": "storage region (required for IBM and Amazon S3 storage)."
          }
        },
        "description": "Updated storage location."
      },
      "User": {
        "type": "object",
        "properties": {
          "defaultName": {
            "type": "string",
            "description": "User name (locale specific)."
          },
          "disabled": {
            "type": "boolean",
            "description": "User is disabled."
          },
          "email": {
            "type": "string",
            "description": "User email."
          },
          "hidden": {
            "type": "boolean",
            "description": "User is hidden."
          },
          "id": {
            "type": "string",
            "description": "User id."
          },
          "links": {
            "type": "array",
            "description": "Links to related resources.",
            "items": {
              "$ref": "#/components/schemas/JsonLink"
            }
          },
          "modificationTime": {
            "type": "string",
            "description": "Last time the user was modified."
          },
          "permissions": {
            "type": "array",
            "description": "Permissions",
            "items": {
              "type": "string",
              "description": "Permissions"
            }
          },
          "policies": {
            "type": "array",
            "description": "Policies",
            "items": {
              "type": "object",
              "description": "Policies"
            }
          },
          "searchPath": {
            "type": "string",
            "description": "User searchPath."
          },
          "tenantID": {
            "type": "string",
            "description": "User tenantID."
          },
          "type": {
            "type": "string",
            "description": "User type."
          },
          "version": {
            "type": "integer",
            "description": "User version.",
            "format": "int32"
          }
        },
        "description": "Models a User object."
      },
      "Users": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "description": "Users data.",
            "writeOnly": true,
            "items": {
              "$ref": "#/components/schemas/User"
            }
          },
          "users": {
            "type": "array",
            "description": "List of users.",
            "items": {
              "$ref": "#/components/schemas/User"
            }
          }
        },
        "description": "List of users."
      },
      "V1ContentResponse": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "description": "Content.",
            "items": {
              "$ref": "#/components/schemas/ContentServiceObject"
            }
          }
        },
        "description": "List of content."
      },
      "custom_header": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Custom header name."
          },
          "value": {
            "type": "object",
            "description": "Custom header value."
          }
        },
        "description": "Custom header definition."
      },
      "new_storage_object_response": {
        "type": "object",
        "properties": {
          "defaultName": {
            "type": "string",
            "description": "Object name (locale specific)."
          },
          "id": {
            "type": "string",
            "description": "Object id."
          }
        },
        "description": "Models the response for an added/updated CA Storage Service object."
      },
      "storage_location_file": {
        "type": "object",
        "properties": {
          "bucket_name": {
            "type": "string",
            "description": "Storage bucket where the file resource is found."
          },
          "display_name": {
            "type": "string",
            "description": "Display name of the file resource."
          },
          "etag": {
            "type": "string",
            "description": "e-tag of the file resource."
          },
          "folder": {
            "type": "boolean",
            "description": "Whether this resource a folder."
          },
          "key": {
            "type": "string",
            "description": "Key for building path to the file resource."
          },
          "last_modified": {
            "type": "string",
            "description": "Modification date of the file resource."
          },
          "size": {
            "type": "integer",
            "description": "Size of the file resource in bytes.",
            "format": "int32"
          },
          "storage_class": {
            "type": "string",
            "description": "Storage class of the file resource."
          }
        },
        "description": "Models an object containing information about a file resource in a cloud storage location."
      },
      "updated_storage_object_response": {
        "type": "object",
        "properties": {
          "defaultName": {
            "type": "string",
            "description": "Object name (locale specific)."
          },
          "id": {
            "type": "string",
            "description": "Object id."
          }
        },
        "description": "Models the response for an added/updated CA Storage Service object."
      }
    },
    "securitySchemes": {
      "CAM": {
        "type": "apiKey",
        "description": "The Authorization header should contain the value returned in the session_key property of the session object that is returned from a successful session creation. E.g. `IBM-BA-Authorization: CAM xxxxxxxxx`",
        "name": "IBM-BA-Authorization",
        "in": "header"
      }
    }
  }
}
